From 2e6466fab2fa50241d45defe76c0f45a89687531 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 27 Nov 2018 21:33:00 -0800 Subject: [PATCH] Fix NPE and reset attack speed when necessary --- war/.gitignore | 1 - .../main/java/com/tommytony/war/config/WarConfig.java | 2 +- .../com/tommytony/war/event/WarPlayerListener.java | 11 ++++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) delete mode 100644 war/.gitignore diff --git a/war/.gitignore b/war/.gitignore deleted file mode 100644 index b83d222..0000000 --- a/war/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target/ diff --git a/war/src/main/java/com/tommytony/war/config/WarConfig.java b/war/src/main/java/com/tommytony/war/config/WarConfig.java index bfc769f..839ca43 100644 --- a/war/src/main/java/com/tommytony/war/config/WarConfig.java +++ b/war/src/main/java/com/tommytony/war/config/WarConfig.java @@ -14,7 +14,7 @@ public enum WarConfig { LANGUAGE (String.class, "Language", "Preferred server language"), AUTOJOIN (String.class, "Auto-join", "Name of warzone to send players to upon join"), TPWARMUP(Integer.class, "TP warmup", "Amount of seconds a player must wait after requesting a teleport"), - DISABLECOOLDOWN(Boolean.class, "Disable the 1.9 combat cooldown", "Disables the attack cooldown when swinging a weapon"); + DISABLECOOLDOWN (Boolean.class, "Disable the 1.9 combat cooldown", "Disables the attack cooldown when swinging a weapon"); private final Class configType; private final String title; diff --git a/war/src/main/java/com/tommytony/war/event/WarPlayerListener.java b/war/src/main/java/com/tommytony/war/event/WarPlayerListener.java index f14cc75..b95e2b0 100644 --- a/war/src/main/java/com/tommytony/war/event/WarPlayerListener.java +++ b/war/src/main/java/com/tommytony/war/event/WarPlayerListener.java @@ -47,8 +47,7 @@ import java.util.logging.Level; */ public class WarPlayerListener implements Listener { private java.util.Random random = new java.util.Random(); - private HashMap latestLocations = new HashMap(); - private boolean cooldownDisabled = War.war.getWarConfig().getBoolean(WarConfig.DISABLECOOLDOWN); + private HashMap latestLocations = new HashMap(); /** * Correctly removes quitting players from warzones @@ -68,11 +67,17 @@ public class WarPlayerListener implements Listener { War.war.removeWandBearer(player); } } + event.getPlayer().getAttribute(Attribute.GENERIC_ATTACK_SPEED).setBaseValue(4.0); } @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) public void onPlayerJoin(final PlayerJoinEvent event) { - event.getPlayer().getAttribute(Attribute.GENERIC_ATTACK_SPEED).setBaseValue(cooldownDisabled ? 1024 : 4); + boolean cooldownDisabled = War.war.getWarConfig().getBoolean(WarConfig.DISABLECOOLDOWN); + if(cooldownDisabled) { + event.getPlayer().getAttribute(Attribute.GENERIC_ATTACK_SPEED).setBaseValue(1024.0); + } else { + event.getPlayer().getAttribute(Attribute.GENERIC_ATTACK_SPEED).setBaseValue(4.0); + } String autojoinName = War.war.getWarConfig().getString(WarConfig.AUTOJOIN); boolean autojoinEnabled = !autojoinName.isEmpty(); if (autojoinEnabled) { // Won't be able to find warzone if unset