Skip to content

Commit

Permalink
refactor doublejump methods to use player name
Browse files Browse the repository at this point in the history
add new admin command and console command to give doublejumps to a player
refresh doublejumps in waiting scoreboard if player is given additional doublejumps
add new command to autotab complete
  • Loading branch information
steve4744 committed Oct 2, 2022
1 parent de008bb commit 7fadc67
Show file tree
Hide file tree
Showing 10 changed files with 112 additions and 21 deletions.
2 changes: 1 addition & 1 deletion src/main/java/tntrun/TNTRunPlaceholders.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/tntrun/arena/handlers/GameHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
20 changes: 10 additions & 10 deletions src/main/java/tntrun/arena/handlers/PlayerHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -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());
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/tntrun/arena/handlers/ScoreboardHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -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--;
Expand Down Expand Up @@ -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--;
Expand Down
25 changes: 25 additions & 0 deletions src/main/java/tntrun/commands/ConsoleCommands.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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}");
}

}
2 changes: 2 additions & 0 deletions src/main/java/tntrun/commands/setup/SetupCommandsHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/tntrun/commands/setup/SetupTabCompleter.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,9 @@

public class SetupTabCompleter implements TabCompleter {

private static final List<String> 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<String> 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<String> ARENA_COMMANDS = Arrays.asList("setarena", "setloselevel", "setspawn", "addspawn", "setspectate", "finish",
"deletespectate", "deletespawnpoints", "setgameleveldestroydelay", "setregenerationdelay", "setmaxplayers", "setminplayers", "setvotepercent",
Expand Down
63 changes: 63 additions & 0 deletions src/main/java/tntrun/commands/setup/other/GiveDoubleJumps.java
Original file line number Diff line number Diff line change
@@ -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;
}

}
6 changes: 3 additions & 3 deletions src/main/java/tntrun/eventhandler/RestrictionHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand All @@ -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);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/tntrun/utils/Shop.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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);
}

/**
Expand Down

0 comments on commit 7fadc67

Please sign in to comment.