mirror of
https://github.com/BentoBoxWorld/BentoBox.git
synced 2024-09-30 07:37:34 +02:00
Added TeamEvents using the Builder pattern.
TeamEvent is used for all team events. Removed the extra classes that are not needed anymore. See this for a good summary on builder patterns: http://minborgsjavapot.blogspot.com/2014/08/creating-objects-using-builder-pattern.html Plan is to replace the island events with builder pattern too, so that we only need one class for typical island events.
This commit is contained in:
parent
c565d5edf8
commit
4eaa5a1f5f
@ -1,5 +1,7 @@
|
|||||||
package us.tastybento.bskyblock.api.events;
|
package us.tastybento.bskyblock.api.events;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.event.Cancellable;
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
@ -30,6 +32,13 @@ public class IslandEvent extends Event implements Cancellable{
|
|||||||
public Island getIsland(){
|
public Island getIsland(){
|
||||||
return this.island;
|
return this.island;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the owner of the island
|
||||||
|
*/
|
||||||
|
public UUID getOwner() {
|
||||||
|
return this.getOwner();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HandlerList getHandlers() {
|
public HandlerList getHandlers() {
|
||||||
|
@ -1,41 +0,0 @@
|
|||||||
package us.tastybento.bskyblock.api.events.island;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.events.IslandEvent;
|
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fired when the owner of an island changes
|
|
||||||
*
|
|
||||||
* @author Poslovitch
|
|
||||||
* @version 1.0
|
|
||||||
*/
|
|
||||||
public class IslandChangeOwnerEvent extends IslandEvent {
|
|
||||||
private final UUID oldOwner, newOwner;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param island
|
|
||||||
* @param oldOwner
|
|
||||||
* @param newOwner
|
|
||||||
*/
|
|
||||||
public IslandChangeOwnerEvent(Island island, UUID oldOwner, UUID newOwner) {
|
|
||||||
super(island);
|
|
||||||
this.oldOwner = oldOwner;
|
|
||||||
this.newOwner = newOwner;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the old owner
|
|
||||||
*/
|
|
||||||
public UUID getOldOwner() {
|
|
||||||
return oldOwner;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the new owner
|
|
||||||
*/
|
|
||||||
public UUID getNewOwner() {
|
|
||||||
return newOwner;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
package us.tastybento.bskyblock.api.events.island;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.events.IslandEvent;
|
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fired when a player joins an existing island.
|
|
||||||
*
|
|
||||||
* @author tastybento
|
|
||||||
* @since 1.0
|
|
||||||
*/
|
|
||||||
public class IslandJoinEvent extends IslandEvent {
|
|
||||||
private final UUID player;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param island
|
|
||||||
* @param player
|
|
||||||
*/
|
|
||||||
public IslandJoinEvent(Island island, UUID player) {
|
|
||||||
super(island);
|
|
||||||
this.player = player;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the player
|
|
||||||
*/
|
|
||||||
public UUID getPlayer() {
|
|
||||||
return player;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convenience method suggested by Exloki.
|
|
||||||
* Equals to <code>getIsland().getOwner();</code>
|
|
||||||
* @return the owner of the joined island
|
|
||||||
*/
|
|
||||||
public UUID getNewIslandOwner() {
|
|
||||||
return getIsland().getOwner();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
package us.tastybento.bskyblock.api.events.island;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.events.IslandEvent;
|
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fired when a player leaves an existing island.
|
|
||||||
*
|
|
||||||
* @author tastybento
|
|
||||||
* @since 1.0
|
|
||||||
*/
|
|
||||||
public class IslandLeaveEvent extends IslandEvent {
|
|
||||||
private final UUID player;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param island
|
|
||||||
* @param player
|
|
||||||
*/
|
|
||||||
public IslandLeaveEvent(Island island, UUID player) {
|
|
||||||
super(island);
|
|
||||||
this.player = player;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the player
|
|
||||||
*/
|
|
||||||
public UUID getPlayer() {
|
|
||||||
return player;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convenience method suggested by Exloki.
|
|
||||||
* Equals to <code>getIsland().getOwner();</code>
|
|
||||||
* @return the owner of the left island
|
|
||||||
*/
|
|
||||||
public UUID getOldIslandOwner() {
|
|
||||||
return getIsland().getOwner();
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,93 @@
|
|||||||
|
package us.tastybento.bskyblock.api.events.island;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import us.tastybento.bskyblock.api.events.IslandEvent;
|
||||||
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fired when a team event happens.
|
||||||
|
*
|
||||||
|
* @author tastybento
|
||||||
|
* @since 1.0
|
||||||
|
*/
|
||||||
|
public class TeamEvent extends IslandEvent {
|
||||||
|
public enum TeamReason {
|
||||||
|
INVITE,
|
||||||
|
JOIN,
|
||||||
|
REJECT,
|
||||||
|
LEAVE,
|
||||||
|
KICK,
|
||||||
|
MAKELEADER,
|
||||||
|
INFO,
|
||||||
|
DELETE,
|
||||||
|
UNKNOWN,
|
||||||
|
UNINVITE
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Player involved with this event
|
||||||
|
*/
|
||||||
|
private UUID player;
|
||||||
|
/**
|
||||||
|
* True if this is an admin action
|
||||||
|
*/
|
||||||
|
private boolean admin;
|
||||||
|
/**
|
||||||
|
* Reason for this event
|
||||||
|
*/
|
||||||
|
private TeamReason reason = TeamReason.UNKNOWN;
|
||||||
|
|
||||||
|
public TeamEvent(Island island) {
|
||||||
|
super(island);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the player involved with this event
|
||||||
|
*/
|
||||||
|
public UUID getPlayer() {
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return true if this is an admin action
|
||||||
|
*/
|
||||||
|
public boolean isAdmin() {
|
||||||
|
return admin;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the reason for this team event
|
||||||
|
*/
|
||||||
|
public TeamReason getReason() {
|
||||||
|
return reason;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* True if this is an admin driven event
|
||||||
|
* @param admin
|
||||||
|
* @return TeamEvent
|
||||||
|
*/
|
||||||
|
public TeamEvent admin(boolean admin) {
|
||||||
|
this.admin = admin;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param reason for the event
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public TeamEvent reason(TeamReason reason) {
|
||||||
|
this.reason = reason;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param player involved in the event
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public TeamEvent involvedPlayer(UUID player) {
|
||||||
|
this.player = player;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
@ -13,7 +13,8 @@ import org.bukkit.permissions.PermissionAttachmentInfo;
|
|||||||
|
|
||||||
import us.tastybento.bskyblock.BSkyBlock;
|
import us.tastybento.bskyblock.BSkyBlock;
|
||||||
import us.tastybento.bskyblock.api.commands.AbstractCommand;
|
import us.tastybento.bskyblock.api.commands.AbstractCommand;
|
||||||
import us.tastybento.bskyblock.api.events.team.PlayerAcceptInviteEvent;
|
import us.tastybento.bskyblock.api.events.island.TeamEvent;
|
||||||
|
import us.tastybento.bskyblock.api.events.island.TeamEvent.TeamReason;
|
||||||
import us.tastybento.bskyblock.config.Settings;
|
import us.tastybento.bskyblock.config.Settings;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
import us.tastybento.bskyblock.util.Util;
|
import us.tastybento.bskyblock.util.Util;
|
||||||
@ -98,6 +99,14 @@ public class AdminCommand extends AbstractCommand {
|
|||||||
}
|
}
|
||||||
switch (args[0].toLowerCase()) {
|
switch (args[0].toLowerCase()) {
|
||||||
case "info":
|
case "info":
|
||||||
|
// Fire event so add-ons can run commands, etc.
|
||||||
|
TeamEvent event = new TeamEvent(getIslands().getIsland(targetPlayer))
|
||||||
|
.admin(true)
|
||||||
|
.reason(TeamReason.INFO)
|
||||||
|
.involvedPlayer(targetPlayer);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) return;
|
||||||
|
// Display info
|
||||||
Util.sendMessage(sender, getLocale(sender).get("team.listingMembers"));
|
Util.sendMessage(sender, getLocale(sender).get("team.listingMembers"));
|
||||||
// Display members in the list
|
// Display members in the list
|
||||||
for (UUID m : getIslands().getMembers(targetPlayer)) {
|
for (UUID m : getIslands().getMembers(targetPlayer)) {
|
||||||
@ -116,6 +125,14 @@ public class AdminCommand extends AbstractCommand {
|
|||||||
Util.sendMessage(sender, ChatColor.RED + "'" + args[1] + "' - " + getLocale(playerUUID).get("admin.team.error.already-a-leader"));
|
Util.sendMessage(sender, ChatColor.RED + "'" + args[1] + "' - " + getLocale(playerUUID).get("admin.team.error.already-a-leader"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Fire event so add-ons can run commands, etc.
|
||||||
|
TeamEvent event2 = new TeamEvent(getIslands().getIsland(targetPlayer))
|
||||||
|
.admin(true)
|
||||||
|
.reason(TeamReason.MAKELEADER)
|
||||||
|
.involvedPlayer(targetPlayer);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event2);
|
||||||
|
if (event2.isCancelled()) return;
|
||||||
|
// Display info
|
||||||
getIslands().getIsland(targetPlayer).setOwner(targetPlayer);
|
getIslands().getIsland(targetPlayer).setOwner(targetPlayer);
|
||||||
Util.sendMessage(sender, ChatColor.GREEN
|
Util.sendMessage(sender, ChatColor.GREEN
|
||||||
+ getLocale(sender).get("makeleader.nameIsNowTheOwner").replace("[name]", getPlayers().getName(targetPlayer)));
|
+ getLocale(sender).get("makeleader.nameIsNowTheOwner").replace("[name]", getPlayers().getName(targetPlayer)));
|
||||||
@ -183,6 +200,14 @@ public class AdminCommand extends AbstractCommand {
|
|||||||
Util.sendMessage(sender, ChatColor.RED + "'" + args[1] + "' - " + getLocale(playerUUID).get("admin.team.error.player-is-a-team-leader"));
|
Util.sendMessage(sender, ChatColor.RED + "'" + args[1] + "' - " + getLocale(playerUUID).get("admin.team.error.player-is-a-team-leader"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Fire event so add-ons can run commands, etc.
|
||||||
|
TeamEvent event3 = new TeamEvent(getIslands().getIsland(targetPlayer))
|
||||||
|
.admin(true)
|
||||||
|
.reason(TeamReason.KICK)
|
||||||
|
.involvedPlayer(targetPlayer);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event3);
|
||||||
|
if (event3.isCancelled()) return;
|
||||||
|
// Display info
|
||||||
// Remove from team
|
// Remove from team
|
||||||
getIslands().setLeaveTeam(targetPlayer);
|
getIslands().setLeaveTeam(targetPlayer);
|
||||||
// Tell the player they kicked okay
|
// Tell the player they kicked okay
|
||||||
@ -197,11 +222,18 @@ public class AdminCommand extends AbstractCommand {
|
|||||||
getIslands().save(true);
|
getIslands().save(true);
|
||||||
return;
|
return;
|
||||||
case "delete":
|
case "delete":
|
||||||
|
// Fire event so add-ons can run commands, etc.
|
||||||
|
TeamEvent event4 = new TeamEvent(getIslands().getIsland(targetPlayer))
|
||||||
|
.admin(true)
|
||||||
|
.reason(TeamReason.DELETE)
|
||||||
|
.involvedPlayer(targetPlayer);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event4);
|
||||||
|
if (event4.isCancelled()) return;
|
||||||
UUID teamLeader = getIslands().getTeamLeader(targetPlayer);
|
UUID teamLeader = getIslands().getTeamLeader(targetPlayer);
|
||||||
for (UUID m : getIslands().getMembers(targetPlayer)) {
|
for (UUID m : getIslands().getMembers(targetPlayer)) {
|
||||||
if (DEBUG)
|
if (DEBUG)
|
||||||
plugin.getLogger().info("DEBUG: member " + m);
|
plugin.getLogger().info("DEBUG: member " + m);
|
||||||
//Only the team leader gets to stay
|
// Only the team leader gets to stay
|
||||||
if (!teamLeader.equals(m)) {
|
if (!teamLeader.equals(m)) {
|
||||||
getIslands().setLeaveTeam(targetPlayer);
|
getIslands().setLeaveTeam(targetPlayer);
|
||||||
} else {
|
} else {
|
||||||
@ -250,6 +282,13 @@ public class AdminCommand extends AbstractCommand {
|
|||||||
}
|
}
|
||||||
// Get the team's island
|
// Get the team's island
|
||||||
Island teamIsland = getIslands().getIsland(targetPlayer2);
|
Island teamIsland = getIslands().getIsland(targetPlayer2);
|
||||||
|
// Fire event so add-ons can run commands, etc.
|
||||||
|
TeamEvent event = new TeamEvent(teamIsland)
|
||||||
|
.admin(true)
|
||||||
|
.reason(TeamReason.JOIN)
|
||||||
|
.involvedPlayer(targetPlayer);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) return;
|
||||||
// Move player to team's island
|
// Move player to team's island
|
||||||
Location newHome = getIslands().getSafeHomeLocation(targetPlayer2, 1);
|
Location newHome = getIslands().getSafeHomeLocation(targetPlayer2, 1);
|
||||||
if (newHome != null) {
|
if (newHome != null) {
|
||||||
|
@ -21,6 +21,8 @@ import com.google.common.collect.HashBiMap;
|
|||||||
|
|
||||||
import us.tastybento.bskyblock.BSkyBlock;
|
import us.tastybento.bskyblock.BSkyBlock;
|
||||||
import us.tastybento.bskyblock.api.commands.AbstractCommand;
|
import us.tastybento.bskyblock.api.commands.AbstractCommand;
|
||||||
|
import us.tastybento.bskyblock.api.events.island.TeamEvent;
|
||||||
|
import us.tastybento.bskyblock.api.events.island.TeamEvent.TeamReason;
|
||||||
import us.tastybento.bskyblock.api.events.team.PlayerAcceptInviteEvent;
|
import us.tastybento.bskyblock.api.events.team.PlayerAcceptInviteEvent;
|
||||||
import us.tastybento.bskyblock.config.Settings;
|
import us.tastybento.bskyblock.config.Settings;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
@ -469,7 +471,11 @@ public class IslandCommand extends AbstractCommand {
|
|||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sender, String[] args) {
|
public void execute(CommandSender sender, String[] args) {
|
||||||
if (DEBUG)
|
if (DEBUG)
|
||||||
plugin.getLogger().info("DEBUG: executing team command for " + teamLeaderUUID);
|
plugin.getLogger().info("DEBUG: executing team command for " + playerUUID);
|
||||||
|
// Fire event so add-ons can run commands, etc.
|
||||||
|
TeamEvent event = new TeamEvent(getIslands().getIsland(playerUUID)).reason(TeamReason.INFO).involvedPlayer(playerUUID);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) return;
|
||||||
if (teamLeaderUUID.equals(playerUUID)) {
|
if (teamLeaderUUID.equals(playerUUID)) {
|
||||||
int maxSize = Settings.maxTeamSize;
|
int maxSize = Settings.maxTeamSize;
|
||||||
for (PermissionAttachmentInfo perms : player.getEffectivePermissions()) {
|
for (PermissionAttachmentInfo perms : player.getEffectivePermissions()) {
|
||||||
@ -616,6 +622,10 @@ public class IslandCommand extends AbstractCommand {
|
|||||||
inviteList.inverse().remove(playerUUID);
|
inviteList.inverse().remove(playerUUID);
|
||||||
Util.sendMessage(player, ChatColor.RED + getLocale(sender).get("invite.removingInvite"));
|
Util.sendMessage(player, ChatColor.RED + getLocale(sender).get("invite.removingInvite"));
|
||||||
}
|
}
|
||||||
|
// Fire event so add-ons can run commands, etc.
|
||||||
|
TeamEvent event = new TeamEvent(getIslands().getIsland(playerUUID)).reason(TeamReason.INVITE).involvedPlayer(invitedPlayerUUID);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) return;
|
||||||
// Put the invited player (key) onto the list with inviter (value)
|
// Put the invited player (key) onto the list with inviter (value)
|
||||||
// If someone else has invited a player, then this invite will overwrite the previous invite!
|
// If someone else has invited a player, then this invite will overwrite the previous invite!
|
||||||
inviteList.put(invitedPlayerUUID, playerUUID);
|
inviteList.put(invitedPlayerUUID, playerUUID);
|
||||||
@ -662,7 +672,10 @@ public class IslandCommand extends AbstractCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sender, String[] args) {
|
public void execute(CommandSender sender, String[] args) {
|
||||||
// Invite label with no name, i.e., /island invite - tells the player who has invited them so far
|
// Fire event so add-ons can run commands, etc.
|
||||||
|
TeamEvent event = new TeamEvent(getIslands().getIsland(playerUUID)).reason(TeamReason.UNINVITE).involvedPlayer(playerUUID);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) return;
|
||||||
if (inviteList.inverse().containsKey(playerUUID)) {
|
if (inviteList.inverse().containsKey(playerUUID)) {
|
||||||
Player invitee = plugin.getServer().getPlayer(inviteList.inverse().get(playerUUID));
|
Player invitee = plugin.getServer().getPlayer(inviteList.inverse().get(playerUUID));
|
||||||
if (invitee != null) {
|
if (invitee != null) {
|
||||||
@ -700,60 +713,56 @@ public class IslandCommand extends AbstractCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sender, String[] args) {
|
public void execute(CommandSender sender, String[] args) {
|
||||||
if (Util.inWorld(player)) {
|
if (getPlayers().inTeam(playerUUID)) {
|
||||||
if (getPlayers().inTeam(playerUUID)) {
|
// Team leaders cannot leave
|
||||||
// Team leaders cannot leave
|
if (teamLeaderUUID != null && teamLeaderUUID.equals(playerUUID)) {
|
||||||
if (teamLeaderUUID != null && teamLeaderUUID.equals(playerUUID)) {
|
Util.sendMessage(player, ChatColor.RED + getLocale(sender).get("leave.errorYouAreTheLeader"));
|
||||||
Util.sendMessage(player, ChatColor.RED + getLocale(sender).get("leave.errorYouAreTheLeader"));
|
return;
|
||||||
return;
|
}
|
||||||
}
|
// Fire event so add-ons can run commands, etc.
|
||||||
// Check for confirmation
|
TeamEvent event = new TeamEvent(getIslands().getIsland(playerUUID)).reason(TeamReason.LEAVE).involvedPlayer(playerUUID);
|
||||||
if (Settings.leaveConfirmation && !leavingPlayers.contains(playerUUID)) {
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
leavingPlayers.add(playerUUID);
|
if (event.isCancelled()) return;
|
||||||
Util.sendMessage(player, ChatColor.GOLD + getLocale(sender).get("leave.warning"));
|
// Check for confirmation
|
||||||
|
if (Settings.leaveConfirmation && !leavingPlayers.contains(playerUUID)) {
|
||||||
|
leavingPlayers.add(playerUUID);
|
||||||
|
Util.sendMessage(player, ChatColor.GOLD + getLocale(sender).get("leave.warning"));
|
||||||
|
|
||||||
plugin.getServer().getScheduler().runTaskLater(plugin, () -> {
|
plugin.getServer().getScheduler().runTaskLater(plugin, () -> {
|
||||||
// If the player is still on the list, remove them and cancel the leave
|
// If the player is still on the list, remove them and cancel the leave
|
||||||
if (leavingPlayers.contains(playerUUID)) {
|
if (leavingPlayers.contains(playerUUID)) {
|
||||||
leavingPlayers.remove(playerUUID);
|
leavingPlayers.remove(playerUUID);
|
||||||
Util.sendMessage(player, ChatColor.RED + getLocale(sender).get("leave.canceled"));
|
Util.sendMessage(player, ChatColor.RED + getLocale(sender).get("leave.canceled"));
|
||||||
}
|
}
|
||||||
}, Settings.leaveConfirmWait * 20L);
|
}, Settings.leaveConfirmWait * 20L);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Remove from confirmation list
|
// Remove from confirmation list
|
||||||
leavingPlayers.remove(playerUUID);
|
leavingPlayers.remove(playerUUID);
|
||||||
// Remove from team
|
// Remove from team
|
||||||
if (!getIslands().setLeaveTeam(playerUUID)) {
|
getIslands().setLeaveTeam(playerUUID);
|
||||||
//Util.sendMessage(player, getLocale(playerUUID).get("leaveerrorYouCannotLeaveIsland);
|
// Log the location that this player left so they
|
||||||
// If this is canceled, fail silently
|
// cannot join again before the cool down ends
|
||||||
return;
|
getPlayers().startInviteCoolDownTimer(playerUUID, getIslands().getIslandLocation(teamLeaderUUID));
|
||||||
}
|
|
||||||
// Log the location that this player left so they
|
|
||||||
// cannot join again before the cool down ends
|
|
||||||
getPlayers().startInviteCoolDownTimer(playerUUID, getIslands().getIslandLocation(teamLeaderUUID));
|
|
||||||
|
|
||||||
Util.sendMessage(player, ChatColor.GREEN + getLocale(sender).get("leave.youHaveLeftTheIsland"));
|
Util.sendMessage(player, ChatColor.GREEN + getLocale(sender).get("leave.youHaveLeftTheIsland"));
|
||||||
// Tell the leader if they are online
|
// Tell the leader if they are online
|
||||||
if (plugin.getServer().getPlayer(teamLeaderUUID) != null) {
|
if (plugin.getServer().getPlayer(teamLeaderUUID) != null) {
|
||||||
Player leader = plugin.getServer().getPlayer(teamLeaderUUID);
|
Player leader = plugin.getServer().getPlayer(teamLeaderUUID);
|
||||||
Util.sendMessage(leader, ChatColor.RED + getLocale(teamLeaderUUID).get("leave.nameHasLeftYourIsland").replace("[name]", player.getName()));
|
Util.sendMessage(leader, ChatColor.RED + getLocale(teamLeaderUUID).get("leave.nameHasLeftYourIsland").replace("[name]", player.getName()));
|
||||||
} else {
|
|
||||||
// TODO: Leave them a message
|
|
||||||
//plugin.getMessages().setMessage(teamLeader, plugin.myLocale(teamLeader).leavenameHasLeftYourIsland.replace("[name]", player.getName()));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear all player variables and save
|
|
||||||
getPlayers().resetPlayer(player);
|
|
||||||
if (!player.performCommand(Settings.SPAWNCOMMAND)) {
|
|
||||||
player.teleport(player.getWorld().getSpawnLocation());
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
Util.sendMessage(player, ChatColor.RED + getLocale(sender).get("leave.errorYouCannotLeaveIsland"));
|
// TODO: Leave them a message
|
||||||
|
//plugin.getMessages().setMessage(teamLeader, plugin.myLocale(teamLeader).leavenameHasLeftYourIsland.replace("[name]", player.getName()));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear all player variables and save
|
||||||
|
getPlayers().resetPlayer(player);
|
||||||
|
if (!player.performCommand(Settings.SPAWNCOMMAND)) {
|
||||||
|
player.teleport(player.getWorld().getSpawnLocation());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Util.sendMessage(player, ChatColor.RED + getLocale(sender).get("leave.errorYouMustBeInWorld"));
|
Util.sendMessage(player, ChatColor.RED + getLocale(sender).get("leave.errorYouCannotLeaveIsland"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -797,6 +806,10 @@ public class IslandCommand extends AbstractCommand {
|
|||||||
Util.sendMessage(player, ChatColor.RED + getLocale(sender).get("kick.error.youCannotKickYourself"));
|
Util.sendMessage(player, ChatColor.RED + getLocale(sender).get("kick.error.youCannotKickYourself"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Fire event so add-ons can run commands, etc.
|
||||||
|
TeamEvent event = new TeamEvent(getIslands().getIsland(playerUUID)).reason(TeamReason.KICK).involvedPlayer(targetPlayerUUID);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) return;
|
||||||
// Check for confirmation
|
// Check for confirmation
|
||||||
if (Settings.confirmKick && !kickingPlayers.contains(playerUUID)) {
|
if (Settings.confirmKick && !kickingPlayers.contains(playerUUID)) {
|
||||||
kickingPlayers.add(playerUUID);
|
kickingPlayers.add(playerUUID);
|
||||||
@ -815,10 +828,7 @@ public class IslandCommand extends AbstractCommand {
|
|||||||
// Remove from confirmation list
|
// Remove from confirmation list
|
||||||
kickingPlayers.remove(playerUUID);
|
kickingPlayers.remove(playerUUID);
|
||||||
// Remove from team
|
// Remove from team
|
||||||
if (!getIslands().setLeaveTeam(targetPlayerUUID)) {
|
getIslands().setLeaveTeam(targetPlayerUUID);
|
||||||
// If this is canceled, fail silently
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Log the location that this player left so they
|
// Log the location that this player left so they
|
||||||
// cannot join again before the cool down ends
|
// cannot join again before the cool down ends
|
||||||
getPlayers().startInviteCoolDownTimer(targetPlayerUUID, getIslands().getIslandLocation(teamLeaderUUID));
|
getPlayers().startInviteCoolDownTimer(targetPlayerUUID, getIslands().getIslandLocation(teamLeaderUUID));
|
||||||
@ -883,6 +893,10 @@ public class IslandCommand extends AbstractCommand {
|
|||||||
}
|
}
|
||||||
if (DEBUG)
|
if (DEBUG)
|
||||||
plugin.getLogger().info("DEBUG: Invite is valid");
|
plugin.getLogger().info("DEBUG: Invite is valid");
|
||||||
|
// Fire event so add-ons can run commands, etc.
|
||||||
|
TeamEvent event = new TeamEvent(getIslands().getIsland(prospectiveTeamLeaderUUID)).reason(TeamReason.JOIN).involvedPlayer(playerUUID);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) return;
|
||||||
// Remove the invite
|
// Remove the invite
|
||||||
if (DEBUG)
|
if (DEBUG)
|
||||||
plugin.getLogger().info("DEBUG: Removing player from invite list");
|
plugin.getLogger().info("DEBUG: Removing player from invite list");
|
||||||
@ -954,16 +968,22 @@ public class IslandCommand extends AbstractCommand {
|
|||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sender, String[] args) {
|
public void execute(CommandSender sender, String[] args) {
|
||||||
// Reject /island reject
|
// Reject /island reject
|
||||||
if (inviteList.containsKey(player.getUniqueId())) {
|
if (inviteList.containsKey(playerUUID)) {
|
||||||
|
// Fire event so add-ons can run commands, etc.
|
||||||
|
TeamEvent event = new TeamEvent(getIslands().getIsland(inviteList.get(playerUUID))).reason(TeamReason.REJECT).involvedPlayer(playerUUID);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) return;
|
||||||
|
|
||||||
|
// Remove this player from the global invite list
|
||||||
|
inviteList.remove(player.getUniqueId());
|
||||||
Util.sendMessage(player, ChatColor.GREEN + getLocale(playerUUID).get("reject.youHaveRejectedInvitation"));
|
Util.sendMessage(player, ChatColor.GREEN + getLocale(playerUUID).get("reject.youHaveRejectedInvitation"));
|
||||||
// If the player is online still then tell them directly
|
// If the leader is online tell them directly
|
||||||
// about the rejection
|
// about the rejection
|
||||||
if (Bukkit.getPlayer(inviteList.get(player.getUniqueId())) != null) {
|
if (Bukkit.getPlayer(inviteList.get(playerUUID)) != null) {
|
||||||
Util.sendMessage(Bukkit.getPlayer(inviteList.get(playerUUID)),
|
Util.sendMessage(Bukkit.getPlayer(inviteList.get(playerUUID)),
|
||||||
ChatColor.RED + getLocale(playerUUID).get("reject.nameHasRejectedInvite").replace("[name]", player.getName()));
|
ChatColor.RED + getLocale(playerUUID).get("reject.nameHasRejectedInvite").replace("[name]", player.getName()));
|
||||||
}
|
}
|
||||||
// Remove this player from the global invite list
|
|
||||||
inviteList.remove(player.getUniqueId());
|
|
||||||
} else {
|
} else {
|
||||||
// Someone typed /island reject and had not been invited
|
// Someone typed /island reject and had not been invited
|
||||||
Util.sendMessage(player, ChatColor.RED + getLocale(playerUUID).get("reject.youHaveNotBeenInvited"));
|
Util.sendMessage(player, ChatColor.RED + getLocale(playerUUID).get("reject.youHaveNotBeenInvited"));
|
||||||
@ -996,8 +1016,8 @@ public class IslandCommand extends AbstractCommand {
|
|||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sender, String[] args) {
|
public void execute(CommandSender sender, String[] args) {
|
||||||
plugin.getLogger().info("DEBUG: arg[0] = " + args[0]);
|
plugin.getLogger().info("DEBUG: arg[0] = " + args[0]);
|
||||||
UUID targetPlayer = getPlayers().getUUID(args[0]);
|
UUID targetUUID = getPlayers().getUUID(args[0]);
|
||||||
if (targetPlayer == null) {
|
if (targetUUID == null) {
|
||||||
Util.sendMessage(player, ChatColor.RED + getLocale(playerUUID).get("general.errors.unknown-player"));
|
Util.sendMessage(player, ChatColor.RED + getLocale(playerUUID).get("general.errors.unknown-player"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1009,33 +1029,38 @@ public class IslandCommand extends AbstractCommand {
|
|||||||
Util.sendMessage(player, ChatColor.RED + getLocale(playerUUID).get("makeleader.errorNotYourIsland"));
|
Util.sendMessage(player, ChatColor.RED + getLocale(playerUUID).get("makeleader.errorNotYourIsland"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (targetPlayer.equals(playerUUID)) {
|
if (targetUUID.equals(playerUUID)) {
|
||||||
Util.sendMessage(player, ChatColor.RED + getLocale(playerUUID).get("makeleader.errorGeneralError"));
|
Util.sendMessage(player, ChatColor.RED + getLocale(playerUUID).get("makeleader.errorGeneralError"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!teamMembers.contains(targetPlayer)) {
|
if (!teamMembers.contains(targetUUID)) {
|
||||||
Util.sendMessage(player, ChatColor.RED + getLocale(playerUUID).get("makeleader.errorThatPlayerIsNotInTeam"));
|
Util.sendMessage(player, ChatColor.RED + getLocale(playerUUID).get("makeleader.errorThatPlayerIsNotInTeam"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// targetPlayer is the new leader
|
// Fire event so add-ons can run commands, etc.
|
||||||
getIslands().getIsland(playerUUID).setOwner(targetPlayer);
|
TeamEvent event = new TeamEvent(getIslands().getIsland(playerUUID)).reason(TeamReason.MAKELEADER).involvedPlayer(targetUUID);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) return;
|
||||||
|
|
||||||
|
// target is the new leader
|
||||||
|
getIslands().getIsland(playerUUID).setOwner(targetUUID);
|
||||||
Util.sendMessage(player, ChatColor.GREEN
|
Util.sendMessage(player, ChatColor.GREEN
|
||||||
+ getLocale(playerUUID).get("makeleader.nameIsNowTheOwner").replace("[name]", getPlayers().getName(targetPlayer)));
|
+ getLocale(playerUUID).get("makeleader.nameIsNowTheOwner").replace("[name]", getPlayers().getName(targetUUID)));
|
||||||
|
|
||||||
// Check if online
|
// Check if online
|
||||||
Player target = plugin.getServer().getPlayer(targetPlayer);
|
Player target = plugin.getServer().getPlayer(targetUUID);
|
||||||
if (target == null) {
|
if (target == null) {
|
||||||
// TODO offline messaging
|
// TODO offline messaging
|
||||||
//plugin.getMessages().setMessage(targetPlayer, getLocale(playerUUID).get("makeleader.youAreNowTheOwner"));
|
//plugin.getMessages().setMessage(targetPlayer, getLocale(playerUUID).get("makeleader.youAreNowTheOwner"));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Online
|
// Online
|
||||||
Util.sendMessage(plugin.getServer().getPlayer(targetPlayer), ChatColor.GREEN + getLocale(targetPlayer).get("makeleader.youAreNowTheOwner"));
|
Util.sendMessage(plugin.getServer().getPlayer(targetUUID), ChatColor.GREEN + getLocale(targetUUID).get("makeleader.youAreNowTheOwner"));
|
||||||
// Check if new leader has a lower range permission than the island size
|
// Check if new leader has a lower range permission than the island size
|
||||||
boolean hasARangePerm = false;
|
boolean hasARangePerm = false;
|
||||||
int range = Settings.islandProtectionRange;
|
int range = Settings.islandProtectionRange;
|
||||||
// Check for zero protection range
|
// Check for zero protection range
|
||||||
Island islandByOwner = getIslands().getIsland(targetPlayer);
|
Island islandByOwner = getIslands().getIsland(targetUUID);
|
||||||
if (islandByOwner.getProtectionRange() == 0) {
|
if (islandByOwner.getProtectionRange() == 0) {
|
||||||
plugin.getLogger().warning("Player " + player.getName() + "'s island had a protection range of 0. Setting to default " + range);
|
plugin.getLogger().warning("Player " + player.getName() + "'s island had a protection range of 0. Setting to default " + range);
|
||||||
islandByOwner.setProtectionRange(range);
|
islandByOwner.setProtectionRange(range);
|
||||||
@ -1069,8 +1094,8 @@ public class IslandCommand extends AbstractCommand {
|
|||||||
|
|
||||||
// Range can go up or down
|
// Range can go up or down
|
||||||
if (range != islandByOwner.getProtectionRange()) {
|
if (range != islandByOwner.getProtectionRange()) {
|
||||||
Util.sendMessage(player, getLocale(targetPlayer).get("admin.SetRangeUpdated").replace("[number]", String.valueOf(range)));
|
Util.sendMessage(player, getLocale(targetUUID).get("admin.SetRangeUpdated").replace("[number]", String.valueOf(range)));
|
||||||
Util.sendMessage(target, getLocale(targetPlayer).get("admin.SetRangeUpdated").replace("[number]", String.valueOf(range)));
|
Util.sendMessage(target, getLocale(targetUUID).get("admin.SetRangeUpdated").replace("[number]", String.valueOf(range)));
|
||||||
plugin.getLogger().info(
|
plugin.getLogger().info(
|
||||||
"Makeleader: Island protection range changed from " + islandByOwner.getProtectionRange() + " to "
|
"Makeleader: Island protection range changed from " + islandByOwner.getProtectionRange() + " to "
|
||||||
+ range + " for " + player.getName() + " due to permission.");
|
+ range + " for " + player.getName() + " due to permission.");
|
||||||
|
@ -29,7 +29,6 @@ import com.google.common.collect.BiMap;
|
|||||||
import com.google.common.collect.HashBiMap;
|
import com.google.common.collect.HashBiMap;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.BSkyBlock;
|
import us.tastybento.bskyblock.BSkyBlock;
|
||||||
import us.tastybento.bskyblock.api.events.island.IslandLeaveEvent;
|
|
||||||
import us.tastybento.bskyblock.config.Settings;
|
import us.tastybento.bskyblock.config.Settings;
|
||||||
import us.tastybento.bskyblock.database.BSBDatabase;
|
import us.tastybento.bskyblock.database.BSBDatabase;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
@ -345,32 +344,12 @@ public class IslandsManager {
|
|||||||
/**
|
/**
|
||||||
* Called when a player leaves a team
|
* Called when a player leaves a team
|
||||||
* @param playerUUID
|
* @param playerUUID
|
||||||
* @return true if successful, false if not
|
|
||||||
*/
|
*/
|
||||||
public boolean setLeaveTeam(UUID playerUUID) {
|
public void setLeaveTeam(UUID playerUUID) {
|
||||||
if (DEBUG)
|
if (DEBUG)
|
||||||
plugin.getLogger().info("DEBUG: leaving team");
|
plugin.getLogger().info("DEBUG: leaving team");
|
||||||
// Try to remove player from old island
|
plugin.getPlayers().clearPlayerHomes(playerUUID);
|
||||||
// TODO: Fire an event, if not cancelled, zero the player data
|
removePlayer(playerUUID);
|
||||||
Island island = islandsByUUID.get(playerUUID);
|
|
||||||
if (island != null) {
|
|
||||||
if (DEBUG)
|
|
||||||
plugin.getLogger().info("DEBUG: island found");
|
|
||||||
IslandLeaveEvent leaveEvent = new IslandLeaveEvent(island, playerUUID);
|
|
||||||
|
|
||||||
plugin.getServer().getPluginManager().callEvent(leaveEvent);
|
|
||||||
if (leaveEvent.isCancelled()) {
|
|
||||||
if (DEBUG)
|
|
||||||
plugin.getLogger().info("DEBUG: leave event was canceled");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (DEBUG)
|
|
||||||
plugin.getLogger().info("DEBUG: clearing player data");
|
|
||||||
plugin.getPlayers().clearPlayerHomes(playerUUID);
|
|
||||||
removePlayer(playerUUID);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1362,6 +1341,6 @@ public class IslandsManager {
|
|||||||
new DeleteIslandBlocks(plugin, island);
|
new DeleteIslandBlocks(plugin, island);
|
||||||
}
|
}
|
||||||
//getServer().getPluginManager().callEvent(new IslandDeleteEvent(player, island.getCenter()));
|
//getServer().getPluginManager().callEvent(new IslandDeleteEvent(player, island.getCenter()));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ package us.tastybento.bskyblock.listeners;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
@ -17,7 +17,6 @@ import org.bukkit.event.entity.EntityChangeBlockEvent;
|
|||||||
import org.bukkit.event.entity.EntityDeathEvent;
|
import org.bukkit.event.entity.EntityDeathEvent;
|
||||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||||
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
|
||||||
|
|
||||||
import us.tastybento.bskyblock.BSkyBlock;
|
import us.tastybento.bskyblock.BSkyBlock;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
|
@ -8,7 +8,6 @@ import java.util.List;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
@ -45,7 +44,6 @@ import org.bukkit.event.block.BlockMultiPlaceEvent;
|
|||||||
import org.bukkit.event.block.BlockPistonExtendEvent;
|
import org.bukkit.event.block.BlockPistonExtendEvent;
|
||||||
import org.bukkit.event.block.BlockPistonRetractEvent;
|
import org.bukkit.event.block.BlockPistonRetractEvent;
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
import org.bukkit.event.block.BlockRedstoneEvent;
|
|
||||||
import org.bukkit.event.block.BlockSpreadEvent;
|
import org.bukkit.event.block.BlockSpreadEvent;
|
||||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||||
@ -73,7 +71,6 @@ import org.bukkit.event.world.StructureGrowEvent;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.material.MaterialData;
|
import org.bukkit.material.MaterialData;
|
||||||
import org.bukkit.potion.Potion;
|
import org.bukkit.potion.Potion;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
|
||||||
import org.bukkit.util.BlockIterator;
|
import org.bukkit.util.BlockIterator;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package us.tastybento.bskyblock.listeners.protection;
|
package us.tastybento.bskyblock.listeners.protection;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
@ -5,7 +5,6 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package us.tastybento.bskyblock.listeners.protection;
|
package us.tastybento.bskyblock.listeners.protection;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
@ -4,7 +4,6 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@ package us.tastybento.bskyblock.util;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.ChunkSnapshot;
|
import org.bukkit.ChunkSnapshot;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
Loading…
Reference in New Issue
Block a user