diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPList.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPList.java index 15deea4e1..d09417147 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPList.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPList.java @@ -32,7 +32,7 @@ private String pvpList(final Player sender, final boolean enabled, final boolean final StringBuilder list = new StringBuilder(); for (final PvPlayer p : ph.getPlayers().values()) { final Player player = p.getPlayer(); - if (enabled == p.hasPvPEnabled() && player != null && (console || sender.canSee(player))) { + if (enabled == p.hasPvPEnabled() && (console || sender.canSee(player))) { list.append(p.getName()).append(", "); } } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Libraries/Metrics/CustomMetrics.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Libraries/Metrics/CustomMetrics.java index 5fbef38af..dd05d4463 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Libraries/Metrics/CustomMetrics.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Libraries/Metrics/CustomMetrics.java @@ -5,7 +5,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.concurrent.Callable; import org.bukkit.Bukkit; @@ -27,101 +26,73 @@ private void initMetrics(final PvPManager plugin) { final Metrics metrics = new Metrics(plugin, 5653, Settings.isOptOutMetrics()); - metrics.addCustomChart(new Metrics.SimplePie("time_in_combat", new Callable() { - @Override - public String call() { - return Settings.isInCombatEnabled() ? Settings.getTimeInCombat() + " seconds" : "Disabled"; - } - })); - - metrics.addCustomChart(new Metrics.DrilldownPie("features", new Callable>>() { - @Override - public Map> call() { - final Map> map = new HashMap<>(); - - map.put("Newbie Protection", getMapEntry(Settings.isNewbieProtectionEnabled() ? "Enabled" : "Disabled")); - map.put("Kill Abuse", getMapEntry(Settings.isKillAbuseEnabled() ? "Enabled" : "Disabled")); - map.put("Update Check", getMapEntry(!Settings.isUpdateCheck() ? "Disabled" : !Settings.isAutoUpdate() ? "Update Check" : "Auto Update")); - map.put("PvP Blood", getMapEntry(Settings.isPvpBlood() ? "Enabled" : "Disabled")); - map.put("Drop Mode", getMapEntry(Settings.getDropMode().toString())); - map.put("Combat Nametags", getMapEntry(Settings.useNameTag() ? "Enabled" : "Disabled")); - map.put("Database Type", getMapEntry(plugin.getStorageManager().getStorage().getDatabaseType().toString())); - if (Settings.isBossBarEnabled() && Settings.isActionBarEnabled()) - map.put("Display Type", getMapEntry("Both")); - else if (!Settings.isBossBarEnabled() && !Settings.isActionBarEnabled()) - map.put("Display Type", getMapEntry("None")); - else - map.put("Display Type", getMapEntry(Settings.isBossBarEnabled() ? "Only Bossbar" : "Only Actionbar")); - return map; - } + metrics.addCustomChart( + new Metrics.SimplePie("time_in_combat", () -> Settings.isInCombatEnabled() ? Settings.getTimeInCombat() + " seconds" : "Disabled")); + + metrics.addCustomChart(new Metrics.DrilldownPie("features", () -> { + final Map> map = new HashMap<>(); + + map.put("Newbie Protection", getMapEntry(Settings.isNewbieProtectionEnabled() ? "Enabled" : "Disabled")); + map.put("Kill Abuse", getMapEntry(Settings.isKillAbuseEnabled() ? "Enabled" : "Disabled")); + map.put("Update Check", getMapEntry(!Settings.isUpdateCheck() ? "Disabled" : !Settings.isAutoUpdate() ? "Update Check" : "Auto Update")); + map.put("PvP Blood", getMapEntry(Settings.isPvpBlood() ? "Enabled" : "Disabled")); + map.put("Drop Mode", getMapEntry(Settings.getDropMode().toString())); + map.put("Combat Nametags", getMapEntry(Settings.useNameTag() ? "Enabled" : "Disabled")); + map.put("Database Type", getMapEntry(plugin.getStorageManager().getStorage().getDatabaseType().toString())); + if (Settings.isBossBarEnabled() && Settings.isActionBarEnabled()) + map.put("Display Type", getMapEntry("Both")); + else if (!Settings.isBossBarEnabled() && !Settings.isActionBarEnabled()) + map.put("Display Type", getMapEntry("None")); + else + map.put("Display Type", getMapEntry(Settings.isBossBarEnabled() ? "Only Bossbar" : "Only Actionbar")); + return map; })); if (Settings.isInCombatEnabled()) { - metrics.addCustomChart(new Metrics.SimplePie("player_drops_on_logout", new Callable() { - @Override - public String call() { - if (!Settings.isKillOnLogout()) - return "Kill On Logout Disabled"; - else if (!Settings.isDropInventory() && !Settings.isDropExp() && !Settings.isDropArmor()) - return "Keep Everything"; - else if (Settings.isDropInventory() && Settings.isDropExp() && Settings.isDropArmor()) - return "Drop Everything"; - else if (!Settings.isDropInventory() && !Settings.isDropArmor() && Settings.isDropExp()) - return "Only Drop Exp"; - else if (!Settings.isDropInventory() && !Settings.isDropExp() && Settings.isDropArmor()) - return "Only Drop Armor"; - else if (Settings.isDropInventory() && !Settings.isDropExp() && !Settings.isDropArmor()) - return "Only Drop Inventory"; - else if (!Settings.isDropInventory() && Settings.isDropExp() && Settings.isDropArmor()) - return "Only Keep Inventory"; - else if (Settings.isDropInventory() && Settings.isDropExp() && !Settings.isDropArmor()) - return "Only Keep Armor"; - else if (Settings.isDropInventory() && !Settings.isDropExp() && Settings.isDropArmor()) - return "Only Keep Exp"; - return ""; - } + metrics.addCustomChart(new Metrics.SimplePie("player_drops_on_logout", () -> { + if (!Settings.isKillOnLogout()) + return "Kill On Logout Disabled"; + else if (!Settings.isDropInventory() && !Settings.isDropExp() && !Settings.isDropArmor()) + return "Keep Everything"; + else if (Settings.isDropInventory() && Settings.isDropExp() && Settings.isDropArmor()) + return "Drop Everything"; + else if (!Settings.isDropInventory() && !Settings.isDropArmor() && Settings.isDropExp()) + return "Only Drop Exp"; + else if (!Settings.isDropInventory() && !Settings.isDropExp() && Settings.isDropArmor()) + return "Only Drop Armor"; + else if (Settings.isDropInventory() && !Settings.isDropExp() && !Settings.isDropArmor()) + return "Only Drop Inventory"; + else if (!Settings.isDropInventory() && Settings.isDropExp() && Settings.isDropArmor()) + return "Only Keep Inventory"; + else if (Settings.isDropInventory() && Settings.isDropExp() && !Settings.isDropArmor()) + return "Only Keep Armor"; + else if (Settings.isDropInventory() && !Settings.isDropExp() && Settings.isDropArmor()) + return "Only Keep Exp"; + return ""; })); - } - metrics.addCustomChart(new Metrics.AdvancedPie("hooks", new Callable>() { - @Override - public Map call() { - final Map valueMap = new HashMap<>(); - for (final Entry entry : plugin.getDependencyManager().getDependencies().entrySet()) { - valueMap.put(entry.getValue().getName(), 1); - } - final List extra = Arrays.asList("GSit", "NametagEdit", "GriefPrevention", "RedProtect", "GriefDefender", "Citizens", - "KingdomsX", "CMI", "TAB"); - for (final String plugin : extra) { - if (Bukkit.getPluginManager().isPluginEnabled(plugin)) { - valueMap.put(plugin, 1); - } + metrics.addCustomChart(new Metrics.AdvancedPie("hooks", () -> { + final Map valueMap = new HashMap<>(); + for (final Entry entry : plugin.getDependencyManager().getDependencies().entrySet()) { + valueMap.put(entry.getValue().getName(), 1); + } + final List extra = Arrays.asList("GSit", "NametagEdit", "RedProtect", "GriefDefender", "Citizens", + "KingdomsX", "CMI", "TAB"); + for (final String extraPlugin : extra) { + if (Bukkit.getPluginManager().isPluginEnabled(extraPlugin)) { + valueMap.put(extraPlugin, 1); } - return valueMap; } + return valueMap; })); - metrics.addCustomChart(new Metrics.SimplePie("auto_soup", new Callable() { - @Override - public String call() { - return Settings.isAutoSoupEnabled() ? "Enabled" : "Disabled"; - } - })); + metrics.addCustomChart(new Metrics.SimplePie("auto_soup", () -> Settings.isAutoSoupEnabled() ? "Enabled" : "Disabled")); - metrics.addCustomChart(new Metrics.SimplePie("locale", new Callable() { - @Override - public String call() throws Exception { - return Settings.getLocale(); - } - })); + metrics.addCustomChart(new Metrics.SimplePie("locale", Settings::getLocale)); - metrics.addCustomChart(new Metrics.SingleLineChart("players_in_combat", new Callable() { - @Override - public Integer call() throws Exception { - return PvPManager.getInstance().getPlayerHandler().getPlayersInCombat().size(); - } - })); + metrics.addCustomChart( + new Metrics.SingleLineChart("players_in_combat", () -> PvPManager.getInstance().getPlayerHandler().getPlayersInCombat().size())); } private Map getMapEntry(final String key) { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java index b8c3bfb77..47d29582d 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java @@ -41,7 +41,6 @@ import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.ChatUtils; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; import me.NoChance.PvPManager.Utils.MCVersion; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java index de8c881d2..b979bf311 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java @@ -19,8 +19,6 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Events.PlayerCombatLogEvent; import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Settings; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java index 53661a3ae..3fa6882ab 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java @@ -25,8 +25,6 @@ import me.NoChance.PvPManager.Managers.DisplayManager; import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.sdutils.library.PluginLibraries; import me.chancesd.sdutils.utils.Log; import me.chancesd.pvpmanager.managers.StorageManager; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java index d9bad856a..112a51d9b 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java @@ -1,5 +1,6 @@ package me.NoChance.PvPManager; +import java.util.EnumMap; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ExecutorService; @@ -43,8 +44,8 @@ public class PvPlayer extends EcoPlayer { private long taggedTime; private NewbieTask newbieTask; private PvPlayer enemy; - private final HashMap victim = new HashMap<>(); - private final HashMap itemCooldown = new HashMap<>(); + private final Map victim = new HashMap<>(); + private final Map itemCooldown = new EnumMap<>(Material.class); private final PvPManager plugin; private NameTag nametag; private static ExecutorService executor; diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/player/nametag/BukkitNameTag.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/player/nametag/BukkitNameTag.java index e48bb0281..62fa75b99 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/player/nametag/BukkitNameTag.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/player/nametag/BukkitNameTag.java @@ -16,8 +16,8 @@ public class BukkitNameTag extends NameTag { private Team inCombat; - private Team pvpOn; - private Team pvpOff; + private Team pvpOnTeam; + private Team pvpOffTeam; private Team previousTeam; private String previousTeamName; private final String combatTeamID; @@ -53,30 +53,30 @@ private void setup() { if (Settings.isToggleNametagsEnabled()) { if (!pvpOnPrefix.isEmpty()) { if (scoreboard.getTeam(PVPON) != null) { - pvpOn = scoreboard.getTeam(PVPON); + pvpOnTeam = scoreboard.getTeam(PVPON); } else { - pvpOn = scoreboard.registerNewTeam(PVPON); - pvpOn.setCanSeeFriendlyInvisibles(false); - pvpOn.setPrefix(pvpOnPrefix); + pvpOnTeam = scoreboard.registerNewTeam(PVPON); + pvpOnTeam.setCanSeeFriendlyInvisibles(false); + pvpOnTeam.setPrefix(pvpOnPrefix); if (MCVersion.isAtLeast(MCVersion.V1_13)) { final ChatColor nameColor = getLastColor(pvpOnPrefix); if (nameColor != null) { - pvpOn.setColor(nameColor); + pvpOnTeam.setColor(nameColor); } } } } if (!pvpOffPrefix.isEmpty()) { if (scoreboard.getTeam(PVPOFF) != null) { - pvpOff = scoreboard.getTeam(PVPOFF); + pvpOffTeam = scoreboard.getTeam(PVPOFF); } else { - pvpOff = scoreboard.registerNewTeam(PVPOFF); - pvpOff.setCanSeeFriendlyInvisibles(false); - pvpOff.setPrefix(pvpOffPrefix); + pvpOffTeam = scoreboard.registerNewTeam(PVPOFF); + pvpOffTeam.setCanSeeFriendlyInvisibles(false); + pvpOffTeam.setPrefix(pvpOffPrefix); if (MCVersion.isAtLeast(MCVersion.V1_13)) { final ChatColor nameColor = getLastColor(pvpOffPrefix); if (nameColor != null) { - pvpOff.setColor(nameColor); + pvpOffTeam.setColor(nameColor); } } } @@ -159,15 +159,15 @@ public final void restoreNametag() { @Override public final void setPvP(final boolean state) { if (state) { - if (pvpOn == null) { + if (pvpOnTeam == null) { restoreNametag(); } else { - pvpOn.addEntry(pvPlayer.getName()); + pvpOnTeam.addEntry(pvPlayer.getName()); } - } else if (pvpOff == null) { + } else if (pvpOffTeam == null) { restoreNametag(); } else { - pvpOff.addEntry(pvPlayer.getName()); + pvpOffTeam.addEntry(pvPlayer.getName()); } } diff --git a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/PlayerListenerTest.java b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/PlayerListenerTest.java index b01f84ec7..30d2862d8 100644 --- a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/PlayerListenerTest.java +++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/PlayerListenerTest.java @@ -76,10 +76,9 @@ void onPlayerLogoutTest() { listener.onPlayerLogout(new PlayerQuitEvent(player, "")); verify(player, times(1)).setHealth(0); - assertFalse(pvPlayer.isInCombat()); assertEquals(2, ph.getPlayers().size()); // attacker and defender - listener.onPlayerLogoutMonitor(new PlayerQuitEvent(defender, "")); + listener.onPlayerLogoutMonitor(new PlayerQuitEvent(player, "")); assertEquals(1, ph.getPlayers().size()); }