Listening to the Events

You can find all the available events here: https://github.com/xF3d33/UltimateTeams/tree/main/src/main/java/dev/xf3d3/ultimateteams/api/events

TeamPreCreateEvent

In this example we will listen to the TeamPreCreateEvent, and cancel the creation of the team if the name equals "cat".

import dev.xf3d3.ultimateteams.api.UltimateTeamsAPI;
import dev.xf3d3.ultimateteams.api.events.TeamPreCreateEvent;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

public class UltimateTeamsHook implements Listener {
    private final UltimateTeamsAPI teamsAPI;

    public UltimateTeamsHook() {
        this.teamsAPI = UltimateTeamsAPI.getInstance();
    }

    @EventHandler
    public void onTeamPreCreate(TeamPreCreateEvent event) {
        String teamName = event.getName();
        Player teamCreator = event.getUser();
        
        if (teamName.equalsIgnoreCase("cat")) {
            event.setCancelled(true);
            
            teamCreator.sendMessage("The team creation has been cancelled because you are using a banned name");
        }
    }
}

You can also modify the team name by listening to this event:

import dev.xf3d3.ultimateteams.api.UltimateTeamsAPI;
import dev.xf3d3.ultimateteams.api.events.TeamPreCreateEvent;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

public class UltimateTeamsHook implements Listener {
    private final UltimateTeamsAPI teamsAPI;

    public UltimateTeamsHook() {
        this.teamsAPI = UltimateTeamsAPI.getInstance();
    }

    @EventHandler
    public void onTeamPreCreate(TeamPreCreateEvent event) {
        String teamName = event.getName();
        Player teamCreator = event.getUser();

        if (teamName.equalsIgnoreCase("cat")) {
            event.setName("Dog");

            teamCreator.sendMessage("The team name has been modified to Dog");
        }
    }
}

If the event is not cancelled, the team creation will proceed and you will be able to access the newly created Team with the TeamCreateEvent.

TeamCreateEvent

Let's say you just modified the team name like the code above:

@EventHandler
public void onTeamCreate(TeamCreateEvent event) {
        Player teamCreator = event.getUser();

        teamCreator.sendMessage("The team name is: " + event.getTeam().getName()); // OUTPUT: The team name is: Dog
}

TeamWarpSetEvent

Let's see how to send a message to all team members containing the coordinates of a Warp that the team owner has just created:

import dev.xf3d3.ultimateteams.api.UltimateTeamsAPI;
import dev.xf3d3.ultimateteams.api.events.TeamWarpSetEvent;
import dev.xf3d3.ultimateteams.models.TeamWarp;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

public class UltimateTeamsHook implements Listener {
    private final UltimateTeamsAPI teamsAPI;

    public UltimateTeamsHook() {
        this.teamsAPI = UltimateTeamsAPI.getInstance();
    }

    @EventHandler
    public void onWarpCreate(TeamWarpSetEvent event) {
        TeamWarp warp = event.getTeamWarp();
        String message = "The team Owner has just created the warp " + warp.getName() + "\nCoordinates: X:" + warp.getWarpX() + ", Y:" + warp.getWarpY() + ", Z:" + warp.getWarpZ();
        
        // send a message to all the online players
        event.getTeam().sendTeamMessage(message);
    }
}

The coordinates are a double, so to avoid long decimal values remember to format it.

Last updated