allPlayers = new ArrayList<>();
for (ArenaPlayer queuedPlayer : queue) {
- if (allPlayers.size() >= maxPlayers) break;
+ if (allPlayers.size() >= maxPlayers) {
+ break;
+ }
allPlayers.add(queuedPlayer);
}
return allPlayers;
@@ -981,20 +999,34 @@ public void describe(CommandSender sender) {
}
int minPlayers = getMinPlayers();
int maxPlayers = getMaxPlayers();
- sender.sendMessage(ChatColor.AQUA + "Min / Max Players: " + ChatColor.DARK_AQUA + minPlayers +
- ChatColor.WHITE + " / " + ChatColor.DARK_AQUA + maxPlayers);
- sender.sendMessage(ChatColor.AQUA + "Required Kills: " + ChatColor.DARK_AQUA + requiredKills);
- sender.sendMessage(ChatColor.AQUA + "Countdown: " + ChatColor.DARK_AQUA + countdown +
- ChatColor.WHITE + " / " + ChatColor.DARK_AQUA + countdownMax);
+ sender.sendMessage(
+ ChatColor.AQUA + "Min / Max Players: "
+ + ChatColor.DARK_AQUA + minPlayers
+ + ChatColor.WHITE + " / " + ChatColor.DARK_AQUA
+ + maxPlayers);
+ sender.sendMessage(
+ ChatColor.AQUA + "Required Kills: "
+ + ChatColor.DARK_AQUA + requiredKills);
+ sender.sendMessage(
+ ChatColor.AQUA + "Countdown: " + ChatColor.DARK_AQUA + countdown
+ + ChatColor.WHITE + " / " + ChatColor.DARK_AQUA
+ + countdownMax);
if (duration > 0) {
int minutes = (int)Math.ceil((double)duration / 60 / 1000);
int sd = (int)Math.ceil((double)suddenDeath / 1000);
- sender.sendMessage(ChatColor.AQUA + "Duration: " + ChatColor.DARK_AQUA + minutes +
- ChatColor.WHITE + " minutes");
+ sender.sendMessage(
+ ChatColor.AQUA + "Duration: "
+ + ChatColor.DARK_AQUA + minutes
+ + ChatColor.WHITE + " minutes");
if (suddenDeathEffect != null && suddenDeath > 0) {
- sender.sendMessage(ChatColor.DARK_RED + " Sudden death " + ChatColor.RED + sd + ChatColor.DARK_RED +
- " seconds before end with " + ChatColor.RED + suddenDeathEffect.getType().getName().toLowerCase()
+ sender.sendMessage(
+ ChatColor.DARK_RED + " Sudden death "
+ + ChatColor.RED + sd
+ + ChatColor.DARK_RED
+ + " seconds before end with " + ChatColor.RED
+ + suddenDeathEffect.getType().getName()
+ .toLowerCase()
+ "@" + suddenDeathEffect.getAmplifier());
}
}
@@ -1094,12 +1126,17 @@ public void describe(CommandSender sender) {
}
protected String printLocation(Location location) {
- if (location == null) return ChatColor.DARK_GRAY + "(None)";
+ if (location == null) {
+ return ChatColor.DARK_GRAY + "(None)";
+ }
- return "" + ChatColor.GRAY + location.getBlockX() + ChatColor.DARK_GRAY + "," +
- ChatColor.GRAY + location.getBlockY() + ChatColor.DARK_GRAY + "," +
- ChatColor.GRAY + location.getBlockZ() + ChatColor.DARK_GRAY + " : " +
- ChatColor.GRAY + location.getWorld().getName();
+ return "" + ChatColor.GRAY + location.getBlockX()
+ + ChatColor.DARK_GRAY + ","
+ + ChatColor.GRAY + location.getBlockY()
+ + ChatColor.DARK_GRAY + ","
+ + ChatColor.GRAY + location.getBlockZ()
+ + ChatColor.DARK_GRAY + " : "
+ + ChatColor.GRAY + location.getWorld().getName();
}
public int getMinPlayers() {
@@ -1237,11 +1274,21 @@ public void updateLeaderboard() {
}
if (blockState instanceof org.bukkit.block.Sign) {
org.bukkit.block.Sign signBlock = (org.bukkit.block.Sign)blockState;
- String playerName = ChatColor.DARK_PURPLE + player.getDisplayName();
- signBlock.setLine(0, playerName);
- signBlock.setLine(1, ChatColor.LIGHT_PURPLE + "#" + Integer.toString(i + 1) + " " + ChatColor.WHITE + " : " + ChatColor.BLACK + Integer.toString((int)(player.getWinRatio() * 100)) + "% " + String.format("(%.2f)", player.getWinConfidence())) ;
- signBlock.setLine(2, ChatColor.GREEN + "Wins : " + ChatColor.DARK_GREEN + player.getWins());
- signBlock.setLine(3, ChatColor.RED + "Losses : " + ChatColor.DARK_RED +player.getLosses());
+ signBlock.setLine(0, ChatColor.DARK_PURPLE
+ + player.getDisplayName());
+ signBlock.setLine(1, ChatColor.LIGHT_PURPLE + "#"
+ + Integer.toString(i + 1) + " "
+ + ChatColor.WHITE + " : "
+ + ChatColor.BLACK + Integer.toString(
+ (int) (player.getWinRatio() * 100))
+ + "% "
+ + String.format(
+ "(%.2f)",
+ player.getWinConfidence()));
+ signBlock.setLine(2, ChatColor.GREEN + "Wins : "
+ + ChatColor.DARK_GREEN + player.getWins());
+ signBlock.setLine(3, ChatColor.RED + "Losses : "
+ + ChatColor.DARK_RED + player.getLosses());
}
blockState.update();
}
@@ -1281,52 +1328,48 @@ protected Block getLeaderboardBlock() {
/**
* A helper function to go change a given direction to the direction "to the right".
*
- * There's probably some better matrix-y, math-y way to do this.
+ * There's probably some better matrix-y, math-y way to do this.
* It'd be nice if this was in BlockFace.
*
* @param direction The current direction
* @return The direction to the left
*/
- public static BlockFace goLeft(BlockFace direction)
- {
- switch (direction)
- {
- case EAST:
- return BlockFace.NORTH;
- case NORTH:
- return BlockFace.WEST;
- case WEST:
- return BlockFace.SOUTH;
- case SOUTH:
- return BlockFace.EAST;
- default:
- return direction;
+ public static BlockFace goLeft(BlockFace direction) {
+ switch (direction) {
+ case EAST:
+ return BlockFace.NORTH;
+ case NORTH:
+ return BlockFace.WEST;
+ case WEST:
+ return BlockFace.SOUTH;
+ case SOUTH:
+ return BlockFace.EAST;
+ default:
+ return direction;
}
}
/**
* A helper function to go change a given direction to the direction "to the right".
*
- * There's probably some better matrix-y, math-y way to do this.
+ *
There's probably some better matrix-y, math-y way to do this.
* It'd be nice if this was in BlockFace.
*
* @param direction The current direction
* @return The direction to the right
*/
- public static BlockFace goRight(BlockFace direction)
- {
- switch (direction)
- {
- case EAST:
- return BlockFace.SOUTH;
- case SOUTH:
- return BlockFace.WEST;
- case WEST:
- return BlockFace.NORTH;
- case NORTH:
- return BlockFace.EAST;
- default:
- return direction;
+ public static BlockFace goRight(BlockFace direction) {
+ switch (direction) {
+ case EAST:
+ return BlockFace.SOUTH;
+ case SOUTH:
+ return BlockFace.WEST;
+ case WEST:
+ return BlockFace.NORTH;
+ case NORTH:
+ return BlockFace.EAST;
+ default:
+ return direction;
}
}
@@ -1371,7 +1414,7 @@ public void setLeaderboardSize(int size) {
public void setLeaderboardGamesRequired(int required) {
leaderboardGamesRequired = required;
- Collection currentLeaderboard = new ArrayList(leaderboard);
+ Collection currentLeaderboard = new ArrayList<>(leaderboard);
leaderboard.clear();
for (ArenaPlayer player : currentLeaderboard) {
updateLeaderboard(player);
@@ -1399,11 +1442,18 @@ public void describeStats(CommandSender sender, Player player) {
ranking++;
}
if (rank != null) {
- sender.sendMessage(ChatColor.DARK_PURPLE + player.getDisplayName() + ChatColor.DARK_PURPLE +
- " is ranked " + ChatColor.AQUA + "#" + Integer.toString(rank) + ChatColor.DARK_PURPLE + " for " + ChatColor.GOLD + getName());
+ sender.sendMessage(
+ ChatColor.DARK_PURPLE + player.getDisplayName()
+ + ChatColor.DARK_PURPLE
+ + " is ranked " + ChatColor.AQUA + "#"
+ + Integer.toString(rank) + ChatColor.DARK_PURPLE
+ + " for " + ChatColor.GOLD + getName());
} else {
- sender.sendMessage(ChatColor.DARK_PURPLE + player.getDisplayName() + ChatColor.DARK_RED +
- " is not on the leaderboard for " + ChatColor.GOLD + getName());
+ sender.sendMessage(
+ ChatColor.DARK_PURPLE + player.getDisplayName()
+ + ChatColor.DARK_RED
+ + " is not on the leaderboard for "
+ + ChatColor.GOLD + getName());
}
Arena currentArena = controller.getArena(player);
@@ -1419,9 +1469,15 @@ public void describeStats(CommandSender sender, Player player) {
}
public void describeLeaderboard(CommandSender sender) {
- sender.sendMessage(ChatColor.GOLD + getName() + ChatColor.YELLOW +" Leaderboard: ");
- sender.sendMessage(ChatColor.AQUA + Integer.toString(leaderboard.size()) + ChatColor.DARK_AQUA + " players with at least " +
- ChatColor.AQUA + Integer.toString(leaderboardGamesRequired) + ChatColor.DARK_AQUA + " games:");
+ sender.sendMessage(
+ ChatColor.GOLD + getName()
+ + ChatColor.YELLOW + " Leaderboard: ");
+ sender.sendMessage(
+ ChatColor.AQUA + Integer.toString(leaderboard.size())
+ + ChatColor.DARK_AQUA + " players with at least "
+ + ChatColor.AQUA
+ + Integer.toString(leaderboardGamesRequired)
+ + ChatColor.DARK_AQUA + " games:");
int position = 1;
for (ArenaPlayer arenaPlayer : leaderboard) {
int wins = arenaPlayer.getWins();
@@ -1473,7 +1529,7 @@ public int getLeaderboardSize() {
}
public void reset(Player player) {
- remove(player);
+ removePlayer(player);
ArenaPlayer arenaPlayer = new ArenaPlayer(this, player);
removeFromLeaderboard(arenaPlayer);
// Note that we don't rebuild the leaderboard here, just let that happen later.
@@ -1605,13 +1661,14 @@ public void updated(ItemStack itemStack) {
}
protected void createLeaderboardIcon(Integer rank, ArenaPlayer player, ItemUpdatedCallback callback) {
- ItemStack playerItem = controller.getMagic().getSkull(player.getUUID(),
+ controller.getMagic().getSkull(
+ player.getUUID(),
ChatColor.GOLD + player.getDisplayName(),
new ItemUpdatedCallback() {
@Override
public void updated(ItemStack itemStack) {
ItemMeta meta = itemStack.getItemMeta();
- List lore = new ArrayList();
+ List lore = new ArrayList<>();
if (rank != null) {
lore.add(ChatColor.DARK_PURPLE + "Ranked " + ChatColor.AQUA + "#" + Integer.toString(rank) + ChatColor.DARK_PURPLE + " for " + ChatColor.GOLD + getName());
@@ -1752,7 +1809,9 @@ public boolean isKeepLevel() {
public boolean isMobArena() {
ArenaStage currentStage = getCurrentStage();
- if (currentStage == null) return false;
+ if (currentStage == null) {
+ return false;
+ }
return currentStage.hasMobs();
}
diff --git a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaCommandExecutor.java b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaCommandExecutor.java
index 3dc0f0a..ae60f8d 100644
--- a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaCommandExecutor.java
+++ b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaCommandExecutor.java
@@ -1,8 +1,10 @@
package com.elmakers.mine.bukkit.arenas.dueling;
-import com.elmakers.mine.bukkit.api.entity.EntityData;
-import com.elmakers.mine.bukkit.api.spell.SpellTemplate;
-import com.elmakers.mine.bukkit.utility.ConfigurationUtils;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@@ -14,18 +16,17 @@
import org.bukkit.potion.PotionEffectType;
import org.bukkit.util.Vector;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
+import com.elmakers.mine.bukkit.api.entity.EntityData;
+import com.elmakers.mine.bukkit.api.spell.SpellTemplate;
+import com.elmakers.mine.bukkit.utility.ConfigurationUtils;
public class ArenaCommandExecutor implements TabExecutor {
- private final static String[] SUB_COMMANDS = {
+ private static final String[] SUB_COMMANDS = {
"start", "stop", "add", "remove", "configure", "describe", "join", "leave", "load",
"save", "stats", "reset"
};
- private final static String[] ARENA_PROPERTIES = {
+ private static final String[] ARENA_PROPERTIES = {
"max", "min", "win", "lose", "lobby", "spawn", "exit", "center",
"add", "remove", "randomize", "name", "description", "portal_damage",
"portal_enter_damage", "portal_death_message", "leaderboard_games_required",
@@ -36,11 +37,11 @@ public class ArenaCommandExecutor implements TabExecutor {
"spell_start", "spell_end", "money_win", "money_lose", "money_draw"
};
- private final static String[] ARENA_LISTS = {
+ private static final String[] ARENA_LISTS = {
"spawn", "mob_spawn", "mob"
};
- private final static String[] ARENA_RANDOMIZE = {
+ private static final String[] ARENA_RANDOMIZE = {
"spawn"
};
@@ -54,7 +55,7 @@ public ArenaCommandExecutor(ArenaController controller) {
public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
String completeCommand = args.length > 0 ? args[args.length - 1] : "";
- List allOptions = new ArrayList();
+ List allOptions = new ArrayList<>();
if (args.length < 2) {
allOptions.addAll(Arrays.asList(SUB_COMMANDS));
} else if (args.length == 2) {
@@ -73,9 +74,13 @@ public List onTabComplete(CommandSender sender, Command command, String
allOptions.addAll(Arrays.asList(ARENA_RANDOMIZE));
} else if (args.length == 4 && args[0].equalsIgnoreCase("configure") && args[2].equalsIgnoreCase("sudden_death_effect")) {
for (PotionEffectType pt : PotionEffectType.values()) {
- if (pt == null) continue;
+ if (pt == null) {
+ continue;
+ }
String name = pt.getName();
- if (name == null) continue;
+ if (name == null) {
+ continue;
+ }
allOptions.add(name.toLowerCase());
}
} else if (args.length == 4 && args[0].equalsIgnoreCase("configure") && (args[2].equalsIgnoreCase("spell_start") || args[2].equalsIgnoreCase("spell_start"))) {
@@ -90,7 +95,7 @@ public List onTabComplete(CommandSender sender, Command command, String
}
completeCommand = completeCommand.toLowerCase();
- List options = new ArrayList();
+ List options = new ArrayList<>();
for (String option : allOptions) {
String lowercase = option.toLowerCase();
if (lowercase.startsWith(completeCommand)) {
@@ -101,9 +106,10 @@ public List onTabComplete(CommandSender sender, Command command, String
return options;
}
- protected void sendNoPermission(CommandSender sender)
- {
- if (sender != null) sender.sendMessage(ChatColor.RED + "You are not allowed to use that command.");
+ protected void sendNoPermission(CommandSender sender) {
+ if (sender != null) {
+ sender.sendMessage(ChatColor.RED + "You are not allowed to use that command.");
+ }
}
@Override
@@ -175,7 +181,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
String playerName = null;
if (args.length > 1) {
playerName = args[1];
- player = Bukkit.getPlayer(playerName);
+ player = getPlayerForArgument(playerName);
} else if (sender instanceof Player) {
player = (Player) sender;
playerName = player.getName();
@@ -243,7 +249,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
String playerName = null;
if (args.length > 2) {
playerName = args[2];
- player = Bukkit.getPlayer(playerName);
+ player = getPlayerForArgument(playerName);
} else {
if (isAllArenas) {
controller.reset();
@@ -307,7 +313,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
if (subCommand.equalsIgnoreCase("stats")) {
if (args.length > 2) {
String playerName = args[2];
- Player player = Bukkit.getPlayer(playerName);
+ Player player = getPlayerForArgument(playerName);
if (player == null) {
sender.sendMessage(ChatColor.RED + "Unknown player: " + playerName);
return true;
@@ -325,7 +331,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
String playerName = null;
if (args.length > 2) {
playerName = args[2];
- player = Bukkit.getPlayer(playerName);
+ player = getPlayerForArgument(playerName);
} else if (sender instanceof Player) {
player = (Player) sender;
}
@@ -369,10 +375,8 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
return true;
}
- protected void onConfigureArena(CommandSender sender, Arena arena, String propertyName, String[] args)
- {
- if (propertyName.equalsIgnoreCase("randomize"))
- {
+ protected void onConfigureArena(CommandSender sender, Arena arena, String propertyName, String[] args) {
+ if (propertyName.equalsIgnoreCase("randomize")) {
String randomizeType = "spawn";
if (args.length > 0) {
randomizeType = args[0];
@@ -399,8 +403,7 @@ protected void onConfigureArena(CommandSender sender, Arena arena, String proper
return;
}
- if
- (
+ if (
propertyName.equalsIgnoreCase("lobby") || propertyName.equalsIgnoreCase("spawn")
|| propertyName.equalsIgnoreCase("win") || propertyName.equalsIgnoreCase("lose")
|| propertyName.equalsIgnoreCase("center") || propertyName.equalsIgnoreCase("exit")
@@ -415,8 +418,7 @@ protected void onConfigureArena(CommandSender sender, Arena arena, String proper
boolean isAdd = propertyName.equalsIgnoreCase("add");
boolean isRemove = propertyName.equalsIgnoreCase("remove");
- if (isAdd || isRemove)
- {
+ if (isAdd || isRemove) {
String subItem = "spawn";
if (args.length > 0) {
subItem = args[0];
@@ -537,8 +539,7 @@ protected void onConfigureArena(CommandSender sender, Arena arena, String proper
return;
}
- if (propertyName.equalsIgnoreCase("portal_death_message"))
- {
+ if (propertyName.equalsIgnoreCase("portal_death_message")) {
if (propertyValue == null || propertyValue.isEmpty()) {
sender.sendMessage(ChatColor.RED + "Cleared portal death message of " + arena.getName());
} else {
@@ -607,9 +608,9 @@ protected void onConfigureArena(CommandSender sender, Arena arena, String proper
} else {
max = Integer.parseInt(propertyValue);
}
- } catch (Exception ex) {
-
+ } catch (Exception ignored) {
}
+
arena.setBorder(min, max);
sender.sendMessage(ChatColor.AQUA + "Set border for " + arena.getName() + " to " + max + "-" + min);
}
@@ -621,8 +622,7 @@ protected void onConfigureArena(CommandSender sender, Arena arena, String proper
return;
}
- if (propertyName.equalsIgnoreCase("op_check"))
- {
+ if (propertyName.equalsIgnoreCase("op_check")) {
boolean checkOn = propertyValue.equalsIgnoreCase("true");
if (checkOn) {
sender.sendMessage(ChatColor.RED + "Enabled OP check for " + arena.getName());
@@ -633,8 +633,7 @@ protected void onConfigureArena(CommandSender sender, Arena arena, String proper
return;
}
- if (propertyName.equalsIgnoreCase("keep_inventory"))
- {
+ if (propertyName.equalsIgnoreCase("keep_inventory")) {
boolean keepOn = propertyValue.equalsIgnoreCase("true");
if (keepOn) {
sender.sendMessage(ChatColor.GREEN + "Enabled keep inventory for " + arena.getName());
@@ -645,8 +644,7 @@ protected void onConfigureArena(CommandSender sender, Arena arena, String proper
return;
}
- if (propertyName.equalsIgnoreCase("keep_level"))
- {
+ if (propertyName.equalsIgnoreCase("keep_level")) {
boolean keepOn = propertyValue.equalsIgnoreCase("true");
if (keepOn) {
sender.sendMessage(ChatColor.GREEN + "Enabled keep XP levels for " + arena.getName());
@@ -657,16 +655,28 @@ protected void onConfigureArena(CommandSender sender, Arena arena, String proper
return;
}
- if (propertyName.equalsIgnoreCase("min") || propertyName.equalsIgnoreCase("max") ||
- propertyName.equalsIgnoreCase("portal_damage") || propertyName.equalsIgnoreCase("portal_enter_damage") ||
- propertyName.equalsIgnoreCase("leaderboard_games_required") || propertyName.equalsIgnoreCase("leaderboard_size") ||
- propertyName.equalsIgnoreCase("leaderboard_record_size") || propertyName.equalsIgnoreCase("max_teleport_distance") ||
- propertyName.equalsIgnoreCase("xp_win") || propertyName.equalsIgnoreCase("xp_lose") || propertyName.equalsIgnoreCase("xp_draw") ||
- propertyName.equalsIgnoreCase("sp_win") || propertyName.equalsIgnoreCase("sp_lose") || propertyName.equalsIgnoreCase("sp_draw") ||
- propertyName.equalsIgnoreCase("money_win") || propertyName.equalsIgnoreCase("money_lose") || propertyName.equalsIgnoreCase("money_draw") ||
- propertyName.equalsIgnoreCase("countdown") || propertyName.equalsIgnoreCase("countdown_max") || propertyName.equalsIgnoreCase("announcer_range") ||
- propertyName.equalsIgnoreCase("duration") || propertyName.equalsIgnoreCase("sudden_death")
- ) {
+ if (propertyName.equalsIgnoreCase("min")
+ || propertyName.equalsIgnoreCase("max")
+ || propertyName.equalsIgnoreCase("portal_damage")
+ || propertyName.equalsIgnoreCase("portal_enter_damage")
+ || propertyName.equalsIgnoreCase("leaderboard_games_required")
+ || propertyName.equalsIgnoreCase("leaderboard_size")
+ || propertyName.equalsIgnoreCase("leaderboard_record_size")
+ || propertyName.equalsIgnoreCase("max_teleport_distance")
+ || propertyName.equalsIgnoreCase("xp_win")
+ || propertyName.equalsIgnoreCase("xp_lose")
+ || propertyName.equalsIgnoreCase("xp_draw")
+ || propertyName.equalsIgnoreCase("sp_win")
+ || propertyName.equalsIgnoreCase("sp_lose")
+ || propertyName.equalsIgnoreCase("sp_draw")
+ || propertyName.equalsIgnoreCase("money_win")
+ || propertyName.equalsIgnoreCase("money_lose")
+ || propertyName.equalsIgnoreCase("money_draw")
+ || propertyName.equalsIgnoreCase("countdown")
+ || propertyName.equalsIgnoreCase("countdown_max")
+ || propertyName.equalsIgnoreCase("announcer_range")
+ || propertyName.equalsIgnoreCase("duration")
+ || propertyName.equalsIgnoreCase("sudden_death")) {
Integer intValue;
try {
intValue = Integer.parseInt(propertyValue);
@@ -837,4 +847,9 @@ protected void onConfigureArena(CommandSender sender, Arena arena, String proper
sender.sendMessage(ChatColor.RED + "Not a valid property: " + propertyName);
sender.sendMessage(ChatColor.AQUA + "Options: " + StringUtils.join(ARENA_PROPERTIES, ", "));
}
-}
\ No newline at end of file
+
+ @SuppressWarnings("deprecation")
+ private Player getPlayerForArgument(String playerName) {
+ return Bukkit.getPlayer(playerName);
+ }
+}
diff --git a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaController.java b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaController.java
index 1f29c00..317ec05 100644
--- a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaController.java
+++ b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaController.java
@@ -1,6 +1,10 @@
package com.elmakers.mine.bukkit.arenas.dueling;
-import com.elmakers.mine.bukkit.api.magic.MageController;
+import java.io.File;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.configuration.Configuration;
@@ -13,13 +17,10 @@
import org.bukkit.scheduler.BukkitScheduler;
import org.bukkit.scheduler.BukkitTask;
-import java.io.File;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import com.elmakers.mine.bukkit.api.magic.MageController;
public class ArenaController implements Runnable {
- private final Map arenas = new HashMap();
+ private final Map arenas = new HashMap<>();
private final Plugin plugin;
private final MageController magic;
private final Object saveLock = new Object();
@@ -79,6 +80,18 @@ public void run() {
}
}
+ private void save(ConfigurationSection configuration) {
+ Collection oldKeys = configuration.getKeys(false);
+ for (String oldKey : oldKeys) {
+ configuration.set(oldKey, null);
+ }
+ for (Arena arena : arenas.values()) {
+ ConfigurationSection arenaConfig = configuration.createSection(arena.getKey());
+ arena.save(arenaConfig);
+ }
+ }
+
+
public void saveData() {
saveData(true);
}
@@ -119,6 +132,17 @@ public void run() {
}
}
+ private void saveData(ConfigurationSection configuration) {
+ Collection oldKeys = configuration.getKeys(false);
+ for (String oldKey : oldKeys) {
+ configuration.set(oldKey, null);
+ }
+ for (Arena arena : arenas.values()) {
+ ConfigurationSection arenaConfig = configuration.createSection(arena.getKey());
+ arena.saveData(arenaConfig);
+ }
+ }
+
public void load() {
BukkitScheduler scheduler = plugin.getServer().getScheduler();
if (task != null) {
@@ -139,30 +163,10 @@ public void load() {
task = scheduler.runTaskTimer(plugin, this, 1, tickInterval);
}
- private void save(ConfigurationSection configuration) {
- Collection oldKeys = configuration.getKeys(false);
- for (String oldKey : oldKeys) {
- configuration.set(oldKey, null);
- }
- for (Arena arena : arenas.values()) {
- ConfigurationSection arenaConfig = configuration.createSection(arena.getKey());
- arena.save(arenaConfig);
- }
- }
-
- private void saveData(ConfigurationSection configuration) {
- Collection oldKeys = configuration.getKeys(false);
- for (String oldKey : oldKeys) {
- configuration.set(oldKey, null);
- }
- for (Arena arena : arenas.values()) {
- ConfigurationSection arenaConfig = configuration.createSection(arena.getKey());
- arena.saveData(arenaConfig);
- }
- }
-
private void load(ConfigurationSection configuration) {
- if (configuration == null) return;
+ if (configuration == null) {
+ return;
+ }
Collection arenaKeys = configuration.getKeys(false);
@@ -180,7 +184,9 @@ private void load(ConfigurationSection configuration) {
}
private void loadData(ConfigurationSection configuration) {
- if (configuration == null) return;
+ if (configuration == null) {
+ return;
+ }
Collection arenaKeys = configuration.getKeys(false);
@@ -200,6 +206,11 @@ public Arena getArena(String arenaName) {
return arenas.get(arenaName.toLowerCase());
}
+ public Arena getArena(Player player) {
+ ArenaPlayer arenaPlayer = getArenaPlayer(player);
+ return arenaPlayer == null ? null : arenaPlayer.getArena();
+ }
+
public Arena getMobArena(LivingEntity entity) {
if (entity.hasMetadata("arena")) {
for (MetadataValue value : entity.getMetadata("arena")) {
@@ -215,11 +226,6 @@ public Arena getMobArena(LivingEntity entity) {
return null;
}
- public Arena getArena(Player player) {
- ArenaPlayer arenaPlayer = getArenaPlayer(player);
- return arenaPlayer == null ? null : arenaPlayer.getArena();
- }
-
public ArenaPlayer getArenaPlayer(Player player) {
if (player.hasMetadata("arena")) {
for (MetadataValue value : player.getMetadata("arena")) {
@@ -264,7 +270,7 @@ public ArenaPlayer leave(Player player) {
ArenaPlayer arenaPlayer = getArenaPlayer(player);
if (arenaPlayer != null) {
Arena arena = arenaPlayer.getArena();
- arena.remove(player);
+ arena.removePlayer(player);
player.sendMessage("You have left " + arena.getName());
arenaPlayer.teleport(arena.getExit());
arena.check();
diff --git a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaListener.java b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaListener.java
index cd4a469..ab53d31 100644
--- a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaListener.java
+++ b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaListener.java
@@ -35,7 +35,7 @@
public class ArenaListener implements Listener {
private final ArenaController controller;
- private final static String SIGN_KEY = ChatColor.GOLD + "[" + ChatColor.BLUE + "Arena" + ChatColor.GOLD + "]";
+ private static final String SIGN_KEY = ChatColor.GOLD + "[" + ChatColor.BLUE + "Arena" + ChatColor.GOLD + "]";
public ArenaListener(ArenaController controller) {
this.controller = controller;
@@ -59,8 +59,7 @@ public void onSpellPreCast(PreCastEvent event) {
wand.isSuperPowered() || wand.isSuperProtected()
|| wand.getPower() > 1 || wand.getHealthRegeneration() > 0
|| wand.getCooldownReduction() > 1);
- if (op)
- {
+ if (op) {
event.setCancelled(true);
mage.sendMessage("You're too OP!!");
controller.leave(player);
@@ -84,14 +83,16 @@ public void onPlayerRespawn(PlayerRespawnEvent e) {
@EventHandler
public void onEntityDeath(EntityDeathEvent e) {
LivingEntity entity = e.getEntity();
- if (entity instanceof Player) return;
+ if (entity instanceof Player) {
+ return;
+ }
Arena arena = controller.getMobArena(entity);
if (arena != null) {
arena.mobDied(entity);
}
}
- @EventHandler(priority=EventPriority.HIGH)
+ @EventHandler(priority = EventPriority.HIGH)
public void onPlayerDeath(PlayerDeathEvent e) {
Player player = e.getEntity();
Arena arena = controller.getArena(player);
@@ -146,7 +147,7 @@ public void onSignChange(SignChangeEvent e) {
e.getBlock().breakNaturally();
e.getPlayer().sendMessage(ChatColor.RED + "Unknown arena: " + arenaName);
}
- } else{
+ } else {
e.getBlock().breakNaturally();
e.getPlayer().sendMessage(ChatColor.RED + "You must specify an arena!");
}
@@ -168,7 +169,7 @@ public void onSignChange(SignChangeEvent e) {
e.getBlock().breakNaturally();
e.getPlayer().sendMessage(ChatColor.RED + "Unknown arena: " + arenaName);
}
- } else{
+ } else {
e.getBlock().breakNaturally();
e.getPlayer().sendMessage(ChatColor.RED + "You must specify an arena!");
}
diff --git a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaMobSpawner.java b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaMobSpawner.java
index 0ad55be..f3f1607 100644
--- a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaMobSpawner.java
+++ b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaMobSpawner.java
@@ -1,8 +1,9 @@
package com.elmakers.mine.bukkit.arenas.dueling;
+import org.bukkit.configuration.ConfigurationSection;
+
import com.elmakers.mine.bukkit.api.entity.EntityData;
import com.elmakers.mine.bukkit.api.magic.MageController;
-import org.bukkit.configuration.ConfigurationSection;
public class ArenaMobSpawner {
private EntityData entity;
diff --git a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaPlayer.java b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaPlayer.java
index 9194a42..3f87e70 100644
--- a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaPlayer.java
+++ b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaPlayer.java
@@ -1,8 +1,6 @@
package com.elmakers.mine.bukkit.arenas.dueling;
-import com.elmakers.mine.bukkit.api.magic.Mage;
-import com.elmakers.mine.bukkit.api.wand.Wand;
-import com.elmakers.mine.bukkit.api.wand.WandUpgradePath;
+import java.util.UUID;
import org.bukkit.ChatColor;
import org.bukkit.Location;
@@ -11,7 +9,9 @@
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.potion.PotionEffect;
-import java.util.UUID;
+import com.elmakers.mine.bukkit.api.magic.Mage;
+import com.elmakers.mine.bukkit.api.wand.Wand;
+import com.elmakers.mine.bukkit.api.wand.WandUpgradePath;
public class ArenaPlayer implements Comparable {
private Mage mage;
@@ -59,8 +59,7 @@ public void update(Player player) {
path = null;
String baseTemplate = controller.getPathTemplate();
- if (baseTemplate != null)
- {
+ if (baseTemplate != null) {
Wand boundWand = mage.getBoundWand(baseTemplate);
if (boundWand != null) {
path = boundWand.getPath();
@@ -212,14 +211,6 @@ public int getDraws() {
return draws;
}
- public boolean equals(Player player) {
- return (player != null && player.getUniqueId().equals(uuid));
- }
-
- public boolean equals(UUID id) {
- return (id != null && id.equals(uuid));
- }
-
public int getValidMatches() {
return wins + losses;
}
@@ -285,6 +276,14 @@ public int compareTo(ArenaPlayer other) {
return uuid.compareTo(other.getUUID());
}
+ public boolean equals(Player player) {
+ return (player != null && player.getUniqueId().equals(uuid));
+ }
+
+ public boolean equals(UUID id) {
+ return (id != null && id.equals(uuid));
+ }
+
@Override
public boolean equals(Object other) {
if (other instanceof Player) {
@@ -342,8 +341,7 @@ public void heal() {
player.setFoodLevel(20);
player.setFireTicks(0);
for (PotionEffect pt : player.getActivePotionEffects()) {
- if (pt.getDuration() < Integer.MAX_VALUE / 4)
- {
+ if (pt.getDuration() < Integer.MAX_VALUE / 4) {
player.removePotionEffect(pt.getType());
}
}
diff --git a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaStage.java b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaStage.java
index 3af3237..06adb18 100644
--- a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaStage.java
+++ b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenaStage.java
@@ -1,10 +1,11 @@
package com.elmakers.mine.bukkit.arenas.dueling;
-import com.elmakers.mine.bukkit.api.magic.Mage;
-import com.elmakers.mine.bukkit.api.magic.MageController;
-import com.elmakers.mine.bukkit.api.entity.EntityData;
-import com.elmakers.mine.bukkit.api.spell.Spell;
-import com.elmakers.mine.bukkit.utility.ConfigurationUtils;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
@@ -15,17 +16,17 @@
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.plugin.Plugin;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import com.elmakers.mine.bukkit.api.entity.EntityData;
+import com.elmakers.mine.bukkit.api.magic.Mage;
+import com.elmakers.mine.bukkit.api.magic.MageController;
+import com.elmakers.mine.bukkit.api.spell.Spell;
+import com.elmakers.mine.bukkit.utility.ConfigurationUtils;
public class ArenaStage {
private final Arena arena;
- private List mobs = new ArrayList();
- private List mobSpawns = new ArrayList();
- private Set spawned = new HashSet();
+ private List mobs = new ArrayList<>();
+ private List mobSpawns = new ArrayList<>();
+ private Set spawned = new HashSet<>();
private String startSpell;
private String endSpell;
@@ -44,13 +45,13 @@ public ArenaStage(Arena arena, MageController controller, ConfigurationSection c
startSpell = configuration.getString("spell_start");
endSpell = configuration.getString("spell_end");
- for (String s : configuration.getStringList("mob_spawns")){
+ for (String s : configuration.getStringList("mob_spawns")) {
mobSpawns.add(ConfigurationUtils.toLocation(s));
}
}
public void save(ConfigurationSection configuration) {
- List mobsConfigurations = new ArrayList();
+ List mobsConfigurations = new ArrayList<>();
for (ArenaMobSpawner mob : mobs) {
ConfigurationSection section = new MemoryConfiguration();
mob.save(section);
@@ -60,7 +61,7 @@ public void save(ConfigurationSection configuration) {
configuration.set("spell_start", startSpell);
configuration.set("spell_end", endSpell);
- List mobSpawnList = new ArrayList();
+ List mobSpawnList = new ArrayList<>();
for (Location spawn : mobSpawns) {
mobSpawnList.add(ConfigurationUtils.fromLocation(spawn));
}
@@ -147,7 +148,7 @@ public Location removeMobSpawn(Location location) {
public List getMobSpawns() {
if (mobSpawns.size() == 0) {
- List centerList = new ArrayList();
+ List centerList = new ArrayList<>();
centerList.add(arena.getCenter());
return centerList;
}
@@ -165,7 +166,9 @@ public void start() {
int num = 0;
for (ArenaMobSpawner mobSpawner : mobs) {
EntityData mobType = mobSpawner.getEntity();
- if (mobType == null) continue;
+ if (mobType == null) {
+ continue;
+ }
for (int i = 0; i < mobSpawner.getCount(); i++) {
Location spawn = spawns.get(num);
num = (num + 1) % spawns.size();
diff --git a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenasPlugin.java b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenasPlugin.java
index 1ee6971..7b1bd0d 100644
--- a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenasPlugin.java
+++ b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/ArenasPlugin.java
@@ -1,10 +1,11 @@
package com.elmakers.mine.bukkit.arenas.dueling;
-import com.elmakers.mine.bukkit.api.magic.MagicAPI;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
+import com.elmakers.mine.bukkit.api.magic.MagicAPI;
+
public class ArenasPlugin extends JavaPlugin {
private ArenaController controller;
private MagicAPI magicAPI = null;
@@ -52,4 +53,4 @@ public void load() {
public void onDisable() {
save();
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/PlayerJoinedArenaEvent.java b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/PlayerJoinedArenaEvent.java
new file mode 100644
index 0000000..6f8648c
--- /dev/null
+++ b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/PlayerJoinedArenaEvent.java
@@ -0,0 +1,48 @@
+package com.elmakers.mine.bukkit.arenas.dueling;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import org.bukkit.entity.Player;
+import org.bukkit.event.Event;
+import org.bukkit.event.HandlerList;
+
+/**
+ * Event that is called when a player joins (the queue of) an arena.
+ */
+public class PlayerJoinedArenaEvent extends Event {
+ private static final HandlerList handlerList = new HandlerList();
+
+ private final Player player;
+ private final ArenaPlayer arenaPlayer;
+ private final Arena arena;
+
+ public PlayerJoinedArenaEvent(
+ Player player,
+ ArenaPlayer arenaPlayer,
+ Arena arena) {
+ this.player = checkNotNull(player, "player");
+ this.arenaPlayer = checkNotNull(arenaPlayer, "arenaPlayer");
+ this.arena = checkNotNull(arena, "arena");
+ }
+
+ public Player getPlayer() {
+ return player;
+ }
+
+ public ArenaPlayer getArenaPlayer() {
+ return arenaPlayer;
+ }
+
+ public Arena getArena() {
+ return arena;
+ }
+
+ @Override
+ public HandlerList getHandlers() {
+ return handlerList;
+ }
+
+ public static HandlerList getHandlerList() {
+ return handlerList;
+ }
+}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index a63d8c0..58d4499 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -4,4 +4,4 @@
path_template: "wand"
# How often to check ("tick") active arenas, in ticks
-tick_interval: 40
\ No newline at end of file
+tick_interval: 40