diff --git a/src/main/java/tntrun/TNTRunPlaceholders.java b/src/main/java/tntrun/TNTRunPlaceholders.java index 2aab437c..89708ccf 100644 --- a/src/main/java/tntrun/TNTRunPlaceholders.java +++ b/src/main/java/tntrun/TNTRunPlaceholders.java @@ -155,7 +155,7 @@ public String onRequest(OfflinePlayer p, String identifier) { } else if (identifier.equals("doublejumps")) { Arena arena = plugin.amanager.getPlayerArena(p.getName()); - return arena != null ? String.valueOf(arena.getPlayerHandler().getDoubleJumps((Player) p)) : String.valueOf(getUncachedDoubleJumps(p)); + return arena != null ? String.valueOf(arena.getPlayerHandler().getDoubleJumps(p.getName())) : String.valueOf(getUncachedDoubleJumps(p)); } else if (identifier.startsWith("joinfee")) { Arena arena = getArenaFromPlaceholder(identifier, 2); diff --git a/src/main/java/tntrun/arena/handlers/GameHandler.java b/src/main/java/tntrun/arena/handlers/GameHandler.java index cf28fa11..ee9b7bed 100644 --- a/src/main/java/tntrun/arena/handlers/GameHandler.java +++ b/src/main/java/tntrun/arena/handlers/GameHandler.java @@ -207,7 +207,7 @@ private void startArena() { if (plugin.useStats() && isStatsActive()) { plugin.getStats().addPlayedGames(player, 1); } - if (arena.getPlayerHandler().hasDoubleJumps(player)) { + if (arena.getPlayerHandler().hasDoubleJumps(player.getName())) { player.setAllowFlight(true); } diff --git a/src/main/java/tntrun/arena/handlers/PlayerHandler.java b/src/main/java/tntrun/arena/handlers/PlayerHandler.java index 909e9ac3..b74adc93 100644 --- a/src/main/java/tntrun/arena/handlers/PlayerHandler.java +++ b/src/main/java/tntrun/arena/handlers/PlayerHandler.java @@ -811,27 +811,27 @@ private void cacheDoubleJumps(Player player) { } } - public boolean hasDoubleJumps(Player player) { - return getDoubleJumps(player) > 0; + public boolean hasDoubleJumps(String playerName) { + return getDoubleJumps(playerName) > 0; } - public int getDoubleJumps(Player player) { - return doublejumps.get(player.getName()) != null ? doublejumps.get(player.getName()) : 0; + public int getDoubleJumps(String playerName) { + return doublejumps.get(playerName) != null ? doublejumps.get(playerName) : 0; } - public void decrementDoubleJumps(Player player) { - if (hasDoubleJumps(player)) { - doublejumps.put(player.getName(), getDoubleJumps(player) - 1); + public void decrementDoubleJumps(String playerName) { + if (hasDoubleJumps(playerName)) { + doublejumps.put(playerName, getDoubleJumps(playerName) - 1); } } - public void incrementDoubleJumps(Player player, Integer amount) { - doublejumps.put(player.getName(), getDoubleJumps(player) + amount); + public void incrementDoubleJumps(String playerName, int amount) { + doublejumps.put(playerName, getDoubleJumps(playerName) + amount); } private void resetDoubleJumps(Player player) { if (!plugin.getConfig().getBoolean("freedoublejumps.enabled")) { - plugin.getPData().saveDoubleJumpsToFile(player, getDoubleJumps(player)); + plugin.getPData().saveDoubleJumpsToFile(player, getDoubleJumps(player.getName())); } doublejumps.remove(player.getName()); } diff --git a/src/main/java/tntrun/arena/handlers/ScoreboardHandler.java b/src/main/java/tntrun/arena/handlers/ScoreboardHandler.java index 4920a4ce..718ed449 100644 --- a/src/main/java/tntrun/arena/handlers/ScoreboardHandler.java +++ b/src/main/java/tntrun/arena/handlers/ScoreboardHandler.java @@ -62,7 +62,7 @@ public void updateWaitingScoreboard(Player player) { s = s.replace("{MPS}", arena.getStructureManager().getMaxPlayers() + ""); s = s.replace("{COUNT}", arena.getGameHandler().count + ""); s = s.replace("{VOTES}", arena.getPlayerHandler().getVotesRequired(arena) + ""); - s = s.replace("{DJ}", arena.getPlayerHandler().getDoubleJumps(player) + ""); + s = s.replace("{DJ}", arena.getPlayerHandler().getDoubleJumps(player.getName()) + ""); s = plugin.getScoreboardManager().getPlaceholderString(s, player); o.getScore(s).setScore(size); size--; @@ -111,7 +111,7 @@ private void updatePlayingScoreboard(Player player) { s = s.replace("{MPS}", arena.getStructureManager().getMaxPlayers() + ""); s = s.replace("{LOST}", arena.getGameHandler().lostPlayers + ""); s = s.replace("{LIMIT}", arena.getGameHandler().getTimeRemaining()/20 + ""); - s = s.replace("{DJ}", arena.getPlayerHandler().getDoubleJumps(player) + ""); + s = s.replace("{DJ}", arena.getPlayerHandler().getDoubleJumps(player.getName()) + ""); s = plugin.getScoreboardManager().getPlaceholderString(s, player); o.getScore(s).setScore(size); size--; diff --git a/src/main/java/tntrun/commands/ConsoleCommands.java b/src/main/java/tntrun/commands/ConsoleCommands.java index 22833db1..a309db3f 100644 --- a/src/main/java/tntrun/commands/ConsoleCommands.java +++ b/src/main/java/tntrun/commands/ConsoleCommands.java @@ -214,6 +214,30 @@ public boolean onCommand(CommandSender sender, Command command, String label, St String arenatype = (args.length == 3) ? args[1] : ""; plugin.getMenus().autoJoin(player, arenatype); return true; + // give doublejumps + } else if (args[0].equalsIgnoreCase("givedoublejumps")) { + if (args.length != 3) { + Messages.sendMessage(sender, "&c Invalid number of arguments supplied"); + return false; + } + Arena arena = plugin.amanager.getPlayerArena(args[1]); + if (arena == null) { + Messages.sendMessage(sender, "&7 " + args[1] + "&c is not in a TNTRun arena"); + return false; + } + if (!Utils.isNumber(args[2]) || Integer.parseInt(args[2]) <= 0) { + Messages.sendMessage(sender, "&c DoubleJumps must be a positive integer"); + return false; + } + arena.getPlayerHandler().incrementDoubleJumps(args[1], Integer.parseInt(args[2])); + Messages.sendMessage(sender, "&6 " + args[2] + "&7 doublejumps given to: &6" + args[1]); + + if (!arena.getStatusManager().isArenaStarting() && plugin.getConfig().getBoolean("scoreboard.displaydoublejumps")) { + if(plugin.getConfig().getBoolean("special.UseScoreboard")) { + arena.getScoreboardHandler().updateWaitingScoreboard(Bukkit.getPlayer(args[1])); + } + } + return true; } return false; @@ -233,6 +257,7 @@ private void displayConsoleCommands(CommandSender sender) { Messages.sendMessage(sender, "trconsole join {arena} {player}"); Messages.sendMessage(sender, "trconsole spectate {arena} {player}"); Messages.sendMessage(sender, "trconsole autojoin [pvp|nopvp] {player}"); + Messages.sendMessage(sender, "trconsole givedoublejumps {player} {amount}"); } } diff --git a/src/main/java/tntrun/commands/setup/SetupCommandsHandler.java b/src/main/java/tntrun/commands/setup/SetupCommandsHandler.java index 8ec30056..b2d07be8 100644 --- a/src/main/java/tntrun/commands/setup/SetupCommandsHandler.java +++ b/src/main/java/tntrun/commands/setup/SetupCommandsHandler.java @@ -63,6 +63,7 @@ import tntrun.commands.setup.lobby.DeleteLobby; import tntrun.commands.setup.lobby.SetLobby; import tntrun.commands.setup.other.AddToWhitelist; +import tntrun.commands.setup.other.GiveDoubleJumps; import tntrun.commands.setup.other.ResetCachedRank; import tntrun.commands.setup.other.ResetStats; import tntrun.commands.setup.other.SetLanguage; @@ -133,6 +134,7 @@ public SetupCommandsHandler(TNTRun plugin) { commandHandlers.put("help", new SetupHelp(plugin)); commandHandlers.put("resetstats", new ResetStats(plugin)); commandHandlers.put("resetcachedrank", new ResetCachedRank(plugin)); + commandHandlers.put("givedoublejumps", new GiveDoubleJumps(plugin)); } @Override diff --git a/src/main/java/tntrun/commands/setup/SetupTabCompleter.java b/src/main/java/tntrun/commands/setup/SetupTabCompleter.java index 1afbcc99..abaa6546 100644 --- a/src/main/java/tntrun/commands/setup/SetupTabCompleter.java +++ b/src/main/java/tntrun/commands/setup/SetupTabCompleter.java @@ -32,8 +32,9 @@ public class SetupTabCompleter implements TabCompleter { - private static final List COMMANDS = Arrays.asList("help", "create", "setlobby", "reloadbars", "reloadtitles", "reloadmsg", "reloadconfig", - "setbarcolor", "addkit", "deletekit", "deletelobby", "setp1", "setp2", "clear", "addtowhitelist", "setlanguage", "resetstats", "resetcachedrank"); + private static final List COMMANDS = Arrays.asList("help", "create", "setlobby", "reloadbars", "reloadtitles", "reloadmsg", + "reloadconfig", "setbarcolor", "addkit", "deletekit", "deletelobby", "setp1", "setp2", "clear", "addtowhitelist", "setlanguage", + "resetstats", "resetcachedrank", "givedoublejumps"); private static final List ARENA_COMMANDS = Arrays.asList("setarena", "setloselevel", "setspawn", "addspawn", "setspectate", "finish", "deletespectate", "deletespawnpoints", "setgameleveldestroydelay", "setregenerationdelay", "setmaxplayers", "setminplayers", "setvotepercent", diff --git a/src/main/java/tntrun/commands/setup/other/GiveDoubleJumps.java b/src/main/java/tntrun/commands/setup/other/GiveDoubleJumps.java new file mode 100644 index 00000000..5954bf17 --- /dev/null +++ b/src/main/java/tntrun/commands/setup/other/GiveDoubleJumps.java @@ -0,0 +1,63 @@ +/** + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 3 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ +package tntrun.commands.setup.other; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; + +import tntrun.TNTRun; +import tntrun.arena.Arena; +import tntrun.commands.setup.CommandHandlerInterface; +import tntrun.messages.Messages; +import tntrun.utils.Utils; + +public class GiveDoubleJumps implements CommandHandlerInterface { + + private TNTRun plugin; + + public GiveDoubleJumps(TNTRun plugin) { + this.plugin = plugin; + } + + @Override + public boolean handleCommand(Player player, String[] args) { + Arena arena = plugin.amanager.getPlayerArena(args[0]); + if (arena == null) { + Messages.sendMessage(player, "&7 " + args[0] + "&c is not in a TNTRun arena"); + return false; + } + if (!Utils.isNumber(args[1]) || Integer.parseInt(args[1]) <= 0) { + Messages.sendMessage(player, "&c DoubleJumps must be a positive integer"); + return false; + } + arena.getPlayerHandler().incrementDoubleJumps(args[0], Integer.parseInt(args[1])); + Messages.sendMessage(player, "&7 " + args[1] + " doublejumps given to: &6" + args[0]); + + if (!arena.getStatusManager().isArenaStarting() && plugin.getConfig().getBoolean("scoreboard.displaydoublejumps")) { + if(plugin.getConfig().getBoolean("special.UseScoreboard")) { + arena.getScoreboardHandler().updateWaitingScoreboard(Bukkit.getPlayer(args[0])); + } + } + return true; + } + + @Override + public int getMinArgsLength() { + return 2; + } + +} diff --git a/src/main/java/tntrun/eventhandler/RestrictionHandler.java b/src/main/java/tntrun/eventhandler/RestrictionHandler.java index 74a49e20..22aab7df 100644 --- a/src/main/java/tntrun/eventhandler/RestrictionHandler.java +++ b/src/main/java/tntrun/eventhandler/RestrictionHandler.java @@ -240,11 +240,11 @@ public void onFly(PlayerToggleFlightEvent e) { if (u.contains(player.getName())) { return; } - if (!arena.getPlayerHandler().hasDoubleJumps(player)) { + if (!arena.getPlayerHandler().hasDoubleJumps(player.getName())) { return; } - arena.getPlayerHandler().decrementDoubleJumps(player); + arena.getPlayerHandler().decrementDoubleJumps(player.getName()); player.setFlying(false); player.setVelocity(player.getLocation().getDirection() .multiply(plugin.getConfig().getDouble("doublejumps.multiplier", 1.5D)) @@ -256,7 +256,7 @@ public void onFly(PlayerToggleFlightEvent e) { @Override public void run() { u.remove(player.getName()); - if (!arena.getPlayerHandler().hasDoubleJumps(player)) { + if (!arena.getPlayerHandler().hasDoubleJumps(player.getName())) { player.setAllowFlight(false); } } diff --git a/src/main/java/tntrun/utils/Shop.java b/src/main/java/tntrun/utils/Shop.java index 592b8bf9..95f2caa2 100644 --- a/src/main/java/tntrun/utils/Shop.java +++ b/src/main/java/tntrun/utils/Shop.java @@ -143,7 +143,7 @@ private void giveDoubleJumps(Player player, int quantity) { } else { Arena arena = plugin.amanager.getPlayerArena(player.getName()); - arena.getPlayerHandler().incrementDoubleJumps(player, quantity); + arena.getPlayerHandler().incrementDoubleJumps(player.getName(), quantity); if (!arena.getStatusManager().isArenaStarting() && plugin.getConfig().getBoolean("scoreboard.displaydoublejumps")) { if(plugin.getConfig().getBoolean("special.UseScoreboard")) { arena.getScoreboardHandler().updateWaitingScoreboard(player); @@ -242,7 +242,7 @@ private boolean canBuyDoubleJumps(FileConfiguration cfg, Player p, int kit) { if (plugin.getConfig().getBoolean("freedoublejumps.enabled")) { return maxjumps >= (plugin.getPData().getDoubleJumpsFromFile(p) + quantity); } - return maxjumps >= (arena.getPlayerHandler().getDoubleJumps(p) + quantity); + return maxjumps >= (arena.getPlayerHandler().getDoubleJumps(p.getName()) + quantity); } /**