diff --git a/checkstyle.xml b/checkstyle.xml new file mode 100644 index 0000000..a275d7b --- /dev/null +++ b/checkstyle.xml @@ -0,0 +1,345 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml index 589dd92..5ff45cd 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,5 @@ - 4.0.0 @@ -49,6 +50,39 @@ true + + + + org.apache.maven.plugins + maven-checkstyle-plugin + 3.0.0 + + checkstyle.xml + UTF-8 + true + true + false + **/*.yml + + + + validate + validate + + check + + + + + + + + com.puppycrawl.tools + checkstyle + 8.8 + + + diff --git a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/Arena.java b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/Arena.java index 583571b..c6dc59d 100644 --- a/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/Arena.java +++ b/src/main/java/com/elmakers/mine/bukkit/arenas/dueling/Arena.java @@ -52,12 +52,12 @@ public class Arena { private ArenaState state = ArenaState.LOBBY; private long started; private long lastTick; - private Queue queue = new LinkedList(); - private Set players = new HashSet(); - private Set deadPlayers = new HashSet(); + private Queue queue = new LinkedList<>(); + private Set players = new HashSet<>(); + private Set deadPlayers = new HashSet<>(); - private List spawns = new ArrayList(); - private List stages = new ArrayList(); + private List spawns = new ArrayList<>(); + private List stages = new ArrayList<>(); private int currentStage = 0; private final ArenaController controller; @@ -101,7 +101,7 @@ public class Arena { private int borderMin = 0; private int borderMax = 0; - private List leaderboard = new ArrayList(); + private List leaderboard = new ArrayList<>(); private Location leaderboardLocation; private BlockFace leaderboardFacing; @@ -191,7 +191,7 @@ public void load(ConfigurationSection configuration) { setSuddenDeathEffect(configuration.getString("sudden_death_effect")); } - for (String s : configuration.getStringList("spawns")){ + for (String s : configuration.getStringList("spawns")) { spawns.add(ConfigurationUtils.toLocation(s)); } @@ -262,7 +262,9 @@ public boolean setSuddenDeathEffect(String value) { } public void save(ConfigurationSection configuration) { - if (!isValid()) return; + if (!isValid()) { + return; + } configuration.set("name", name); configuration.set("description", description); @@ -286,9 +288,9 @@ public void save(ConfigurationSection configuration) { configuration.set("sudden_death", suddenDeath); if (suddenDeathEffect != null) { configuration.set("sudden_death_effect", - suddenDeathEffect.getType().getName().toLowerCase() + ":" + - suddenDeathEffect.getAmplifier() + ":" + - suddenDeathEffect.getDuration() + suddenDeathEffect.getType().getName().toLowerCase() + ":" + + suddenDeathEffect.getAmplifier() + ":" + + suddenDeathEffect.getDuration() ); } configuration.set("border_min", borderMin); @@ -321,14 +323,14 @@ public void save(ConfigurationSection configuration) { configuration.set("center", ConfigurationUtils.fromLocation(center)); configuration.set("exit", ConfigurationUtils.fromLocation(exit)); - List spawnList = new ArrayList(); + List spawnList = new ArrayList<>(); for (Location spawn : spawns) { spawnList.add(ConfigurationUtils.fromLocation(spawn)); } configuration.set("spawns", spawnList); if (!stages.isEmpty()) { - List stageConfigurations = new ArrayList(); + List stageConfigurations = new ArrayList<>(); for (ArenaStage stage : stages) { ConfigurationSection section = new MemoryConfiguration(); stage.save(section); @@ -348,7 +350,9 @@ public void save(ConfigurationSection configuration) { } public void saveData(ConfigurationSection configuration) { - if (!isValid()) return; + if (!isValid()) { + return; + } if (leaderboard.size() > 0) { ConfigurationSection leaders = configuration.createSection("leaderboard"); @@ -361,7 +365,9 @@ public void saveData(ConfigurationSection configuration) { } public void start() { - if (!isValid()) return; + if (!isValid()) { + return; + } state = ArenaState.ACTIVE; started = System.currentTimeMillis(); @@ -411,8 +417,7 @@ public void start() { Location spawn = spawns.get(num); if (randomizeSpawn != null) { spawn = spawn.clone(); - spawn.add - ( + spawn.add( (2 * random.nextDouble() - 1) * randomizeSpawn.getX(), (2 * random.nextDouble() - 1) * randomizeSpawn.getY(), (2 * random.nextDouble() - 1) * randomizeSpawn.getZ() @@ -453,7 +458,7 @@ protected void messageNextRoundPlayerList(String message) { } } - public void remove(Player player) { + public void removePlayer(Player player) { ArenaPlayer removePlayer = new ArenaPlayer(this, player); players.remove(removePlayer); queue.remove(removePlayer); @@ -502,6 +507,10 @@ public void lobbyMessage() { } } + public void messagePlayers(String message) { + messagePlayers(message, getAllPlayers()); + } + protected void messagePlayers(String message, Collection players) { for (ArenaPlayer arenaPlayer : players) { Player player = arenaPlayer.getPlayer(); @@ -516,17 +525,15 @@ public void announce(String message) { Collection players = controller.getPlugin().getServer().getOnlinePlayers(); for (Player player : players) { Location playerLocation = player.getLocation(); - if (!playerLocation.getWorld().equals(center.getWorld())) continue; + if (!playerLocation.getWorld().equals(center.getWorld())) { + continue; + } if (playerLocation.distanceSquared(center) < rangeSquared) { player.sendMessage(message); } } } - public void messagePlayers(String message) { - messagePlayers(message, getAllPlayers()); - } - public void messageInGamePlayers(String message) { messagePlayers(message, players); } @@ -540,7 +547,9 @@ public void startCountdown() { } public void startCountdown(int time) { - if (state != ArenaState.LOBBY) return; + if (state != ArenaState.LOBBY) { + return; + } state = ArenaState.COUNTDOWN; messageNextRoundPlayerList(ChatColor.YELLOW + "A round of " + getName() + " is about to start!"); countdown(time); @@ -569,7 +578,9 @@ public void run() { } public boolean stop() { - if (state == ArenaState.LOBBY) return false; + if (state == ArenaState.LOBBY) { + return false; + } messageInGamePlayers(ChatColor.DARK_RED + "This match has been cancelled!"); finish(); return true; @@ -623,14 +634,6 @@ public boolean isFull() { return queue.size() >= maxPlayers; } - public ArenaPlayer add(Player player) { - ArenaPlayer arenaPlayer = new ArenaPlayer(this, player); - queue.add(arenaPlayer); - arenaPlayer.teleport(getLobby()); - player.setMetadata("arena", new FixedMetadataValue(controller.getPlugin(), arenaPlayer)); - return arenaPlayer; - } - public void setLoseLocation(Location location) { lose = location == null ? null : location.clone(); } @@ -676,7 +679,7 @@ public Location removeSpawn(Location location) { public List getSpawns() { if (spawns.size() == 0) { - List centerList = new ArrayList(); + List centerList = new ArrayList<>(); centerList.add(center); return centerList; } @@ -731,7 +734,7 @@ public void setMaxPlayers(int players) { maxPlayers = players; } - public void setType(ArenaType types){ + public void setType(ArenaType types) { switch (types) { case FFA: setMinPlayers(2); @@ -808,8 +811,7 @@ public void check() { @Override public void run() { for (final ArenaPlayer winner : players) { - if (winner != null) - { + if (winner != null) { playerWon(winner); winner.heal(); } @@ -843,8 +845,7 @@ public void run() { } announce(ChatColor.GRAY + "The " + ChatColor.YELLOW + getName() + ChatColor.GRAY + " match ended in a draw"); } - if (winner != null) - { + if (winner != null) { winner.heal(); } finish(); @@ -915,9 +916,20 @@ public void join(Player player) { if (description != null) { player.sendMessage(ChatColor.LIGHT_PURPLE + getDescription()); } - ArenaPlayer arenaPlayer = add(player); + + ArenaPlayer arenaPlayer = new ArenaPlayer(this, player); + queue.add(arenaPlayer); + + arenaPlayer.teleport(getLobby()); + player.setMetadata("arena", + new FixedMetadataValue(controller.getPlugin(), arenaPlayer)); + arenaPlayer.joined(); + Bukkit.getPluginManager().callEvent( + new PlayerJoinedArenaEvent(player, arenaPlayer, this)); + + // Announce join int winCount = arenaPlayer.getWins(); int lostCount = arenaPlayer.getLosses(); @@ -928,11 +940,15 @@ public void join(Player player) { announce(ChatColor.DARK_AQUA + " with " + ChatColor.GREEN + Integer.toString(winCount) + ChatColor.DARK_AQUA + " wins and " + ChatColor.RED + Integer.toString(lostCount) + ChatColor.DARK_AQUA + " losses."); } + + // Check if we have enough players checkStart(); } protected void checkStart() { - if (isStarted()) return; + if (isStarted()) { + return; + } if (isReady()) { if (isFull()) { @@ -946,16 +962,18 @@ protected void checkStart() { } protected Collection getAllPlayers() { - List allPlayers = new ArrayList(players); + List allPlayers = new ArrayList<>(players); allPlayers.addAll(queue); allPlayers.addAll(deadPlayers); return allPlayers; } protected Collection getNextRoundPlayers() { - List allPlayers = new ArrayList(); + List 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