From 9462eb061909580d4e0dfeca9e24ef854803adab Mon Sep 17 00:00:00 2001 From: ChanceSD <5256215+ChanceSD@users.noreply.github.com> Date: Wed, 5 Apr 2023 16:20:00 +0100 Subject: [PATCH 01/16] Many changes --- pvpmanager/pom.xml | 9 ++ .../NoChance/PvPManager/Commands/Newbie.java | 2 +- .../me/NoChance/PvPManager/Commands/PvP.java | 2 +- .../NoChance/PvPManager/Commands/PvPInfo.java | 7 +- .../PvPManager/Commands/PvPStatus.java | 11 +- .../{ => API}/BaseDependency.java | 2 +- .../Dependencies/{ => API}/Dependency.java | 3 +- .../{ => API}/DisguiseDependency.java | 2 +- .../Dependencies/{ => API}/GodDependency.java | 2 +- .../{ => API}/RegionDependency.java | 2 +- .../WorldGuardDependency.java} | 4 +- .../Dependencies/ForceToggleDependency.java | 5 +- .../PvPManager/Dependencies/Hook.java | 1 + .../Dependencies/Hooks/EssentialsHook.java | 2 + .../Hooks/GriefPreventionHook.java | 31 ++++ .../Dependencies/Hooks/LibsDisguisesHook.java | 4 +- .../Dependencies/Hooks/PlaceHolderAPI.java | 2 +- .../Hooks/PlaceHolderAPIHook.java | 4 +- .../Dependencies/Hooks/SimpleClansHook.java | 1 - .../Dependencies/Hooks/VaultHook.java | 11 +- .../Hooks/WorldGuardLegacyHook.java | 6 +- .../Hooks/WorldGuardModernHook.java | 12 +- .../Libraries/Metrics/CustomMetrics.java | 4 +- .../Listeners/DebugEntityListener.java | 12 +- .../PvPManager/Listeners/EntityListener.java | 17 ++- .../Listeners/EntityListener1_9.java | 4 +- .../PvPManager/Listeners/MoveListener.java | 2 +- .../PvPManager/Listeners/MoveListener1_9.java | 3 +- .../PvPManager/Listeners/PlayerListener.java | 63 ++++++-- .../PvPManager/Listeners/WGListener.java | 4 +- .../Listeners/WGListenerLegacy.java | 4 +- .../Managers/DependencyManager.java | 30 ++-- .../PvPManager/Managers/DisplayManager.java | 1 + .../PvPManager/Managers/PlayerHandler.java | 49 +++--- .../PvPManager/Player/BasePlayer.java | 21 ++- .../NoChance/PvPManager/Player/EcoPlayer.java | 4 +- ...ancelResult.java => ProtectionResult.java} | 5 +- .../me/NoChance/PvPManager/PvPManager.java | 3 +- .../java/me/NoChance/PvPManager/PvPlayer.java | 56 +++++-- .../PvPManager/Settings/Messages.java | 141 +++++++++++++----- .../PvPManager/Settings/Settings.java | 56 +++++-- .../NoChance/PvPManager/Tasks/NewbieTask.java | 4 + .../me/NoChance/PvPManager/Tasks/TagTask.java | 3 - .../PvPManager/Utils/CombatUtils.java | 19 ++- .../NoChance/PvPManager/Utils/DateUtil.java | 1 + .../NoChance/PvPManager/Utils/MCVersion.java | 36 +++++ .../NoChance/PvPManager/Utils/NCDuration.java | 75 ++++++++++ .../NoChance/PvPManager/Utils/TimeUtil.java | 44 ++++++ .../player/nametag/BukkitNameTag.java | 35 +++-- pvpmanager/src/main/resources/config.yml | 15 +- .../main/resources/locale/messages.properties | 115 +++++++------- pvpmanager/src/main/resources/plugin.yml | 1 + .../Listeners/EntityListenerTest.java | 12 +- .../PvPManager/Managers/DependencyTest.java | 8 +- .../me/NoChance/PvPManager/UpdaterTest.java | 2 +- 55 files changed, 707 insertions(+), 267 deletions(-) rename pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/{ => API}/BaseDependency.java (92%) rename pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/{ => API}/Dependency.java (82%) rename pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/{ => API}/DisguiseDependency.java (78%) rename pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/{ => API}/GodDependency.java (81%) rename pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/{ => API}/RegionDependency.java (86%) rename pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/{WorldGuardHook.java => API/WorldGuardDependency.java} (82%) create mode 100644 pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java rename pvpmanager/src/main/java/me/NoChance/PvPManager/Player/{CancelResult.java => ProtectionResult.java} (83%) create mode 100644 pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/DateUtil.java create mode 100644 pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/MCVersion.java create mode 100644 pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/NCDuration.java create mode 100644 pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/TimeUtil.java diff --git a/pvpmanager/pom.xml b/pvpmanager/pom.xml index fa1847955..9a921876f 100644 --- a/pvpmanager/pom.xml +++ b/pvpmanager/pom.xml @@ -231,6 +231,15 @@ 1.16.8.1.1 provided + + + + com.github.TechFortress + GriefPrevention + 16.14.0 + provided + true + diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Newbie.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Newbie.java index 9f24ce0ca..6a7d1e847 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Newbie.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Newbie.java @@ -60,7 +60,7 @@ public final boolean onCommand(final CommandSender sender, final Command command return true; } } - } else if (!(sender instanceof Player)) { + } else { sender.sendMessage("This command is only available for players."); } return false; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvP.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvP.java index 61f6242b7..6176bbc04 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvP.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvP.java @@ -100,7 +100,7 @@ private void togglePvPAdmin(final CommandSender sender, final String playerName, final PvPlayer specifiedPlayer = ph.get(Bukkit.getPlayer(playerName)); specifiedPlayer.setPvP(toggle ? !specifiedPlayer.hasPvPEnabled() : state); final String stateMessage = specifiedPlayer.hasPvPEnabled() ? Messages.getEnabled() : Messages.getDisabled(); - sender.sendMessage(Messages.getPvPToggleAdminChanged().replace("%p", playerName).replace("%state", stateMessage)); + sender.sendMessage(Messages.getPvPToggleAdminChanged().replace("%p", playerName).replace("%state", stateMessage)); // TODO add replace variables } private void togglePvPAll(final CommandSender sender, final boolean state, final boolean toggle) { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPInfo.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPInfo.java index 97c71ef62..9bf4a8ee9 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPInfo.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPInfo.java @@ -32,11 +32,12 @@ public final boolean onCommand(final CommandSender sender, final Command cmd, fi sendInfo(sender, ph.get((Player) sender)); return true; } else if (args.length == 1 && sender.hasPermission("pvpmanager.info.others")) { - if (CombatUtils.isOnline(args[0])) { - sendInfo(sender, ph.get(Bukkit.getPlayer(args[0]))); + final String name = args[0]; + if (CombatUtils.isOnline(name)) { + sendInfo(sender, ph.get(Bukkit.getPlayer(name))); return true; } - sender.sendMessage(Messages.getErrorPlayerNotFound().replace("%p", args[0])); + sender.sendMessage(Messages.getErrorPlayerNotFound(name)); return true; } return false; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPStatus.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPStatus.java index f3faf48d9..2265a8ea8 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPStatus.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPStatus.java @@ -32,16 +32,17 @@ public final boolean onCommand(final CommandSender sender, final Command cmd, fi pvpPlayer.message(Messages.getSelfStatusEnabled()); return true; } else if (args.length == 1 && sender.hasPermission("pvpmanager.pvpstatus.others")) { - if (CombatUtils.isOnline(args[0])) { - target = ph.get(Bukkit.getPlayer(args[0])); + final String name = args[0]; + if (CombatUtils.isOnline(name)) { + target = ph.get(Bukkit.getPlayer(name)); if (!target.hasPvPEnabled()) { - sender.sendMessage(Messages.getOthersStatusDisabled().replace("%p", args[0])); + sender.sendMessage(Messages.getOthersStatusDisabled(name)); return true; } - sender.sendMessage(Messages.getOtherStatusEnabled().replace("%p", args[0])); + sender.sendMessage(Messages.getOtherStatusEnabled(name)); return true; } - sender.sendMessage(Messages.getErrorPlayerNotFound().replace("%p", args[0])); + sender.sendMessage(Messages.getErrorPlayerNotFound(name)); return true; } return false; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/BaseDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/BaseDependency.java similarity index 92% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/BaseDependency.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/BaseDependency.java index 8cada20f9..471c3795c 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/BaseDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/BaseDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies; +package me.NoChance.PvPManager.Dependencies.API; import org.bukkit.ChatColor; import org.bukkit.plugin.java.JavaPlugin; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Dependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/Dependency.java similarity index 82% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Dependency.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/Dependency.java index 994af453b..eca1db052 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Dependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/Dependency.java @@ -1,8 +1,9 @@ -package me.NoChance.PvPManager.Dependencies; +package me.NoChance.PvPManager.Dependencies.API; import org.bukkit.plugin.java.JavaPlugin; import me.NoChance.PvPManager.Settings.Settings; +import me.NoChance.PvPManager.Dependencies.Hook; public interface Dependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/DisguiseDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/DisguiseDependency.java similarity index 78% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/DisguiseDependency.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/DisguiseDependency.java index e89cee243..98c042cc4 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/DisguiseDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/DisguiseDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies; +package me.NoChance.PvPManager.Dependencies.API; import org.bukkit.entity.Player; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/GodDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/GodDependency.java similarity index 81% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/GodDependency.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/GodDependency.java index 6c0171fad..28fda8aad 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/GodDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/GodDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies; +package me.NoChance.PvPManager.Dependencies.API; import org.bukkit.entity.Player; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/RegionDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/RegionDependency.java similarity index 86% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/RegionDependency.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/RegionDependency.java index f7450dbda..acc2c1dec 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/RegionDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/RegionDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies; +package me.NoChance.PvPManager.Dependencies.API; import org.bukkit.Location; import org.bukkit.entity.Player; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/WorldGuardHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/WorldGuardDependency.java similarity index 82% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/WorldGuardHook.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/WorldGuardDependency.java index 4d63cd22b..cdd9dc210 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/WorldGuardHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/WorldGuardDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies; +package me.NoChance.PvPManager.Dependencies.API; import java.util.Set; @@ -10,7 +10,7 @@ import me.NoChance.PvPManager.Managers.PlayerHandler; -public interface WorldGuardHook extends GroupDependency, RegionDependency { +public interface WorldGuardDependency extends GroupDependency, RegionDependency { public boolean hasAllowPvPFlag(Player player); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java index ae8caae76..5a5076a91 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java @@ -2,13 +2,14 @@ import org.bukkit.entity.Player; -import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Dependencies.API.Dependency; +import me.NoChance.PvPManager.Player.ProtectionResult; public interface ForceToggleDependency extends Dependency { public boolean shouldDisable(Player player); - public boolean shouldDisable(Player attacker, Player defender, CancelResult reason); + public boolean shouldDisable(Player attacker, Player defender, ProtectionResult reason); public default boolean shouldDisableProtection() { return getConfigBoolean("No Protection In War", true); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hook.java index 5f52a4e9e..de869a3b1 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hook.java @@ -18,6 +18,7 @@ public enum Hook { SIMPLECLANS("SimpleClans"), PLACEHOLDERAPI("PlaceholderAPI"), LIBSDISGUISES("LibsDisguises"), + GRIEFPREVENTION("GriefPrevention"), TOWNY("Towny"), KINGDOMSX("Kingdoms"); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/EssentialsHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/EssentialsHook.java index d63f50421..d99da93a0 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/EssentialsHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/EssentialsHook.java @@ -8,6 +8,8 @@ import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.GodDependency; import me.NoChance.PvPManager.Dependencies.Hook; +import me.NoChance.PvPManager.Dependencies.API.BaseDependency; +import me.NoChance.PvPManager.Dependencies.API.GodDependency; public class EssentialsHook extends BaseDependency implements AFKDependency, GodDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java new file mode 100644 index 000000000..b0074e07b --- /dev/null +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java @@ -0,0 +1,31 @@ +package me.NoChance.PvPManager.Dependencies.Hooks; + +import me.NoChance.PvPManager.Dependencies.Hook; +import me.NoChance.PvPManager.Dependencies.API.BaseDependency; +import me.NoChance.PvPManager.Settings.Settings; +import me.NoChance.PvPManager.Utils.Log; +import me.ryanhamshire.GriefPrevention.GriefPrevention; + +public class GriefPreventionHook extends BaseDependency { + + public GriefPreventionHook(final Hook hook) { + super(hook); + final GriefPrevention gp = (GriefPrevention) getPlugin(); + if (gp.config_pvp_combatTimeoutSeconds > 0 || gp.config_pvp_punishLogout) { + Log.warning("GriefPrevention has some combat features without showing any feedback messages. " + + "Make sure to set PunishLogout to false and set CombatTimeoutSeconds to 0 seconds in GP config. " + + "Conflicts with those features often get wrongly blamed on PvPManager due to the lack of GP feedback messages."); + if (Settings.isKillOnLogout() && gp.config_pvp_punishLogout) { + Log.severe("You have kill on logout enabled in PvPManager, so we automatically disabled the same feature on GriefPrevention. " + + "Disable this setting in GP or PvPManager to remove this error, this is necessary as it could cause issues."); + gp.config_pvp_punishLogout = false; + } + } + } + + @Override + public String onEnableMessage() { + return "GriefPrevention Found! Checking for conflicting settings"; + } + +} diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java index 8fe7bd66e..245bc2c96 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java @@ -2,9 +2,9 @@ import org.bukkit.entity.Player; -import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.DisguiseDependency; import me.NoChance.PvPManager.Dependencies.Hook; +import me.NoChance.PvPManager.Dependencies.API.BaseDependency; +import me.NoChance.PvPManager.Dependencies.API.DisguiseDependency; import me.chancesd.sdutils.utils.Log; import me.libraryaddict.disguise.DisguiseAPI; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPI.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPI.java index 3e221f1e5..125a3b1c9 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPI.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPI.java @@ -59,7 +59,7 @@ public String onPlaceholderRequest(final Player player, final String identifier) return String.valueOf(p.getNewbieTimeLeft() / 1000); case "pvp_command_timeleft": final int timeLeft = CombatUtils.getTimeLeft(p.getToggleTime(), Settings.getToggleCooldown()); - return String.valueOf(timeLeft > 0 ? timeLeft : 0); + return String.valueOf(Math.max(timeLeft, 0)); case "current_enemy": final PvPlayer pPlayer = p.getEnemy(); return pPlayer != null ? pPlayer.getName() : "None"; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPIHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPIHook.java index 4c5e8dc48..095cbb228 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPIHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPIHook.java @@ -1,13 +1,13 @@ package me.NoChance.PvPManager.Dependencies.Hooks; import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.DependencyException; import me.NoChance.PvPManager.Dependencies.Hook; +import me.NoChance.PvPManager.Dependencies.API.BaseDependency; public class PlaceHolderAPIHook extends BaseDependency { - final PlaceHolderAPI placeHolderAPI; + private final PlaceHolderAPI placeHolderAPI; public PlaceHolderAPIHook(final Hook hook) { super(hook); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java index 2f0d67a67..cda83a7a1 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java @@ -2,7 +2,6 @@ import org.bukkit.entity.Player; -import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.DependencyException; import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.GroupDependency; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/VaultHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/VaultHook.java index e6fc6e7f0..fd88dc684 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/VaultHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/VaultHook.java @@ -3,9 +3,9 @@ import org.bukkit.Bukkit; import org.bukkit.plugin.RegisteredServiceProvider; -import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.DependencyException; import me.NoChance.PvPManager.Dependencies.Hook; +import me.NoChance.PvPManager.Dependencies.API.BaseDependency; import net.milkbowl.vault.economy.Economy; public class VaultHook extends BaseDependency { @@ -19,13 +19,10 @@ public VaultHook(final Hook hook) { private Economy setupEconomy() { final RegisteredServiceProvider economyProvider = Bukkit.getServicesManager().getRegistration(Economy.class); - Economy eco = null; - if (economyProvider != null) { - eco = economyProvider.getProvider(); - } else { + if (economyProvider != null) + return economyProvider.getProvider(); + else throw new DependencyException("Error loading Vault! No Economy plugin found", Hook.VAULT); - } - return eco; } @Override diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java index 78fb91145..12ef81827 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java @@ -14,14 +14,14 @@ import com.sk89q.worldguard.protection.flags.StateFlag.State; import com.sk89q.worldguard.protection.regions.ProtectedRegion; -import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.DependencyException; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.WorldGuardHook; +import me.NoChance.PvPManager.Dependencies.API.BaseDependency; +import me.NoChance.PvPManager.Dependencies.API.WorldGuardDependency; import me.NoChance.PvPManager.Listeners.WGListenerLegacy; import me.NoChance.PvPManager.Managers.PlayerHandler; -public class WorldGuardLegacyHook extends BaseDependency implements WorldGuardHook { +public class WorldGuardLegacyHook extends BaseDependency implements WorldGuardDependency { private RegionQuery regionQuery; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java index a8abd8016..8839f08d7 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java @@ -13,17 +13,17 @@ import com.sk89q.worldguard.protection.regions.RegionQuery; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.WorldGuardHook; +import me.NoChance.PvPManager.Dependencies.API.BaseDependency; +import me.NoChance.PvPManager.Dependencies.API.WorldGuardDependency; import me.NoChance.PvPManager.Listeners.WGListener; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; -public class WorldGuardModernHook extends BaseDependency implements WorldGuardHook, ForceToggleDependency { +public class WorldGuardModernHook extends BaseDependency implements WorldGuardDependency, ForceToggleDependency { private final RegionQuery regionQuery; @@ -85,11 +85,11 @@ public boolean shouldDisable(final Player player) { } @Override - public boolean shouldDisable(final Player damager, final Player defender, final CancelResult reason) { + public boolean shouldDisable(final Player damager, final Player defender, final ProtectionResult reason) { if (hasAllowPvPFlag(defender) || containsRegionsAt(defender.getLocation(), Settings.getWorldguardOverridesList())) { final PvPlayer attacker = PvPlayer.get(damager); final PvPlayer attacked = PvPlayer.get(defender); - if (reason == CancelResult.PVPDISABLED) { + if (reason == ProtectionResult.PVPDISABLED) { disablePvP(attacker); disablePvP(attacked); } else { 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 be0b06ee1..330152b47 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 @@ -10,8 +10,8 @@ import org.bukkit.Bukkit; import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.Dependencies.Dependency; import me.NoChance.PvPManager.Dependencies.Hook; +import me.NoChance.PvPManager.Dependencies.API.Dependency; import me.NoChance.PvPManager.Settings.Settings; import me.chancesd.sdutils.metrics.Metrics; @@ -36,7 +36,7 @@ public String call() { metrics.addCustomChart(new Metrics.DrilldownPie("features", new Callable>>() { @Override - public Map> call() throws Exception { + public Map> call() { final Map> map = new HashMap<>(); map.put("Newbie Protection", getMapEntry(Settings.isNewbieProtectionEnabled() ? "Enabled" : "Disabled")); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java index be7a5a6fc..630aa04f3 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java @@ -24,9 +24,9 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.WorldGuardHook; +import me.NoChance.PvPManager.Dependencies.API.WorldGuardDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.setting.Permissions; @@ -35,12 +35,12 @@ public class DebugEntityListener implements Listener { private final PlayerHandler ph; - private final WorldGuardHook wg; + private final WorldGuardDependency wg; private final Cache lightningCache = CacheBuilder.newBuilder().expireAfterWrite(2, TimeUnit.SECONDS).build(); public DebugEntityListener(final PlayerHandler ph) { this.ph = ph; - this.wg = (WorldGuardHook) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); + this.wg = (WorldGuardDependency) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); } private String getEntityNames(final EntityDamageByEntityEvent event) { @@ -84,7 +84,7 @@ public final void onPlayerDamage(final EntityDamageByEntityEvent event) { final Player attacker = getAttacker(event.getDamager()); final Player attacked = (Player) event.getEntity(); - final CancelResult result = ph.tryCancel(attacker, attacked); + final ProtectionResult result = ph.tryCancel(attacker, attacked); if (result.isProtected()) { event.setCancelled(true); @@ -99,7 +99,7 @@ public final void onPlayerDamageOverride(final EntityDamageByEntityEvent event) if (!CombatUtils.isPvP(event) || CombatUtils.isWorldExcluded(event.getEntity().getWorld().getName()) || !event.isCancelled()) return; - if (ph.tryCancel(getAttacker(event.getDamager()), (Player) event.getEntity()).equals(CancelResult.FAIL_OVERRIDE)) { + if (ph.tryCancel(getAttacker(event.getDamager()), (Player) event.getEntity()).equals(ProtectionResult.FAIL_OVERRIDE)) { event.setCancelled(false); Log.debug("Force allowing PvP even though a plugin blocked it because a player has override or Vulnerable is enabled"); } else { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java index 540ca3c77..c430677f5 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java @@ -35,23 +35,24 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.WorldGuardHook; +import me.NoChance.PvPManager.Dependencies.API.WorldGuardDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.setting.Permissions; +import me.NoChance.PvPManager.Utils.MCVersion; public class EntityListener implements Listener { private final PlayerHandler ph; - private final WorldGuardHook wg; + private final WorldGuardDependency wg; private final Cache lightningCache = CacheBuilder.newBuilder().expireAfterWrite(2, TimeUnit.SECONDS).build(); public EntityListener(final PlayerHandler ph) { this.ph = ph; - this.wg = (WorldGuardHook) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); + this.wg = (WorldGuardDependency) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); } @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) @@ -78,7 +79,7 @@ public final void onPlayerDamage(final EntityDamageByEntityEvent event) { final Player attacker = getAttacker(event.getDamager()); final Player attacked = (Player) event.getEntity(); - final CancelResult result = ph.tryCancel(attacker, attacked); + final ProtectionResult result = ph.tryCancel(attacker, attacked); if (result.isProtected()) { event.setCancelled(true); @@ -91,7 +92,7 @@ public final void onPlayerDamageOverride(final EntityDamageByEntityEvent event) if (!CombatUtils.isPvP(event) || CombatUtils.isWorldExcluded(event.getEntity().getWorld().getName()) || !event.isCancelled()) return; - if (ph.tryCancel(getAttacker(event.getDamager()), (Player) event.getEntity()).equals(CancelResult.FAIL_OVERRIDE)) { + if (ph.tryCancel(getAttacker(event.getDamager()), (Player) event.getEntity()).equals(ProtectionResult.FAIL_OVERRIDE)) { event.setCancelled(false); } } @@ -188,7 +189,7 @@ public final void onPotionSplash(final PotionSplashEvent event) { continue; } final Player attacked = (Player) e; - final CancelResult result = ph.tryCancel(player, attacked); + final ProtectionResult result = ph.tryCancel(player, attacked); if (result.isProtected()) { event.setIntensity(attacked, 0); @@ -232,7 +233,7 @@ private boolean shouldCheckPotionEvent(final PotionSplashEvent event) { public void onLightningStrike(final LightningStrikeEvent event) { if (CombatUtils.isWorldExcluded(event.getLightning().getWorld().getName())) return; - if (!CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.13.1")) + if (!CombatUtils.isMCVersionAtLeast(MCVersion.V1_13_1)) return; if (event.getCause() != Cause.TRIDENT) return; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java index 73572aa26..3a386ea24 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java @@ -27,7 +27,7 @@ import com.google.common.cache.CacheBuilder; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; @@ -71,7 +71,7 @@ public final void onLingeringPotionSplash(final AreaEffectCloudApplyEvent event) continue; } final Player attacked = (Player) e; - final CancelResult result = ph.tryCancel(player, attacked); + final ProtectionResult result = ph.tryCancel(player, attacked); if (result.isProtected()) { toRemove.add(e); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener.java index f636946dd..2c7e05c37 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener.java @@ -14,7 +14,7 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.RegionDependency; +import me.NoChance.PvPManager.Dependencies.API.RegionDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Settings.Messages; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java index 4e57e3608..49d7bf8ea 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java @@ -15,7 +15,8 @@ import com.google.common.cache.CacheBuilder; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.DependencyManager; +import me.NoChance.PvPManager.Dependencies.Hook; +import me.NoChance.PvPManager.Dependencies.API.RegionDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Utils.CombatUtils; 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 5f7f50f57..21897f88d 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java @@ -2,9 +2,12 @@ import me.chancesd.pvpmanager.world.CombatWorld; import me.chancesd.sdutils.utils.Log; +import java.util.UUID; +import java.util.concurrent.TimeUnit; import java.util.Set; +import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; @@ -30,30 +33,37 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerToggleFlightEvent; import org.bukkit.inventory.ItemStack; + +import com.google.common.cache.Cache; +import com.google.common.cache.CacheBuilder; + import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.WorldGuardHook; +import me.NoChance.PvPManager.Dependencies.API.WorldGuardDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.CancelResult; +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.setting.Permissions; import me.chancesd.pvpmanager.utils.ScheduleUtils; +import me.NoChance.PvPManager.Utils.MCVersion; @SuppressWarnings("deprecation") public class PlayerListener implements Listener { private final PlayerHandler ph; - private final WorldGuardHook wg; + private final WorldGuardDependency wg; private Material mushroomSoup; + private final Cache msgCooldown = CacheBuilder.newBuilder().weakValues().expireAfterWrite(800, TimeUnit.MILLISECONDS).build(); public PlayerListener(final PlayerHandler ph) { this.ph = ph; - this.wg = (WorldGuardHook) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); - if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.13")) { + this.wg = (WorldGuardDependency) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); + if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_13)) { mushroomSoup = Material.MUSHROOM_STEW; - } else if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.0")) { // avoid loading Material class on unit tests + } else if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_8)) { // avoid loading Material class on unit tests mushroomSoup = Material.getMaterial("MUSHROOM_SOUP"); } } @@ -79,10 +89,20 @@ public final void onToggleFlight(final PlayerToggleFlightEvent event) { @EventHandler(ignoreCancelled = true) public final void onPlayerEat(final PlayerItemConsumeEvent event) { - if (Settings.isBlockEat() && ph.get(event.getPlayer()).isInCombat() && event.getItem().getType().isEdible()) { + final Material type = event.getItem().getType(); + final PvPlayer player = ph.get(event.getPlayer()); + if (Settings.isBlockEat() && player.isInCombat() && type.isEdible()) { event.setCancelled(true); ph.get(event.getPlayer()).sendActionBar(Messages.getEatBlockedInCombat(), 1000); } + if (Settings.getItemCooldowns().containsKey(type)) { + if (player.hasItemCooldown(type)) { + event.setCancelled(true); + player.message(Messages.getItemCooldown(player.getItemCooldown(type))); + return; + } + player.setItemCooldown(type, Settings.getItemCooldowns().get(type)); + } } @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) @@ -95,7 +115,7 @@ public final void onPlayerKick(final PlayerKickEvent event) { final PvPlayer pvPlayer = ph.get(player); if (pvPlayer.isInCombat()) { - ph.untag(pvPlayer); + pvPlayer.unTag(); } } @@ -138,7 +158,7 @@ public final void onPlayerDeath(final PlayerDeathEvent event) { if (Settings.isUntagEnemy()) { enemies.forEach(enemy -> enemy.removeEnemy(pvPlayer)); } - ph.untag(pvPlayer); + pvPlayer.unTag(); } // Let's process player's inventory/exp according to config file @@ -172,14 +192,15 @@ public final void onPlayerUseSoup(final PlayerInteractEvent e) { return; final ItemStack i = player.getItemInHand(); - if (Settings.isAutoSoupEnabled() && i.getType() == mushroomSoup) { + final Material type = i.getType(); + if (Settings.isAutoSoupEnabled() && type == mushroomSoup) { if (player.getHealth() == player.getMaxHealth()) return; player.setHealth( player.getHealth() + Settings.getSoupHealth() > player.getMaxHealth() ? player.getMaxHealth() : player.getHealth() + Settings.getSoupHealth()); if (Settings.isSoupBowlDisappear()) { - if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.9")) { + if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_9)) { player.getInventory().getItemInMainHand().setAmount(0); } else { player.getInventory().setItemInHand(null); @@ -189,6 +210,19 @@ public final void onPlayerUseSoup(final PlayerInteractEvent e) { i.setType(Material.BOWL); } } + final PvPlayer pvplayer = ph.get(player); + if ((e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_AIR) && Settings.getItemCooldowns().containsKey(type)) { + if (pvplayer.hasItemCooldown(type)) { + final String msg = Messages.getItemCooldown(pvplayer.getItemCooldown(type)); + if (!msg.equals(msgCooldown.getIfPresent(player.getUniqueId()))) { + pvplayer.message(msg); + msgCooldown.put(player.getUniqueId(), msg); + } + e.setCancelled(true); + } else if (!type.isEdible()) { + Bukkit.getScheduler().runTask(ph.getPlugin(), () -> pvplayer.setItemCooldown(type, Settings.getItemCooldowns().get(type))); + } + } } @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) // cancel on low since some plugins check cancels on normal instead of monitor @@ -248,7 +282,6 @@ public final void onPlayerJoin(final PlayerJoinEvent event) { Messages.sendQueuedMsgs(pvPlayer); } }); - } @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) @@ -264,8 +297,8 @@ public final void onPlayerTeleport(final PlayerTeleportEvent event) { if (event.getCause().equals(TeleportCause.ENDER_PEARL) && Settings.isBlockEnderPearl()) { event.setCancelled(true); pvplayer.message(Messages.getEnderpearlBlockedIncombat()); - } else if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.9") && event.getCause() == TeleportCause.CHORUS_FRUIT - && Settings.isBlockChorusFruit()) { + } else if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_9) && event.getCause() == TeleportCause.CHORUS_FRUIT + && Settings.isBlockChorusFruit()) { event.setCancelled(true); pvplayer.message(Messages.getChorusBlockedInCombat()); } else if (event.getCause().equals(TeleportCause.COMMAND) && Settings.isBlockTeleport()) { @@ -302,7 +335,7 @@ public final void onPlayerFish(final PlayerFishEvent event) { if (event.getState() == State.CAUGHT_ENTITY && event.getCaught() instanceof Player) { final Player caught = (Player) event.getCaught(); - final CancelResult result = ph.tryCancel(player, caught); + final ProtectionResult result = ph.tryCancel(player, caught); if (result.isProtected()) { event.setCancelled(true); Messages.messageProtection(result, player, caught); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java index eb246033b..5c9da8beb 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java @@ -6,7 +6,7 @@ import com.sk89q.worldguard.bukkit.protection.events.DisallowedPVPEvent; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.chancesd.sdutils.utils.Log; public class WGListener implements Listener { @@ -21,7 +21,7 @@ public WGListener(final PlayerHandler ph) { public final void onWGPvPCancel(final DisallowedPVPEvent event) { // NO_UCD if (event.getAttacker().hasMetadata("NPC") || event.getDefender().hasMetadata("NPC")) return; - if (ph.tryCancel(event.getAttacker(), event.getDefender()) == CancelResult.FAIL_OVERRIDE) { + if (ph.tryCancel(event.getAttacker(), event.getDefender()) == ProtectionResult.FAIL_OVERRIDE) { event.setCancelled(true); Log.debug("Force allowing PvP even though WorldGuard blocked it because a player has override or Vulnerable is enabled"); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java index 0dfadcfff..7eafd4886 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java @@ -6,7 +6,7 @@ import com.sk89q.worldguard.protection.events.DisallowedPVPEvent; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.chancesd.sdutils.utils.Log; public class WGListenerLegacy implements Listener { @@ -21,7 +21,7 @@ public WGListenerLegacy(final PlayerHandler ph) { public final void onWGPvPCancel(final DisallowedPVPEvent event) { // NO_UCD if (event.getAttacker().hasMetadata("NPC") || event.getDefender().hasMetadata("NPC")) return; - if (ph.tryCancel(event.getAttacker(), event.getDefender()) == CancelResult.FAIL_OVERRIDE) { + if (ph.tryCancel(event.getAttacker(), event.getDefender()) == ProtectionResult.FAIL_OVERRIDE) { event.setCancelled(true); Log.debug("Force allowing PvP even though WorldGuard blocked it because a player has override or Vulnerable is enabled"); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java index 3e73580fc..ed3cba6ca 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java @@ -24,8 +24,18 @@ import me.NoChance.PvPManager.Dependencies.RegionDependency; import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; import me.NoChance.PvPManager.Dependencies.WorldGuardHook; +import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; +import me.NoChance.PvPManager.Dependencies.Hook; +import me.NoChance.PvPManager.Dependencies.API.BaseDependency; +import me.NoChance.PvPManager.Dependencies.API.Dependency; +import me.NoChance.PvPManager.Dependencies.API.DisguiseDependency; +import me.NoChance.PvPManager.Dependencies.API.GodDependency; +import me.NoChance.PvPManager.Dependencies.API.PvPDependency; +import me.NoChance.PvPManager.Dependencies.API.RegionDependency; +import me.NoChance.PvPManager.Dependencies.API.WorldGuardDependency; import me.NoChance.PvPManager.Dependencies.Hooks.EssentialsHook; import me.NoChance.PvPManager.Dependencies.Hooks.KingdomsXHook; +import me.NoChance.PvPManager.Dependencies.Hooks.GriefPreventionHook; import me.NoChance.PvPManager.Dependencies.Hooks.LibsDisguisesHook; import me.NoChance.PvPManager.Dependencies.Hooks.PlaceHolderAPIHook; import me.NoChance.PvPManager.Dependencies.Hooks.SimpleClansHook; @@ -35,7 +45,7 @@ import me.NoChance.PvPManager.Dependencies.Hooks.WorldGuardModernHook; import me.NoChance.PvPManager.Listeners.MoveListener; import me.NoChance.PvPManager.Listeners.MoveListener1_9; -import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; @@ -53,11 +63,6 @@ public class DependencyManager { private final ArrayList afkChecks = new ArrayList<>(); public DependencyManager() { - if (Bukkit.getPluginManager().getPlugin("GriefPrevention") != null) { - Log.warning("GriefPrevention has been detected. GriefPrevention has some combat features without showing any feedback messages. " - + "Make sure to disable Punish Logout and set tag time to 0 seconds in GP config. " - + "Issues with those features often get wrongly blamed on PvPManager and cause conflicts due to the lack of GP feedback messages."); - } if (Bukkit.getPluginManager().getPlugin("TAB") != null && Settings.useNameTag()) { Log.info("TAB detected. If you want nametags to change while in combat, set 'anti-override' to false in TAB's config." + " (Doing that will prevent TAB from changing nametags)"); @@ -138,6 +143,9 @@ private void attemptHookingInto(final Hook hook) { case KINGDOMSX: registerDependency(new KingdomsXHook(hook)); break; + case GRIEFPREVENTION: + registerDependency(new GriefPreventionHook(hook)); + break; default: registerDependency(new BaseDependency(hook)); break; @@ -175,7 +183,7 @@ public final void disableDisguise(final Player p) { } } - public final boolean shouldDisableProtection(final Player attacker, final Player defender, final CancelResult reason) { + public final boolean shouldDisableProtection(final Player attacker, final Player defender, final ProtectionResult reason) { for (final ForceToggleDependency togglePvPPlugin : togglePvPChecks) { if (togglePvPPlugin.shouldDisable(attacker, defender, reason)) return true; @@ -193,9 +201,9 @@ public final boolean shouldProtectAFK(final Player player) { public void startListeners(final PvPManager plugin) { if (Settings.borderHoppingPushback() && !regionChecks.isEmpty()) { - if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.9")) { - Bukkit.getPluginManager().registerEvents(new MoveListener1_9(plugin.getPlayerHandler(), this), plugin); - } else if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.8")) { + if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_9)) { + Bukkit.getPluginManager().registerEvents(new MoveListener1_9(plugin.getPlayerHandler()), plugin); + } else if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_8)) { Bukkit.getPluginManager().registerEvents(new MoveListener(plugin.getPlayerHandler()), plugin); } else { Log.warning("Pushback on border hopping not available for 1.7.10 or below! Feature disabled!"); @@ -203,7 +211,7 @@ public void startListeners(final PvPManager plugin) { } } if (isDependencyEnabled(Hook.WORLDGUARD)) { - ((WorldGuardHook) getDependency(Hook.WORLDGUARD)).startListener(plugin.getPlayerHandler()); + ((WorldGuardDependency) getDependency(Hook.WORLDGUARD)).startListener(plugin.getPlayerHandler()); } } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DisplayManager.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DisplayManager.java index 711df727f..ac52679ba 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DisplayManager.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DisplayManager.java @@ -60,6 +60,7 @@ public void showProgress(final PvPlayer p, final double timePassed, final int go p.sendActionBar(ChatUtils.setPlaceholders(p.getPlayer(), progressBar.getMessage())); } + @NonNull public PvPManager getPlugin() { return plugin; } 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 68e798845..cb2567838 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java @@ -1,6 +1,7 @@ package me.NoChance.PvPManager.Managers; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.UUID; @@ -11,6 +12,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.inventory.ItemStack; +import org.bukkit.scoreboard.Objective; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.Team; import org.jetbrains.annotations.NotNull; @@ -19,6 +21,7 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Events.PlayerCombatLogEvent; import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Tasks.CleanKillersTask; import me.NoChance.PvPManager.Tasks.PvPToggleFeeTask; @@ -55,32 +58,32 @@ public PlayerHandler(final PvPManager plugin) { addOnlinePlayers(); } - public final CancelResult tryCancel(final Player damager, final Player defender) { + public final ProtectionResult tryCancel(final Player damager, final Player defender) { final PvPlayer attacker = get(damager); final PvPlayer attacked = get(defender); if (attacker.hasOverride() || Settings.borderHoppingVulnerable() && canAttackHooks(attacker, attacked)) - return CancelResult.FAIL_OVERRIDE; + return ProtectionResult.FAIL_OVERRIDE; if (!Settings.isGlobalStatus()) - return CancelResult.GLOBAL_PROTECTION; + return ProtectionResult.GLOBAL_PROTECTION; if (!attacked.getCombatWorld().isCombatAllowed()) - return CancelResult.WORLD_PROTECTION; + return ProtectionResult.WORLD_PROTECTION; if (attacked.hasRespawnProtection() || attacker.hasRespawnProtection()) - return CancelResult.RESPAWN_PROTECTION.setAttackerCaused(attacker.hasRespawnProtection()); + return ProtectionResult.RESPAWN_PROTECTION.setAttackerCaused(attacker.hasRespawnProtection()); if (attacked.isNewbie() || attacker.isNewbie()) { - if (dependencyManager.shouldDisableProtection(damager, defender, CancelResult.NEWBIE)) - return CancelResult.FAIL_PLUGIN_HOOK; - return CancelResult.NEWBIE.setAttackerCaused(attacker.isNewbie()); + if (dependencyManager.shouldDisableProtection(damager, defender, ProtectionResult.NEWBIE)) + return ProtectionResult.FAIL_PLUGIN_HOOK; + return ProtectionResult.NEWBIE.setAttackerCaused(attacker.isNewbie()); } if (!attacker.hasPvPEnabled() || !attacked.hasPvPEnabled()) { - if (dependencyManager.shouldDisableProtection(damager, defender, CancelResult.PVPDISABLED)) - return CancelResult.FAIL_PLUGIN_HOOK; - return CancelResult.PVPDISABLED.setAttackerCaused(!attacker.hasPvPEnabled()); + if (dependencyManager.shouldDisableProtection(damager, defender, ProtectionResult.PVPDISABLED)) + return ProtectionResult.FAIL_PLUGIN_HOOK; + return ProtectionResult.PVPDISABLED.setAttackerCaused(!attacker.hasPvPEnabled()); } if (dependencyManager.shouldProtectAFK(defender)) - return CancelResult.AFK_PROTECTION; + return ProtectionResult.AFK_PROTECTION; - return CancelResult.FAIL; + return ProtectionResult.FAIL; } /** @@ -95,8 +98,7 @@ public final CancelResult tryCancel(final Player damager, final Player defender) * @return true if the attack didn't get blocked or if it got override, otherwise false */ public final boolean canAttack(final Player attacker, final Player defender) { - final CancelResult cr = tryCancel(attacker, defender); - return cr.canAttack(); + return tryCancel(attacker, defender).canAttack(); } private boolean canAttackHooks(final PvPlayer attacker, final PvPlayer defender) { @@ -106,7 +108,7 @@ private boolean canAttackHooks(final PvPlayer attacker, final PvPlayer defender) } /** - * @param player + * @param player the player instance * @return PvPlayer instance for the provided player */ @NotNull @@ -222,15 +224,15 @@ private void addOnlinePlayers() { public void handlePluginDisable() { tagTask.cancel(); - for (final PvPlayer p : players.values()) { - p.cleanForRemoval(); + for (final PvPlayer p : new HashSet<>(players.values())) { + removeUser(p); } removeTeams(); Log.infoColor(ChatColor.RED + "Saving player data to storage..."); PvPlayer.shutdownExecutorAndWait(); } - private final void removeTeams() { + private void removeTeams() { final Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard(); final Team pvpon = scoreboard.getTeam("PvPOn"); if (pvpon != null) { @@ -240,14 +242,18 @@ private final void removeTeams() { if (pvpoff != null) { pvpoff.unregister(); } + final Objective health = scoreboard.getObjective("PvP_Health"); + if (health != null) { + health.unregister(); + } } // TODO replace untag and tag with gettagtask - public final void untag(final PvPlayer p) { + public final void removeFromTagTask(final PvPlayer p) { tagTask.untag(p); } - public final void tag(final PvPlayer p) { + public final void addToTagTask(final PvPlayer p) { tagTask.addTagged(p); } @@ -259,6 +265,7 @@ public final Set getPlayersInCombat() { return tagTask.getTaggedPlayers(); } + @NotNull public final PvPManager getPlugin() { return plugin; } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java index 50d61315d..3525e0ebe 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java @@ -7,8 +7,8 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; -import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; +import me.NoChance.PvPManager.Utils.MCVersion; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.TextComponent; @@ -25,6 +25,7 @@ protected BasePlayer(final Player player) { this.uuid = player.getUniqueId(); } + @NotNull public final Player getPlayer() { return player; } @@ -39,7 +40,7 @@ public final UUID getUUID() { } public final boolean isOnline() { - return getPlayer() != null; + return CombatUtils.isOnline(uuid); } public CombatWorld getCombatWorld() { @@ -73,8 +74,8 @@ public final void message(final String message) { public void sendActionBar(final String message, final long duration) { if (System.currentTimeMillis() < actionBarCooldown || message.isEmpty() || message.equals(lastActionBarMessage)) return; - if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.10")) { // Premium PvPManager supports lower versions with NMS - if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.16.5")) { + if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_10)) { // Premium PvPManager supports lower versions with NMS + if (CombatUtils.isMCVersionAtLeast("1.16.5")) { getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message)); } else { getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(message)); @@ -98,4 +99,16 @@ public String toString() { return "PvPlayer[" + getName() + ", " + uuid + "]"; } + @Override + public boolean equals(final Object obj) { + if (!(obj instanceof BasePlayer)) + return false; + return uuid.equals(((BasePlayer) obj).getUUID()); + } + + @Override + public int hashCode() { + return uuid.hashCode(); + } + } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/EcoPlayer.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/EcoPlayer.java index 9c0b4ec50..581572a9a 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/EcoPlayer.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/EcoPlayer.java @@ -56,10 +56,10 @@ public final void giveReward(final EcoPlayer victim) { moneyWon = vbalance; } victim.withdrawMoney(moneyWon); - victim.message(Messages.getMoneySteal().replace("%p", getPlayer().getName()).replace("%m", CombatUtils.formatTo2Digits(moneyWon))); + victim.message(Messages.getMoneySteal(getPlayer().getName(), CombatUtils.formatTo2Digits(moneyWon))); } depositMoney(moneyWon); - message(Messages.getMoneyReward().replace("%m", CombatUtils.formatTo2Digits(moneyWon)).replace("%p", victim.getPlayer().getName())); + message(Messages.getMoneyReward(victim.getPlayer().getName(), CombatUtils.formatTo2Digits(moneyWon))); } private double getMoneyPercentage(final double percentage) { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/CancelResult.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionResult.java similarity index 83% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Player/CancelResult.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionResult.java index cf2fa30f5..56b94c9d7 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/CancelResult.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionResult.java @@ -1,6 +1,6 @@ package me.NoChance.PvPManager.Player; -public enum CancelResult { +public enum ProtectionResult { NEWBIE, PVPDISABLED, RESPAWN_PROTECTION, FAIL, FAIL_PLUGIN_HOOK, FAIL_OVERRIDE, WORLD_PROTECTION, AFK_PROTECTION, GLOBAL_PROTECTION; private boolean isAttacker; @@ -10,7 +10,8 @@ public boolean attackerCaused() { return isAttacker; } - public CancelResult setAttackerCaused(final boolean attacker) { + // Must not be set async + public ProtectionResult setAttackerCaused(final boolean attacker) { isAttacker = attacker; return this; } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java index 2eaff5789..35ee5f4fb 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java @@ -34,6 +34,7 @@ import me.chancesd.pvpmanager.managers.StorageManager; import me.chancesd.pvpmanager.managers.UpdateManager; import me.chancesd.pvpmanager.utils.ScheduleUtils; +import me.NoChance.PvPManager.Utils.MCVersion; public class PvPManager extends JavaPlugin { @@ -91,7 +92,7 @@ private void loadFiles() { } private void startListeners() { - if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.9")) { + if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_9)) { registerListener(new EntityListener1_9(playerHandler)); } entityListener = new EntityListener(playerHandler); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java index 1b3edd0bc..e7be9f90b 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java @@ -9,6 +9,7 @@ import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.Material; import org.bukkit.entity.Player; import org.jetbrains.annotations.Nullable; @@ -22,6 +23,7 @@ import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Tasks.NewbieTask; +import me.NoChance.PvPManager.Utils.ChatUtils; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.player.nametag.BukkitNameTag; import me.chancesd.pvpmanager.player.nametag.NameTag; @@ -52,6 +54,7 @@ public class PvPlayer extends EcoPlayer { private PvPlayer enemy; private final Set lastHitters = new HashSet<>(); private final HashMap victim = new HashMap<>(); + private final HashMap itemCooldown = new HashMap<>(); private final PvPManager plugin; private NameTag nametag; private static ExecutorService executor; @@ -72,8 +75,8 @@ public final long getToggleTime() { public final boolean hasToggleCooldownPassed() { if (!CombatUtils.hasTimePassed(toggleTime, Settings.getToggleCooldown()) && !getPlayer().hasPermission("pvpmanager.pvpstatus.nocooldown")) { final long secondsLeft = CombatUtils.getTimeLeft(toggleTime, Settings.getToggleCooldown()); - message(Messages.getErrorPvpCooldown().replace("%m", Long.toString(secondsLeft <= 60 ? secondsLeft : secondsLeft - secondsLeft / 60 * 60)) - .replace("%t", Long.toString(secondsLeft <= 60 ? 0 : secondsLeft / 60))); + message(Messages.getErrorPvpCooldown().replace("%m", Long.toString(secondsLeft <= 60 ? secondsLeft : secondsLeft - secondsLeft / 60 * 60)).replace("%t", + Long.toString(secondsLeft <= 60 ? 0 : secondsLeft / 60))); // TODO use replaceTime return false; } return true; @@ -132,8 +135,8 @@ public final void disableFly() { public final void setNewbie(final boolean newbie) { if (newbie) { - message(Messages.getNewbieProtection().replace("%", Integer.toString(Settings.getNewbieProtectionTime()))); this.newbieTask = new NewbieTask(this, 0); + message(Messages.getNewbieProtection(newbieTask.getFinishTime())); } else if (this.newbie && newbieTask != null) { if (newbieTask.isExpired()) { message(Messages.getNewbieProtectionEnd()); @@ -165,7 +168,7 @@ public final void setTagged(final boolean attacker, final PvPlayer tagger, final if (event.isCancelled()) return; - if (Settings.isGlowingInCombat() && CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.9")) { + if (Settings.isGlowingInCombat() && CombatUtils.isMCVersionAtLeast(MCVersion.V1_9)) { getPlayer().setGlowing(true); } @@ -173,17 +176,21 @@ public final void setTagged(final boolean attacker, final PvPlayer tagger, final executor.execute(nametag::setInCombat); } + final String message; + final String actionBarMessage; if (attacker) { - message(Messages.getTaggedAttacker().replace("%p", tagger.getName())); - sendActionBar(Messages.getTaggedAttackerABar().replace("%p", tagger.getName()), 400); + message = Messages.getTaggedAttacker(tagger.getName()); + actionBarMessage = Messages.getTaggedAttackerABar(tagger.getName()); } else { - message(Messages.getTaggedDefender().replace("%p", tagger.getName())); - sendActionBar(Messages.getTaggedDefenderABar().replace("%p", tagger.getName()), 400); + message = Messages.getTaggedDefender(tagger.getName()); + actionBarMessage = Messages.getTaggedDefenderABar(tagger.getName()); } + message(message); + sendActionBar(actionBarMessage, 400); this.tagged = true; this.totalTagTime = timeMiliseconds; - plugin.getPlayerHandler().tag(this); + plugin.getPlayerHandler().addToTagTask(this); } public final void setTagged(final boolean attacker, final PvPlayer tagger) { @@ -198,7 +205,7 @@ public final void unTag() { if (nametag != null && Settings.useNameTag()) { nametag.restoreNametag(); } - if (Settings.isGlowingInCombat() && CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.9")) { + if (Settings.isGlowingInCombat() && CombatUtils.isMCVersionAtLeast(MCVersion.V1_9)) { getPlayer().setGlowing(false); // effect should pass by itself but now players can get untagged before tag expires } @@ -208,6 +215,7 @@ public final void unTag() { this.lastHitters.clear(); this.tagged = false; + plugin.getPlayerHandler().removeFromTagTask(this); } public final void setPvP(final boolean pvpState) { @@ -244,6 +252,9 @@ public final void addVictim(final Player victimPlayer) { totalKills++; victim.put(victimName, totalKills); } + if (Settings.isKillAbuseWarn() && totalKills + 1 == Settings.getKillAbuseMaxKills()) { + message(Messages.getKillAbuseWarning()); + } if (totalKills >= Settings.getKillAbuseMaxKills()) { unTag(); CombatUtils.executeCommands(Settings.getKillAbuseCommands(), getPlayer(), getName(), victimName); @@ -262,6 +273,29 @@ public final void addVictim(final Player victimPlayer) { public final int getKillAbuseCount(final Player victimPlayer) { return victim.getOrDefault(victimPlayer.getName(), 0); } + + public final boolean hasItemCooldown(final Material material) { + final Long time = itemCooldown.get(material); + if (time == null) + return false; + if (System.currentTimeMillis() > time) { + itemCooldown.remove(material); + return false; + } + return true; + } + + public final void setItemCooldown(@NonNull final Material material, final int time) { + itemCooldown.put(material, System.currentTimeMillis() + time * 1000); + if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_11_2)) { + getPlayer().setCooldown(material, time * 20); + } + } + + @Nullable + public final Long getItemCooldown(final Material material) { + return itemCooldown.get(material); + } public final void clearVictims() { victim.clear(); @@ -424,7 +458,7 @@ public static void startExecutor() { } /** - * @param player + * @param player the player instance * @return PvPlayer instance for the provided player */ public static PvPlayer get(final Player player) { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java index fab060b28..5dbe2aae9 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java @@ -8,7 +8,8 @@ import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; -import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; +import java.time.temporal.ChronoUnit; import java.util.Enumeration; import java.util.LinkedList; import java.util.Properties; @@ -20,7 +21,7 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Utils.ChatUtils; import me.chancesd.sdutils.utils.Log; @@ -98,6 +99,14 @@ public class Messages { private static String disabled; private static String pvpDisabledFee; private static String pvpFeeNotEnough; + private static String killAbuseWarning; + private static String timeDays; + private static String timeHours; + private static String timeMinutes; + private static String timeSeconds; + private static String timeNow; + private static String itemCooldown; + private static String prefix; public static void setup(final PvPManager plugin) { Messages.plugin = plugin; @@ -149,18 +158,13 @@ private static void load() { } @NotNull - public static String getString(final String key) { - String message; - try { - message = new String(LANG.getProperty(key).getBytes("ISO-8859-1"), "UTF-8"); - } catch (final UnsupportedEncodingException e1) { - e1.printStackTrace(); - return "Encoding error! Please report this bug!"; - } - return ChatUtils.colorize(message); + private static String getString(final String key) { + final String message = new String(LANG.getProperty(key).getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); + return ChatUtils.colorize(message).replace("%prefix%", Messages.getPrefix()); } private static void getMessages() { + prefix = getString("Prefix"); otherStatusEnabled = getString("Other_Status_Enabled"); othersStatusDisabled = getString("Others_Status_Disabled"); pvpDisabled = getString("PvP_Disabled"); @@ -225,6 +229,13 @@ private static void getMessages() { pvpForceEnabledWG = getString("PvP_Force_Enabled_WorldGuard"); enabled = getString("Enabled"); disabled = getString("Disabled"); + killAbuseWarning = getString("Kill_Abuse_Warning"); + timeDays = getString("Time_Days"); + timeHours = getString("Time_Hours"); + timeMinutes = getString("Time_Minutes"); + timeSeconds = getString("Time_Seconds"); + timeNow = getString("Time_Now"); + itemCooldown = getString("Item_Cooldown"); } private static void checkChanges() { @@ -240,7 +251,7 @@ private static void checkChanges() { if (!LANG.containsKey(a)) { Log.info("Added missing '" + a + "' key to messages file."); final String newProperty = original.getProperty(a) != null ? original.getProperty(a) : originalEN.getProperty(a); - addMessage(a + " = " + new String(newProperty.getBytes("ISO-8859-1"), "UTF-8")); + addMessage(a + " = " + new String(newProperty.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8)); LANG.setProperty(a, newProperty); } } @@ -250,20 +261,20 @@ private static void checkChanges() { } private static void addMessage(final String a) { - try (PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(messagesFile, true), "UTF-8"))) { + try (PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(messagesFile, true), StandardCharsets.UTF_8))) { pw.println(a); } catch (final IOException e) { e.printStackTrace(); } } - public static void messageProtection(final CancelResult result, final Player player, final Player attacked) { + public static void messageProtection(final ProtectionResult result, final Player player, final Player attacked) { final String message = getProtectionMessage(result, attacked); final PvPlayer receiver = plugin.getPlayerHandler().get(player); receiver.message(message); } - public static String getProtectionMessage(final CancelResult result, final Player attacked) { + public static String getProtectionMessage(final ProtectionResult result, final Player attacked) { switch (result) { case NEWBIE: return result.attackerCaused() ? newbieBlocked() : newbieBlockedOther(attacked.getName()); @@ -282,8 +293,46 @@ public static String getProtectionMessage(final CancelResult result, final Playe } } - public static String getErrorPlayerNotFound() { - return errorPlayerNotFound; + public static String getTime(final ChronoUnit time) { + switch (time) { + case DAYS: + return timeDays; + case HOURS: + return timeHours; + case MINUTES: + return timeMinutes; + case SECONDS: + return timeSeconds; + default: + return timeNow; + } + } + + public static String replaceTime(final String message, final long time) { + return message.replace("%time%", TimeUtil.getDiffMsg(time)); + } + + @NonNull + public static String replacePlayer(final String message, final String player) { + return message.replace("%player%", player); + } + + @NonNull + public static String replaceVictim(final String message, final String player) { + return message.replace("", player); + } + + public static String replaceMoney(final String message, final String money) { + return message.replace("%money%", money); + } + + public static String getPrefix() { + return prefix; + } + + @NonNull + public static String getErrorPlayerNotFound(final String name) { + return replacePlayer(errorPlayerNotFound, name); } public static String getPvpListNoResults() { @@ -310,8 +359,12 @@ public static String getErrorPermission() { return errorPermission; } + public static String getErrorPvpCooldown(final long time) { + return replaceTime(errorPvpCooldown, time); + } + public static String getErrorPvpCooldown() { - return errorPvpCooldown; + return errorPvpCooldown; // TODO use replacetime above } public static String getErrorPvPToggleNoPvP() { @@ -330,12 +383,12 @@ public static String getAlreadyEnabled() { return pvpToggleAlreadyEnabled; } - public static String getOtherStatusEnabled() { - return otherStatusEnabled; + public static String getOtherStatusEnabled(final String name) { + return replacePlayer(otherStatusEnabled, name); } - public static String getOthersStatusDisabled() { - return othersStatusDisabled; + public static String getOthersStatusDisabled(final String name) { + return replacePlayer(othersStatusDisabled, name); } public static String getPvpDisabled() { @@ -363,23 +416,23 @@ public static String pvpDisabled() { } public static String pvpDisabledOther(final String name) { - return attackDeniedOther.replace("%p", name); + return replacePlayer(attackDeniedOther, name); } - public static String getTaggedAttacker() { - return taggedAttacker; + public static String getTaggedAttacker(final String name) { + return replacePlayer(taggedAttacker, name); } - public static String getTaggedDefender() { - return taggedDefender; + public static String getTaggedDefender(final String name) { + return replacePlayer(taggedDefender, name); } public static String getOutOfCombat() { return outOfCombat; } - public static String getNewbieProtection() { - return newbieProtection; + public static String getNewbieProtection(final long time) { + return replaceTime(newbieProtection, time); } public static String getNewbieProtectionEnd() { @@ -391,7 +444,7 @@ public static String newbieBlocked() { } public static String newbieBlockedOther(final String name) { - return newbieProtectionAttacker.replace("%p", name); + return replacePlayer(newbieProtectionAttacker, name); } public static String getEnderpearlBlockedIncombat() { @@ -406,6 +459,7 @@ public static String getPushbackWarning() { return pushbackWarning; } + @NonNull public static String getErrorCommand() { return errorCommand; } @@ -414,16 +468,16 @@ public static String getCurrentversion() { return currentVersion; } - public static String getMoneyReward() { - return moneyReward; + public static String getMoneyReward(final String name, final String money) { + return replaceMoney(replacePlayer(moneyReward, name), money); } public static String getMoneyPenalty() { return moneyPenalty; } - public static String getMoneySteal() { - return moneySteal; + public static String getMoneySteal(final String name, final String money) { + return replaceMoney(replacePlayer(moneySteal, name), money); } public static Locale getLocale() { @@ -493,7 +547,7 @@ public static String respawnProtSelf() { } public static String respawnProtOther(final String name) { - return respawnProtectionOther.replace("%p", name); + return replacePlayer(respawnProtectionOther, name); } public static String worldProtection() { @@ -508,12 +562,12 @@ public static String getGlobalProtection() { return globalProtection; } - public static String getTaggedAttackerABar() { - return taggedAttackerActionbar; + public static String getTaggedAttackerABar(final String name) { + return replacePlayer(taggedAttackerActionbar, name); } - public static String getTaggedDefenderABar() { - return taggedDefenderActionbar; + public static String getTaggedDefenderABar(final String name) { + return replacePlayer(taggedDefenderActionbar, name); } public static String getOutOfCombatABar() { @@ -563,4 +617,13 @@ public static String getPvPDisabledFee() { public static String getPvpFeeNotEnough() { return pvpFeeNotEnough; } + + public static String getKillAbuseWarning() { + return killAbuseWarning; + } + + public static String getItemCooldown(final long time) { + return replaceTime(itemCooldown, time); + } + } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java index 720c18305..397fb1d47 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java @@ -1,14 +1,18 @@ package me.NoChance.PvPManager.Settings; +import java.util.EnumMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; +import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; @@ -27,8 +31,8 @@ public enum DropMode { public static boolean DEBUG = false; private static boolean globalStatus = true; private static int configVersion; - private static String minecraftVersion; private static boolean isReloading; + private static MCVersion minecraftVersion; private static boolean autoUpdate; private static boolean blockEnderPearl; private static boolean blockChorusFruit; @@ -110,6 +114,8 @@ public enum DropMode { private static boolean blockInteractInCombat; private static List blockInteractItemList; private static boolean untagEnemy; + private static boolean killAbuseWarn; + private static ChatColor teamColor; private static boolean actionBarEnabled; private static String actionBarMessage; private static String actionBarSymbol; @@ -118,12 +124,15 @@ public enum DropMode { private static String bossBarMessage; private static BarColor bossBarColor; private static BarStyle bossBarStyle; + private static boolean healthBelowName; + private static String healthBelowNameSymbol; private static List newbieBlacklist; private static Set worldsExcluded; private static Set playerKillsWGExclusions; private static boolean simpleClansNoPvPInWar; private static String cooldownsxEnderpearlID; private static Set harmfulPotions; + private static Map itemCooldowns; private static ConfigurationSection GENERAL; private static ConfigurationSection BORDERHOPPING; private static ConfigurationSection DISABLE; @@ -154,7 +163,7 @@ private static void assignSections(final YamlConfiguration config) { public static void initizalizeVariables(final YamlConfiguration c) { assignSections(c); - minecraftVersion = Bukkit.getBukkitVersion().isEmpty() ? "0" : Bukkit.getBukkitVersion().replaceAll("-.+", ""); + minecraftVersion = MCVersion.getMCVersion(Bukkit.getBukkitVersion().isEmpty() ? "0" : Bukkit.getBukkitVersion().replaceAll("-.+", "")); locale = GENERAL.getString("Locale", "en").toUpperCase(); defaultPvp = GENERAL.getBoolean("Default PvP", true); pvpBlood = GENERAL.getBoolean("PvP Blood", true); @@ -164,6 +173,8 @@ public static void initizalizeVariables(final YamlConfiguration c) { soupBowlDisappear = GENERAL.getBoolean("Auto Soup.Bowl Disappear", false); recyclePotionBottles = GENERAL.getBoolean("Recycling.Potion Bottle", false); recycleMilkBucket = GENERAL.getBoolean("Recycling.Milk Bucket", false); + healthBelowName = GENERAL.getBoolean("Show health under name.Enabled", true); + healthBelowNameSymbol = GENERAL.getString("Show health under name.Display Name", "❤"); worldsExcluded = new HashSet<>(getList(GENERAL.getStringList("World Exclusions"))); borderHoppingVulnerable = BORDERHOPPING.getBoolean("Vulnerable", true); @@ -224,6 +235,17 @@ public static void initizalizeVariables(final YamlConfiguration c) { dropArmor = TAGGEDCOMBAT.getBoolean("Punishments.Kill on Logout.Player Drops.Armor", true); commandsOnPvPLog = getCommandList(TAGGEDCOMBAT.getStringList("Punishments.Commands On PvPLog")); + itemCooldowns = new EnumMap<>(Material.class); + for (final Entry e : c.getConfigurationSection("Item Cooldowns").getValues(false).entrySet()) { + final Material material = Material.getMaterial(e.getKey().toUpperCase()); + if (material == null) { + Log.warning("The material " + e.getKey() + + " in Item Cooldowns doesn't exist. You might have typed it incorrectly or it might not exist in this MC version"); + continue; + } + itemCooldowns.put(material, (Integer) e.getValue()); + } + newbieProtectionEnabled = NEWBIEPROTECTION.getBoolean("Enabled", true); newbieProtectionTime = NEWBIEPROTECTION.getInt("Time(minutes)", 5); newbieAllowDisable = NEWBIEPROTECTION.getBoolean("Allow Player Disable", true); @@ -235,6 +257,7 @@ public static void initizalizeVariables(final YamlConfiguration c) { killAbuseEnabled = KILLABUSE.getBoolean("Enabled", true); killAbuseMaxKills = KILLABUSE.getInt("Max Kills", 5); killAbuseTime = KILLABUSE.getInt("Time Limit", 60); + killAbuseWarn = KILLABUSE.getBoolean("Warn Before", true); killAbuseCommands = getCommandList(KILLABUSE.getStringList("Commands on Abuse")); respawnProtection = KILLABUSE.getInt("Respawn Protection", 5); @@ -293,12 +316,7 @@ private static String helpSeparator() { } private static List getList(final List list) { - for (final Iterator iterator = list.iterator(); iterator.hasNext();) { - final String string = iterator.next(); - if (string.startsWith("example")) { - iterator.remove(); - } - } + list.removeIf(string -> string.startsWith("example")); return list; } @@ -574,10 +592,6 @@ public static boolean borderHoppingResetCombatTag() { return borderHoppingResetCombatTag; } - public static void setBorderHoppingResetCombatTag(final boolean borderHoppingResetCombatTag) { - Settings.borderHoppingResetCombatTag = borderHoppingResetCombatTag; - } - public static boolean isStopCommands() { return stopCommands; } @@ -742,7 +756,23 @@ public static Set getKillsWGExclusions() { return playerKillsWGExclusions; } - public static String getMinecraftVersion() { + public static boolean isKillAbuseWarn() { + return killAbuseWarn; + } + + public static Map getItemCooldowns() { + return itemCooldowns; + } + + public static boolean isHealthBelowName() { + return healthBelowName; + } + + public static String getHealthBelowNameSymbol() { + return healthBelowNameSymbol; + } + + public static MCVersion getMinecraftVersion() { return minecraftVersion; } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/NewbieTask.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/NewbieTask.java index f099f65cc..e4781c74c 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/NewbieTask.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/NewbieTask.java @@ -43,4 +43,8 @@ public long getTimeleft() { return Math.max(0, finishTime - System.currentTimeMillis()); } + public long getFinishTime() { + return finishTime; + } + } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/TagTask.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/TagTask.java index ec5ef05e1..5c658dc6e 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/TagTask.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/TagTask.java @@ -72,9 +72,6 @@ public final void addTagged(final PvPlayer p) { public final void untag(final PvPlayer p) { display.discardBossbar(p); tagged.remove(p); - if (p.isInCombat()) { - p.unTag(); - } } public Set getTaggedPlayers() { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java index 439351868..5897f9838 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java @@ -25,6 +25,7 @@ import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionType; import org.bukkit.projectiles.ProjectileSource; +import org.eclipse.jdt.annotation.NonNull; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; @@ -107,7 +108,7 @@ public static final boolean isPvP(final EntityDamageByEntityEvent event) { if (defender instanceof Player && !isNPC(defender)) { if (attacker instanceof Player && !isNPC(attacker)) return true; - if (attacker instanceof Projectile || CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.9") && attacker instanceof AreaEffectCloud) { + if (attacker instanceof Projectile || CombatUtils.isMCVersionAtLeast(MCVersion.V1_9) && attacker instanceof AreaEffectCloud) { final ProjectileSource projSource = getSource(attacker); if (projSource instanceof Player) { final Entity shooter = (Entity) projSource; @@ -181,7 +182,7 @@ public static void fakeItemStackDrop(final Player player, final ItemStack[] inve } } - public static boolean isOnline(final String name) { + public static boolean isOnline(@NonNull final String name) { return Bukkit.getPlayer(name) != null; } @@ -193,8 +194,8 @@ public static boolean isOnlineWithFeedback(final CommandSender sender, final Str return true; } - public static boolean isOnline(final UUID id) { - return Bukkit.getPlayer(id) != null; + public static boolean isOnline(@NonNull final UUID uuid) { + return Bukkit.getPlayer(uuid) != null; } public static boolean isReal(final UUID id) { @@ -229,11 +230,11 @@ public static boolean isHarmfulPotion(final PotionEffectType type) { public static boolean recursiveContainsCommand(final String[] givenCommand, final List list) { boolean contains = false; for (int i = 0; i < givenCommand.length; i++) { - String args = givenCommand[0]; + final StringBuilder args = new StringBuilder(givenCommand[0]); for (int j = 1; j <= i; j++) { - args += " " + givenCommand[j]; + args.append(" ").append(givenCommand[j]); } - if (list.contains(args.toLowerCase())) { + if (list.contains(args.toString().toLowerCase())) { contains = true; break; } @@ -263,6 +264,10 @@ public static final boolean isVersionAtLeast(final String v1, final String v2) { return true; } + public static final boolean isMCVersionAtLeast(final MCVersion version) { + return Settings.getMinecraftVersion().ordinal() >= version.ordinal(); + } + public static String stripTags(final String version) { return version.replaceAll("[-;+].+", ""); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/DateUtil.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/DateUtil.java new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/DateUtil.java @@ -0,0 +1 @@ + diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/MCVersion.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/MCVersion.java new file mode 100644 index 000000000..ee82a2898 --- /dev/null +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/MCVersion.java @@ -0,0 +1,36 @@ +package me.NoChance.PvPManager.Utils; + +/** + * Utility class to get and compare MC versions + * + * @author ChanceSD + */ +public enum MCVersion { + OLD, V1_8, V1_9, V1_10, V1_11, V1_11_2, V1_12, V1_13, V1_13_1, V1_14, V1_15, V1_16; + + public static MCVersion getMCVersion(final String version) { + if (CombatUtils.isVersionAtLeast(version, "1.16")) + return MCVersion.V1_16; + else if (CombatUtils.isVersionAtLeast(version, "1.15")) + return MCVersion.V1_15; + else if (CombatUtils.isVersionAtLeast(version, "1.14")) + return MCVersion.V1_14; + else if (CombatUtils.isVersionAtLeast(version, "1.13.1")) + return MCVersion.V1_13_1; + else if (CombatUtils.isVersionAtLeast(version, "1.13")) + return MCVersion.V1_13; + else if (CombatUtils.isVersionAtLeast(version, "1.12")) + return MCVersion.V1_12; + else if (CombatUtils.isVersionAtLeast(version, "1.11.2")) + return MCVersion.V1_11_2; + else if (CombatUtils.isVersionAtLeast(version, "1.11")) + return MCVersion.V1_11; + else if (CombatUtils.isVersionAtLeast(version, "1.10")) + return MCVersion.V1_10; + else if (CombatUtils.isVersionAtLeast(version, "1.9")) + return MCVersion.V1_9; + else if (CombatUtils.isVersionAtLeast(version, "1.8")) + return MCVersion.V1_8; + return MCVersion.OLD; + } +} diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/NCDuration.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/NCDuration.java new file mode 100644 index 000000000..c858ae335 --- /dev/null +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/NCDuration.java @@ -0,0 +1,75 @@ +package me.NoChance.PvPManager.Utils; + +import java.time.Duration; +import java.time.temporal.ChronoUnit; +import java.time.temporal.Temporal; + +/** + * Utility class that adds functionality to java's Duration + *
+ * Since we're forced to use java 8 for now, this class replicates some methods added in java 9 + * + */ +public class NCDuration { + + private static final int HOURS_PER_DAY = 24; + private static final int MINUTES_PER_HOUR = 60; + private static final int SECONDS_PER_MINUTE = 60; + private static final int SECONDS_PER_HOUR = SECONDS_PER_MINUTE * MINUTES_PER_HOUR; + private static final int SECONDS_PER_DAY = SECONDS_PER_HOUR * HOURS_PER_DAY; + private final Duration duration; + + private NCDuration(final Duration duration) { + this.duration = duration; + } + + public static NCDuration between(final Temporal startInclusive, final Temporal endExclusive) { + return new NCDuration(Duration.between(startInclusive, endExclusive)); + } + + public int toDaysPart() { + return (int) (duration.getSeconds() / SECONDS_PER_DAY); + } + + public int toHoursPart() { + return (int) (duration.toHours() % 24); + } + + public int toMinutesPart() { + return (int) (duration.toMinutes() % MINUTES_PER_HOUR); + } + + public int toSecondsPart() { + return (int) (duration.getSeconds() % SECONDS_PER_MINUTE); + } + + public int toMillisPart() { + return duration.getNano() / 1000_000; + } + + public NCDuration plusMillis(final long milis) { + return new NCDuration(duration.plusMillis(milis)); + } + + public int get(final ChronoUnit unit) { + switch (unit) { + case DAYS: + return toDaysPart(); + case HOURS: + return toHoursPart(); + case MILLIS: + return toMillisPart(); + case MINUTES: + return toMinutesPart(); + case SECONDS: + return toSecondsPart(); + default: + return 0; + } + } + + public Duration getDuration() { + return duration; + } + +} diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/TimeUtil.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/TimeUtil.java new file mode 100644 index 000000000..469b99bfc --- /dev/null +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/TimeUtil.java @@ -0,0 +1,44 @@ +package me.NoChance.PvPManager.Utils; + +import java.time.Instant; +import java.time.temporal.ChronoUnit; + +import me.NoChance.PvPManager.Settings.Messages; + +public final class TimeUtil { + + private static final ChronoUnit[] types = new ChronoUnit[] { ChronoUnit.DAYS, ChronoUnit.HOURS, ChronoUnit.MINUTES, ChronoUnit.SECONDS }; + + private TimeUtil() { + } + + public static String getDiffMsg(final long date) { + return TimeUtil.getDiffMsg(Instant.now(), Instant.ofEpochMilli(date)); + } + + public static String getDiffMsg(final Instant from, final Instant to) { + boolean future = false; + if (to.equals(from)) + return Messages.getTime(ChronoUnit.FOREVER); + if (to.isAfter(from)) { + future = true; + } + final NCDuration duration = NCDuration.between(from, to).plusMillis(future ? 50 : -50); + final StringBuilder sb = new StringBuilder(); + int accuracy = 0; + for (int i = 0; i < types.length; i++) { + if (accuracy > 2) { + break; + } + final int value = duration.get(types[i]); + if (value > 0) { + accuracy++; + sb.append(" ").append(value).append(" ").append(Messages.getTime(types[i])); + } + } + if (sb.length() == 0) + return Messages.getTime(ChronoUnit.FOREVER); + return sb.toString().trim(); + } + +} 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 d44fe699b..f1fa2b1a2 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 @@ -3,6 +3,8 @@ import java.util.UUID; import org.bukkit.ChatColor; +import org.bukkit.scoreboard.DisplaySlot; +import org.bukkit.scoreboard.Objective; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.Team; @@ -20,7 +22,10 @@ public class BukkitNameTag extends NameTag { private String previousTeamName; private final String combatTeamID; private final Scoreboard scoreboard; - + private static final String PVPOFF = "PvPOff"; + private static final String PVPON = "PvPOn"; + private static final String HEALTHOBJ = "PvP_Health"; + private static Objective health; public BukkitNameTag(final PvPlayer p) { super(p); @@ -47,13 +52,13 @@ private void setup() { } if (Settings.isToggleNametagsEnabled()) { if (!pvpOnPrefix.isEmpty()) { - if (scoreboard.getTeam("PvPOn") != null) { - pvpOn = scoreboard.getTeam("PvPOn"); + if (scoreboard.getTeam(PVPON) != null) { + pvpOn = scoreboard.getTeam(PVPON); } else { - pvpOn = scoreboard.registerNewTeam("PvPOn"); + pvpOn = scoreboard.registerNewTeam(PVPON); pvpOn.setCanSeeFriendlyInvisibles(false); pvpOn.setPrefix(pvpOnPrefix); - if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.13")) { + if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_13)) { final ChatColor nameColor = getLastColor(pvpOnPrefix); if (nameColor != null) { pvpOn.setColor(nameColor); @@ -62,13 +67,13 @@ private void setup() { } } if (!pvpOffPrefix.isEmpty()) { - if (scoreboard.getTeam("PvPOff") != null) { - pvpOff = scoreboard.getTeam("PvPOff"); + if (scoreboard.getTeam(PVPOFF) != null) { + pvpOff = scoreboard.getTeam(PVPOFF); } else { - pvpOff = scoreboard.registerNewTeam("PvPOff"); + pvpOff = scoreboard.registerNewTeam(PVPOFF); pvpOff.setCanSeeFriendlyInvisibles(false); pvpOff.setPrefix(pvpOffPrefix); - if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.13")) { + if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_13)) { final ChatColor nameColor = getLastColor(pvpOffPrefix); if (nameColor != null) { pvpOff.setColor(nameColor); @@ -79,6 +84,14 @@ private void setup() { // set pvp tag if player has pvp nametags on setPvP(pvPlayer.hasPvPEnabled()); } + if (Settings.isHealthBelowName() && health == null) { + if (scoreboard.getObjective(HEALTHOBJ) != null) { + health = scoreboard.getObjective(HEALTHOBJ); + } else { + health = scoreboard.registerNewObjective(HEALTHOBJ, "health", Settings.getHealthBelowNameSymbol()); + health.setDisplaySlot(DisplaySlot.BELOW_NAME); + } + } } private String processPlayerID(final UUID uuid) { @@ -137,7 +150,7 @@ public final void restoreNametag() { return; restoringSent = true; // Some plugin is unregistering teams when it shouldn't - Log.severe("Error restoring nametag for: " + pvPlayer.getName()); + Log.warning("Error restoring nametag for: " + pvPlayer.getName()); } finally { previousTeamName = null; } @@ -169,7 +182,7 @@ public void cleanup() { if (unregisteredSent) return; unregisteredSent = true; - Log.severe("Team was already unregistered for player: " + pvPlayer.getName()); + Log.warning("Team was already unregistered for player: " + pvPlayer.getName()); } } diff --git a/pvpmanager/src/main/resources/config.yml b/pvpmanager/src/main/resources/config.yml index 6ba34aeb8..fbe0f0988 100644 --- a/pvpmanager/src/main/resources/config.yml +++ b/pvpmanager/src/main/resources/config.yml @@ -15,6 +15,7 @@ # mode 'TRANSFER' - (Same as 'DROP' but transfer items(not exp) directly to killer's inventory without drops) # mode 'CLEAR' - (Clear all drops and exp on death, this deletes everything on death so make sure it is what you want) # Ignore No Damage Hits -> Ignore hits from snowballs, eggs, fishing rod and others +# Show health under name -> Show player health, uses scoreboards so might conflict with other plugins # World Exclusions -> List of worlds where PvPManager will have no effect General: # Changes messages language, options are - EN | BG | DE | ES | FI | FR | HR | IT | JA | PL | pt_BR | RU | TR | zh_TW | ZH @@ -32,6 +33,9 @@ General: Recycling: Potion Bottle: false Milk Bucket: false + Show health under name: + Enabled: true + Display Name: '❤' World Exclusions: - 'example' @@ -148,6 +152,13 @@ Tagged In Combat: Commands On PvPLog: - 'announce &6[&8PvPManager&6]&c %p tried to escape combat and died!' +# Here you can set a cooldown, in seconds, to any item such as golden apples and enchanted golden apples +# You can check for other material types here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html +# If the item is not edible the cooldown will only be activated for right clicks +Item Cooldowns: + GOLDEN_APPLE: 30 + ENCHANTED_GOLDEN_APPLE: 60 + # Should new players on your server be protected from PvP (If they want to PvP they can use /newbie disable) Newbie Protection: Enabled: true @@ -166,11 +177,13 @@ Newbie Protection: # Prevent player abuse by killing the same player several times to rise in rank or even just grief # Example - If a player X kills player Y more than 5 times, it executes the commands defined(kick, jail, etc) # In this case, it would check every 30 seconds for abusers +# Warn Before - Warn the player 1 kill before he is punished with the commands # Respawn Protection - After respawn, how many seconds should players be protected (0 to disable) Kill Abuse: Enabled: true Max Kills: 5 - Time Limit: 30 + Time Limit: 20 + Warn Before: true # Possible variables are and Commands on Abuse: - 'kick &cKill Abuse Is Not Allowed!' diff --git a/pvpmanager/src/main/resources/locale/messages.properties b/pvpmanager/src/main/resources/locale/messages.properties index ea5ed8abf..939d16222 100644 --- a/pvpmanager/src/main/resources/locale/messages.properties +++ b/pvpmanager/src/main/resources/locale/messages.properties @@ -1,53 +1,57 @@ -# You can customize this messages to your language, change colors, etc +# You can customize these messages to your language, change colors, etc # You can disable any message by deleting everything after the equals (=) # Example: Newbie_Protection = (leave this empty) # You may also use Hex color codes such as &#FFFFFF in MC 1.16+ +# There are some variables you can use in this file that work in all messages +# such as %prefix% and some that only work where they make sense such as %player%, %time% and %money% + +Prefix = &6[&8PvPManager&6] # PvP Toggle -PvP_Disabled = &6[&8PvPManager&6] &2PvP disabled! -PvP_Enabled = &6[&8PvPManager&6] &4PvP enabled! -Attack_Denied_You = &6[&8PvPManager&6] &4You have PvP protection! -Attack_Denied_Other = &6[&8PvPManager&6] &4%p has PvP protection! -PvP_Force_Enabled_WorldGuard = &6[&8PvPManager&6] &cPvP force enabled because you are inside a PvP region -PvP_Disabled_Fee = &6[&8PvPManager&6] &3You paid a &5%money &3fee for having PvP disabled -PvP_Disabled_Fee_Not_Enough = &6[&8PvPManager&6] &3PvP enabled because you don't have enough money +PvP_Disabled = %prefix% &2PvP disabled! +PvP_Enabled = %prefix% &4PvP enabled! +Attack_Denied_You = %prefix% &4You have PvP protection! +Attack_Denied_Other = %prefix% &4%player% has PvP protection! +PvP_Force_Enabled_WorldGuard = %prefix% &cPvP force enabled because you are inside a PvP region +PvP_Disabled_Fee = %prefix% &3You paid a &5%money &3fee for having PvP disabled +PvP_Disabled_Fee_Not_Enough = %prefix% &3PvP enabled because you don't have enough money # Combat Tag -Tagged_Attacker = &6[&8PvPManager&6] &7You tagged&f %p&7! Do not log out or you will be punished! -Tagged_Attacker_ActionBar = &7You tagged&f %p&7! Do not log out until you are out of combat! -Tagged_Defender = &6[&8PvPManager&6] &7You got tagged by&f %p&7! Do not log out or you will be punished! -Tagged_Defender_ActionBar = &7You got tagged by&f %p&7! Do not log out until you are out of combat! -Out_Of_Combat = &6[&8PvPManager&6] &aYou are no longer in combat. +Tagged_Attacker = %prefix% &7You tagged&f %player%&7! Do not log out or you will be punished! +Tagged_Attacker_ActionBar = &7You tagged&f %player%&7! Do not log out until you are out of combat! +Tagged_Defender = %prefix% &7You got tagged by&f %player%&7! Do not log out or you will be punished! +Tagged_Defender_ActionBar = &7You got tagged by&f %player%&7! Do not log out until you are out of combat! +Out_Of_Combat = %prefix% &aYou are no longer in combat. Out_Of_Combat_ActionBar = &aYou are no longer in combat -Command_Denied_InCombat = &6[&8PvPManager&6] &cCommand denied! You are still in combat! -Block_Place_Blocked_InCombat = &6[&8PvPManager&6] &4You can't place blocks while in combat! -Eating_Blocked_InCombat = &6[&8PvPManager&6] &4Eating is blocked while in combat! -EnderPearl_Blocked_InCombat = &6[&8PvPManager&6] &4You can't use enderpearls while in combat! -ChorusFruit_Blocked_InCombat = "&6[&8PvPManager&6] &4You can't eat chorus fruits while in combat! -Interact_Blocked_InCombat = &6[&8PvPManager&6] &4You can't right-click while in combat! -Teleport_Blocked_InCombat = &6[&8PvPManager&6] &cYou can't teleport while in combat! -Totem_Blocked_InCombat = &6[&8PvPManager&6] &cTotems of undying are blocked while in combat! -Inventory_Blocked_InCombat = &6[&8PvPManager&6] &cYou can't open an inventory while in combat! -Pushback_Warning = &cYou can't run away to safezones while in combat! +Command_Denied_InCombat = %prefix% &cCommand denied! You are still in combat! +Block_Place_Blocked_InCombat = %prefix% &4You can't place blocks while in combat! +Eating_Blocked_InCombat = %prefix% &4Eating is blocked while in combat! +EnderPearl_Blocked_InCombat = %prefix% &4You can't use enderpearls while in combat! +ChorusFruit_Blocked_InCombat = "%prefix% &4You can't eat chorus fruits while in combat! +Interact_Blocked_InCombat = %prefix% &4You can't right-click while in combat! +Teleport_Blocked_InCombat = %prefix% &cYou can't teleport while in combat! +Totem_Blocked_InCombat = %prefix% &cTotems of undying are blocked while in combat +Inventory_Blocked_InCombat = %prefix% &cYou can't open an inventory while in combat! +Pushback_Warning = %prefix% &cYou can't run away to safezones while in combat! # Newbie Protection -Newbie_Protection = &6[&8PvPManager&6] &aWelcome! You are protected against PvP for&6 %&a minutes -Newbie_Protection_End = &6[&8PvPManager&6] &cYour PvP protection has expired! You can now be attacked! -Newbie_Protection_Removed = &6[&8PvPManager&6] &eYou removed your PvP protection! Be careful -Newbie_Protection_On_Hit = &6[&8PvPManager&6] &4You have PvP protection! If you really want to do PvP, remove it with &2/newbie disable -Newbie_Protection_Atacker = &6[&8PvPManager&6]&4 %p has newbie protection! -Newbie_Time_Check = &6[&8PvPManager&6] &7You are protected from PvP for &e%d &7seconds -Newbie_Time_Check_Other = &6[&8PvPManager&6]&7 %s is protected from PvP for another &e%d &7seconds -Newbie_Command_Blocked = &6[&8PvPManager&6] &cYou cannot use this command while you have newbie protection! -Newbie_Pickup_Items_Blocked = &6[&8PvPManager&6] &cYou can't pickup items while you have newbie protection -Newbie_Force_Removed_WorldGuard = &6[&8PvPManager&6] &cYour new player protection was removed for being inside a PvP region +Newbie_Protection = %prefix% &aWelcome! You are protected against PvP for &6%time% +Newbie_Protection_End = %prefix% &cYour PvP protection has expired! You can now be attacked! +Newbie_Protection_Removed = %prefix% &eYou removed your PvP protection! Be careful +Newbie_Protection_On_Hit = %prefix% &4You have PvP protection! If you really want to do PvP, remove it with &2/newbie disable +Newbie_Protection_Atacker = %prefix% &4%player% has Newbie protection! +Newbie_Time_Check = %prefix% &7You are protected from PvP for &e%d &7seconds +Newbie_Time_Check_Other = %prefix%&7 %s is protected from PvP for another &e%d &7seconds +Newbie_Command_Blocked = %prefix% &cYou cannot use this command while you have Newbie protection! +Newbie_Pickup_Items_Blocked = %prefix% &cYou can't pickup items while you have Newbie protection! +Newbie_Force_Removed_WorldGuard = %prefix% &cYour new player protection was removed for being inside a PvP region # Respawn Protection -Respawn_Protection = &6[&8PvPManager&6]&4 You have respawn protection! -Respawn_Protection_Other = &6[&8PvPManager&6]&4 %p has respawn protection! +Respawn_Protection = %prefix%&4 You have respawn protection! +Respawn_Protection_Other = %prefix%&4 %player% has respawn protection! # World Protection -World_Protection = &6[&8PvPManager&6]&4 PvP is disabled in this world! +World_Protection = %prefix% &4PvP is disabled in this world! # AFK Protection AFK_Protection = &6[&8PvPManager&6]&4 This player can't be attacked while AFK @@ -56,24 +60,30 @@ AFK_Protection = &6[&8PvPManager&6]&4 This player can't be attacked while AFK Global_Protection = &6[&8PvPManager&6]&4 PvP combat is globally disabled # Player Kills -Money_Reward = &2You got %m coins for killing player %p! -Money_Penalty = &cYou lost %m coins for getting killed! -Money_Steal = &c%p stole %m coins from you! +Money_Reward = &2You got %money% coins for killing player %player%! +Money_Penalty = &cYou lost %money% coins for getting killed! +Money_Steal = &c%player% stole %money% coins from you! + +# Kill Abuse +Kill_Abuse_Warning = %prefix% &cYou will be punished if you kill this player again! Please stop. + +# Item Cooldown +Item_Cooldown = %prefix% &cYou can't use this yet! Available in %time% # Commands Error_Command = &4You don't have permission or command doesn't exist! Error_Permission = &4You don't have permission! -Error_Player_Not_Found = &4Player %p does not exist or is offline! +Error_Player_Not_Found = &4Player %player% does not exist or is offline! Error_Not_Player = This command is only available for players # Newbie Command -Error_Not_Newbie = &6[&8PvPManager&6] &cYou are not a newbie! +Error_Not_Newbie = %prefix% &cYou are not a newbie! # PvP Command -Error_PvP_Cooldown = &6[&8PvPManager&6] &cYou can't toggle PvP yet! Wait %t minutes %m seconds. -Error_PvPToggle_NoPvP = &6[&8PvPManager&6] &cYou are blocked from having PvP enabled -Error_PvPToggle_ForcePvP = &6[&8PvPManager&6] &cYou are blocked from having PvP disabled +Error_PvP_Cooldown = %prefix% &cYou can't toggle PvP yet! Wait %time%. +Error_PvPToggle_NoPvP = %prefix% &cYou are blocked from having PvP enabled +Error_PvPToggle_ForcePvP = %prefix% &cYou are blocked from having PvP disabled PvPToggle_Admin_Changed = &6[&8PvPManager&6] &2PvP state for &6%p &2was changed to %state -PvPToggle_Already_Disabled = &6[&8PvPManager&6] &4You already have PvP disabled! -PvPToggle_Already_Enabled = &6[&8PvPManager&6] &4You already have PvP enabled! +PvPToggle_Already_Disabled = %prefix% &4You already have PvP disabled! +PvPToggle_Already_Enabled = %prefix% &4You already have PvP enabled! # PvPInfo Command PvPInfo_Title = &e&lPvPManager Info PvPInfo_Line1 = &2- Name: &f @@ -89,10 +99,10 @@ PvPList_Enabled = &a&lEnabled PvPList_Disabled = &4&lDisabled PvPList_Nothing_Found = &8No players found # PvPStatus Command -Other_Status_Enabled = &6[&8PvPManager&6] &6Player %p has PvP enabled -Others_Status_Disabled = &6[&8PvPManager&6] &6Player %p has PvP disabled -Self_Status_Disabled = &6[&8PvPManager&6] &6You have PvP disabled -Self_Status_Enabled = &6[&8PvPManager&6] &6You have PvP enabled +Other_Status_Enabled = %prefix% &6Player %p has PvP enabled +Others_Status_Disabled = %prefix% &6Player %p has PvP disabled +Self_Status_Disabled = %prefix% &6You have PvP disabled +Self_Status_Enabled = %prefix% &6You have PvP enabled # Tag Command Tag_Timeleft = &8You are in combat for another %d seconds Tag_Not_In_Combat = &cYou are currently not in combat @@ -100,3 +110,8 @@ Tag_Not_In_Combat = &cYou are currently not in combat # Variables Enabled = &cEnabled Disabled = &aDisabled +Time_Days = days +Time_Hours = hours +Time_Minutes = minutes +Time_Seconds = seconds +Time_Now = now diff --git a/pvpmanager/src/main/resources/plugin.yml b/pvpmanager/src/main/resources/plugin.yml index 707e42d88..5831787e8 100644 --- a/pvpmanager/src/main/resources/plugin.yml +++ b/pvpmanager/src/main/resources/plugin.yml @@ -15,6 +15,7 @@ softdepend: - EZRanksLite - Essentials - PlaceholderAPI + - GriefPrevention - Towny - Kingdoms - TAB diff --git a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java index ca0a93713..d3ec22368 100644 --- a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java +++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java @@ -26,7 +26,7 @@ import me.NoChance.PvPManager.PluginTest; import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; @@ -184,7 +184,7 @@ final void cancelNewbie() { ph.get(attacker).setNewbie(true); createAttack(false); - assertEquals(CancelResult.NEWBIE, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionResult.NEWBIE, ph.tryCancel(attacker, defender)); verify(attacker, times(2)).sendMessage(Messages.newbieBlocked()); verify(mockEvent).setCancelled(true); @@ -196,7 +196,7 @@ final void cancelPvPDisabled() { ph.get(defender).setPvP(false); createAttack(false); - assertEquals(CancelResult.PVPDISABLED, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionResult.PVPDISABLED, ph.tryCancel(attacker, defender)); verify(attacker, times(2)).sendMessage(Messages.pvpDisabledOther(defender.getName())); verify(mockEvent).setCancelled(true); @@ -210,7 +210,7 @@ final void failCancel() { when(attacker.isFlying()).thenReturn(true); when(defender.isFlying()).thenReturn(true); - assertEquals(CancelResult.FAIL, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionResult.FAIL, ph.tryCancel(attacker, defender)); createAttack(false); assertTrue(ph.get(attacker).isInCombat()); assertTrue(ph.get(defender).isInCombat()); @@ -226,7 +226,7 @@ final void overrideCancel() { ph.get(attacker).toggleOverride(); createAttack(false); - assertEquals(CancelResult.FAIL_OVERRIDE, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionResult.FAIL_OVERRIDE, ph.tryCancel(attacker, defender)); assertTrue(ph.get(attacker).isInCombat()); assertTrue(ph.get(defender).isInCombat()); @@ -239,7 +239,7 @@ final void overrideCancelled() { ph.get(attacker).toggleOverride(); createAttack(true); - assertEquals(CancelResult.FAIL_OVERRIDE, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionResult.FAIL_OVERRIDE, ph.tryCancel(attacker, defender)); assertTrue(ph.get(attacker).isInCombat()); assertTrue(ph.get(defender).isInCombat()); diff --git a/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java b/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java index e786d6355..dad62f6cd 100644 --- a/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java +++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java @@ -45,10 +45,10 @@ void allEnabled() { void versionTags() { final String v1 = CombatUtils.stripTags("1.0.2-SNAPSHOT"); final String v2 = CombatUtils.stripTags("1.0.2;1994-9adac4f"); - final String v3 = CombatUtils.stripTags("1.0.2+3827266"); - assertTrue(v1.equals("1.0.2")); - assertTrue(v2.equals("1.0.2")); - assertTrue(v3.equals("1.0.2")); + final String v3 = CombatUtils.stripTags("1.0.2+9adac4f"); + assertEquals("1.0.2", v1); + assertEquals("1.0.2", v2); + assertEquals("1.0.2", v3); } @AfterAll diff --git a/pvpmanager/src/test/java/me/NoChance/PvPManager/UpdaterTest.java b/pvpmanager/src/test/java/me/NoChance/PvPManager/UpdaterTest.java index 3168dd419..6a06bba95 100644 --- a/pvpmanager/src/test/java/me/NoChance/PvPManager/UpdaterTest.java +++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/UpdaterTest.java @@ -43,7 +43,7 @@ final void testUpdater() { assertFalse(updater.versionCheck("1.2.3-SNAPSHOT", "1.2.2-SNAPSHOT")); } - public class UpdaterMock extends Updater { + public static class UpdaterMock extends Updater { protected UpdaterMock(final Plugin plugin, final UpdateType type) { super(plugin, 0, type, plugin.getName()); From 41e79f7918b6e69cc25c23d961eaf568a912b0a2 Mon Sep 17 00:00:00 2001 From: ChanceSD <5256215+ChanceSD@users.noreply.github.com> Date: Fri, 7 Apr 2023 14:41:25 +0100 Subject: [PATCH 02/16] More changes --- .../Dependencies/AFKDependency.java | 2 ++ .../{API => }/BaseDependency.java | 3 ++- .../Dependencies/ForceToggleDependency.java | 2 +- .../Dependencies/Hooks/EssentialsHook.java | 4 +--- .../Hooks/GriefPreventionHook.java | 4 ++-- .../Dependencies/Hooks/LibsDisguisesHook.java | 4 ++-- .../Hooks/PlaceHolderAPIHook.java | 2 +- .../Dependencies/Hooks/SimpleClansHook.java | 7 +++++- .../Dependencies/Hooks/TownyHook.java | 5 ++-- .../Dependencies/Hooks/VaultHook.java | 2 +- .../Hooks/WorldGuardLegacyHook.java | 4 ++-- .../Hooks/WorldGuardModernHook.java | 4 ++-- .../{API => Interfaces}/Dependency.java | 2 +- .../DisguiseDependency.java | 2 +- .../{API => Interfaces}/GodDependency.java | 2 +- .../{API => Interfaces}/RegionDependency.java | 2 +- .../WorldGuardDependency.java | 2 +- .../Libraries/Metrics/CustomMetrics.java | 2 +- .../Listeners/DebugEntityListener.java | 5 ++-- .../PvPManager/Listeners/EntityListener.java | 4 ++-- .../PvPManager/Listeners/MoveListener.java | 2 +- .../PvPManager/Listeners/MoveListener1_9.java | 2 +- .../PvPManager/Listeners/PlayerListener.java | 10 ++++---- .../Managers/DependencyManager.java | 20 ++++++++-------- .../PvPManager/Managers/DisplayManager.java | 3 ++- .../PvPManager/Managers/PlayerHandler.java | 4 +++- .../PvPManager/Player/BasePlayer.java | 4 ++-- .../me/NoChance/PvPManager/PvPManager.java | 4 ++-- .../java/me/NoChance/PvPManager/PvPlayer.java | 15 ++++++------ .../PvPManager/Settings/Messages.java | 13 ++++++----- .../PvPManager/Settings/Settings.java | 12 ++++------ .../PvPManager/Utils/CombatUtils.java | 14 ++++------- .../NoChance/PvPManager/Utils/DateUtil.java | 1 - .../NoChance/PvPManager/Utils/MCVersion.java | 23 +++++++++++++++++-- .../player/nametag/BukkitNameTag.java | 8 +++---- .../chancesd/pvpmanager/storage/Database.java | 7 +++--- 36 files changed, 114 insertions(+), 92 deletions(-) rename pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/{API => }/BaseDependency.java (84%) rename pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/{API => Interfaces}/Dependency.java (90%) rename pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/{API => Interfaces}/DisguiseDependency.java (76%) rename pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/{API => Interfaces}/GodDependency.java (79%) rename pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/{API => Interfaces}/RegionDependency.java (84%) rename pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/{API => Interfaces}/WorldGuardDependency.java (92%) delete mode 100644 pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/DateUtil.java diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/AFKDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/AFKDependency.java index 64f80ba1f..11a98456f 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/AFKDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/AFKDependency.java @@ -2,6 +2,8 @@ import org.bukkit.entity.Player; +import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; + public interface AFKDependency extends Dependency { public boolean isAFK(Player player); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/BaseDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/BaseDependency.java similarity index 84% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/BaseDependency.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/BaseDependency.java index 471c3795c..231f2c952 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/BaseDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/BaseDependency.java @@ -1,9 +1,10 @@ -package me.NoChance.PvPManager.Dependencies.API; +package me.NoChance.PvPManager.Dependencies; import org.bukkit.ChatColor; import org.bukkit.plugin.java.JavaPlugin; import me.chancesd.sdutils.utils.Log; +import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; public class BaseDependency implements Dependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java index 5a5076a91..6126ea2af 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java @@ -2,7 +2,7 @@ import org.bukkit.entity.Player; -import me.NoChance.PvPManager.Dependencies.API.Dependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; import me.NoChance.PvPManager.Player.ProtectionResult; public interface ForceToggleDependency extends Dependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/EssentialsHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/EssentialsHook.java index d99da93a0..97b6a1879 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/EssentialsHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/EssentialsHook.java @@ -6,10 +6,8 @@ import me.NoChance.PvPManager.Dependencies.AFKDependency; import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.GodDependency; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.BaseDependency; -import me.NoChance.PvPManager.Dependencies.API.GodDependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.GodDependency; public class EssentialsHook extends BaseDependency implements AFKDependency, GodDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java index b0074e07b..43da052d3 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java @@ -1,9 +1,9 @@ package me.NoChance.PvPManager.Dependencies.Hooks; +import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.BaseDependency; import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.Log; +import me.chancesd.sdutils.utils.Log; import me.ryanhamshire.GriefPrevention.GriefPrevention; public class GriefPreventionHook extends BaseDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java index 245bc2c96..3d1e14eab 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java @@ -2,10 +2,10 @@ import org.bukkit.entity.Player; +import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.BaseDependency; -import me.NoChance.PvPManager.Dependencies.API.DisguiseDependency; import me.chancesd.sdutils.utils.Log; +import me.NoChance.PvPManager.Dependencies.Interfaces.DisguiseDependency; import me.libraryaddict.disguise.DisguiseAPI; public class LibsDisguisesHook extends BaseDependency implements DisguiseDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPIHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPIHook.java index 095cbb228..af00d07b4 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPIHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPIHook.java @@ -1,9 +1,9 @@ package me.NoChance.PvPManager.Dependencies.Hooks; import me.NoChance.PvPManager.PvPManager; +import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.DependencyException; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.BaseDependency; public class PlaceHolderAPIHook extends BaseDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java index cda83a7a1..284c7d308 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java @@ -2,11 +2,16 @@ import org.bukkit.entity.Player; +import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.DependencyException; import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.GroupDependency; import me.NoChance.PvPManager.Player.CancelResult; import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; +import me.NoChance.PvPManager.Dependencies.Hook; +import me.NoChance.PvPManager.Dependencies.Interfaces.PvPDependency; +import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Settings.Settings; import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer; import net.sacredlabyrinth.phaed.simpleclans.SimpleClans; import net.sacredlabyrinth.phaed.simpleclans.managers.ClanManager; @@ -36,7 +41,7 @@ public boolean shouldDisable(final Player player) { } @Override - public boolean shouldDisable(final Player attacker, final Player defender, final CancelResult reason) { + public boolean shouldDisable(final Player attacker, final Player defender, final ProtectionResult reason) { final ClanPlayer cAttacker = clanManager.getClanPlayer(attacker); final ClanPlayer cDefender = clanManager.getClanPlayer(defender); return cAttacker != null && cDefender != null && cAttacker.getClan().isWarring(cDefender.getClan()); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/TownyHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/TownyHook.java index d5eeadecb..da01f3dc2 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/TownyHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/TownyHook.java @@ -10,8 +10,7 @@ import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.RegionDependency; -import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; public class TownyHook extends BaseDependency implements ForceToggleDependency, RegionDependency { @@ -33,7 +32,7 @@ public boolean shouldDisable(final Player player) { } @Override - public boolean shouldDisable(final Player attacker, final Player defender, final CancelResult reason) { + public boolean shouldDisable(final Player attacker, final Player defender, final ProtectionResult reason) { return shouldDisable(attacker) && shouldDisable(defender); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/VaultHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/VaultHook.java index fd88dc684..053e78b27 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/VaultHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/VaultHook.java @@ -3,9 +3,9 @@ import org.bukkit.Bukkit; import org.bukkit.plugin.RegisteredServiceProvider; +import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.DependencyException; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.BaseDependency; import net.milkbowl.vault.economy.Economy; public class VaultHook extends BaseDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java index 12ef81827..84520fd42 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java @@ -14,10 +14,10 @@ import com.sk89q.worldguard.protection.flags.StateFlag.State; import com.sk89q.worldguard.protection.regions.ProtectedRegion; +import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.DependencyException; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.BaseDependency; -import me.NoChance.PvPManager.Dependencies.API.WorldGuardDependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Listeners.WGListenerLegacy; import me.NoChance.PvPManager.Managers.PlayerHandler; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java index 8839f08d7..dd4f1970a 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java @@ -13,10 +13,10 @@ import com.sk89q.worldguard.protection.regions.RegionQuery; import me.NoChance.PvPManager.PvPlayer; +import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.BaseDependency; -import me.NoChance.PvPManager.Dependencies.API.WorldGuardDependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Listeners.WGListener; import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Player.ProtectionResult; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/Dependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/Dependency.java similarity index 90% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/Dependency.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/Dependency.java index eca1db052..cd55d1cf1 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/Dependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/Dependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.API; +package me.NoChance.PvPManager.Dependencies.Interfaces; import org.bukkit.plugin.java.JavaPlugin; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/DisguiseDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/DisguiseDependency.java similarity index 76% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/DisguiseDependency.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/DisguiseDependency.java index 98c042cc4..351fc24d7 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/DisguiseDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/DisguiseDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.API; +package me.NoChance.PvPManager.Dependencies.Interfaces; import org.bukkit.entity.Player; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/GodDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/GodDependency.java similarity index 79% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/GodDependency.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/GodDependency.java index 28fda8aad..fb9115d2a 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/GodDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/GodDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.API; +package me.NoChance.PvPManager.Dependencies.Interfaces; import org.bukkit.entity.Player; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/RegionDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/RegionDependency.java similarity index 84% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/RegionDependency.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/RegionDependency.java index acc2c1dec..331d32a70 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/RegionDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/RegionDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.API; +package me.NoChance.PvPManager.Dependencies.Interfaces; import org.bukkit.Location; import org.bukkit.entity.Player; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/WorldGuardDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java similarity index 92% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/WorldGuardDependency.java rename to pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java index cdd9dc210..7b708d4be 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/API/WorldGuardDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.API; +package me.NoChance.PvPManager.Dependencies.Interfaces; import java.util.Set; 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 330152b47..c61016fb6 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 @@ -11,7 +11,7 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.Dependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; import me.NoChance.PvPManager.Settings.Settings; import me.chancesd.sdutils.metrics.Metrics; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java index 630aa04f3..df0e549c4 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java @@ -24,13 +24,14 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.WorldGuardDependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.setting.Permissions; import me.chancesd.sdutils.utils.Log; +import me.NoChance.PvPManager.Utils.MCVersion; public class DebugEntityListener implements Listener { @@ -164,7 +165,7 @@ public void onDamageActions(final Player attacker, final Player defender) { public void onLightningStrike(final LightningStrikeEvent event) { if (CombatUtils.isWorldExcluded(event.getLightning().getWorld().getName())) return; - if (!CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.13.1")) + if (!MCVersion.isAtLeast(MCVersion.V1_13_1)) return; if (event.getCause() != Cause.TRIDENT) return; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java index c430677f5..d29059d8b 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java @@ -35,7 +35,7 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.WorldGuardDependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Messages; @@ -233,7 +233,7 @@ private boolean shouldCheckPotionEvent(final PotionSplashEvent event) { public void onLightningStrike(final LightningStrikeEvent event) { if (CombatUtils.isWorldExcluded(event.getLightning().getWorld().getName())) return; - if (!CombatUtils.isMCVersionAtLeast(MCVersion.V1_13_1)) + if (!MCVersion.isAtLeast(MCVersion.V1_13_1)) return; if (event.getCause() != Cause.TRIDENT) return; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener.java index 2c7e05c37..11b9cdd4a 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener.java @@ -14,7 +14,7 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.RegionDependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.RegionDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Settings.Messages; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java index 49d7bf8ea..1d05078b9 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java @@ -16,7 +16,7 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.RegionDependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.RegionDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Utils.CombatUtils; 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 21897f88d..ca226b721 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java @@ -39,7 +39,7 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.WorldGuardDependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Messages; @@ -61,9 +61,9 @@ public class PlayerListener implements Listener { public PlayerListener(final PlayerHandler ph) { this.ph = ph; this.wg = (WorldGuardDependency) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); - if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_13)) { + if (MCVersion.isAtLeast(MCVersion.V1_13)) { mushroomSoup = Material.MUSHROOM_STEW; - } else if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_8)) { // avoid loading Material class on unit tests + } else if (MCVersion.isAtLeast(MCVersion.V1_8)) { // avoid loading Material class on unit tests mushroomSoup = Material.getMaterial("MUSHROOM_SOUP"); } } @@ -200,7 +200,7 @@ public final void onPlayerUseSoup(final PlayerInteractEvent e) { player.getHealth() + Settings.getSoupHealth() > player.getMaxHealth() ? player.getMaxHealth() : player.getHealth() + Settings.getSoupHealth()); if (Settings.isSoupBowlDisappear()) { - if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_9)) { + if (MCVersion.isAtLeast(MCVersion.V1_9)) { player.getInventory().getItemInMainHand().setAmount(0); } else { player.getInventory().setItemInHand(null); @@ -297,7 +297,7 @@ public final void onPlayerTeleport(final PlayerTeleportEvent event) { if (event.getCause().equals(TeleportCause.ENDER_PEARL) && Settings.isBlockEnderPearl()) { event.setCancelled(true); pvplayer.message(Messages.getEnderpearlBlockedIncombat()); - } else if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_9) && event.getCause() == TeleportCause.CHORUS_FRUIT + } else if (MCVersion.isAtLeast(MCVersion.V1_9) && event.getCause() == TeleportCause.CHORUS_FRUIT && Settings.isBlockChorusFruit()) { event.setCancelled(true); pvplayer.message(Messages.getChorusBlockedInCombat()); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java index ed3cba6ca..71a28ba43 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java @@ -15,7 +15,6 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.Dependencies.AFKDependency; import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.Dependency; import me.NoChance.PvPManager.Dependencies.DependencyException; import me.NoChance.PvPManager.Dependencies.DisguiseDependency; import me.NoChance.PvPManager.Dependencies.GodDependency; @@ -26,13 +25,7 @@ import me.NoChance.PvPManager.Dependencies.WorldGuardHook; import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.API.BaseDependency; -import me.NoChance.PvPManager.Dependencies.API.Dependency; -import me.NoChance.PvPManager.Dependencies.API.DisguiseDependency; -import me.NoChance.PvPManager.Dependencies.API.GodDependency; -import me.NoChance.PvPManager.Dependencies.API.PvPDependency; -import me.NoChance.PvPManager.Dependencies.API.RegionDependency; -import me.NoChance.PvPManager.Dependencies.API.WorldGuardDependency; +import me.NoChance.PvPManager.Dependencies.Hooks.CooldownsXHook; import me.NoChance.PvPManager.Dependencies.Hooks.EssentialsHook; import me.NoChance.PvPManager.Dependencies.Hooks.KingdomsXHook; import me.NoChance.PvPManager.Dependencies.Hooks.GriefPreventionHook; @@ -43,12 +36,19 @@ import me.NoChance.PvPManager.Dependencies.Hooks.VaultHook; import me.NoChance.PvPManager.Dependencies.Hooks.WorldGuardLegacyHook; import me.NoChance.PvPManager.Dependencies.Hooks.WorldGuardModernHook; +import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.DisguiseDependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.GodDependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.PvPDependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.RegionDependency; +import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Listeners.MoveListener; import me.NoChance.PvPManager.Listeners.MoveListener1_9; import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; +import me.NoChance.PvPManager.Utils.MCVersion; import me.chancesd.sdutils.utils.Log; import net.milkbowl.vault.economy.Economy; @@ -201,9 +201,9 @@ public final boolean shouldProtectAFK(final Player player) { public void startListeners(final PvPManager plugin) { if (Settings.borderHoppingPushback() && !regionChecks.isEmpty()) { - if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_9)) { + if (MCVersion.isAtLeast(MCVersion.V1_9)) { Bukkit.getPluginManager().registerEvents(new MoveListener1_9(plugin.getPlayerHandler()), plugin); - } else if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_8)) { + } else if (MCVersion.isAtLeast(MCVersion.V1_8)) { Bukkit.getPluginManager().registerEvents(new MoveListener(plugin.getPlayerHandler()), plugin); } else { Log.warning("Pushback on border hopping not available for 1.7.10 or below! Feature disabled!"); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DisplayManager.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DisplayManager.java index ac52679ba..b0f8f2fbb 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DisplayManager.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DisplayManager.java @@ -6,6 +6,7 @@ import org.bukkit.Bukkit; import org.bukkit.boss.BossBar; +import org.jetbrains.annotations.NotNull; import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; @@ -60,7 +61,7 @@ public void showProgress(final PvPlayer p, final double timePassed, final int go p.sendActionBar(ChatUtils.setPlaceholders(p.getPlayer(), progressBar.getMessage())); } - @NonNull + @NotNull public PvPManager getPlugin() { return plugin; } 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 cb2567838..720db2a6d 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java @@ -19,6 +19,8 @@ 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.CancelResult; import me.NoChance.PvPManager.Player.ProtectionResult; @@ -132,7 +134,7 @@ private PvPlayer addUser(final PvPlayer p) { public final void removeUser(final PvPlayer player) { if (player.isInCombat()) { - untag(player); + player.unTag(); } player.cleanForRemoval(); players.remove(player.getUUID()); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java index 3525e0ebe..06f293a3a 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java @@ -74,8 +74,8 @@ public final void message(final String message) { public void sendActionBar(final String message, final long duration) { if (System.currentTimeMillis() < actionBarCooldown || message.isEmpty() || message.equals(lastActionBarMessage)) return; - if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_10)) { // Premium PvPManager supports lower versions with NMS - if (CombatUtils.isMCVersionAtLeast("1.16.5")) { + if (MCVersion.isAtLeast(MCVersion.V1_10)) { // Premium PvPManager supports lower versions with NMS + if (MCVersion.isAtLeast(MCVersion.V1_16_5)) { getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message)); } else { getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(message)); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java index 35ee5f4fb..0b4649145 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java @@ -92,12 +92,12 @@ private void loadFiles() { } private void startListeners() { - if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_9)) { + if (MCVersion.isAtLeast(MCVersion.V1_9)) { registerListener(new EntityListener1_9(playerHandler)); } entityListener = new EntityListener(playerHandler); registerListener(entityListener); - if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.11.2")) { + if (MCVersion.isAtLeast(MCVersion.V1_11_2)) { registerListener(new PlayerListener1_11(playerHandler)); } registerListener(new PlayerListener(playerHandler)); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java index e7be9f90b..49e9001e7 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java @@ -11,6 +11,7 @@ import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import com.google.common.util.concurrent.ThreadFactoryBuilder; @@ -23,8 +24,8 @@ import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Tasks.NewbieTask; -import me.NoChance.PvPManager.Utils.ChatUtils; import me.NoChance.PvPManager.Utils.CombatUtils; +import me.NoChance.PvPManager.Utils.MCVersion; import me.chancesd.pvpmanager.player.nametag.BukkitNameTag; import me.chancesd.pvpmanager.player.nametag.NameTag; import me.chancesd.pvpmanager.setting.Permissions; @@ -136,7 +137,7 @@ public final void disableFly() { public final void setNewbie(final boolean newbie) { if (newbie) { this.newbieTask = new NewbieTask(this, 0); - message(Messages.getNewbieProtection(newbieTask.getFinishTime())); + message(Messages.getNewbieProtection(newbieTask.getFinishTime())); } else if (this.newbie && newbieTask != null) { if (newbieTask.isExpired()) { message(Messages.getNewbieProtectionEnd()); @@ -168,7 +169,7 @@ public final void setTagged(final boolean attacker, final PvPlayer tagger, final if (event.isCancelled()) return; - if (Settings.isGlowingInCombat() && CombatUtils.isMCVersionAtLeast(MCVersion.V1_9)) { + if (Settings.isGlowingInCombat() && MCVersion.isAtLeast(MCVersion.V1_9)) { getPlayer().setGlowing(true); } @@ -205,7 +206,7 @@ public final void unTag() { if (nametag != null && Settings.useNameTag()) { nametag.restoreNametag(); } - if (Settings.isGlowingInCombat() && CombatUtils.isMCVersionAtLeast(MCVersion.V1_9)) { + if (Settings.isGlowingInCombat() && MCVersion.isAtLeast(MCVersion.V1_9)) { getPlayer().setGlowing(false); // effect should pass by itself but now players can get untagged before tag expires } @@ -273,7 +274,7 @@ public final void addVictim(final Player victimPlayer) { public final int getKillAbuseCount(final Player victimPlayer) { return victim.getOrDefault(victimPlayer.getName(), 0); } - + public final boolean hasItemCooldown(final Material material) { final Long time = itemCooldown.get(material); if (time == null) @@ -285,9 +286,9 @@ public final boolean hasItemCooldown(final Material material) { return true; } - public final void setItemCooldown(@NonNull final Material material, final int time) { + public final void setItemCooldown(@NotNull final Material material, final int time) { itemCooldown.put(material, System.currentTimeMillis() + time * 1000); - if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_11_2)) { + if (MCVersion.isAtLeast(MCVersion.V1_11_2)) { getPlayer().setCooldown(material, time * 20); } } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java index 5dbe2aae9..a93721db5 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java @@ -23,6 +23,7 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Utils.ChatUtils; +import me.NoChance.PvPManager.Utils.TimeUtil; import me.chancesd.sdutils.utils.Log; public class Messages { @@ -106,7 +107,7 @@ public class Messages { private static String timeSeconds; private static String timeNow; private static String itemCooldown; - private static String prefix; + private static String prefix = "&6[&8PvPManager&6]"; public static void setup(final PvPManager plugin) { Messages.plugin = plugin; @@ -158,7 +159,7 @@ private static void load() { } @NotNull - private static String getString(final String key) { + public static String getString(final String key) { final String message = new String(LANG.getProperty(key).getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); return ChatUtils.colorize(message).replace("%prefix%", Messages.getPrefix()); } @@ -312,12 +313,12 @@ public static String replaceTime(final String message, final long time) { return message.replace("%time%", TimeUtil.getDiffMsg(time)); } - @NonNull + @NotNull public static String replacePlayer(final String message, final String player) { return message.replace("%player%", player); } - @NonNull + @NotNull public static String replaceVictim(final String message, final String player) { return message.replace("", player); } @@ -330,7 +331,7 @@ public static String getPrefix() { return prefix; } - @NonNull + @NotNull public static String getErrorPlayerNotFound(final String name) { return replacePlayer(errorPlayerNotFound, name); } @@ -459,7 +460,7 @@ public static String getPushbackWarning() { return pushbackWarning; } - @NonNull + @NotNull public static String getErrorCommand() { return errorCommand; } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java index 397fb1d47..17580b6ff 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java @@ -21,6 +21,7 @@ import me.NoChance.PvPManager.Utils.ChatUtils; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.sdutils.utils.Log; +import me.NoChance.PvPManager.Utils.MCVersion; public final class Settings { @@ -200,13 +201,10 @@ public static void initizalizeVariables(final YamlConfiguration c) { actionBarMessage = ChatUtils.colorize(TAGGEDCOMBAT.getString("Action Bar.Message", "")); actionBarSymbol = TAGGEDCOMBAT.getString("Action Bar.Symbol", "▊"); actionBarTotalBars = TAGGEDCOMBAT.getInt("Action Bar.Total Bars", 10); - bossBarEnabled = CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.9") && TAGGEDCOMBAT.getBoolean("Boss Bar.Enabled", true); + bossBarEnabled = MCVersion.isAtLeast(MCVersion.V1_9) && TAGGEDCOMBAT.getBoolean("Boss Bar.Enabled", true); bossBarMessage = ChatUtils.colorize(TAGGEDCOMBAT.getString("Boss Bar.Message", "")); - bossBarColor = CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.9") ? BarColor.valueOf(TAGGEDCOMBAT.getString("Boss Bar.BarColor", "RED")) - : null; - bossBarStyle = CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.9") - ? BarStyle.valueOf(TAGGEDCOMBAT.getString("Boss Bar.BarStyle", "SEGMENTED_10")) - : null; + bossBarColor = MCVersion.isAtLeast(MCVersion.V1_9) ? BarColor.valueOf(TAGGEDCOMBAT.getString("Boss Bar.BarColor", "RED")) : null; + bossBarStyle = MCVersion.isAtLeast(MCVersion.V1_9) ? BarStyle.valueOf(TAGGEDCOMBAT.getString("Boss Bar.BarStyle", "SEGMENTED_10")) : null; untagEnemy = TAGGEDCOMBAT.getBoolean("Untag Enemy", false); enderPearlCooldown = TAGGEDCOMBAT.getInt("EnderPearl.Cooldown", 15); enderPearlRenewTag = TAGGEDCOMBAT.getBoolean("EnderPearl.Renew Tag", true); @@ -240,7 +238,7 @@ public static void initizalizeVariables(final YamlConfiguration c) { final Material material = Material.getMaterial(e.getKey().toUpperCase()); if (material == null) { Log.warning("The material " + e.getKey() - + " in Item Cooldowns doesn't exist. You might have typed it incorrectly or it might not exist in this MC version"); + + " in Item Cooldowns doesn't exist. You might have typed it incorrectly or it might not exist in this MC version"); continue; } itemCooldowns.put(material, (Integer) e.getValue()); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java index 5897f9838..940e62a61 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java @@ -25,7 +25,7 @@ import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionType; import org.bukkit.projectiles.ProjectileSource; -import org.eclipse.jdt.annotation.NonNull; +import org.jetbrains.annotations.NotNull; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; @@ -108,7 +108,7 @@ public static final boolean isPvP(final EntityDamageByEntityEvent event) { if (defender instanceof Player && !isNPC(defender)) { if (attacker instanceof Player && !isNPC(attacker)) return true; - if (attacker instanceof Projectile || CombatUtils.isMCVersionAtLeast(MCVersion.V1_9) && attacker instanceof AreaEffectCloud) { + if (attacker instanceof Projectile || MCVersion.isAtLeast(MCVersion.V1_9) && attacker instanceof AreaEffectCloud) { final ProjectileSource projSource = getSource(attacker); if (projSource instanceof Player) { final Entity shooter = (Entity) projSource; @@ -182,19 +182,19 @@ public static void fakeItemStackDrop(final Player player, final ItemStack[] inve } } - public static boolean isOnline(@NonNull final String name) { + public static boolean isOnline(@NotNull final String name) { return Bukkit.getPlayer(name) != null; } public static boolean isOnlineWithFeedback(final CommandSender sender, final String name) { if (!isOnline(name)) { - sender.sendMessage(Messages.getErrorPlayerNotFound().replace("%p", name)); + sender.sendMessage(Messages.getErrorPlayerNotFound(name)); return false; } return true; } - public static boolean isOnline(@NonNull final UUID uuid) { + public static boolean isOnline(@NotNull final UUID uuid) { return Bukkit.getPlayer(uuid) != null; } @@ -264,10 +264,6 @@ public static final boolean isVersionAtLeast(final String v1, final String v2) { return true; } - public static final boolean isMCVersionAtLeast(final MCVersion version) { - return Settings.getMinecraftVersion().ordinal() >= version.ordinal(); - } - public static String stripTags(final String version) { return version.replaceAll("[-;+].+", ""); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/DateUtil.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/DateUtil.java deleted file mode 100644 index 8b1378917..000000000 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/DateUtil.java +++ /dev/null @@ -1 +0,0 @@ - diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/MCVersion.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/MCVersion.java index ee82a2898..1e4e42552 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/MCVersion.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/MCVersion.java @@ -1,15 +1,25 @@ package me.NoChance.PvPManager.Utils; +import me.NoChance.PvPManager.Settings.Settings; + /** * Utility class to get and compare MC versions * * @author ChanceSD */ public enum MCVersion { - OLD, V1_8, V1_9, V1_10, V1_11, V1_11_2, V1_12, V1_13, V1_13_1, V1_14, V1_15, V1_16; + OLD, V1_8, V1_9, V1_10, V1_11, V1_11_2, V1_12, V1_13, V1_13_1, V1_14, V1_15, V1_16, V1_16_5, V1_17, V1_18, V1_19; public static MCVersion getMCVersion(final String version) { - if (CombatUtils.isVersionAtLeast(version, "1.16")) + if (CombatUtils.isVersionAtLeast(version, "1.19")) + return MCVersion.V1_19; + else if (CombatUtils.isVersionAtLeast(version, "1.18")) + return MCVersion.V1_18; + else if (CombatUtils.isVersionAtLeast(version, "1.17")) + return MCVersion.V1_17; + else if (CombatUtils.isVersionAtLeast(version, "1.16.5")) + return MCVersion.V1_16_5; + else if (CombatUtils.isVersionAtLeast(version, "1.16")) return MCVersion.V1_16; else if (CombatUtils.isVersionAtLeast(version, "1.15")) return MCVersion.V1_15; @@ -33,4 +43,13 @@ else if (CombatUtils.isVersionAtLeast(version, "1.8")) return MCVersion.V1_8; return MCVersion.OLD; } + + public static final boolean isAtLeast(final MCVersion version) { + return Settings.getMinecraftVersion().ordinal() >= version.ordinal(); + } + + public static final boolean isLessThan(final MCVersion version) { + return Settings.getMinecraftVersion().ordinal() < version.ordinal(); + } + } 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 f1fa2b1a2..e48bb0281 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 @@ -10,8 +10,8 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.sdutils.utils.Log; +import me.NoChance.PvPManager.Utils.MCVersion; public class BukkitNameTag extends NameTag { @@ -42,7 +42,7 @@ private void setup() { inCombat = scoreboard.registerNewTeam(combatTeamID); Log.debug("Creating combat team with name " + combatTeamID); inCombat.setPrefix(combatPrefix); - if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.13")) { + if (MCVersion.isAtLeast(MCVersion.V1_13)) { final ChatColor nameColor = getLastColor(combatPrefix); if (nameColor != null) { inCombat.setColor(nameColor); @@ -58,7 +58,7 @@ private void setup() { pvpOn = scoreboard.registerNewTeam(PVPON); pvpOn.setCanSeeFriendlyInvisibles(false); pvpOn.setPrefix(pvpOnPrefix); - if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_13)) { + if (MCVersion.isAtLeast(MCVersion.V1_13)) { final ChatColor nameColor = getLastColor(pvpOnPrefix); if (nameColor != null) { pvpOn.setColor(nameColor); @@ -73,7 +73,7 @@ private void setup() { pvpOff = scoreboard.registerNewTeam(PVPOFF); pvpOff.setCanSeeFriendlyInvisibles(false); pvpOff.setPrefix(pvpOffPrefix); - if (CombatUtils.isMCVersionAtLeast(MCVersion.V1_13)) { + if (MCVersion.isAtLeast(MCVersion.V1_13)) { final ChatColor nameColor = getLastColor(pvpOffPrefix); if (nameColor != null) { pvpOff.setColor(nameColor); diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/storage/Database.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/storage/Database.java index 300ea7ba3..a21802749 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/storage/Database.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/storage/Database.java @@ -24,8 +24,7 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.NoChance.PvPManager.Utils.MCVersion; import me.chancesd.pvpmanager.storage.DatabaseConfigBuilder.DatabaseType; public class Database { @@ -45,7 +44,7 @@ protected Database(final DatabaseFactory databaseFactory, final DatabaseConfigBu final HikariConfig config = new HikariConfig(); if (databaseType == DatabaseType.SQLITE) { // Use SQLITE - if (!CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.9")) { + if (MCVersion.isLessThan(MCVersion.V1_9)) { try { Class.forName("org.sqlite.JDBC"); // got to do this for 1.8 sigh config.setConnectionTestQuery("SELECT 1;"); @@ -54,7 +53,7 @@ protected Database(final DatabaseFactory databaseFactory, final DatabaseConfigBu } } config.setJdbcUrl(String.format(SQLITE_URL_TEMPLATE, builder.getFile())); - if (CombatUtils.isVersionAtLeast(Settings.getMinecraftVersion(), "1.9")) { + if (MCVersion.isAtLeast(MCVersion.V1_9)) { config.addDataSourceProperty("journal_mode", "wal"); } config.addDataSourceProperty("synchronous", "normal"); From 874bc5366577e82745ef29a2598b97f908713712 Mon Sep 17 00:00:00 2001 From: ChanceSD <5256215+ChanceSD@users.noreply.github.com> Date: Fri, 7 Apr 2023 15:37:53 +0100 Subject: [PATCH 03/16] More more changes --- .../Dependencies/Hooks/SimpleClansHook.java | 2 - .../Libraries/Metrics/CustomMetrics.java | 101 +++----- .../PvPManager/Listeners/PlayerListener.java | 2 - .../PvPManager/Managers/PlayerHandler.java | 2 - .../me/NoChance/PvPManager/PvPManager.java | 2 - .../java/me/NoChance/PvPManager/PvPlayer.java | 7 +- .../PvPManager/Settings/Settings.java | 244 +++++++++--------- .../PvPManager/Utils/CombatUtils.java | 52 ++-- .../player/nametag/BukkitNameTag.java | 42 ++- .../Listeners/PlayerListenerTest.java | 3 +- 10 files changed, 208 insertions(+), 249 deletions(-) diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java index 284c7d308..292ba04ea 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java @@ -11,12 +11,10 @@ import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.PvPDependency; import me.NoChance.PvPManager.Player.ProtectionResult; -import me.NoChance.PvPManager.Settings.Settings; import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer; import net.sacredlabyrinth.phaed.simpleclans.SimpleClans; import net.sacredlabyrinth.phaed.simpleclans.managers.ClanManager; -@SuppressWarnings("null") public class SimpleClansHook extends BaseDependency implements GroupDependency, ForceToggleDependency { private final ClanManager clanManager; 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 c61016fb6..617aedb35 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,17 +26,11 @@ 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.SimplePie("time_in_combat", () -> Settings.isInCombatEnabled() ? Settings.getTimeInCombat() + " seconds" : "Disabled")); - metrics.addCustomChart(new Metrics.DrilldownPie("features", new Callable>>() { - @Override - public Map> call() { - final Map> map = new HashMap<>(); + 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")); @@ -55,67 +48,51 @@ else if (!Settings.isBossBarEnabled() && !Settings.isActionBarEnabled()) 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", - "CMI", "TAB", "ProtectionStones"); - 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", + "CMI", "TAB", "ProtectionStones"); + for (final String extraPlugin : extra) { + if (Bukkit.getPluginManager().isPluginEnabled(extraPlugin)) { + valueMap.put(extraPlugin, 1); } - return valueMap; } + return valueMap; })); - 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())); metrics.addCustomChart(new Metrics.DrilldownPie("blocked_actions", () -> { final Map> map = new HashMap<>(); 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 ca226b721..f42f257d9 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java @@ -44,7 +44,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.setting.Permissions; import me.chancesd.pvpmanager.utils.ScheduleUtils; @@ -382,7 +381,6 @@ public void onChangeWorld(final PlayerChangedWorldEvent event) { if (!pvPlayer.hasPvPEnabled() && optionState == CombatWorld.WorldOptionState.ON) { pvPlayer.setPvP(true); pvPlayer.message(Messages.getErrorPvPToggleForcePvP()); - return; } } 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 720db2a6d..63bc1f92f 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.CancelResult; import me.NoChance.PvPManager.Player.ProtectionResult; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java index 0b4649145..4e3ff2b4d 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java @@ -27,8 +27,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 49e9001e7..bd1ce1f81 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.HashSet; import java.util.Map; @@ -53,9 +54,9 @@ public class PvPlayer extends EcoPlayer { private long totalTagTime; private NewbieTask newbieTask; private PvPlayer enemy; - private final Set lastHitters = new HashSet<>(); - private final HashMap victim = new HashMap<>(); - private final HashMap itemCooldown = new HashMap<>(); + private final Set lastHitters = new HashSet<>(); + 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/NoChance/PvPManager/Settings/Settings.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java index 17580b6ff..1d02fa6f5 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java @@ -19,7 +19,6 @@ import me.NoChance.PvPManager.Utils.ChatUtils; -import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.sdutils.utils.Log; import me.NoChance.PvPManager.Utils.MCVersion; @@ -116,7 +115,6 @@ public enum DropMode { private static List blockInteractItemList; private static boolean untagEnemy; private static boolean killAbuseWarn; - private static ChatColor teamColor; private static boolean actionBarEnabled; private static String actionBarMessage; private static String actionBarSymbol; @@ -134,104 +132,104 @@ public enum DropMode { private static String cooldownsxEnderpearlID; private static Set harmfulPotions; private static Map itemCooldowns; - private static ConfigurationSection GENERAL; - private static ConfigurationSection BORDERHOPPING; - private static ConfigurationSection DISABLE; - private static ConfigurationSection TAGGEDCOMBAT; - private static ConfigurationSection NEWBIEPROTECTION; - private static ConfigurationSection KILLABUSE; - private static ConfigurationSection PLAYERKILLS; - private static ConfigurationSection PVPTOGGLE; - private static ConfigurationSection PLUGINHOOKS; - private static ConfigurationSection UPDATECHECK; + private static ConfigurationSection generalSection; + private static ConfigurationSection borderHoppingSection; + private static ConfigurationSection disableActionsSection; + private static ConfigurationSection combatTagSection; + private static ConfigurationSection newbieSection; + private static ConfigurationSection killAbuseSection; + private static ConfigurationSection playerKillsSection; + private static ConfigurationSection pvpToggleSection; + private static ConfigurationSection pluginHookSection; + private static ConfigurationSection updateSection; private Settings() { } private static void assignSections(final YamlConfiguration config) { - GENERAL = config.getConfigurationSection("General"); - BORDERHOPPING = config.getConfigurationSection("Anti Border Hopping"); - DISABLE = config.getConfigurationSection("Disable"); - TAGGEDCOMBAT = config.getConfigurationSection("Tagged In Combat"); - NEWBIEPROTECTION = config.getConfigurationSection("Newbie Protection"); - KILLABUSE = config.getConfigurationSection("Kill Abuse"); - PLAYERKILLS = config.getConfigurationSection("Player Kills"); - PVPTOGGLE = config.getConfigurationSection("PvP Toggle"); - PLUGINHOOKS = config.getConfigurationSection("Plugin Hooks"); - UPDATECHECK = config.getConfigurationSection("Update Check"); + generalSection = config.getConfigurationSection("General"); + borderHoppingSection = config.getConfigurationSection("Anti Border Hopping"); + disableActionsSection = config.getConfigurationSection("Disable"); + combatTagSection = config.getConfigurationSection("Tagged In Combat"); + newbieSection = config.getConfigurationSection("Newbie Protection"); + killAbuseSection = config.getConfigurationSection("Kill Abuse"); + playerKillsSection = config.getConfigurationSection("Player Kills"); + pvpToggleSection = config.getConfigurationSection("PvP Toggle"); + pluginHookSection = config.getConfigurationSection("Plugin Hooks"); + updateSection = config.getConfigurationSection("Update Check"); } public static void initizalizeVariables(final YamlConfiguration c) { assignSections(c); minecraftVersion = MCVersion.getMCVersion(Bukkit.getBukkitVersion().isEmpty() ? "0" : Bukkit.getBukkitVersion().replaceAll("-.+", "")); - locale = GENERAL.getString("Locale", "en").toUpperCase(); - defaultPvp = GENERAL.getBoolean("Default PvP", true); - pvpBlood = GENERAL.getBoolean("PvP Blood", true); - dropMode = DropMode.valueOf(GENERAL.getString("Player Drop Mode", "ALWAYS").toUpperCase()); - ignoreNoDamageHits = GENERAL.getBoolean("Ignore No Damage Hits", true); - soupHealth = GENERAL.getDouble("Auto Soup.Health", 0); - soupBowlDisappear = GENERAL.getBoolean("Auto Soup.Bowl Disappear", false); - recyclePotionBottles = GENERAL.getBoolean("Recycling.Potion Bottle", false); - recycleMilkBucket = GENERAL.getBoolean("Recycling.Milk Bucket", false); - healthBelowName = GENERAL.getBoolean("Show health under name.Enabled", true); - healthBelowNameSymbol = GENERAL.getString("Show health under name.Display Name", "❤"); - worldsExcluded = new HashSet<>(getList(GENERAL.getStringList("World Exclusions"))); - - borderHoppingVulnerable = BORDERHOPPING.getBoolean("Vulnerable", true); - borderHoppingPushback = BORDERHOPPING.getBoolean("Push Back.Enabled", true); - borderPushbackTakeElytra = BORDERHOPPING.getBoolean("Push Back.Remove Elytra", false); - borderHoppingResetCombatTag = BORDERHOPPING.getBoolean("Reset Combat Tag", true); - - disableFly = DISABLE.getBoolean("Fly", true); - disableGamemode = DISABLE.getBoolean("GameMode", true); - disableDisguise = DISABLE.getBoolean("Disguise", true); - disableGodMode = DISABLE.getBoolean("GodMode", true); - disableELytra = DISABLE.getBoolean("Elytra", false); - disableInvisibility = DISABLE.getBoolean("Invisibility", false); - - inCombatEnabled = TAGGEDCOMBAT.getBoolean("Enabled", true); - timeInCombat = TAGGEDCOMBAT.getInt("Time", 10); + locale = generalSection.getString("Locale", "en").toUpperCase(); + defaultPvp = generalSection.getBoolean("Default PvP", true); + pvpBlood = generalSection.getBoolean("PvP Blood", true); + dropMode = DropMode.valueOf(generalSection.getString("Player Drop Mode", "ALWAYS").toUpperCase()); + ignoreNoDamageHits = generalSection.getBoolean("Ignore No Damage Hits", true); + soupHealth = generalSection.getDouble("Auto Soup.Health", 0); + soupBowlDisappear = generalSection.getBoolean("Auto Soup.Bowl Disappear", false); + recyclePotionBottles = generalSection.getBoolean("Recycling.Potion Bottle", false); + recycleMilkBucket = generalSection.getBoolean("Recycling.Milk Bucket", false); + healthBelowName = generalSection.getBoolean("Show health under name.Enabled", true); + healthBelowNameSymbol = generalSection.getString("Show health under name.Display Name", "❤"); + worldsExcluded = new HashSet<>(getList(generalSection.getStringList("World Exclusions"))); + + borderHoppingVulnerable = borderHoppingSection.getBoolean("Vulnerable", true); + borderHoppingPushback = borderHoppingSection.getBoolean("Push Back.Enabled", true); + borderPushbackTakeElytra = borderHoppingSection.getBoolean("Push Back.Remove Elytra", false); + borderHoppingResetCombatTag = borderHoppingSection.getBoolean("Reset Combat Tag", true); + + disableFly = disableActionsSection.getBoolean("Fly", true); + disableGamemode = disableActionsSection.getBoolean("GameMode", true); + disableDisguise = disableActionsSection.getBoolean("Disguise", true); + disableGodMode = disableActionsSection.getBoolean("GodMode", true); + disableELytra = disableActionsSection.getBoolean("Elytra", false); + disableInvisibility = disableActionsSection.getBoolean("Invisibility", false); + + inCombatEnabled = combatTagSection.getBoolean("Enabled", true); + timeInCombat = combatTagSection.getInt("Time", 10); timeInCombatMs = timeInCombat * 1000L; - nameTagPrefix = TAGGEDCOMBAT.getString("NameTag Prefix", "&c"); - nameTagSuffix = TAGGEDCOMBAT.getString("NameTag Suffix", ""); - glowingInCombat = TAGGEDCOMBAT.getBoolean("Glowing", true); - selfTag = TAGGEDCOMBAT.getBoolean("Self Tag", false); - actionBarEnabled = TAGGEDCOMBAT.getBoolean("Action Bar.Enabled", true); - actionBarMessage = ChatUtils.colorize(TAGGEDCOMBAT.getString("Action Bar.Message", "")); - actionBarSymbol = TAGGEDCOMBAT.getString("Action Bar.Symbol", "▊"); - actionBarTotalBars = TAGGEDCOMBAT.getInt("Action Bar.Total Bars", 10); - bossBarEnabled = MCVersion.isAtLeast(MCVersion.V1_9) && TAGGEDCOMBAT.getBoolean("Boss Bar.Enabled", true); - bossBarMessage = ChatUtils.colorize(TAGGEDCOMBAT.getString("Boss Bar.Message", "")); - bossBarColor = MCVersion.isAtLeast(MCVersion.V1_9) ? BarColor.valueOf(TAGGEDCOMBAT.getString("Boss Bar.BarColor", "RED")) : null; - bossBarStyle = MCVersion.isAtLeast(MCVersion.V1_9) ? BarStyle.valueOf(TAGGEDCOMBAT.getString("Boss Bar.BarStyle", "SEGMENTED_10")) : null; - untagEnemy = TAGGEDCOMBAT.getBoolean("Untag Enemy", false); - enderPearlCooldown = TAGGEDCOMBAT.getInt("EnderPearl.Cooldown", 15); - enderPearlRenewTag = TAGGEDCOMBAT.getBoolean("EnderPearl.Renew Tag", true); - - blockEnderPearl = TAGGEDCOMBAT.getBoolean("Block.EnderPearls", true); - blockChorusFruit = TAGGEDCOMBAT.getBoolean("Block.ChorusFruits", true); - blockTeleport = TAGGEDCOMBAT.getBoolean("Block.Teleport", true); - blockPlaceBlocks = TAGGEDCOMBAT.getBoolean("Block.Place Blocks", false); - blockInteractInCombat = TAGGEDCOMBAT.getBoolean("Block.Interact.Enabled", false); - blockInteractItemList = TAGGEDCOMBAT.getStringList("Block.Interact.List"); - blockGlideInCombat = TAGGEDCOMBAT.getBoolean("Block.Elytra", false); - blockEat = TAGGEDCOMBAT.getBoolean("Block.Eat", false); - blockTotemUndying = TAGGEDCOMBAT.getBoolean("Block.Totem of Undying", false); - blockInventoryOpen = TAGGEDCOMBAT.getBoolean("Block.Open Inventory", true); - stopCommands = TAGGEDCOMBAT.getBoolean("Block.Commands.Enabled", true); - commandsWhitelist = TAGGEDCOMBAT.getBoolean("Block.Commands.Whitelist", true); - commandsAllowed = getList(TAGGEDCOMBAT.getStringList("Block.Commands.Command List")); - punishOnKick = TAGGEDCOMBAT.getBoolean("Punishments.Punish On Kick.Enabled", true); - matchKickReason = TAGGEDCOMBAT.getBoolean("Punishments.Punish On Kick.Match Kick Reason", false); - forcePunishKickReason = getList(TAGGEDCOMBAT.getStringList("Punishments.Punish On Kick.Kick Reasons")); - fineAmount = TAGGEDCOMBAT.getDouble("Punishments.Money Penalty", 0.00); - logToFile = TAGGEDCOMBAT.getBoolean("Punishments.Log To File", true); - killOnLogout = TAGGEDCOMBAT.getBoolean("Punishments.Kill on Logout.Enabled", true); - dropInventory = TAGGEDCOMBAT.getBoolean("Punishments.Kill on Logout.Player Drops.Inventory", true); - dropExp = TAGGEDCOMBAT.getBoolean("Punishments.Kill on Logout.Player Drops.Experience", true); - dropArmor = TAGGEDCOMBAT.getBoolean("Punishments.Kill on Logout.Player Drops.Armor", true); - commandsOnPvPLog = getCommandList(TAGGEDCOMBAT.getStringList("Punishments.Commands On PvPLog")); + nameTagPrefix = combatTagSection.getString("NameTag Prefix", "&c"); + nameTagSuffix = combatTagSection.getString("NameTag Suffix", ""); + glowingInCombat = combatTagSection.getBoolean("Glowing", true); + selfTag = combatTagSection.getBoolean("Self Tag", false); + actionBarEnabled = combatTagSection.getBoolean("Action Bar.Enabled", true); + actionBarMessage = ChatUtils.colorize(combatTagSection.getString("Action Bar.Message", "")); + actionBarSymbol = combatTagSection.getString("Action Bar.Symbol", "▊"); + actionBarTotalBars = combatTagSection.getInt("Action Bar.Total Bars", 10); + bossBarEnabled = MCVersion.isAtLeast(MCVersion.V1_9) && combatTagSection.getBoolean("Boss Bar.Enabled", true); + bossBarMessage = ChatUtils.colorize(combatTagSection.getString("Boss Bar.Message", "")); + bossBarColor = MCVersion.isAtLeast(MCVersion.V1_9) ? BarColor.valueOf(combatTagSection.getString("Boss Bar.BarColor", "RED")) : null; + bossBarStyle = MCVersion.isAtLeast(MCVersion.V1_9) ? BarStyle.valueOf(combatTagSection.getString("Boss Bar.BarStyle", "SEGMENTED_10")) : null; + untagEnemy = combatTagSection.getBoolean("Untag Enemy", false); + enderPearlCooldown = combatTagSection.getInt("EnderPearl.Cooldown", 15); + enderPearlRenewTag = combatTagSection.getBoolean("EnderPearl.Renew Tag", true); + + blockEnderPearl = combatTagSection.getBoolean("Block.EnderPearls", true); + blockChorusFruit = combatTagSection.getBoolean("Block.ChorusFruits", true); + blockTeleport = combatTagSection.getBoolean("Block.Teleport", true); + blockPlaceBlocks = combatTagSection.getBoolean("Block.Place Blocks", false); + blockInteractInCombat = combatTagSection.getBoolean("Block.Interact.Enabled", false); + blockInteractItemList = combatTagSection.getStringList("Block.Interact.List"); + blockGlideInCombat = combatTagSection.getBoolean("Block.Elytra", false); + blockEat = combatTagSection.getBoolean("Block.Eat", false); + blockTotemUndying = combatTagSection.getBoolean("Block.Totem of Undying", false); + blockInventoryOpen = combatTagSection.getBoolean("Block.Open Inventory", true); + stopCommands = combatTagSection.getBoolean("Block.Commands.Enabled", true); + commandsWhitelist = combatTagSection.getBoolean("Block.Commands.Whitelist", true); + commandsAllowed = getList(combatTagSection.getStringList("Block.Commands.Command List")); + punishOnKick = combatTagSection.getBoolean("Punishments.Punish On Kick.Enabled", true); + matchKickReason = combatTagSection.getBoolean("Punishments.Punish On Kick.Match Kick Reason", false); + forcePunishKickReason = getList(combatTagSection.getStringList("Punishments.Punish On Kick.Kick Reasons")); + fineAmount = combatTagSection.getDouble("Punishments.Money Penalty", 0.00); + logToFile = combatTagSection.getBoolean("Punishments.Log To File", true); + killOnLogout = combatTagSection.getBoolean("Punishments.Kill on Logout.Enabled", true); + dropInventory = combatTagSection.getBoolean("Punishments.Kill on Logout.Player Drops.Inventory", true); + dropExp = combatTagSection.getBoolean("Punishments.Kill on Logout.Player Drops.Experience", true); + dropArmor = combatTagSection.getBoolean("Punishments.Kill on Logout.Player Drops.Armor", true); + commandsOnPvPLog = getCommandList(combatTagSection.getStringList("Punishments.Commands On PvPLog")); itemCooldowns = new EnumMap<>(Material.class); for (final Entry e : c.getConfigurationSection("Item Cooldowns").getValues(false).entrySet()) { @@ -244,44 +242,44 @@ public static void initizalizeVariables(final YamlConfiguration c) { itemCooldowns.put(material, (Integer) e.getValue()); } - newbieProtectionEnabled = NEWBIEPROTECTION.getBoolean("Enabled", true); - newbieProtectionTime = NEWBIEPROTECTION.getInt("Time(minutes)", 5); - newbieAllowDisable = NEWBIEPROTECTION.getBoolean("Allow Player Disable", true); - blockPickNewbies = NEWBIEPROTECTION.getBoolean("Block Pick Items", false); - blockPlaceBlocksNewbie = NEWBIEPROTECTION.getBoolean("Block Place Blocks", false); - newbieGodMode = NEWBIEPROTECTION.getBoolean("Protect From Everything", false); - newbieBlacklist = getList(NEWBIEPROTECTION.getStringList("Command Blacklist")); - - killAbuseEnabled = KILLABUSE.getBoolean("Enabled", true); - killAbuseMaxKills = KILLABUSE.getInt("Max Kills", 5); - killAbuseTime = KILLABUSE.getInt("Time Limit", 60); - killAbuseWarn = KILLABUSE.getBoolean("Warn Before", true); - killAbuseCommands = getCommandList(KILLABUSE.getStringList("Commands on Abuse")); - respawnProtection = KILLABUSE.getInt("Respawn Protection", 5); - - setMoneyReward(PLAYERKILLS.getDouble("Money Reward", 10)); - setMoneyPenalty(PLAYERKILLS.getDouble("Money Penalty", 10)); - moneySteal = PLAYERKILLS.getBoolean("Money Steal", false); - commandsOnKill = getCommandList(PLAYERKILLS.getStringList("Commands On Kill")); - playerKillsWGExclusions = new HashSet<>(getList(PLAYERKILLS.getStringList("WorldGuard Exclusions"))); - - toggleCooldown = PVPTOGGLE.getInt("Cooldown", 15); - setToggleNametagsEnabled(PVPTOGGLE.getBoolean("NameTags.Enabled", false)); - toggleColorOn = PVPTOGGLE.getString("NameTags.Prefix On", "&1"); - toggleColorOff = PVPTOGGLE.getString("NameTags.Prefix Off", "&2"); - pvpDisabledFee = PVPTOGGLE.getInt("PvP Disabled Money Fee", 0); - commandsPvPOn = getCommandList(PVPTOGGLE.getStringList("Commands PvP On")); - commandsPvPOff = getCommandList(PVPTOGGLE.getStringList("Commands PvP Off")); - worldguardOverrides = PVPTOGGLE.getBoolean("WorldGuard Overrides", true); - worldguardOverridesList = new HashSet<>(getList(PVPTOGGLE.getStringList("WorldGuard Overrides Region List"))); - - cooldownsxEnderpearlID = PLUGINHOOKS.getString("CooldownsX.Enderpearl", ""); + newbieProtectionEnabled = newbieSection.getBoolean("Enabled", true); + newbieProtectionTime = newbieSection.getInt("Time(minutes)", 5); + newbieAllowDisable = newbieSection.getBoolean("Allow Player Disable", true); + blockPickNewbies = newbieSection.getBoolean("Block Pick Items", false); + blockPlaceBlocksNewbie = newbieSection.getBoolean("Block Place Blocks", false); + newbieGodMode = newbieSection.getBoolean("Protect From Everything", false); + newbieBlacklist = getList(newbieSection.getStringList("Command Blacklist")); + + killAbuseEnabled = killAbuseSection.getBoolean("Enabled", true); + killAbuseMaxKills = killAbuseSection.getInt("Max Kills", 5); + killAbuseTime = killAbuseSection.getInt("Time Limit", 60); + killAbuseWarn = killAbuseSection.getBoolean("Warn Before", true); + killAbuseCommands = getCommandList(killAbuseSection.getStringList("Commands on Abuse")); + respawnProtection = killAbuseSection.getInt("Respawn Protection", 5); + + setMoneyReward(playerKillsSection.getDouble("Money Reward", 10)); + setMoneyPenalty(playerKillsSection.getDouble("Money Penalty", 10)); + moneySteal = playerKillsSection.getBoolean("Money Steal", false); + commandsOnKill = getCommandList(playerKillsSection.getStringList("Commands On Kill")); + playerKillsWGExclusions = new HashSet<>(getList(playerKillsSection.getStringList("WorldGuard Exclusions"))); + + toggleCooldown = pvpToggleSection.getInt("Cooldown", 15); + setToggleNametagsEnabled(pvpToggleSection.getBoolean("NameTags.Enabled", false)); + toggleColorOn = pvpToggleSection.getString("NameTags.Prefix On", "&1"); + toggleColorOff = pvpToggleSection.getString("NameTags.Prefix Off", "&2"); + pvpDisabledFee = pvpToggleSection.getInt("PvP Disabled Money Fee", 0); + commandsPvPOn = getCommandList(pvpToggleSection.getStringList("Commands PvP On")); + commandsPvPOff = getCommandList(pvpToggleSection.getStringList("Commands PvP Off")); + worldguardOverrides = pvpToggleSection.getBoolean("WorldGuard Overrides", true); + worldguardOverridesList = new HashSet<>(getList(pvpToggleSection.getStringList("WorldGuard Overrides Region List"))); + + cooldownsxEnderpearlID = pluginHookSection.getString("CooldownsX.Enderpearl", ""); useNameTag = !nameTagPrefix.isEmpty() || !nameTagSuffix.isEmpty() || toggleNametagsEnabled; Log.infoColor(ChatColor.GREEN + "Using player nametags: " + ChatColor.AQUA + useNameTag); - checkUpdates = UPDATECHECK.getBoolean("Enabled", true); - autoUpdate = UPDATECHECK.getBoolean("Auto Update", true); + checkUpdates = updateSection.getBoolean("Enabled", true); + autoUpdate = updateSection.getBoolean("Auto Update", true); optOutMetrics = c.getBoolean("Metrics.Opt-out", false); @@ -816,6 +814,6 @@ public static int getPvPDisabledFee() { } public static ConfigurationSection getPLUGINHOOKS() { - return PLUGINHOOKS; + return pluginHookSection; } } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java index 940e62a61..235c75476 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java @@ -105,23 +105,24 @@ public static final boolean isPvP(final EntityDamageByEntityEvent event) { final Entity attacker = event.getDamager(); final Entity defender = event.getEntity(); - if (defender instanceof Player && !isNPC(defender)) { - if (attacker instanceof Player && !isNPC(attacker)) - return true; - if (attacker instanceof Projectile || MCVersion.isAtLeast(MCVersion.V1_9) && attacker instanceof AreaEffectCloud) { - final ProjectileSource projSource = getSource(attacker); - if (projSource instanceof Player) { - final Entity shooter = (Entity) projSource; - if (Settings.isSelfTag() || !shooter.equals(defender) && !isNPC(shooter)) - return !Settings.isIgnoreNoDamageHits() || event.getDamage() != 0; - } + if (!(defender instanceof Player) || isNPC(defender)) + return false; + if (attacker instanceof Player && !isNPC(attacker)) + return true; + + if (attacker instanceof Projectile || MCVersion.isAtLeast(MCVersion.V1_9) && attacker instanceof AreaEffectCloud) { + final ProjectileSource projSource = getSource(attacker); + if (projSource instanceof Player) { + final Entity shooter = (Entity) projSource; + if (Settings.isSelfTag() || !shooter.equals(defender) && !isNPC(shooter)) + return !Settings.isIgnoreNoDamageHits() || event.getDamage() != 0; } - if (attacker instanceof TNTPrimed) { - final TNTPrimed tnt = (TNTPrimed) attacker; - final Entity tntAttacker = tnt.getSource(); - if (tntAttacker instanceof Player && (Settings.isSelfTag() || !tntAttacker.equals(defender))) { - return true; - } + } + if (attacker instanceof TNTPrimed) { + final TNTPrimed tnt = (TNTPrimed) attacker; + final Entity tntAttacker = tnt.getSource(); + if (tntAttacker instanceof Player && (Settings.isSelfTag() || !tntAttacker.equals(defender))) { + return true; } } @@ -132,15 +133,16 @@ public static final boolean isPvP(final EntityCombustByEntityEvent event) { final Entity attacker = event.getCombuster(); final Entity defender = event.getEntity(); - if (defender instanceof Player && !isNPC(defender)) { - if (attacker instanceof Player && !isNPC(attacker)) - return true; - if (attacker instanceof Projectile) { - final ProjectileSource projSource = ((Projectile) attacker).getShooter(); - if (projSource instanceof Player) { - final Entity shooter = (Entity) projSource; - return !shooter.equals(defender) && !isNPC(shooter); - } + if (!(defender instanceof Player) || isNPC(defender)) + return false; + if (attacker instanceof Player && !isNPC(attacker)) + return true; + + if (attacker instanceof Projectile) { + final ProjectileSource projSource = ((Projectile) attacker).getShooter(); + if (projSource instanceof Player) { + final Entity shooter = (Entity) projSource; + return !shooter.equals(defender) && !isNPC(shooter); } } 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..d6901d9c2 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); } } } @@ -135,8 +135,6 @@ private void storePreviousTeam() { } } - private static boolean restoringSent; - @Override public final void restoreNametag() { try { @@ -146,9 +144,6 @@ public final void restoreNametag() { inCombat.removeEntry(pvPlayer.getName()); } } catch (final IllegalStateException e) { - if (restoringSent) - return; - restoringSent = true; // Some plugin is unregistering teams when it shouldn't Log.warning("Error restoring nametag for: " + pvPlayer.getName()); } finally { @@ -159,29 +154,24 @@ 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()); } } - private static boolean unregisteredSent; - @Override public void cleanup() { try { Log.debug("Unregistering team: " + inCombat.getName()); inCombat.unregister(); } catch (final IllegalStateException e) { - if (unregisteredSent) - return; - unregisteredSent = true; Log.warning("Team was already unregistered for player: " + 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 89e19e740..ba59cd035 100644 --- a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/PlayerListenerTest.java +++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/PlayerListenerTest.java @@ -77,9 +77,8 @@ void onPlayerLogoutTest() { listener.onPlayerLogout(new PlayerQuitEvent(player, "")); listener.onPlayerLogoutMonitor(new PlayerQuitEvent(player, "")); verify(player, times(1)).setHealth(0); - assertFalse(pvPlayer.isInCombat()); - assertEquals(1, ph.getPlayers().size()); // attacker and defender + assertEquals(1, ph.getPlayers().size()); listener.onPlayerLogoutMonitor(new PlayerQuitEvent(attacker, "")); assertEquals(0, ph.getPlayers().size()); } From b5bd10d361258b0b0fef3153e4d01c71a26cbc70 Mon Sep 17 00:00:00 2001 From: ChanceSD <5256215+ChanceSD@users.noreply.github.com> Date: Sun, 14 Apr 2024 06:31:43 +0100 Subject: [PATCH 04/16] Improved region detection, closes #181 --- .../NoChance/PvPManager/Commands/Untag.java | 2 +- .../Dependencies/Hooks/KingdomsXHook.java | 4 +- .../PvPManager/Listeners/MoveListener1_9.java | 29 ++++++---- .../PvPManager/Managers/PlayerHandler.java | 1 - .../me/NoChance/PvPManager/Tasks/TagTask.java | 3 +- .../pvpmanager/tasks/RegionCheckTask.java | 58 +++++++++++++++++++ 6 files changed, 80 insertions(+), 17 deletions(-) create mode 100644 pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/RegionCheckTask.java diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Untag.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Untag.java index 71b14b9cc..9f3d10caf 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Untag.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Untag.java @@ -33,7 +33,7 @@ public final boolean onCommand(final CommandSender sender, final Command command sender.sendMessage(Messages.PREFIXMSG + " §cThat player is not in combat"); return true; } - ph.untag(target); + target.unTag(); sender.sendMessage(Messages.PREFIXMSG + " " + target.getName() + " §2has been untagged"); return true; } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/KingdomsXHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/KingdomsXHook.java index 0e04837d8..54c0ef02a 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/KingdomsXHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/KingdomsXHook.java @@ -7,7 +7,7 @@ import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Player.CancelResult; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.chancesd.sdutils.utils.Log; public class KingdomsXHook extends BaseDependency implements ForceToggleDependency { @@ -24,7 +24,7 @@ public boolean shouldDisable(final Player player) { } @Override - public boolean shouldDisable(final Player attacker, final Player defender, final CancelResult reason) { + public boolean shouldDisable(final Player attacker, final Player defender, final ProtectionResult reason) { return shouldDisable(attacker) && shouldDisable(defender); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java index 1d05078b9..25c5e0d43 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java @@ -3,7 +3,9 @@ import java.util.UUID; import java.util.concurrent.TimeUnit; +import org.bukkit.Bukkit; import org.bukkit.Effect; +import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -15,11 +17,12 @@ import com.google.common.cache.CacheBuilder; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Interfaces.RegionDependency; +import me.NoChance.PvPManager.Managers.DependencyManager; import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.tasks.RegionCheckTask; +import me.chancesd.pvpmanager.utils.ScheduleUtils; public class MoveListener1_9 implements Listener { @@ -27,15 +30,19 @@ public class MoveListener1_9 implements Listener { private final DependencyManager depManager; private final Cache cache = CacheBuilder.newBuilder().weakValues().expireAfterWrite(1, TimeUnit.SECONDS).build(); - public MoveListener1_9(final PlayerHandler playerManager, final DependencyManager depManager) { - this.playerManager = playerManager; - this.depManager = depManager; + public MoveListener1_9(final PlayerHandler ph, final DependencyManager depManager) { + this.ph = ph; + this.dependencyManager = ph.getPlugin().getDependencyManager(); + final RegionCheckTask regionCheckTask = new RegionCheckTask(ph, dependencyManager); + Bukkit.getPluginManager().registerEvents(regionCheckTask, ph.getPlugin()); + ScheduleUtils.runPlatformTaskTimer(regionCheckTask, 20, 20); } @EventHandler(ignoreCancelled = true) public final void onPlayerMove(final PlayerMoveEvent event) { - if (event.getFrom().getBlockX() == event.getTo().getBlockX() && event.getFrom().getBlockZ() == event.getTo().getBlockZ() - && event.getFrom().getBlockY() == event.getTo().getBlockY()) + final Location locTo = event.getTo(); + final Location locFrom = event.getFrom(); + if (locFrom.getBlockX() == locTo.getBlockX() && locFrom.getBlockZ() == locTo.getBlockZ() && locFrom.getBlockY() == locTo.getBlockY()) return; final Player player = event.getPlayer(); @@ -43,14 +50,14 @@ public final void onPlayerMove(final PlayerMoveEvent event) { if (!pvplayer.isInCombat()) return; - if (!depManager.canAttackAt(null, event.getTo()) && depManager.canAttackAt(null, event.getFrom())) { - final Vector newVel = event.getFrom().toVector().subtract(event.getTo().toVector()); + if (!dependencyManager.canAttackAt(null, locTo) && dependencyManager.canAttackAt(null, locFrom)) { + final Vector newVel = locFrom.toVector().subtract(locTo.toVector()); newVel.setY(0).normalize().multiply(1.6).setY(0.5); CombatUtils.checkGlide(player); player.setVelocity(sanitizeVector(newVel)); - if (!cache.asMap().containsKey(event.getPlayer().getUniqueId())) { + if (!cache.asMap().containsKey(player.getUniqueId())) { pvplayer.message(Messages.getPushbackWarning()); - event.getFrom().getWorld().playEffect(player.getEyeLocation(), Effect.SMOKE, 3); + locFrom.getWorld().playEffect(player.getEyeLocation(), Effect.SMOKE, 3); cache.put(player.getUniqueId(), player); } } 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 63bc1f92f..202d7ac68 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java @@ -20,7 +20,6 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Events.PlayerCombatLogEvent; -import me.NoChance.PvPManager.Player.CancelResult; import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Tasks.CleanKillersTask; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/TagTask.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/TagTask.java index 5c658dc6e..2ed83e55a 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/TagTask.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/TagTask.java @@ -1,6 +1,5 @@ package me.NoChance.PvPManager.Tasks; -import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.Timer; @@ -75,7 +74,7 @@ public final void untag(final PvPlayer p) { } public Set getTaggedPlayers() { - return new HashSet<>(tagged); + return tagged; } } diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/RegionCheckTask.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/RegionCheckTask.java new file mode 100644 index 000000000..3b91d97ee --- /dev/null +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/RegionCheckTask.java @@ -0,0 +1,58 @@ +package me.chancesd.pvpmanager.tasks; + +import java.util.HashMap; +import java.util.Map; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.scheduler.BukkitRunnable; +import me.NoChance.PvPManager.PvPlayer; +import me.NoChance.PvPManager.Events.PlayerTagEvent; +import me.NoChance.PvPManager.Events.PlayerUntagEvent; +import me.NoChance.PvPManager.Managers.DependencyManager; +import me.NoChance.PvPManager.Managers.PlayerHandler; +import me.NoChance.PvPManager.Settings.Messages; + +public class RegionCheckTask extends BukkitRunnable implements Listener { + + private final PlayerHandler playerHandler; + private final Map lastLocations = new HashMap<>(); + private final DependencyManager dependencyManager; + + public RegionCheckTask(final PlayerHandler playerHandler, final DependencyManager dependencyManager) { + this.playerHandler = playerHandler; + this.dependencyManager = dependencyManager; + } + + @Override + public void run() { + for (final PvPlayer pvPlayer : playerHandler.getPlayersInCombat()) { + final Player player = pvPlayer.getPlayer(); + final Location playerLocation = player.getLocation(); + if (!dependencyManager.canAttackAt(player, playerLocation)) { + final Location lastLocation = lastLocations.get(pvPlayer); + if (lastLocation == null) + continue; + lastLocation.setPitch(playerLocation.getPitch()); + lastLocation.setYaw(playerLocation.getYaw()); + player.teleport(lastLocation); + pvPlayer.message(Messages.getPushbackWarning()); + } else { + lastLocations.put(pvPlayer, playerLocation); + } + } + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPlayerTag(final PlayerTagEvent event) { + lastLocations.put(event.getPvPlayer(), event.getPlayer().getLocation()); + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPlayerTag(final PlayerUntagEvent event) { + lastLocations.remove(event.getPvPlayer()); + } + +} From d9b585ae1913be4001f1409baed9091d2e4bfe1f Mon Sep 17 00:00:00 2001 From: ChanceSD <5256215+ChanceSD@users.noreply.github.com> Date: Sun, 14 Apr 2024 06:57:24 +0100 Subject: [PATCH 05/16] Start Java 16 changes --- pom.xml | 4 +-- .../Dependencies/ForceToggleDependency.java | 4 +-- .../Dependencies/Hooks/KingdomsXHook.java | 31 ------------------- .../Dependencies/Hooks/SimpleClansHook.java | 4 +-- .../Dependencies/Hooks/TownyHook.java | 4 +-- .../Hooks/WorldGuardModernHook.java | 6 ++-- .../Listeners/DebugEntityListener.java | 6 ++-- .../PvPManager/Listeners/EntityListener.java | 8 ++--- .../Listeners/EntityListener1_9.java | 4 +-- .../PvPManager/Listeners/PlayerListener.java | 4 +-- .../PvPManager/Listeners/WGListener.java | 4 +-- .../Listeners/WGListenerLegacy.java | 4 +-- .../Managers/DependencyManager.java | 4 +-- .../PvPManager/Managers/PlayerHandler.java | 25 ++++++++------- .../PvPManager/Player/ProtectionResult.java | 30 ++---------------- .../PvPManager/Player/ProtectionType.java | 20 ++++++++++++ .../PvPManager/Settings/Messages.java | 6 ++-- .../Listeners/EntityListenerTest.java | 12 +++---- 18 files changed, 73 insertions(+), 107 deletions(-) delete mode 100644 pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/KingdomsXHook.java create mode 100644 pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionType.java diff --git a/pom.xml b/pom.xml index 4a5bac5fc..fb47054b5 100644 --- a/pom.xml +++ b/pom.xml @@ -75,8 +75,8 @@ maven-compiler-plugin 3.13.0 - 1.8 - 1.8 + 16 + 16 true true true diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java index 6126ea2af..811f6aa6d 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java @@ -3,13 +3,13 @@ import org.bukkit.entity.Player; import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; public interface ForceToggleDependency extends Dependency { public boolean shouldDisable(Player player); - public boolean shouldDisable(Player attacker, Player defender, ProtectionResult reason); + public boolean shouldDisable(Player attacker, Player defender, ProtectionType reason); public default boolean shouldDisableProtection() { return getConfigBoolean("No Protection In War", true); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/KingdomsXHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/KingdomsXHook.java deleted file mode 100644 index 54c0ef02a..000000000 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/KingdomsXHook.java +++ /dev/null @@ -1,31 +0,0 @@ -package me.NoChance.PvPManager.Dependencies.Hooks; - -import org.bukkit.entity.Player; -import org.kingdoms.constants.player.KingdomPlayer; -import org.kingdoms.main.Kingdoms; - -import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Player.ProtectionResult; -import me.chancesd.sdutils.utils.Log; - -public class KingdomsXHook extends BaseDependency implements ForceToggleDependency { - - public KingdomsXHook(final Hook hook) { - super(hook); - Log.debug(Kingdoms.get().toString()); - } - - @Override - public boolean shouldDisable(final Player player) { - final KingdomPlayer kingdomPlayer = KingdomPlayer.getKingdomPlayer(player); - return kingdomPlayer.isInvading(); // hopefully this also returns true if they're being invaded - } - - @Override - public boolean shouldDisable(final Player attacker, final Player defender, final ProtectionResult reason) { - return shouldDisable(attacker) && shouldDisable(defender); - } - -} diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java index 292ba04ea..a81398187 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java @@ -10,7 +10,7 @@ import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.PvPDependency; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer; import net.sacredlabyrinth.phaed.simpleclans.SimpleClans; import net.sacredlabyrinth.phaed.simpleclans.managers.ClanManager; @@ -39,7 +39,7 @@ public boolean shouldDisable(final Player player) { } @Override - public boolean shouldDisable(final Player attacker, final Player defender, final ProtectionResult reason) { + public boolean shouldDisable(final Player attacker, final Player defender, final ProtectionType reason) { final ClanPlayer cAttacker = clanManager.getClanPlayer(attacker); final ClanPlayer cDefender = clanManager.getClanPlayer(defender); return cAttacker != null && cDefender != null && cAttacker.getClan().isWarring(cDefender.getClan()); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/TownyHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/TownyHook.java index da01f3dc2..e674773e7 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/TownyHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/TownyHook.java @@ -10,7 +10,7 @@ import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; public class TownyHook extends BaseDependency implements ForceToggleDependency, RegionDependency { @@ -32,7 +32,7 @@ public boolean shouldDisable(final Player player) { } @Override - public boolean shouldDisable(final Player attacker, final Player defender, final ProtectionResult reason) { + public boolean shouldDisable(final Player attacker, final Player defender, final ProtectionType reason) { return shouldDisable(attacker) && shouldDisable(defender); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java index dd4f1970a..f59e1f2cc 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java @@ -19,7 +19,7 @@ import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Listeners.WGListener; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; @@ -85,11 +85,11 @@ public boolean shouldDisable(final Player player) { } @Override - public boolean shouldDisable(final Player damager, final Player defender, final ProtectionResult reason) { + public boolean shouldDisable(final Player damager, final Player defender, final ProtectionType reason) { if (hasAllowPvPFlag(defender) || containsRegionsAt(defender.getLocation(), Settings.getWorldguardOverridesList())) { final PvPlayer attacker = PvPlayer.get(damager); final PvPlayer attacked = PvPlayer.get(defender); - if (reason == ProtectionResult.PVPDISABLED) { + if (reason == ProtectionType.PVPDISABLED) { disablePvP(attacker); disablePvP(attacked); } else { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java index df0e549c4..8af01e06c 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java @@ -26,7 +26,7 @@ import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.setting.Permissions; @@ -85,7 +85,7 @@ public final void onPlayerDamage(final EntityDamageByEntityEvent event) { final Player attacker = getAttacker(event.getDamager()); final Player attacked = (Player) event.getEntity(); - final ProtectionResult result = ph.tryCancel(attacker, attacked); + final ProtectionType result = ph.tryCancel(attacker, attacked); if (result.isProtected()) { event.setCancelled(true); @@ -100,7 +100,7 @@ public final void onPlayerDamageOverride(final EntityDamageByEntityEvent event) if (!CombatUtils.isPvP(event) || CombatUtils.isWorldExcluded(event.getEntity().getWorld().getName()) || !event.isCancelled()) return; - if (ph.tryCancel(getAttacker(event.getDamager()), (Player) event.getEntity()).equals(ProtectionResult.FAIL_OVERRIDE)) { + if (ph.tryCancel(getAttacker(event.getDamager()), (Player) event.getEntity()).equals(ProtectionType.FAIL_OVERRIDE)) { event.setCancelled(false); Log.debug("Force allowing PvP even though a plugin blocked it because a player has override or Vulnerable is enabled"); } else { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java index d29059d8b..4ae920c3b 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java @@ -37,7 +37,7 @@ import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; @@ -79,7 +79,7 @@ public final void onPlayerDamage(final EntityDamageByEntityEvent event) { final Player attacker = getAttacker(event.getDamager()); final Player attacked = (Player) event.getEntity(); - final ProtectionResult result = ph.tryCancel(attacker, attacked); + final ProtectionType result = ph.tryCancel(attacker, attacked); if (result.isProtected()) { event.setCancelled(true); @@ -92,7 +92,7 @@ public final void onPlayerDamageOverride(final EntityDamageByEntityEvent event) if (!CombatUtils.isPvP(event) || CombatUtils.isWorldExcluded(event.getEntity().getWorld().getName()) || !event.isCancelled()) return; - if (ph.tryCancel(getAttacker(event.getDamager()), (Player) event.getEntity()).equals(ProtectionResult.FAIL_OVERRIDE)) { + if (ph.tryCancel(getAttacker(event.getDamager()), (Player) event.getEntity()).equals(ProtectionType.FAIL_OVERRIDE)) { event.setCancelled(false); } } @@ -189,7 +189,7 @@ public final void onPotionSplash(final PotionSplashEvent event) { continue; } final Player attacked = (Player) e; - final ProtectionResult result = ph.tryCancel(player, attacked); + final ProtectionType result = ph.tryCancel(player, attacked); if (result.isProtected()) { event.setIntensity(attacked, 0); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java index 3a386ea24..d4b2e6418 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java @@ -27,7 +27,7 @@ import com.google.common.cache.CacheBuilder; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; @@ -71,7 +71,7 @@ public final void onLingeringPotionSplash(final AreaEffectCloudApplyEvent event) continue; } final Player attacked = (Player) e; - final ProtectionResult result = ph.tryCancel(player, attacked); + final ProtectionType result = ph.tryCancel(player, attacked); if (result.isProtected()) { toRemove.add(e); 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 f42f257d9..e1493a109 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,7 @@ import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; @@ -334,7 +334,7 @@ public final void onPlayerFish(final PlayerFishEvent event) { if (event.getState() == State.CAUGHT_ENTITY && event.getCaught() instanceof Player) { final Player caught = (Player) event.getCaught(); - final ProtectionResult result = ph.tryCancel(player, caught); + final ProtectionType result = ph.tryCancel(player, caught); if (result.isProtected()) { event.setCancelled(true); Messages.messageProtection(result, player, caught); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java index 5c9da8beb..b42940f4c 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java @@ -6,7 +6,7 @@ import com.sk89q.worldguard.bukkit.protection.events.DisallowedPVPEvent; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import me.chancesd.sdutils.utils.Log; public class WGListener implements Listener { @@ -21,7 +21,7 @@ public WGListener(final PlayerHandler ph) { public final void onWGPvPCancel(final DisallowedPVPEvent event) { // NO_UCD if (event.getAttacker().hasMetadata("NPC") || event.getDefender().hasMetadata("NPC")) return; - if (ph.tryCancel(event.getAttacker(), event.getDefender()) == ProtectionResult.FAIL_OVERRIDE) { + if (ph.tryCancel(event.getAttacker(), event.getDefender()) == ProtectionType.FAIL_OVERRIDE) { event.setCancelled(true); Log.debug("Force allowing PvP even though WorldGuard blocked it because a player has override or Vulnerable is enabled"); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java index 7eafd4886..ff242e35e 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java @@ -6,7 +6,7 @@ import com.sk89q.worldguard.protection.events.DisallowedPVPEvent; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import me.chancesd.sdutils.utils.Log; public class WGListenerLegacy implements Listener { @@ -21,7 +21,7 @@ public WGListenerLegacy(final PlayerHandler ph) { public final void onWGPvPCancel(final DisallowedPVPEvent event) { // NO_UCD if (event.getAttacker().hasMetadata("NPC") || event.getDefender().hasMetadata("NPC")) return; - if (ph.tryCancel(event.getAttacker(), event.getDefender()) == ProtectionResult.FAIL_OVERRIDE) { + if (ph.tryCancel(event.getAttacker(), event.getDefender()) == ProtectionType.FAIL_OVERRIDE) { event.setCancelled(true); Log.debug("Force allowing PvP even though WorldGuard blocked it because a player has override or Vulnerable is enabled"); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java index 71a28ba43..f0db8ef31 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java @@ -44,7 +44,7 @@ import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Listeners.MoveListener; import me.NoChance.PvPManager.Listeners.MoveListener1_9; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; @@ -183,7 +183,7 @@ public final void disableDisguise(final Player p) { } } - public final boolean shouldDisableProtection(final Player attacker, final Player defender, final ProtectionResult reason) { + public final boolean shouldDisableProtection(final Player attacker, final Player defender, final ProtectionType reason) { for (final ForceToggleDependency togglePvPPlugin : togglePvPChecks) { if (togglePvPPlugin.shouldDisable(attacker, defender, reason)) return true; 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 202d7ac68..308ac202a 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java @@ -21,6 +21,7 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Events.PlayerCombatLogEvent; import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Tasks.CleanKillersTask; import me.NoChance.PvPManager.Tasks.PvPToggleFeeTask; @@ -62,27 +63,27 @@ public final ProtectionResult tryCancel(final Player damager, final Player defen final PvPlayer attacked = get(defender); if (attacker.hasOverride() || Settings.borderHoppingVulnerable() && canAttackHooks(attacker, attacked)) - return ProtectionResult.FAIL_OVERRIDE; + return new ProtectionResult(ProtectionType.FAIL_OVERRIDE); if (!Settings.isGlobalStatus()) - return ProtectionResult.GLOBAL_PROTECTION; + return new ProtectionResult(ProtectionType.GLOBAL_PROTECTION); if (!attacked.getCombatWorld().isCombatAllowed()) - return ProtectionResult.WORLD_PROTECTION; + return new ProtectionResult(ProtectionType.WORLD_PROTECTION); if (attacked.hasRespawnProtection() || attacker.hasRespawnProtection()) - return ProtectionResult.RESPAWN_PROTECTION.setAttackerCaused(attacker.hasRespawnProtection()); + return new ProtectionResult(ProtectionType.RESPAWN_PROTECTION, attacker.hasRespawnProtection()); if (attacked.isNewbie() || attacker.isNewbie()) { - if (dependencyManager.shouldDisableProtection(damager, defender, ProtectionResult.NEWBIE)) - return ProtectionResult.FAIL_PLUGIN_HOOK; - return ProtectionResult.NEWBIE.setAttackerCaused(attacker.isNewbie()); + if (dependencyManager.shouldDisableProtection(damager, defender, ProtectionType.NEWBIE)) + return new ProtectionResult(ProtectionType.FAIL_PLUGIN_HOOK); + return new ProtectionResult(ProtectionType.NEWBIE, attacker.isNewbie()); } if (!attacker.hasPvPEnabled() || !attacked.hasPvPEnabled()) { - if (dependencyManager.shouldDisableProtection(damager, defender, ProtectionResult.PVPDISABLED)) - return ProtectionResult.FAIL_PLUGIN_HOOK; - return ProtectionResult.PVPDISABLED.setAttackerCaused(!attacker.hasPvPEnabled()); + if (dependencyManager.shouldDisableProtection(damager, defender, ProtectionType.PVPDISABLED)) + return new ProtectionResult(ProtectionType.FAIL_PLUGIN_HOOK); + return new ProtectionResult(ProtectionType.PVPDISABLED, !attacker.hasPvPEnabled()); } if (dependencyManager.shouldProtectAFK(defender)) - return ProtectionResult.AFK_PROTECTION; + return new ProtectionResult(ProtectionType.AFK_PROTECTION); - return ProtectionResult.FAIL; + return new ProtectionResult(ProtectionType.FAIL); } /** diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionResult.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionResult.java index 56b94c9d7..727b525b2 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionResult.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionResult.java @@ -1,33 +1,9 @@ package me.NoChance.PvPManager.Player; -public enum ProtectionResult { - NEWBIE, PVPDISABLED, RESPAWN_PROTECTION, FAIL, FAIL_PLUGIN_HOOK, FAIL_OVERRIDE, WORLD_PROTECTION, AFK_PROTECTION, GLOBAL_PROTECTION; +public record ProtectionResult(ProtectionType type, boolean isAttacker) { - private boolean isAttacker; - - // If the attack was cancelled because of the attacker status or not TODO move somewhere, not thread safe - public boolean attackerCaused() { - return isAttacker; - } - - // Must not be set async - public ProtectionResult setAttackerCaused(final boolean attacker) { - isAttacker = attacker; - return this; + public ProtectionResult(final ProtectionType type) { + this(type, false); } - public boolean canAttack() { - switch (this) { - case FAIL_PLUGIN_HOOK: - case FAIL_OVERRIDE: - case FAIL: - return true; - default: - return false; - } - } - - public boolean isProtected() { - return !canAttack(); - } } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionType.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionType.java new file mode 100644 index 000000000..a473c8e1d --- /dev/null +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionType.java @@ -0,0 +1,20 @@ +package me.NoChance.PvPManager.Player; + +public enum ProtectionType { + NEWBIE, PVPDISABLED, RESPAWN_PROTECTION, FAIL, FAIL_PLUGIN_HOOK, FAIL_OVERRIDE, WORLD_PROTECTION, AFK_PROTECTION, GLOBAL_PROTECTION; + + public boolean canAttack() { + switch (this) { + case FAIL_PLUGIN_HOOK: + case FAIL_OVERRIDE: + case FAIL: + return true; + default: + return false; + } + } + + public boolean isProtected() { + return !canAttack(); + } +} diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java index a93721db5..5bb0997f7 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java @@ -21,7 +21,7 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import me.NoChance.PvPManager.Utils.ChatUtils; import me.NoChance.PvPManager.Utils.TimeUtil; import me.chancesd.sdutils.utils.Log; @@ -269,13 +269,13 @@ private static void addMessage(final String a) { } } - public static void messageProtection(final ProtectionResult result, final Player player, final Player attacked) { + public static void messageProtection(final ProtectionType result, final Player player, final Player attacked) { final String message = getProtectionMessage(result, attacked); final PvPlayer receiver = plugin.getPlayerHandler().get(player); receiver.message(message); } - public static String getProtectionMessage(final ProtectionResult result, final Player attacked) { + public static String getProtectionMessage(final ProtectionType result, final Player attacked) { switch (result) { case NEWBIE: return result.attackerCaused() ? newbieBlocked() : newbieBlockedOther(attacked.getName()); diff --git a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java index d3ec22368..028c9818c 100644 --- a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java +++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java @@ -26,7 +26,7 @@ import me.NoChance.PvPManager.PluginTest; import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.ProtectionResult; +import me.NoChance.PvPManager.Player.ProtectionType; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; @@ -184,7 +184,7 @@ final void cancelNewbie() { ph.get(attacker).setNewbie(true); createAttack(false); - assertEquals(ProtectionResult.NEWBIE, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionType.NEWBIE, ph.tryCancel(attacker, defender)); verify(attacker, times(2)).sendMessage(Messages.newbieBlocked()); verify(mockEvent).setCancelled(true); @@ -196,7 +196,7 @@ final void cancelPvPDisabled() { ph.get(defender).setPvP(false); createAttack(false); - assertEquals(ProtectionResult.PVPDISABLED, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionType.PVPDISABLED, ph.tryCancel(attacker, defender)); verify(attacker, times(2)).sendMessage(Messages.pvpDisabledOther(defender.getName())); verify(mockEvent).setCancelled(true); @@ -210,7 +210,7 @@ final void failCancel() { when(attacker.isFlying()).thenReturn(true); when(defender.isFlying()).thenReturn(true); - assertEquals(ProtectionResult.FAIL, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionType.FAIL, ph.tryCancel(attacker, defender)); createAttack(false); assertTrue(ph.get(attacker).isInCombat()); assertTrue(ph.get(defender).isInCombat()); @@ -226,7 +226,7 @@ final void overrideCancel() { ph.get(attacker).toggleOverride(); createAttack(false); - assertEquals(ProtectionResult.FAIL_OVERRIDE, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionType.FAIL_OVERRIDE, ph.tryCancel(attacker, defender)); assertTrue(ph.get(attacker).isInCombat()); assertTrue(ph.get(defender).isInCombat()); @@ -239,7 +239,7 @@ final void overrideCancelled() { ph.get(attacker).toggleOverride(); createAttack(true); - assertEquals(ProtectionResult.FAIL_OVERRIDE, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionType.FAIL_OVERRIDE, ph.tryCancel(attacker, defender)); assertTrue(ph.get(attacker).isInCombat()); assertTrue(ph.get(defender).isInCombat()); From 3631c9b8fd93a23b42bbcf7f796f385faf5540be Mon Sep 17 00:00:00 2001 From: ChanceSD <5256215+ChanceSD@users.noreply.github.com> Date: Sun, 14 Apr 2024 08:02:16 +0100 Subject: [PATCH 06/16] More changes --- .../NoChance/PvPManager/Commands/PvPList.java | 2 +- .../Listeners/DebugEntityListener.java | 7 +- .../PvPManager/Listeners/EntityListener.java | 53 ++++++------ .../Listeners/EntityListener1_9.java | 4 +- .../PvPManager/Listeners/PlayerListener.java | 66 +++++++-------- .../PvPManager/Listeners/WGListener.java | 2 +- .../Listeners/WGListenerLegacy.java | 2 +- .../Managers/DependencyManager.java | 81 +++++++------------ .../PvPManager/Managers/PlayerHandler.java | 6 +- .../PvPManager/Player/BasePlayer.java | 3 +- .../PvPManager/Player/ProtectionResult.java | 8 ++ .../PvPManager/Player/ProtectionType.java | 7 +- .../me/NoChance/PvPManager/PvPManager.java | 9 ++- .../java/me/NoChance/PvPManager/PvPlayer.java | 2 +- .../PvPManager/Settings/Messages.java | 14 ++-- .../PvPManager/Settings/Settings.java | 4 +- .../PvPManager/Utils/CombatUtils.java | 38 ++------- .../NoChance/PvPManager/Utils/MCVersion.java | 55 ------------- .../pvpmanager/managers/UpdateManager.java | 5 +- .../player/nametag/BukkitNameTag.java | 2 +- .../chancesd/pvpmanager/storage/Database.java | 2 +- .../Listeners/EntityListenerTest.java | 10 +-- .../PvPManager/Managers/DependencyTest.java | 9 +-- 23 files changed, 144 insertions(+), 247 deletions(-) delete mode 100644 pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/MCVersion.java 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 9dbbe14ad..b2d886aa7 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPList.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPList.java @@ -78,7 +78,7 @@ private String pvpList(final CommandSender sender, final boolean enabled, final final StringBuilder list = new StringBuilder(); for (final PvPlayer p : ph.getPlayers().values()) { final Player player = p.getPlayer(); - if (enabled == p.hasPvPEnabled() && player != null && (console || ((Player) sender).canSee(player))) { + if (enabled == p.hasPvPEnabled() && (console || ((Player) sender).canSee(player))) { list.append(p.getName()).append(", "); } } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java index 8af01e06c..7ed461965 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java @@ -26,12 +26,13 @@ import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Player.ProtectionType; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.setting.Permissions; import me.chancesd.sdutils.utils.Log; -import me.NoChance.PvPManager.Utils.MCVersion; +import me.chancesd.sdutils.utils.MCVersion; public class DebugEntityListener implements Listener { @@ -85,7 +86,7 @@ public final void onPlayerDamage(final EntityDamageByEntityEvent event) { final Player attacker = getAttacker(event.getDamager()); final Player attacked = (Player) event.getEntity(); - final ProtectionType result = ph.tryCancel(attacker, attacked); + final ProtectionResult result = ph.checkProtection(attacker, attacked); if (result.isProtected()) { event.setCancelled(true); @@ -100,7 +101,7 @@ public final void onPlayerDamageOverride(final EntityDamageByEntityEvent event) if (!CombatUtils.isPvP(event) || CombatUtils.isWorldExcluded(event.getEntity().getWorld().getName()) || !event.isCancelled()) return; - if (ph.tryCancel(getAttacker(event.getDamager()), (Player) event.getEntity()).equals(ProtectionType.FAIL_OVERRIDE)) { + if (ph.checkProtection(getAttacker(event.getDamager()), (Player) event.getEntity()).type() == ProtectionType.FAIL_OVERRIDE) { event.setCancelled(false); Log.debug("Force allowing PvP even though a plugin blocked it because a player has override or Vulnerable is enabled"); } else { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java index 4ae920c3b..fd4f48d46 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java @@ -37,21 +37,23 @@ import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Player.ProtectionType; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.setting.Permissions; import me.NoChance.PvPManager.Utils.MCVersion; +import me.chancesd.sdutils.utils.MCVersion; public class EntityListener implements Listener { - private final PlayerHandler ph; + private final PlayerHandler playerHandler; private final WorldGuardDependency wg; private final Cache lightningCache = CacheBuilder.newBuilder().expireAfterWrite(2, TimeUnit.SECONDS).build(); public EntityListener(final PlayerHandler ph) { - this.ph = ph; + this.playerHandler = ph; this.wg = (WorldGuardDependency) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); } @@ -63,11 +65,10 @@ public final void onPlayerDamage(final EntityDamageByEntityEvent event) { if (!(event.getEntity() instanceof Player)) return; - final PvPlayer attacked = ph.get((Player) event.getEntity()); + final PvPlayer attacked = playerHandler.get((Player) event.getEntity()); if (attacked.isNewbie() && Settings.isNewbieGodMode()) { event.setCancelled(true); - } else if (event.getDamager() instanceof LightningStrike) { - final LightningStrike lightning = (LightningStrike) event.getDamager(); + } else if (event.getDamager() instanceof final LightningStrike lightning) { if (!lightningCache.asMap().containsKey(lightning)) return; if (!attacked.hasPvPEnabled() || attacked.isNewbie() || attacked.hasRespawnProtection()) { @@ -79,7 +80,7 @@ public final void onPlayerDamage(final EntityDamageByEntityEvent event) { final Player attacker = getAttacker(event.getDamager()); final Player attacked = (Player) event.getEntity(); - final ProtectionType result = ph.tryCancel(attacker, attacked); + final ProtectionResult result = playerHandler.checkProtection(attacker, attacked); if (result.isProtected()) { event.setCancelled(true); @@ -92,7 +93,7 @@ public final void onPlayerDamageOverride(final EntityDamageByEntityEvent event) if (!CombatUtils.isPvP(event) || CombatUtils.isWorldExcluded(event.getEntity().getWorld().getName()) || !event.isCancelled()) return; - if (ph.tryCancel(getAttacker(event.getDamager()), (Player) event.getEntity()).equals(ProtectionType.FAIL_OVERRIDE)) { + if (playerHandler.checkProtection(getAttacker(event.getDamager()), (Player) event.getEntity()).type() == ProtectionType.FAIL_OVERRIDE) { event.setCancelled(false); } } @@ -112,7 +113,7 @@ public final void onEntityCombust(final EntityCombustByEntityEvent event) { if (CombatUtils.isWorldExcluded(event.getEntity().getWorld().getName())) return; if (!CombatUtils.isPvP(event)) { - if (event.getEntity() instanceof Player && ph.get((Player) event.getEntity()).isNewbie() && Settings.isNewbieGodMode()) { + if (event.getEntity() instanceof final Player player && playerHandler.get(player).isNewbie() && Settings.isNewbieGodMode()) { event.setCancelled(true); } return; @@ -121,14 +122,14 @@ public final void onEntityCombust(final EntityCombustByEntityEvent event) { final Player attacker = getAttacker(event.getCombuster()); final Player attacked = (Player) event.getEntity(); - if (!ph.canAttack(attacker, attacked)) { + if (!playerHandler.canAttack(attacker, attacked)) { event.setCancelled(true); } } public void processDamage(final Player attacker, final Player defender) { - final PvPlayer pvpAttacker = ph.get(attacker); - final PvPlayer pvpDefender = ph.get(defender); + final PvPlayer pvpAttacker = playerHandler.get(attacker); + final PvPlayer pvpDefender = playerHandler.get(defender); if (Settings.isPvpBlood()) { defender.getWorld().playEffect(defender.getLocation(), Effect.STEP_SOUND, Material.REDSTONE_BLOCK); @@ -167,13 +168,13 @@ private void disableActions(final Player attacker, final Player defender, final attacker.setGameMode(GameMode.SURVIVAL); } if (Settings.isDisableDisguise()) { - ph.getPlugin().getDependencyManager().disableDisguise(attacker); + playerHandler.getPlugin().getDependencyManager().disableDisguise(attacker); } if (Settings.isDisableInvisibility() && attacker.hasPotionEffect(PotionEffectType.INVISIBILITY)) { attacker.removePotionEffect(PotionEffectType.INVISIBILITY); } if (Settings.isDisableGodMode()) { - ph.getPlugin().getDependencyManager().disableGodMode(attacker); + playerHandler.getPlugin().getDependencyManager().disableGodMode(attacker); } } @@ -189,7 +190,7 @@ public final void onPotionSplash(final PotionSplashEvent event) { continue; } final Player attacked = (Player) e; - final ProtectionType result = ph.tryCancel(player, attacked); + final ProtectionResult result = playerHandler.checkProtection(player, attacked); if (result.isProtected()) { event.setIntensity(attacked, 0); @@ -249,11 +250,10 @@ public void onBlockIgnite(final BlockIgniteEvent event) { return; final Entity ignitingEntity = event.getIgnitingEntity(); - if (ignitingEntity instanceof LightningStrike && lightningCache.asMap().containsKey(ignitingEntity)) { - final LightningStrike lightningStrike = (LightningStrike) ignitingEntity; + if (ignitingEntity instanceof final LightningStrike lightningStrike && lightningCache.asMap().containsKey(ignitingEntity)) { for (final Entity entity : lightningStrike.getNearbyEntities(2, 2, 2)) { - if (entity instanceof Player) { - final PvPlayer attacked = ph.get((Player) entity); + if (entity instanceof final Player player) { + final PvPlayer attacked = playerHandler.get(player); if (!attacked.hasPvPEnabled() || attacked.isNewbie() || attacked.hasRespawnProtection()) { event.setCancelled(true); return; @@ -267,11 +267,10 @@ public void onBlockIgnite(final BlockIgniteEvent event) { public void onProjectileHitEvent(final ProjectileHitEvent event) { final Projectile entity = event.getEntity(); final ProjectileSource shooter = entity.getShooter(); - if (!Settings.isEnderPearlRenewTag() || entity.getType() != EntityType.ENDER_PEARL || !(shooter instanceof Player)) + if (!Settings.isEnderPearlRenewTag() || entity.getType() != EntityType.ENDER_PEARL || !(shooter instanceof final Player player)) return; - final Player player = (Player) shooter; - final PvPlayer pvPlayer = ph.get(player); + final PvPlayer pvPlayer = playerHandler.get(player); if (pvPlayer.isInCombat()) { pvPlayer.setTagged(true, pvPlayer); @@ -279,12 +278,12 @@ public void onProjectileHitEvent(final ProjectileHitEvent event) { } private Player getAttacker(final Entity damager) { - if (damager instanceof Player) - return (Player) damager; - if (damager instanceof Projectile) - return (Player) ((Projectile) damager).getShooter(); - if (damager instanceof TNTPrimed) - return (Player) ((TNTPrimed) damager).getSource(); + if (damager instanceof final Player player) + return player; + if (damager instanceof final Projectile projectile) + return (Player) projectile.getShooter(); + if (damager instanceof final TNTPrimed tnt) + return (Player) tnt.getSource(); return (Player) ((AreaEffectCloud) damager).getSource(); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java index d4b2e6418..ef21680fb 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java @@ -27,7 +27,7 @@ import com.google.common.cache.CacheBuilder; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.ProtectionType; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; @@ -71,7 +71,7 @@ public final void onLingeringPotionSplash(final AreaEffectCloudApplyEvent event) continue; } final Player attacked = (Player) e; - final ProtectionType result = ph.tryCancel(player, attacked); + final ProtectionResult result = ph.checkProtection(player, attacked); if (result.isProtected()) { toRemove.add(e); 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 e1493a109..13fa27faa 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java @@ -2,6 +2,8 @@ import me.chancesd.pvpmanager.world.CombatWorld; import me.chancesd.sdutils.utils.Log; +import me.chancesd.sdutils.utils.MCVersion; + import java.util.UUID; import java.util.concurrent.TimeUnit; @@ -41,24 +43,23 @@ import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Player.ProtectionType; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Settings.Messages; import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.setting.Permissions; import me.chancesd.pvpmanager.utils.ScheduleUtils; -import me.NoChance.PvPManager.Utils.MCVersion; @SuppressWarnings("deprecation") public class PlayerListener implements Listener { - private final PlayerHandler ph; + private final PlayerHandler playerHandler; private final WorldGuardDependency wg; private Material mushroomSoup; private final Cache msgCooldown = CacheBuilder.newBuilder().weakValues().expireAfterWrite(800, TimeUnit.MILLISECONDS).build(); public PlayerListener(final PlayerHandler ph) { - this.ph = ph; + this.playerHandler = ph; this.wg = (WorldGuardDependency) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); if (MCVersion.isAtLeast(MCVersion.V1_13)) { mushroomSoup = Material.MUSHROOM_STEW; @@ -72,7 +73,7 @@ public final void onBlockPlace(final BlockPlaceEvent event) { if (!Settings.isBlockPlaceBlocks() && !Settings.isBlockPlaceBlocksNewbie()) return; - final PvPlayer combatPlayer = ph.get(event.getPlayer()); + final PvPlayer combatPlayer = playerHandler.get(event.getPlayer()); if (Settings.isBlockPlaceBlocks() && combatPlayer.isInCombat() || Settings.isBlockPlaceBlocksNewbie() && combatPlayer.isNewbie()) { event.setCancelled(true); combatPlayer.sendActionBar(Messages.getBlockPlaceBlockedInCombat(), 1000); @@ -81,7 +82,7 @@ public final void onBlockPlace(final BlockPlaceEvent event) { @EventHandler(ignoreCancelled = true) public final void onToggleFlight(final PlayerToggleFlightEvent event) { - if (Settings.isDisableFly() && event.isFlying() && ph.get(event.getPlayer()).isInCombat()) { + if (Settings.isDisableFly() && event.isFlying() && playerHandler.get(event.getPlayer()).isInCombat()) { event.setCancelled(true); } } @@ -89,10 +90,10 @@ public final void onToggleFlight(final PlayerToggleFlightEvent event) { @EventHandler(ignoreCancelled = true) public final void onPlayerEat(final PlayerItemConsumeEvent event) { final Material type = event.getItem().getType(); - final PvPlayer player = ph.get(event.getPlayer()); + final PvPlayer player = playerHandler.get(event.getPlayer()); if (Settings.isBlockEat() && player.isInCombat() && type.isEdible()) { event.setCancelled(true); - ph.get(event.getPlayer()).sendActionBar(Messages.getEatBlockedInCombat(), 1000); + playerHandler.get(event.getPlayer()).sendActionBar(Messages.getEatBlockedInCombat(), 1000); } if (Settings.getItemCooldowns().containsKey(type)) { if (player.hasItemCooldown(type)) { @@ -108,11 +109,11 @@ public final void onPlayerEat(final PlayerItemConsumeEvent event) { public final void onPlayerKick(final PlayerKickEvent event) { final Player player = event.getPlayer(); Log.debugLazy(() -> player.getName() + " was kicked with reason: " + event.getReason() + " | Leave message: " + event.getLeaveMessage() - + " - In combat: " + ph.get(player).isInCombat()); + + " - In combat: " + playerHandler.get(player).isInCombat()); if (Settings.punishOnKick() && (!Settings.matchKickReason() || Settings.getPunishKickReasons().contains(event.getReason()))) return; - final PvPlayer pvPlayer = ph.get(player); + final PvPlayer pvPlayer = playerHandler.get(player); if (pvPlayer.isInCombat()) { pvPlayer.unTag(); } @@ -121,20 +122,20 @@ public final void onPlayerKick(final PlayerKickEvent event) { @EventHandler // normal priority to avoid conflict with griefprevention public final void onPlayerLogout(final PlayerQuitEvent event) { final Player player = event.getPlayer(); - final PvPlayer pvPlayer = ph.get(player); + final PvPlayer pvPlayer = playerHandler.get(player); Log.debug(player.getName() + " quit with reason: " + event.getQuitMessage() + " - In combat: " + pvPlayer.isInCombat()); if (pvPlayer.isInCombat() && !pvPlayer.hasPerm(Permissions.EXEMPT_COMBAT_LOG)) { if (Settings.isLogToFile()) { - ph.getConfigManager().getLog().log(player.getName() + " tried to escape combat!"); + playerHandler.getConfigManager().getLog().log(player.getName() + " tried to escape combat!"); } CombatUtils.executeCommands(Settings.getCommandsOnPvPLog(), player, player.getName()); - ph.applyPunishments(pvPlayer); + playerHandler.applyPunishments(pvPlayer); } } @EventHandler(priority = EventPriority.MONITOR) public final void onPlayerLogoutMonitor(final PlayerQuitEvent event) { - ph.removeUser(ph.get(event.getPlayer())); + playerHandler.removeUser(playerHandler.get(event.getPlayer())); } @EventHandler(priority = EventPriority.HIGH) @@ -143,12 +144,12 @@ public final void onPlayerDeath(final PlayerDeathEvent event) { if (CombatUtils.isWorldExcluded(player.getWorld().getName())) return; - final PvPlayer pvPlayer = ph.get(player); + final PvPlayer pvPlayer = playerHandler.get(player); final Player killer = player.getKiller(); // Player died in combat, process that if (killer != null && !killer.equals(player)) { - final PvPlayer pKiller = ph.get(killer); + final PvPlayer pKiller = playerHandler.get(killer); handlePvPDeath(player, pvPlayer, killer, pKiller); } @@ -162,11 +163,11 @@ public final void onPlayerDeath(final PlayerDeathEvent event) { // Let's process player's inventory/exp according to config file if (pvPlayer.hasPvPLogged()) { - ph.handleCombatLogDrops(event, player); + playerHandler.handleCombatLogDrops(event, player); return; } - ph.handlePlayerDrops(event, player, killer); + playerHandler.handlePlayerDrops(event, player, killer); } private void handlePvPDeath(final Player player, final PvPlayer pvPlayer, final Player killer, final PvPlayer pKiller) { @@ -209,7 +210,7 @@ public final void onPlayerUseSoup(final PlayerInteractEvent e) { i.setType(Material.BOWL); } } - final PvPlayer pvplayer = ph.get(player); + final PvPlayer pvplayer = playerHandler.get(player); if ((e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_AIR) && Settings.getItemCooldowns().containsKey(type)) { if (pvplayer.hasItemCooldown(type)) { final String msg = Messages.getItemCooldown(pvplayer.getItemCooldown(type)); @@ -219,7 +220,7 @@ public final void onPlayerUseSoup(final PlayerInteractEvent e) { } e.setCancelled(true); } else if (!type.isEdible()) { - Bukkit.getScheduler().runTask(ph.getPlugin(), () -> pvplayer.setItemCooldown(type, Settings.getItemCooldowns().get(type))); + Bukkit.getScheduler().runTask(playerHandler.getPlugin(), () -> pvplayer.setItemCooldown(type, Settings.getItemCooldowns().get(type))); } } } @@ -231,7 +232,7 @@ public final void onPlayerInteract(final PlayerInteractEvent e) { return; final ItemStack i = player.getItemInHand(); - final PvPlayer pvplayer = ph.get(player); + final PvPlayer pvplayer = playerHandler.get(player); final Block clickedBlock = e.getClickedBlock(); if (clickedBlock == null) return; @@ -241,7 +242,7 @@ public final void onPlayerInteract(final PlayerInteractEvent e) { if (player.equals(p) || !clickedBlock.getWorld().equals(p.getWorld()) || !player.canSee(p)) { continue; } - final PvPlayer target = ph.get(p); + final PvPlayer target = playerHandler.get(p); if ((!target.hasPvPEnabled() || !pvplayer.hasPvPEnabled()) && clickedBlock.getLocation().distanceSquared(p.getLocation()) < 9) { pvplayer.message(Messages.pvpDisabledOther(target.getName())); e.setCancelled(true); @@ -264,7 +265,7 @@ public final void onPlayerInteract(final PlayerInteractEvent e) { @EventHandler(ignoreCancelled = true) public final void onPlayerPickup(final PlayerPickupItemEvent e) { if (Settings.isNewbieProtectionEnabled() && Settings.isBlockPickNewbies()) { - final PvPlayer player = ph.get(e.getPlayer()); + final PvPlayer player = playerHandler.get(e.getPlayer()); if (player.isNewbie()) { e.setCancelled(true); player.sendActionBar(Messages.getNewbiePickupItemBlocked(), 1000); @@ -275,7 +276,7 @@ public final void onPlayerPickup(final PlayerPickupItemEvent e) { @EventHandler public final void onPlayerJoin(final PlayerJoinEvent event) { final Player player = event.getPlayer(); - final PvPlayer pvPlayer = ph.get(player); + final PvPlayer pvPlayer = playerHandler.get(player); ScheduleUtils.runAsync(() -> { if (player.isOp() || pvPlayer.hasPerm(Permissions.ADMIN)) { Messages.sendQueuedMsgs(pvPlayer); @@ -289,7 +290,7 @@ public final void onPlayerTeleport(final PlayerTeleportEvent event) { if (CombatUtils.isNPC(player)) // Citizens seems to teleport NPCs very often so let's avoid creating new PvPlayer instances return; - final PvPlayer pvplayer = ph.get(player); + final PvPlayer pvplayer = playerHandler.get(player); if (!Settings.isInCombatEnabled() || !pvplayer.isInCombat()) return; @@ -309,7 +310,7 @@ public final void onPlayerTeleport(final PlayerTeleportEvent event) { @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public final void onCommand(final PlayerCommandPreprocessEvent event) { if (Settings.isInCombatEnabled() && Settings.isStopCommands() || Settings.isNewbieProtectionEnabled()) { - final PvPlayer player = ph.get(event.getPlayer()); + final PvPlayer player = playerHandler.get(event.getPlayer()); final String[] givenCommand = event.getMessage().substring(1).split(" ", 3); if (player.isInCombat() && !player.hasPerm(Permissions.EXEMPT_BLOCK_COMMANDS)) { @@ -332,9 +333,8 @@ public final void onPlayerFish(final PlayerFishEvent event) { if (CombatUtils.isWorldExcluded(player.getWorld().getName())) return; - if (event.getState() == State.CAUGHT_ENTITY && event.getCaught() instanceof Player) { - final Player caught = (Player) event.getCaught(); - final ProtectionType result = ph.tryCancel(player, caught); + if (event.getState() == State.CAUGHT_ENTITY && event.getCaught() instanceof final Player caught) { + final ProtectionResult result = playerHandler.checkProtection(player, caught); if (result.isProtected()) { event.setCancelled(true); Messages.messageProtection(result, player, caught); @@ -347,7 +347,7 @@ public final void onPlayerRespawn(final PlayerRespawnEvent event) { if (CombatUtils.isWorldExcluded(event.getPlayer().getWorld().getName())) return; if (Settings.isKillAbuseEnabled() && Settings.getRespawnProtection() != 0) { - final PvPlayer player = ph.get(event.getPlayer()); + final PvPlayer player = playerHandler.get(event.getPlayer()); player.setRespawnTime(System.currentTimeMillis()); } } @@ -356,7 +356,7 @@ public final void onPlayerRespawn(final PlayerRespawnEvent event) { public final void onInventoryOpen(final InventoryOpenEvent event) { if (!Settings.isBlockInventoryOpen()) return; - final PvPlayer combatPlayer = ph.get((Player) event.getPlayer()); + final PvPlayer combatPlayer = playerHandler.get((Player) event.getPlayer()); if (combatPlayer.isInCombat()) { event.setCancelled(true); combatPlayer.sendActionBar(Messages.getInventoryBlockedInCombat(), 1000); @@ -366,8 +366,8 @@ public final void onInventoryOpen(final InventoryOpenEvent event) { @EventHandler public void onChangeWorld(final PlayerChangedWorldEvent event) { final Player player = event.getPlayer(); - final PvPlayer pvPlayer = ph.get(player); - final CombatWorld combatWorld = ph.getPlugin().getWorldManager().getWorld(player.getWorld()); + final PvPlayer pvPlayer = playerHandler.get(player); + final CombatWorld combatWorld = playerHandler.getPlugin().getWorldManager().getWorld(player.getWorld()); pvPlayer.setCombatWorld(combatWorld); final CombatWorld.WorldOptionState optionState = pvPlayer.getCombatWorld().isPvPForced(); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java index b42940f4c..ee37fb3b7 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java @@ -21,7 +21,7 @@ public WGListener(final PlayerHandler ph) { public final void onWGPvPCancel(final DisallowedPVPEvent event) { // NO_UCD if (event.getAttacker().hasMetadata("NPC") || event.getDefender().hasMetadata("NPC")) return; - if (ph.tryCancel(event.getAttacker(), event.getDefender()) == ProtectionType.FAIL_OVERRIDE) { + if (ph.checkProtection(event.getAttacker(), event.getDefender()).type() == ProtectionType.FAIL_OVERRIDE) { event.setCancelled(true); Log.debug("Force allowing PvP even though WorldGuard blocked it because a player has override or Vulnerable is enabled"); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java index ff242e35e..a3e2b7fe8 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java @@ -21,7 +21,7 @@ public WGListenerLegacy(final PlayerHandler ph) { public final void onWGPvPCancel(final DisallowedPVPEvent event) { // NO_UCD if (event.getAttacker().hasMetadata("NPC") || event.getDefender().hasMetadata("NPC")) return; - if (ph.tryCancel(event.getAttacker(), event.getDefender()) == ProtectionType.FAIL_OVERRIDE) { + if (ph.checkProtection(event.getAttacker(), event.getDefender()).type() == ProtectionType.FAIL_OVERRIDE) { event.setCancelled(true); Log.debug("Force allowing PvP even though WorldGuard blocked it because a player has override or Vulnerable is enabled"); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java index f0db8ef31..0a382d26d 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java @@ -16,18 +16,10 @@ import me.NoChance.PvPManager.Dependencies.AFKDependency; import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.DependencyException; -import me.NoChance.PvPManager.Dependencies.DisguiseDependency; -import me.NoChance.PvPManager.Dependencies.GodDependency; import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.GroupDependency; -import me.NoChance.PvPManager.Dependencies.RegionDependency; import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; -import me.NoChance.PvPManager.Dependencies.WorldGuardHook; -import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Hooks.CooldownsXHook; import me.NoChance.PvPManager.Dependencies.Hooks.EssentialsHook; -import me.NoChance.PvPManager.Dependencies.Hooks.KingdomsXHook; import me.NoChance.PvPManager.Dependencies.Hooks.GriefPreventionHook; import me.NoChance.PvPManager.Dependencies.Hooks.LibsDisguisesHook; import me.NoChance.PvPManager.Dependencies.Hooks.PlaceHolderAPIHook; @@ -39,7 +31,6 @@ import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; import me.NoChance.PvPManager.Dependencies.Interfaces.DisguiseDependency; import me.NoChance.PvPManager.Dependencies.Interfaces.GodDependency; -import me.NoChance.PvPManager.Dependencies.Interfaces.PvPDependency; import me.NoChance.PvPManager.Dependencies.Interfaces.RegionDependency; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; import me.NoChance.PvPManager.Listeners.MoveListener; @@ -48,8 +39,9 @@ import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; -import me.NoChance.PvPManager.Utils.MCVersion; import me.chancesd.sdutils.utils.Log; +import me.chancesd.sdutils.utils.MCVersion; +import me.chancesd.sdutils.utils.Utils; import net.milkbowl.vault.economy.Economy; public class DependencyManager { @@ -113,42 +105,30 @@ private List setupHooks(final Hook... hooks) { return failedHooks; } - private void attemptHookingInto(final Hook hook) { + private boolean attemptHookingInto(final Hook hook) { switch (hook) { case SIMPLECLANS: - registerDependency(new SimpleClansHook(hook)); - break; + return registerDependency(new SimpleClansHook(hook)); case VAULT: - registerDependency(new VaultHook(hook)); - break; + return registerDependency(new VaultHook(hook)); case WORLDGUARD: - if (CombatUtils.isVersionAtLeast(CombatUtils.stripTags(hook.getVersion()), "7.0")) { - registerDependency(new WorldGuardModernHook(hook)); + if (Utils.isVersionAtLeast(Utils.stripTags(hook.getVersion()), "7.0")) { + return registerDependency(new WorldGuardModernHook(hook)); } else { - registerDependency(new WorldGuardLegacyHook(hook)); + return registerDependency(new WorldGuardLegacyHook(hook)); } - break; case ESSENTIALS: - registerDependency(new EssentialsHook(hook)); - break; + return registerDependency(new EssentialsHook(hook)); case PLACEHOLDERAPI: - registerDependency(new PlaceHolderAPIHook(hook)); - break; + return registerDependency(new PlaceHolderAPIHook(hook)); case LIBSDISGUISES: - registerDependency(new LibsDisguisesHook(hook)); - break; + return registerDependency(new LibsDisguisesHook(hook)); case TOWNY: - registerDependency(new TownyHook(hook)); - break; - case KINGDOMSX: - registerDependency(new KingdomsXHook(hook)); - break; + return registerDependency(new TownyHook(hook)); case GRIEFPREVENTION: - registerDependency(new GriefPreventionHook(hook)); - break; + return registerDependency(new GriefPreventionHook(hook)); default: - registerDependency(new BaseDependency(hook)); - break; + return registerDependency(new BaseDependency(hook)); } } @@ -223,32 +203,27 @@ public Dependency getDependency(final Hook h) { return dependencies.get(h); } - public void registerDependency(final Dependency dep) { + public boolean registerDependency(final Dependency dep) { dependencies.put(dep.getHook(), dep); - if (dep instanceof GroupDependency) { - attackChecks.add((GroupDependency) dep); + if (dep instanceof final GroupDependency pvpHook) { + attackChecks.add(pvpHook); } - if (dep instanceof RegionDependency) { - regionChecks.add((RegionDependency) dep); + if (dep instanceof final RegionDependency regionHook) { + regionChecks.add(regionHook); } - if (dep instanceof GodDependency) { - godChecks.add((GodDependency) dep); + if (dep instanceof final GodDependency godHook) { + godChecks.add(godHook); } - if (dep instanceof DisguiseDependency) { - disguiseChecks.add((DisguiseDependency) dep); + if (dep instanceof final DisguiseDependency disguiseHook) { + disguiseChecks.add(disguiseHook); } - if (dep instanceof ForceToggleDependency) { - final ForceToggleDependency togglePvPHook = (ForceToggleDependency) dep; - if (togglePvPHook.shouldDisableProtection()) { - togglePvPChecks.add(togglePvPHook); - } + if (dep instanceof final ForceToggleDependency togglePvPHook && togglePvPHook.shouldDisableProtection()) { + togglePvPChecks.add(togglePvPHook); } - if (dep instanceof AFKDependency) { - final AFKDependency afkHook = (AFKDependency) dep; - if (afkHook.shouldProtectAFK()) { - afkChecks.add(afkHook); - } + if (dep instanceof final AFKDependency afkHook && afkHook.shouldProtectAFK()) { + afkChecks.add(afkHook); } + return true; } public void unregisterDependency(final Dependency dep) { 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 308ac202a..bfe5fff02 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java @@ -58,7 +58,7 @@ public PlayerHandler(final PvPManager plugin) { addOnlinePlayers(); } - public final ProtectionResult tryCancel(final Player damager, final Player defender) { + public final ProtectionResult checkProtection(final Player damager, final Player defender) { final PvPlayer attacker = get(damager); final PvPlayer attacked = get(defender); @@ -87,7 +87,7 @@ public final ProtectionResult tryCancel(final Player damager, final Player defen } /** - * Use this method to check PvP instead of using {@link PlayerHandler#tryCancel(Player, Player)} + * Use this method to check PvP instead of using {@link PlayerHandler#checkProtection(Player, Player)} * This method will not be changed while the previous might change at any time. * * @param attacker @@ -98,7 +98,7 @@ public final ProtectionResult tryCancel(final Player damager, final Player defen * @return true if the attack didn't get blocked or if it got override, otherwise false */ public final boolean canAttack(final Player attacker, final Player defender) { - return tryCancel(attacker, defender).canAttack(); + return checkProtection(attacker, defender).isVulnerable(); } private boolean canAttackHooks(final PvPlayer attacker, final PvPlayer defender) { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java index 06f293a3a..caa8eb596 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java @@ -4,11 +4,12 @@ import me.chancesd.pvpmanager.setting.Permissions; import me.chancesd.pvpmanager.world.CombatWorld; +import me.chancesd.sdutils.utils.MCVersion; + import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import me.NoChance.PvPManager.Utils.CombatUtils; -import me.NoChance.PvPManager.Utils.MCVersion; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.TextComponent; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionResult.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionResult.java index 727b525b2..ae73bec62 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionResult.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionResult.java @@ -6,4 +6,12 @@ public ProtectionResult(final ProtectionType type) { this(type, false); } + public boolean isProtected() { + return !type.canAttack(); + } + + public boolean isVulnerable() { + return type.canAttack(); + } + } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionType.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionType.java index a473c8e1d..e52a88ceb 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionType.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/ProtectionType.java @@ -5,16 +5,11 @@ public enum ProtectionType { public boolean canAttack() { switch (this) { - case FAIL_PLUGIN_HOOK: - case FAIL_OVERRIDE: - case FAIL: + case FAIL_PLUGIN_HOOK, FAIL_OVERRIDE, FAIL: return true; default: return false; } } - public boolean isProtected() { - return !canAttack(); - } } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java index 4e3ff2b4d..bfca14917 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java @@ -1,11 +1,11 @@ package me.NoChance.PvPManager; -import me.chancesd.pvpmanager.managers.WorldManager; import org.bukkit.ChatColor; import org.bukkit.command.CommandExecutor; import org.bukkit.command.PluginCommand; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; + import me.NoChance.PvPManager.Commands.Announce; import me.NoChance.PvPManager.Commands.Newbie; import me.NoChance.PvPManager.Commands.PM; @@ -27,12 +27,13 @@ import me.NoChance.PvPManager.Managers.DisplayManager; import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Settings.Messages; -import me.chancesd.sdutils.library.PluginLibraries; -import me.chancesd.sdutils.utils.Log; import me.chancesd.pvpmanager.managers.StorageManager; import me.chancesd.pvpmanager.managers.UpdateManager; +import me.chancesd.pvpmanager.managers.WorldManager; import me.chancesd.pvpmanager.utils.ScheduleUtils; -import me.NoChance.PvPManager.Utils.MCVersion; +import me.chancesd.sdutils.library.PluginLibraries; +import me.chancesd.sdutils.utils.Log; +import me.chancesd.sdutils.utils.MCVersion; public class PvPManager extends JavaPlugin { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java index bd1ce1f81..9d2b03a8f 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java @@ -26,7 +26,6 @@ import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Tasks.NewbieTask; import me.NoChance.PvPManager.Utils.CombatUtils; -import me.NoChance.PvPManager.Utils.MCVersion; import me.chancesd.pvpmanager.player.nametag.BukkitNameTag; import me.chancesd.pvpmanager.player.nametag.NameTag; import me.chancesd.pvpmanager.setting.Permissions; @@ -34,6 +33,7 @@ import me.chancesd.pvpmanager.utils.ScheduleUtils; import me.chancesd.pvpmanager.world.CombatWorld; import me.chancesd.sdutils.utils.Log; +import me.chancesd.sdutils.utils.MCVersion; /** * @deprecated Will be renamed to CombatPlayer and moved to another package when v4 is released. diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java index 5bb0997f7..1634b04f3 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java @@ -21,7 +21,7 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Player.ProtectionType; +import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Utils.ChatUtils; import me.NoChance.PvPManager.Utils.TimeUtil; import me.chancesd.sdutils.utils.Log; @@ -269,20 +269,20 @@ private static void addMessage(final String a) { } } - public static void messageProtection(final ProtectionType result, final Player player, final Player attacked) { + public static void messageProtection(final ProtectionResult result, final Player player, final Player attacked) { final String message = getProtectionMessage(result, attacked); final PvPlayer receiver = plugin.getPlayerHandler().get(player); receiver.message(message); } - public static String getProtectionMessage(final ProtectionType result, final Player attacked) { - switch (result) { + public static String getProtectionMessage(final ProtectionResult result, final Player attacked) { + switch (result.type()) { case NEWBIE: - return result.attackerCaused() ? newbieBlocked() : newbieBlockedOther(attacked.getName()); + return result.isAttacker() ? newbieBlocked() : newbieBlockedOther(attacked.getName()); case PVPDISABLED: - return result.attackerCaused() ? pvpDisabled() : pvpDisabledOther(attacked.getName()); + return result.isAttacker() ? pvpDisabled() : pvpDisabledOther(attacked.getName()); case RESPAWN_PROTECTION: - return result.attackerCaused() ? respawnProtSelf() : respawnProtOther(attacked.getName()); + return result.isAttacker() ? respawnProtSelf() : respawnProtOther(attacked.getName()); case WORLD_PROTECTION: return worldProtection(); case AFK_PROTECTION: diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java index 1d02fa6f5..f6914a89a 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java @@ -8,7 +8,6 @@ import java.util.Map.Entry; import java.util.Set; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; @@ -20,7 +19,7 @@ import me.NoChance.PvPManager.Utils.ChatUtils; import me.chancesd.sdutils.utils.Log; -import me.NoChance.PvPManager.Utils.MCVersion; +import me.chancesd.sdutils.utils.MCVersion; public final class Settings { @@ -162,7 +161,6 @@ private static void assignSections(final YamlConfiguration config) { public static void initizalizeVariables(final YamlConfiguration c) { assignSections(c); - minecraftVersion = MCVersion.getMCVersion(Bukkit.getBukkitVersion().isEmpty() ? "0" : Bukkit.getBukkitVersion().replaceAll("-.+", "")); locale = generalSection.getString("Locale", "en").toUpperCase(); defaultPvp = generalSection.getBoolean("Default PvP", true); pvpBlood = generalSection.getBoolean("PvP Blood", true); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java index 235c75476..f93b4f09d 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java @@ -33,6 +33,7 @@ import me.chancesd.sdutils.utils.Log; import me.chancesd.sdutils.utils.MCVersion; import me.chancesd.sdutils.utils.ReflectionUtil; +import me.chancesd.sdutils.utils.MCVersion; public final class CombatUtils { @@ -118,8 +119,7 @@ public static final boolean isPvP(final EntityDamageByEntityEvent event) { return !Settings.isIgnoreNoDamageHits() || event.getDamage() != 0; } } - if (attacker instanceof TNTPrimed) { - final TNTPrimed tnt = (TNTPrimed) attacker; + if (attacker instanceof final TNTPrimed tnt) { final Entity tntAttacker = tnt.getSource(); if (tntAttacker instanceof Player && (Settings.isSelfTag() || !tntAttacker.equals(defender))) { return true; @@ -138,8 +138,8 @@ public static final boolean isPvP(final EntityCombustByEntityEvent event) { if (attacker instanceof Player && !isNPC(attacker)) return true; - if (attacker instanceof Projectile) { - final ProjectileSource projSource = ((Projectile) attacker).getShooter(); + if (attacker instanceof final Projectile projectile) { + final ProjectileSource projSource = projectile.getShooter(); if (projSource instanceof Player) { final Entity shooter = (Entity) projSource; return !shooter.equals(defender) && !isNPC(shooter); @@ -244,39 +244,13 @@ public static boolean recursiveContainsCommand(final String[] givenCommand, fina return contains; } - public static final boolean isVersionAtLeast(final String v1, final String v2) { - if (v1.equals(v2)) - return true; - - final String[] v1Array = v1.split("\\."); - final String[] v2Array = v2.split("\\."); - final int length = Math.max(v2Array.length, v1Array.length); - try { - for (int i = 0; i < length; i++) { - final int x = i < v2Array.length ? Integer.parseInt(v2Array[i]) : 0; - final int y = i < v1Array.length ? Integer.parseInt(v1Array[i]) : 0; - if (y > x) - return true; - if (y < x) - return false; - } - } catch (final NumberFormatException ex) { - Log.severe("Error reading version number! Comparing " + v1 + " to " + v2); - } - return true; - } - - public static String stripTags(final String version) { - return version.replaceAll("[-;+].+", ""); - } - public static String truncateString(final String text, final int size) { return text.substring(0, Math.min(text.length(), size)); } private static ProjectileSource getSource(final Entity entity) { - if (entity instanceof Projectile) - return ((Projectile) entity).getShooter(); + if (entity instanceof final Projectile projectile) + return projectile.getShooter(); else return ((AreaEffectCloud) entity).getSource(); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/MCVersion.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/MCVersion.java deleted file mode 100644 index 1e4e42552..000000000 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/MCVersion.java +++ /dev/null @@ -1,55 +0,0 @@ -package me.NoChance.PvPManager.Utils; - -import me.NoChance.PvPManager.Settings.Settings; - -/** - * Utility class to get and compare MC versions - * - * @author ChanceSD - */ -public enum MCVersion { - OLD, V1_8, V1_9, V1_10, V1_11, V1_11_2, V1_12, V1_13, V1_13_1, V1_14, V1_15, V1_16, V1_16_5, V1_17, V1_18, V1_19; - - public static MCVersion getMCVersion(final String version) { - if (CombatUtils.isVersionAtLeast(version, "1.19")) - return MCVersion.V1_19; - else if (CombatUtils.isVersionAtLeast(version, "1.18")) - return MCVersion.V1_18; - else if (CombatUtils.isVersionAtLeast(version, "1.17")) - return MCVersion.V1_17; - else if (CombatUtils.isVersionAtLeast(version, "1.16.5")) - return MCVersion.V1_16_5; - else if (CombatUtils.isVersionAtLeast(version, "1.16")) - return MCVersion.V1_16; - else if (CombatUtils.isVersionAtLeast(version, "1.15")) - return MCVersion.V1_15; - else if (CombatUtils.isVersionAtLeast(version, "1.14")) - return MCVersion.V1_14; - else if (CombatUtils.isVersionAtLeast(version, "1.13.1")) - return MCVersion.V1_13_1; - else if (CombatUtils.isVersionAtLeast(version, "1.13")) - return MCVersion.V1_13; - else if (CombatUtils.isVersionAtLeast(version, "1.12")) - return MCVersion.V1_12; - else if (CombatUtils.isVersionAtLeast(version, "1.11.2")) - return MCVersion.V1_11_2; - else if (CombatUtils.isVersionAtLeast(version, "1.11")) - return MCVersion.V1_11; - else if (CombatUtils.isVersionAtLeast(version, "1.10")) - return MCVersion.V1_10; - else if (CombatUtils.isVersionAtLeast(version, "1.9")) - return MCVersion.V1_9; - else if (CombatUtils.isVersionAtLeast(version, "1.8")) - return MCVersion.V1_8; - return MCVersion.OLD; - } - - public static final boolean isAtLeast(final MCVersion version) { - return Settings.getMinecraftVersion().ordinal() >= version.ordinal(); - } - - public static final boolean isLessThan(final MCVersion version) { - return Settings.getMinecraftVersion().ordinal() < version.ordinal(); - } - -} diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/UpdateManager.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/UpdateManager.java index 614025562..20bf091ac 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/UpdateManager.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/UpdateManager.java @@ -15,6 +15,7 @@ import me.chancesd.sdutils.updater.Updater.UpdateResult; import me.chancesd.sdutils.updater.Updater.UpdateType; import me.chancesd.sdutils.utils.Log; +import me.chancesd.sdutils.utils.Utils; public class UpdateManager { @@ -44,8 +45,8 @@ public void checkForUpdates() { + Messages.getCurrentversion(); Messages.queueAdminMsg(updateMsg); Bukkit.broadcast(updateMsg, Permissions.ADMIN.getPermission()); - if (Settings.isAutoUpdate() && CombatUtils.isVersionAtLeast(Messages.getNewVersion(), "4.0") - && !CombatUtils.isVersionAtLeast(Messages.getNewVersion(), "4.1")) { + if (Settings.isAutoUpdate() && Utils.isVersionAtLeast(Messages.getNewVersion(), "4.0") + && !Utils.isVersionAtLeast(Messages.getNewVersion(), "4.1")) { final String v4message = Messages.PREFIXMSG + " §aSince §b§lv4.0 is a huge update§a, it changes a lot of the config and messages file. " + "This makes it unable to be automatically updated. " 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 d6901d9c2..495ac48a9 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 @@ -11,7 +11,7 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Settings.Settings; import me.chancesd.sdutils.utils.Log; -import me.NoChance.PvPManager.Utils.MCVersion; +import me.chancesd.sdutils.utils.MCVersion; public class BukkitNameTag extends NameTag { diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/storage/Database.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/storage/Database.java index a21802749..507224357 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/storage/Database.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/storage/Database.java @@ -24,8 +24,8 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; -import me.NoChance.PvPManager.Utils.MCVersion; import me.chancesd.pvpmanager.storage.DatabaseConfigBuilder.DatabaseType; +import me.chancesd.sdutils.utils.MCVersion; public class Database { diff --git a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java index 028c9818c..33a1818c7 100644 --- a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java +++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java @@ -184,7 +184,7 @@ final void cancelNewbie() { ph.get(attacker).setNewbie(true); createAttack(false); - assertEquals(ProtectionType.NEWBIE, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionType.NEWBIE, ph.checkProtection(attacker, defender).type()); verify(attacker, times(2)).sendMessage(Messages.newbieBlocked()); verify(mockEvent).setCancelled(true); @@ -196,7 +196,7 @@ final void cancelPvPDisabled() { ph.get(defender).setPvP(false); createAttack(false); - assertEquals(ProtectionType.PVPDISABLED, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionType.PVPDISABLED, ph.checkProtection(attacker, defender).type()); verify(attacker, times(2)).sendMessage(Messages.pvpDisabledOther(defender.getName())); verify(mockEvent).setCancelled(true); @@ -210,7 +210,7 @@ final void failCancel() { when(attacker.isFlying()).thenReturn(true); when(defender.isFlying()).thenReturn(true); - assertEquals(ProtectionType.FAIL, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionType.FAIL, ph.checkProtection(attacker, defender).type()); createAttack(false); assertTrue(ph.get(attacker).isInCombat()); assertTrue(ph.get(defender).isInCombat()); @@ -226,7 +226,7 @@ final void overrideCancel() { ph.get(attacker).toggleOverride(); createAttack(false); - assertEquals(ProtectionType.FAIL_OVERRIDE, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionType.FAIL_OVERRIDE, ph.checkProtection(attacker, defender).type()); assertTrue(ph.get(attacker).isInCombat()); assertTrue(ph.get(defender).isInCombat()); @@ -239,7 +239,7 @@ final void overrideCancelled() { ph.get(attacker).toggleOverride(); createAttack(true); - assertEquals(ProtectionType.FAIL_OVERRIDE, ph.tryCancel(attacker, defender)); + assertEquals(ProtectionType.FAIL_OVERRIDE, ph.checkProtection(attacker, defender).type()); assertTrue(ph.get(attacker).isInCombat()); assertTrue(ph.get(defender).isInCombat()); diff --git a/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java b/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java index dad62f6cd..949501734 100644 --- a/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java +++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java @@ -1,7 +1,6 @@ package me.NoChance.PvPManager.Managers; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -18,7 +17,7 @@ import me.NoChance.PvPManager.InstanceCreator; import me.NoChance.PvPManager.PluginTest; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.sdutils.utils.Utils; @ExtendWith(InstanceCreator.class) public class DependencyTest { @@ -43,9 +42,9 @@ void allEnabled() { @Test void versionTags() { - final String v1 = CombatUtils.stripTags("1.0.2-SNAPSHOT"); - final String v2 = CombatUtils.stripTags("1.0.2;1994-9adac4f"); - final String v3 = CombatUtils.stripTags("1.0.2+9adac4f"); + final String v1 = Utils.stripTags("1.0.2-SNAPSHOT"); + final String v2 = Utils.stripTags("1.0.2;1994-9adac4f"); + final String v3 = Utils.stripTags("1.0.2+9adac4f"); assertEquals("1.0.2", v1); assertEquals("1.0.2", v2); assertEquals("1.0.2", v3); From 7ab3a497d558206be00a41986d07667358948e47 Mon Sep 17 00:00:00 2001 From: ChanceSD <5256215+ChanceSD@users.noreply.github.com> Date: Sun, 14 Apr 2024 09:56:19 +0100 Subject: [PATCH 07/16] Add option for XP steal, closes #219 --- .../Dependencies/GroupDependency.java | 2 ++ .../Dependencies/Hooks/LibsDisguisesHook.java | 2 -- .../Dependencies/Hooks/SimpleClansHook.java | 3 --- .../Interfaces/WorldGuardDependency.java | 1 + .../PvPManager/Listeners/EntityListener.java | 1 - .../PvPManager/Listeners/PlayerListener.java | 10 +++++++-- .../NoChance/PvPManager/Player/EcoPlayer.java | 22 ++++++++++++++++++- .../PvPManager/Settings/Messages.java | 16 ++++++++++++++ .../PvPManager/Settings/Settings.java | 8 ++++++- .../PvPManager/Utils/CombatUtils.java | 2 +- .../player/nametag/BukkitNameTag.java | 10 +++++++-- .../chancesd/pvpmanager/storage/Database.java | 2 +- pvpmanager/src/main/resources/config.yml | 8 ++++--- .../main/resources/locale/messages.properties | 8 ++++--- .../PvPManager/Managers/DependencyTest.java | 3 ++- 15 files changed, 77 insertions(+), 21 deletions(-) diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/GroupDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/GroupDependency.java index 2dc0d1aa7..b1395f6c0 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/GroupDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/GroupDependency.java @@ -2,6 +2,8 @@ import org.bukkit.entity.Player; +import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; + /** * Represents a plugin that groups players in clans/factions/teams/etc.
* Allows checking if two players can attack each other or not. diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java index 3d1e14eab..4c982bee4 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java @@ -4,7 +4,6 @@ import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.Hook; -import me.chancesd.sdutils.utils.Log; import me.NoChance.PvPManager.Dependencies.Interfaces.DisguiseDependency; import me.libraryaddict.disguise.DisguiseAPI; @@ -12,7 +11,6 @@ public class LibsDisguisesHook extends BaseDependency implements DisguiseDepende public LibsDisguisesHook(final Hook hook) { super(hook); - Log.debug(DisguiseAPI.getSelfDisguiseId() + ""); // throw exception if not found } @Override diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java index a81398187..86d87dfde 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java @@ -6,10 +6,7 @@ import me.NoChance.PvPManager.Dependencies.DependencyException; import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.GroupDependency; -import me.NoChance.PvPManager.Player.CancelResult; import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Interfaces.PvPDependency; import me.NoChance.PvPManager.Player.ProtectionType; import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer; import net.sacredlabyrinth.phaed.simpleclans.SimpleClans; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java index 7b708d4be..3e253b3d0 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java @@ -8,6 +8,7 @@ import com.sk89q.worldguard.protection.flags.StateFlag.State; import com.sk89q.worldguard.protection.regions.ProtectedRegion; +import me.NoChance.PvPManager.Dependencies.GroupDependency; import me.NoChance.PvPManager.Managers.PlayerHandler; public interface WorldGuardDependency extends GroupDependency, RegionDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java index fd4f48d46..a38d4e06d 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java @@ -43,7 +43,6 @@ import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.pvpmanager.setting.Permissions; -import me.NoChance.PvPManager.Utils.MCVersion; import me.chancesd.sdutils.utils.MCVersion; public class EntityListener implements Listener { 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 13fa27faa..06c1a7003 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java @@ -150,7 +150,7 @@ public final void onPlayerDeath(final PlayerDeathEvent event) { // Player died in combat, process that if (killer != null && !killer.equals(player)) { final PvPlayer pKiller = playerHandler.get(killer); - handlePvPDeath(player, pvPlayer, killer, pKiller); + handlePvPDeath(player, pvPlayer, killer, pKiller, event); } if (pvPlayer.isInCombat()) { @@ -170,7 +170,7 @@ public final void onPlayerDeath(final PlayerDeathEvent event) { playerHandler.handlePlayerDrops(event, player, killer); } - private void handlePvPDeath(final Player player, final PvPlayer pvPlayer, final Player killer, final PvPlayer pKiller) { + private void handlePvPDeath(final Player player, final PvPlayer pvPlayer, final Player killer, final PvPlayer pKiller, final PlayerDeathEvent event) { if (Settings.isKillAbuseEnabled() && !pKiller.hasPerm(Permissions.EXEMPT_KILL_ABUSE)) { pKiller.addVictim(player); } @@ -181,6 +181,12 @@ private void handlePvPDeath(final Player player, final PvPlayer pvPlayer, final if (Settings.getMoneyPenalty() > 0) { pvPlayer.applyPenalty(); } + if (Settings.getExpSteal() > 0) { + final int expWon = pKiller.giveExp(pvPlayer); + event.setDroppedExp(0); + event.setNewExp(player.getTotalExperience() - expWon); + pvPlayer.message(Messages.getExpStolen(pKiller.getName(), String.valueOf(expWon))); + } CombatUtils.executeCommands(Settings.getCommandsOnKill(), killer, killer.getName(), player.getName()); } } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/EcoPlayer.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/EcoPlayer.java index 581572a9a..5bcd6af5b 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/EcoPlayer.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/EcoPlayer.java @@ -27,7 +27,8 @@ private boolean withdrawMoney(final double amount) { private void depositMoney(final double amount) { final EconomyResponse response = economy.depositPlayer(getPlayer(), amount); - Log.debug("Deposit money to " + getName() + " - Response: " + response.type + " " + response.amount + " " + response.balance + " " + response.errorMessage); + Log.debug("Deposit money to " + getName() + " - Response: " + response.type + " " + response.amount + " " + response.balance + " " + + response.errorMessage); } public final void applyFine() { @@ -62,6 +63,25 @@ public final void giveReward(final EcoPlayer victim) { message(Messages.getMoneyReward(victim.getPlayer().getName(), CombatUtils.formatTo2Digits(moneyWon))); } + public final int giveExp(final EcoPlayer victim) { + int expWon = 0; + final int exp = victim.getPlayer().getTotalExperience(); + if (Settings.getExpSteal() <= 1) { + expWon = (int) (Settings.getExpSteal() * exp); + } else { + expWon = exp; + } + setExp(getPlayer().getTotalExperience() + expWon); + message(Messages.getExpWon(victim.getPlayer().getName(), String.valueOf(expWon))); + return expWon; + } + + public final void setExp(final int exp) { + getPlayer().setExp(0); + getPlayer().setLevel(0); + getPlayer().giveExp(exp); + } + private double getMoneyPercentage(final double percentage) { if (percentage > 1) return percentage; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java index 1634b04f3..99e40126e 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java @@ -67,6 +67,8 @@ public class Messages { private static String moneyReward; private static String moneyPenalty; private static String moneySteal; + private static String expWon; + private static String expStolen; private static Locale locale; private static String tagTimeLeft; private static String tagNotInCombat; @@ -212,6 +214,8 @@ private static void getMessages() { moneyReward = getString("Money_Reward"); moneyPenalty = getString("Money_Penalty"); moneySteal = getString("Money_Steal"); + expWon = getString("Exp_Won"); + expStolen = getString("Exp_Stolen"); pvpListTitle = getString("PvPList_Title"); pvpListEnabled = getString("PvPList_Enabled"); pvpListDisabled = getString("PvPList_Disabled"); @@ -327,6 +331,10 @@ public static String replaceMoney(final String message, final String money) { return message.replace("%money%", money); } + public static String replaceExp(final String message, final String exp) { + return message.replace("%exp%", exp); + } + public static String getPrefix() { return prefix; } @@ -481,6 +489,14 @@ public static String getMoneySteal(final String name, final String money) { return replaceMoney(replacePlayer(moneySteal, name), money); } + public static String getExpStolen(final String name, final String exp) { + return replaceExp(replacePlayer(expStolen, name), exp); + } + + public static String getExpWon(final String name, final String exp) { + return replaceExp(replacePlayer(expWon, name), exp); + } + public static Locale getLocale() { return locale; } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java index f6914a89a..b1404c5d5 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java @@ -74,6 +74,7 @@ public enum DropMode { private static double moneyPenalty; private static double moneyReward; private static boolean moneySteal; + private static double expSteal; private static String nameTagPrefix; private static String nameTagSuffix; private static boolean newbieGodMode; @@ -171,7 +172,7 @@ public static void initizalizeVariables(final YamlConfiguration c) { recyclePotionBottles = generalSection.getBoolean("Recycling.Potion Bottle", false); recycleMilkBucket = generalSection.getBoolean("Recycling.Milk Bucket", false); healthBelowName = generalSection.getBoolean("Show health under name.Enabled", true); - healthBelowNameSymbol = generalSection.getString("Show health under name.Display Name", "❤"); + healthBelowNameSymbol = ChatUtils.colorize(generalSection.getString("Show health under name.Display Name", "&c❤")); worldsExcluded = new HashSet<>(getList(generalSection.getStringList("World Exclusions"))); borderHoppingVulnerable = borderHoppingSection.getBoolean("Vulnerable", true); @@ -258,6 +259,7 @@ public static void initizalizeVariables(final YamlConfiguration c) { setMoneyReward(playerKillsSection.getDouble("Money Reward", 10)); setMoneyPenalty(playerKillsSection.getDouble("Money Penalty", 10)); moneySteal = playerKillsSection.getBoolean("Money Steal", false); + expSteal = playerKillsSection.getDouble("Exp Steal", 0.0); commandsOnKill = getCommandList(playerKillsSection.getStringList("Commands On Kill")); playerKillsWGExclusions = new HashSet<>(getList(playerKillsSection.getStringList("WorldGuard Exclusions"))); @@ -558,6 +560,10 @@ public static boolean isMoneySteal() { return moneySteal; } + public static double getExpSteal() { + return expSteal; + } + public static boolean isUntagEnemy() { return untagEnemy; } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java index f93b4f09d..0639b3a55 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java @@ -209,7 +209,7 @@ public static boolean isWorldExcluded(final String worldName) { } public static boolean hasHarmfulPotion(final AreaEffectCloud areaCloud) { - if (isVersionAtLeast(Settings.getMinecraftVersion(), "1.20.2")) { + if (MCVersion.isAtLeast(MCVersion.V1_20_2)) { final PotionType basePotionType = areaCloud.getBasePotionType(); if (basePotionType == null) return false; 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 495ac48a9..ea3946195 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 @@ -3,8 +3,10 @@ import java.util.UUID; import org.bukkit.ChatColor; +import org.bukkit.scoreboard.Criteria; import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.RenderType; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.Team; @@ -84,11 +86,15 @@ private void setup() { // set pvp tag if player has pvp nametags on setPvP(pvPlayer.hasPvPEnabled()); } - if (Settings.isHealthBelowName() && health == null) { + if (Settings.isHealthBelowName() && (health == null || scoreboard.getObjective(HEALTHOBJ) == null)) { if (scoreboard.getObjective(HEALTHOBJ) != null) { health = scoreboard.getObjective(HEALTHOBJ); + } else if (MCVersion.isAtLeast(MCVersion.V1_19)) { + health = scoreboard.registerNewObjective(HEALTHOBJ, Criteria.HEALTH, Settings.getHealthBelowNameSymbol(), RenderType.HEARTS); + health.setDisplaySlot(DisplaySlot.BELOW_NAME); } else { - health = scoreboard.registerNewObjective(HEALTHOBJ, "health", Settings.getHealthBelowNameSymbol()); + health = scoreboard.registerNewObjective(HEALTHOBJ, "health"); + health.setDisplayName(Settings.getHealthBelowNameSymbol()); health.setDisplaySlot(DisplaySlot.BELOW_NAME); } } diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/storage/Database.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/storage/Database.java index 507224357..9553021b9 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/storage/Database.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/storage/Database.java @@ -44,7 +44,7 @@ protected Database(final DatabaseFactory databaseFactory, final DatabaseConfigBu final HikariConfig config = new HikariConfig(); if (databaseType == DatabaseType.SQLITE) { // Use SQLITE - if (MCVersion.isLessThan(MCVersion.V1_9)) { + if (MCVersion.isLowerThan(MCVersion.V1_9)) { try { Class.forName("org.sqlite.JDBC"); // got to do this for 1.8 sigh config.setConnectionTestQuery("SELECT 1;"); diff --git a/pvpmanager/src/main/resources/config.yml b/pvpmanager/src/main/resources/config.yml index fbe0f0988..bc839dbd7 100644 --- a/pvpmanager/src/main/resources/config.yml +++ b/pvpmanager/src/main/resources/config.yml @@ -15,8 +15,6 @@ # mode 'TRANSFER' - (Same as 'DROP' but transfer items(not exp) directly to killer's inventory without drops) # mode 'CLEAR' - (Clear all drops and exp on death, this deletes everything on death so make sure it is what you want) # Ignore No Damage Hits -> Ignore hits from snowballs, eggs, fishing rod and others -# Show health under name -> Show player health, uses scoreboards so might conflict with other plugins -# World Exclusions -> List of worlds where PvPManager will have no effect General: # Changes messages language, options are - EN | BG | DE | ES | FI | FR | HR | IT | JA | PL | pt_BR | RU | TR | zh_TW | ZH Locale: EN @@ -33,9 +31,11 @@ General: Recycling: Potion Bottle: false Milk Bucket: false + # Show player health, uses scoreboards so might conflict with other plugins Show health under name: Enabled: true - Display Name: '❤' + Display Name: '&c❤' + # List of worlds where PvPManager will have no effect World Exclusions: - 'example' @@ -198,6 +198,8 @@ Player Kills: Money Reward: 0.0 Money Penalty: 0.0 Money Steal: false + # Similar to how money steal works, get a percentage of XP from the player you killed, 1 for 100% (0 to disable) + Exp Steal: 0.0 # Commands to execute on kill ( is the killer, is the victim, is the item material in hand) Commands On Kill: - 'examplecommand killed with ' diff --git a/pvpmanager/src/main/resources/locale/messages.properties b/pvpmanager/src/main/resources/locale/messages.properties index 939d16222..c173f5884 100644 --- a/pvpmanager/src/main/resources/locale/messages.properties +++ b/pvpmanager/src/main/resources/locale/messages.properties @@ -54,15 +54,17 @@ Respawn_Protection_Other = %prefix%&4 %player% has respawn protection! World_Protection = %prefix% &4PvP is disabled in this world! # AFK Protection -AFK_Protection = &6[&8PvPManager&6]&4 This player can't be attacked while AFK +AFK_Protection = %prefix% &4This player can't be attacked while AFK # Global Protection -Global_Protection = &6[&8PvPManager&6]&4 PvP combat is globally disabled +Global_Protection = %prefix% &4PvP combat is globally disabled # Player Kills Money_Reward = &2You got %money% coins for killing player %player%! Money_Penalty = &cYou lost %money% coins for getting killed! Money_Steal = &c%player% stole %money% coins from you! +Exp_Won = %prefix% &aYou got &e%exp% &aexperience for killing &c%player%&a! +Exp_Stolen = %prefix% &c%player% &6stole &e%exp% &6experience from you! # Kill Abuse Kill_Abuse_Warning = %prefix% &cYou will be punished if you kill this player again! Please stop. @@ -81,7 +83,7 @@ Error_Not_Newbie = %prefix% &cYou are not a newbie! Error_PvP_Cooldown = %prefix% &cYou can't toggle PvP yet! Wait %time%. Error_PvPToggle_NoPvP = %prefix% &cYou are blocked from having PvP enabled Error_PvPToggle_ForcePvP = %prefix% &cYou are blocked from having PvP disabled -PvPToggle_Admin_Changed = &6[&8PvPManager&6] &2PvP state for &6%p &2was changed to %state +PvPToggle_Admin_Changed = %prefix% &2PvP state for &6%p &2was changed to %state PvPToggle_Already_Disabled = %prefix% &4You already have PvP disabled! PvPToggle_Already_Enabled = %prefix% &4You already have PvP enabled! # PvPInfo Command diff --git a/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java b/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java index 949501734..f97ae0331 100644 --- a/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java +++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java @@ -12,6 +12,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.AdditionalMatchers; import org.mockito.ArgumentMatchers; import org.mockito.Mockito; @@ -35,7 +36,7 @@ public static void setupClass() { void allEnabled() { final JavaPlugin plugin = Mockito.mock(JavaPlugin.class); when(plugin.getDescription()).thenReturn(new PluginDescriptionFile("Plugin", "1.0", "plugin")); - when(server.getPluginManager().getPlugin(ArgumentMatchers.anyString())).thenReturn(plugin); + when(server.getPluginManager().getPlugin(AdditionalMatchers.not(ArgumentMatchers.eq("Towny")))).thenReturn(plugin); assertEquals(server.getPluginManager().getPlugin("PvPManager"), plugin); new DependencyManager(); } From 6df6904956382c3876a7b2eb3b2db9265a41ab07 Mon Sep 17 00:00:00 2001 From: ChanceSD <5256215+ChanceSD@users.noreply.github.com> Date: Tue, 30 Apr 2024 17:06:29 +0100 Subject: [PATCH 08/16] Move to new package --- .../PvPManager/Dependencies/Hook.java | 2 +- .../Hooks/GriefPreventionHook.java | 2 +- .../Dependencies/Hooks/PlaceHolderAPI.java | 4 +- .../Hooks/WorldGuardLegacyHook.java | 4 +- .../Hooks/WorldGuardModernHook.java | 8 ++-- .../Dependencies/Interfaces/Dependency.java | 2 +- .../Interfaces/WorldGuardDependency.java | 2 +- .../Libraries/Metrics/CustomMetrics.java | 2 +- .../PvPManager/Player/BasePlayer.java | 2 +- .../NoChance/PvPManager/Player/EcoPlayer.java | 6 +-- .../me/NoChance/PvPManager/PvPManager.java | 46 +++++++++---------- .../java/me/NoChance/PvPManager/PvPlayer.java | 14 +++--- .../pvpmanager/command}/Announce.java | 4 +- .../pvpmanager/command}/Newbie.java | 12 ++--- .../pvpmanager/command}/PM.java | 14 +++--- .../pvpmanager/command}/PvP.java | 10 ++-- .../pvpmanager/command}/PvPGlobal.java | 8 ++-- .../pvpmanager/command}/PvPInfo.java | 10 ++-- .../pvpmanager/command}/PvPList.java | 8 ++-- .../pvpmanager/command}/PvPOverride.java | 6 +-- .../pvpmanager/command}/PvPStatus.java | 8 ++-- .../pvpmanager/command}/Tag.java | 10 ++-- .../pvpmanager/command}/Untag.java | 8 ++-- .../pvpmanager/command}/Worlds.java | 4 +- .../event}/PlayerCombatLogEvent.java | 2 +- .../pvpmanager/event}/PlayerTagEvent.java | 2 +- .../event}/PlayerTogglePvPEvent.java | 2 +- .../pvpmanager/event}/PlayerUntagEvent.java | 2 +- .../listener}/DebugEntityListener.java | 8 ++-- .../pvpmanager/listener}/EntityListener.java | 10 ++-- .../listener}/EntityListener1_9.java | 10 ++-- .../pvpmanager/listener}/MoveListener.java | 6 +-- .../pvpmanager/listener}/MoveListener1_9.java | 10 ++-- .../pvpmanager/listener}/PlayerListener.java | 10 ++-- .../listener}/PlayerListener1_11.java | 8 ++-- .../pvpmanager/listener}/WGListener.java | 4 +- .../listener}/WGListenerLegacy.java | 4 +- .../pvpmanager/manager}/ConfigManager.java | 8 ++-- .../manager}/DependencyManager.java | 10 ++-- .../pvpmanager/manager}/DisplayManager.java | 6 +-- .../pvpmanager/manager}/PlayerHandler.java | 14 +++--- .../{managers => manager}/StorageManager.java | 4 +- .../{managers => manager}/UpdateManager.java | 8 ++-- .../{managers => manager}/WorldManager.java | 2 +- .../player/nametag/BukkitNameTag.java | 2 +- .../pvpmanager/player/nametag/NameTag.java | 4 +- .../pvpmanager/setting}/Locale.java | 2 +- .../pvpmanager/setting}/LogFile.java | 2 +- .../pvpmanager/setting}/Messages.java | 6 +-- .../pvpmanager/setting}/Settings.java | 5 +- .../pvpmanager/tasks}/CleanKillersTask.java | 4 +- .../pvpmanager/tasks}/NewbieTask.java | 6 +-- .../pvpmanager/tasks}/PvPToggleFeeTask.java | 6 +-- .../pvpmanager/tasks/RegionCheckTask.java | 10 ++-- .../pvpmanager/tasks}/TagTask.java | 6 +-- .../pvpmanager/utils}/ChatUtils.java | 2 +- .../pvpmanager/utils}/CombatUtils.java | 7 ++- .../pvpmanager/utils}/NCDuration.java | 2 +- .../pvpmanager/utils}/PaginatedChatMenu.java | 2 +- .../pvpmanager/utils}/TimeUtil.java | 4 +- .../Listeners/EntityListenerTest.java | 9 ++-- .../Listeners/PlayerListenerTest.java | 7 +-- .../PvPManager/Managers/DependencyTest.java | 1 + 63 files changed, 207 insertions(+), 206 deletions(-) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Commands => chancesd/pvpmanager/command}/Announce.java (82%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Commands => chancesd/pvpmanager/command}/Newbie.java (93%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Commands => chancesd/pvpmanager/command}/PM.java (97%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Commands => chancesd/pvpmanager/command}/PvP.java (94%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Commands => chancesd/pvpmanager/command}/PvPGlobal.java (84%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Commands => chancesd/pvpmanager/command}/PvPInfo.java (92%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Commands => chancesd/pvpmanager/command}/PvPList.java (94%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Commands => chancesd/pvpmanager/command}/PvPOverride.java (84%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Commands => chancesd/pvpmanager/command}/PvPStatus.java (87%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Commands => chancesd/pvpmanager/command}/Tag.java (89%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Commands => chancesd/pvpmanager/command}/Untag.java (83%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Commands => chancesd/pvpmanager/command}/Worlds.java (98%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Events => chancesd/pvpmanager/event}/PlayerCombatLogEvent.java (96%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Events => chancesd/pvpmanager/event}/PlayerTagEvent.java (98%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Events => chancesd/pvpmanager/event}/PlayerTogglePvPEvent.java (97%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Events => chancesd/pvpmanager/event}/PlayerUntagEvent.java (96%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Listeners => chancesd/pvpmanager/listener}/DebugEntityListener.java (97%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Listeners => chancesd/pvpmanager/listener}/EntityListener.java (97%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Listeners => chancesd/pvpmanager/listener}/EntityListener1_9.java (95%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Listeners => chancesd/pvpmanager/listener}/MoveListener.java (92%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Listeners => chancesd/pvpmanager/listener}/MoveListener1_9.java (90%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Listeners => chancesd/pvpmanager/listener}/PlayerListener.java (98%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Listeners => chancesd/pvpmanager/listener}/PlayerListener1_11.java (90%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Listeners => chancesd/pvpmanager/listener}/WGListener.java (89%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Listeners => chancesd/pvpmanager/listener}/WGListenerLegacy.java (89%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Managers => chancesd/pvpmanager/manager}/ConfigManager.java (96%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Managers => chancesd/pvpmanager/manager}/DependencyManager.java (97%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Managers => chancesd/pvpmanager/manager}/DisplayManager.java (94%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Managers => chancesd/pvpmanager/manager}/PlayerHandler.java (96%) rename pvpmanager/src/main/java/me/chancesd/pvpmanager/{managers => manager}/StorageManager.java (98%) rename pvpmanager/src/main/java/me/chancesd/pvpmanager/{managers => manager}/UpdateManager.java (94%) rename pvpmanager/src/main/java/me/chancesd/pvpmanager/{managers => manager}/WorldManager.java (98%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Settings => chancesd/pvpmanager/setting}/Locale.java (97%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Settings => chancesd/pvpmanager/setting}/LogFile.java (96%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Settings => chancesd/pvpmanager/setting}/Messages.java (99%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Settings => chancesd/pvpmanager/setting}/Settings.java (99%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Tasks => chancesd/pvpmanager/tasks}/CleanKillersTask.java (77%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Tasks => chancesd/pvpmanager/tasks}/NewbieTask.java (89%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Tasks => chancesd/pvpmanager/tasks}/PvPToggleFeeTask.java (77%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Tasks => chancesd/pvpmanager/tasks}/TagTask.java (93%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Utils => chancesd/pvpmanager/utils}/ChatUtils.java (98%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Utils => chancesd/pvpmanager/utils}/CombatUtils.java (97%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Utils => chancesd/pvpmanager/utils}/NCDuration.java (97%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Utils => chancesd/pvpmanager/utils}/PaginatedChatMenu.java (98%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Utils => chancesd/pvpmanager/utils}/TimeUtil.java (92%) diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hook.java index de869a3b1..d8003f001 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hook.java @@ -5,7 +5,7 @@ import org.bukkit.plugin.PluginDescriptionFile; import org.jetbrains.annotations.NotNull; -import me.NoChance.PvPManager.Settings.Settings; +import me.chancesd.pvpmanager.setting.Settings; public enum Hook { WORLDGUARD("WorldGuard"), diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java index 43da052d3..d90d83933 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java @@ -2,7 +2,7 @@ import me.NoChance.PvPManager.Dependencies.BaseDependency; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Settings.Settings; +import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.sdutils.utils.Log; import me.ryanhamshire.GriefPrevention.GriefPrevention; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPI.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPI.java index 125a3b1c9..e766a524b 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPI.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPI.java @@ -8,8 +8,8 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.clip.placeholderapi.PlaceholderAPIPlugin; import me.clip.placeholderapi.expansion.PlaceholderExpansion; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java index 84520fd42..43b2c0b07 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java @@ -18,8 +18,8 @@ import me.NoChance.PvPManager.Dependencies.DependencyException; import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; -import me.NoChance.PvPManager.Listeners.WGListenerLegacy; -import me.NoChance.PvPManager.Managers.PlayerHandler; +import me.chancesd.pvpmanager.listener.WGListenerLegacy; +import me.chancesd.pvpmanager.manager.PlayerHandler; public class WorldGuardLegacyHook extends BaseDependency implements WorldGuardDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java index f59e1f2cc..64f75816a 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java @@ -17,11 +17,11 @@ import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; -import me.NoChance.PvPManager.Listeners.WGListener; -import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Player.ProtectionType; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; +import me.chancesd.pvpmanager.listener.WGListener; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; +import me.chancesd.pvpmanager.setting.Settings; public class WorldGuardModernHook extends BaseDependency implements WorldGuardDependency, ForceToggleDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/Dependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/Dependency.java index cd55d1cf1..e881fab39 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/Dependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/Dependency.java @@ -2,8 +2,8 @@ import org.bukkit.plugin.java.JavaPlugin; -import me.NoChance.PvPManager.Settings.Settings; import me.NoChance.PvPManager.Dependencies.Hook; +import me.chancesd.pvpmanager.setting.Settings; public interface Dependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java index 3e253b3d0..341796ba9 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java @@ -9,7 +9,7 @@ import com.sk89q.worldguard.protection.regions.ProtectedRegion; import me.NoChance.PvPManager.Dependencies.GroupDependency; -import me.NoChance.PvPManager.Managers.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerHandler; public interface WorldGuardDependency extends GroupDependency, RegionDependency { 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 617aedb35..8af438e0f 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 @@ -11,7 +11,7 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; -import me.NoChance.PvPManager.Settings.Settings; +import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.sdutils.metrics.Metrics; public class CustomMetrics { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java index caa8eb596..23c34e981 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/BasePlayer.java @@ -3,13 +3,13 @@ import java.util.UUID; import me.chancesd.pvpmanager.setting.Permissions; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.pvpmanager.world.CombatWorld; import me.chancesd.sdutils.utils.MCVersion; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; -import me.NoChance.PvPManager.Utils.CombatUtils; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.TextComponent; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/EcoPlayer.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/EcoPlayer.java index 5bcd6af5b..b7427bda7 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/EcoPlayer.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Player/EcoPlayer.java @@ -2,9 +2,9 @@ import org.bukkit.entity.Player; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.setting.Messages; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.sdutils.utils.Log; import net.milkbowl.vault.economy.Economy; import net.milkbowl.vault.economy.EconomyResponse; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java index bfca14917..a71d63b68 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java @@ -6,30 +6,30 @@ import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; -import me.NoChance.PvPManager.Commands.Announce; -import me.NoChance.PvPManager.Commands.Newbie; -import me.NoChance.PvPManager.Commands.PM; -import me.NoChance.PvPManager.Commands.PvP; -import me.NoChance.PvPManager.Commands.PvPGlobal; -import me.NoChance.PvPManager.Commands.PvPInfo; -import me.NoChance.PvPManager.Commands.PvPList; -import me.NoChance.PvPManager.Commands.PvPOverride; -import me.NoChance.PvPManager.Commands.PvPStatus; -import me.NoChance.PvPManager.Commands.Tag; -import me.NoChance.PvPManager.Commands.Untag; import me.NoChance.PvPManager.Libraries.Metrics.CustomMetrics; -import me.NoChance.PvPManager.Listeners.EntityListener; -import me.NoChance.PvPManager.Listeners.EntityListener1_9; -import me.NoChance.PvPManager.Listeners.PlayerListener; -import me.NoChance.PvPManager.Listeners.PlayerListener1_11; -import me.NoChance.PvPManager.Managers.ConfigManager; -import me.NoChance.PvPManager.Managers.DependencyManager; -import me.NoChance.PvPManager.Managers.DisplayManager; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; -import me.chancesd.pvpmanager.managers.StorageManager; -import me.chancesd.pvpmanager.managers.UpdateManager; -import me.chancesd.pvpmanager.managers.WorldManager; +import me.chancesd.pvpmanager.command.Announce; +import me.chancesd.pvpmanager.command.Newbie; +import me.chancesd.pvpmanager.command.PM; +import me.chancesd.pvpmanager.command.PvP; +import me.chancesd.pvpmanager.command.PvPGlobal; +import me.chancesd.pvpmanager.command.PvPInfo; +import me.chancesd.pvpmanager.command.PvPList; +import me.chancesd.pvpmanager.command.PvPOverride; +import me.chancesd.pvpmanager.command.PvPStatus; +import me.chancesd.pvpmanager.command.Tag; +import me.chancesd.pvpmanager.command.Untag; +import me.chancesd.pvpmanager.listener.EntityListener; +import me.chancesd.pvpmanager.listener.EntityListener1_9; +import me.chancesd.pvpmanager.listener.PlayerListener; +import me.chancesd.pvpmanager.listener.PlayerListener1_11; +import me.chancesd.pvpmanager.manager.ConfigManager; +import me.chancesd.pvpmanager.manager.DependencyManager; +import me.chancesd.pvpmanager.manager.DisplayManager; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.StorageManager; +import me.chancesd.pvpmanager.manager.UpdateManager; +import me.chancesd.pvpmanager.manager.WorldManager; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.utils.ScheduleUtils; import me.chancesd.sdutils.library.PluginLibraries; import me.chancesd.sdutils.utils.Log; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java index 9d2b03a8f..c3fa542bd 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java +++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java @@ -17,19 +17,19 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; -import me.NoChance.PvPManager.Events.PlayerTagEvent; -import me.NoChance.PvPManager.Events.PlayerTogglePvPEvent; -import me.NoChance.PvPManager.Events.PlayerUntagEvent; import me.NoChance.PvPManager.Libraries.rollbar.PMRUncaughExceptionHandler; import me.NoChance.PvPManager.Player.EcoPlayer; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Tasks.NewbieTask; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.event.PlayerTagEvent; +import me.chancesd.pvpmanager.event.PlayerTogglePvPEvent; +import me.chancesd.pvpmanager.event.PlayerUntagEvent; import me.chancesd.pvpmanager.player.nametag.BukkitNameTag; import me.chancesd.pvpmanager.player.nametag.NameTag; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; +import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.pvpmanager.storage.fields.UserDataFields; +import me.chancesd.pvpmanager.tasks.NewbieTask; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; import me.chancesd.pvpmanager.world.CombatWorld; import me.chancesd.sdutils.utils.Log; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Announce.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Announce.java similarity index 82% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Announce.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Announce.java index e9ae58161..2f57c0cd2 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Announce.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Announce.java @@ -1,11 +1,11 @@ -package me.NoChance.PvPManager.Commands; +package me.chancesd.pvpmanager.command; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; -import me.NoChance.PvPManager.Utils.ChatUtils; +import me.chancesd.pvpmanager.utils.ChatUtils; public class Announce implements CommandExecutor { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Newbie.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Newbie.java similarity index 93% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Newbie.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Newbie.java index 6a7d1e847..e3a85c8ea 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Newbie.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Newbie.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Commands; +package me.chancesd.pvpmanager.command; import java.util.Collections; import java.util.List; @@ -13,12 +13,12 @@ import com.google.common.collect.Lists; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.PlayerHandler; -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.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.ChatUtils; +import me.chancesd.pvpmanager.utils.CombatUtils; public class Newbie implements TabExecutor { private final PlayerHandler ph; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PM.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PM.java similarity index 97% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PM.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PM.java index f526f4eb4..9e5cbf070 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PM.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PM.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Commands; +package me.chancesd.pvpmanager.command; import java.util.ArrayList; import java.util.Arrays; @@ -23,16 +23,16 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Listeners.DebugEntityListener; -import me.NoChance.PvPManager.Settings.Locale; -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.sdutils.utils.Log; +import me.chancesd.pvpmanager.listener.DebugEntityListener; +import me.chancesd.pvpmanager.setting.Locale; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; +import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.pvpmanager.storage.DatabaseConfigBuilder.DatabaseType; import me.chancesd.pvpmanager.storage.fields.UserDataFields; +import me.chancesd.pvpmanager.utils.ChatUtils; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; public class PM implements TabExecutor { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvP.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvP.java similarity index 94% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvP.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvP.java index 6176bbc04..e64457d99 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvP.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvP.java @@ -1,11 +1,15 @@ -package me.NoChance.PvPManager.Commands; +package me.chancesd.pvpmanager.command; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; +import me.chancesd.pvpmanager.utils.ChatUtils; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.pvpmanager.world.CombatWorld; import org.bukkit.Bukkit; import org.bukkit.command.Command; @@ -16,10 +20,6 @@ import com.google.common.collect.Lists; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Utils.ChatUtils; -import me.NoChance.PvPManager.Utils.CombatUtils; public class PvP implements TabExecutor { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPGlobal.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPGlobal.java similarity index 84% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPGlobal.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPGlobal.java index 08435f75f..d53b113a3 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPGlobal.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPGlobal.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Commands; +package me.chancesd.pvpmanager.command; import java.util.Collections; import java.util.List; @@ -10,9 +10,9 @@ import com.google.common.collect.Lists; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.ChatUtils; +import me.chancesd.pvpmanager.setting.Messages; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.ChatUtils; public class PvPGlobal implements TabExecutor { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPInfo.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPInfo.java similarity index 92% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPInfo.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPInfo.java index 9bf4a8ee9..5f86a3983 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPInfo.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPInfo.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Commands; +package me.chancesd.pvpmanager.command; import java.util.ArrayList; import java.util.List; @@ -12,11 +12,11 @@ import org.jetbrains.annotations.NotNull; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Utils.ChatUtils; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; +import me.chancesd.pvpmanager.utils.ChatUtils; +import me.chancesd.pvpmanager.utils.CombatUtils; public class PvPInfo implements CommandExecutor { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPList.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPList.java similarity index 94% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPList.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPList.java index b2d886aa7..f1f35a20b 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPList.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPList.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Commands; +package me.chancesd.pvpmanager.command; import java.util.Collections; import java.util.List; @@ -12,11 +12,11 @@ import com.google.common.collect.Lists; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Utils.ChatUtils; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.storage.Storage; import me.chancesd.pvpmanager.storage.fields.UserDataFields; +import me.chancesd.pvpmanager.utils.ChatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; public class PvPList implements TabExecutor { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPOverride.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPOverride.java similarity index 84% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPOverride.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPOverride.java index d61023118..de47e0394 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPOverride.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPOverride.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Commands; +package me.chancesd.pvpmanager.command; import org.bukkit.ChatColor; import org.bukkit.command.Command; @@ -7,8 +7,8 @@ import org.bukkit.entity.Player; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; public class PvPOverride implements CommandExecutor { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPStatus.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPStatus.java similarity index 87% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPStatus.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPStatus.java index 2265a8ea8..56422114f 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/PvPStatus.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPStatus.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Commands; +package me.chancesd.pvpmanager.command; import org.bukkit.Bukkit; import org.bukkit.command.Command; @@ -7,9 +7,9 @@ import org.bukkit.entity.Player; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; +import me.chancesd.pvpmanager.utils.CombatUtils; public class PvPStatus implements CommandExecutor { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Tag.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Tag.java similarity index 89% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Tag.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Tag.java index 344b1245a..2910d6c79 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Tag.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Tag.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Commands; +package me.chancesd.pvpmanager.command; import org.bukkit.Bukkit; import org.bukkit.command.Command; @@ -7,11 +7,11 @@ import org.bukkit.entity.Player; import me.NoChance.PvPManager.PvPlayer; -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.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.CombatUtils; public class Tag implements CommandExecutor { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Untag.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Untag.java similarity index 83% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Untag.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Untag.java index 9f3d10caf..bfce4dde7 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Untag.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Untag.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Commands; +package me.chancesd.pvpmanager.command; import org.bukkit.Bukkit; import org.bukkit.command.Command; @@ -6,9 +6,9 @@ import org.bukkit.command.CommandSender; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; +import me.chancesd.pvpmanager.utils.CombatUtils; public class Untag implements CommandExecutor { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Worlds.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Worlds.java similarity index 98% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Worlds.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Worlds.java index bd467837c..d36650410 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Commands/Worlds.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Worlds.java @@ -1,9 +1,9 @@ -package me.NoChance.PvPManager.Commands; +package me.chancesd.pvpmanager.command; import com.google.common.base.Strings; import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Settings.Messages; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.world.CombatWorld; import me.chancesd.pvpmanager.world.CombatWorld.WorldOptionState; import net.md_5.bungee.api.ChatColor; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Events/PlayerCombatLogEvent.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerCombatLogEvent.java similarity index 96% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Events/PlayerCombatLogEvent.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerCombatLogEvent.java index 0652275f1..fb998bbad 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Events/PlayerCombatLogEvent.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerCombatLogEvent.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Events; +package me.chancesd.pvpmanager.event; import org.bukkit.entity.Player; import org.bukkit.event.Event; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Events/PlayerTagEvent.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTagEvent.java similarity index 98% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Events/PlayerTagEvent.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTagEvent.java index 4d31e0186..d3dc74c13 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Events/PlayerTagEvent.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTagEvent.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Events; +package me.chancesd.pvpmanager.event; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Events/PlayerTogglePvPEvent.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTogglePvPEvent.java similarity index 97% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Events/PlayerTogglePvPEvent.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTogglePvPEvent.java index c94b1ff72..7c24c7a80 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Events/PlayerTogglePvPEvent.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTogglePvPEvent.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Events; +package me.chancesd.pvpmanager.event; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Events/PlayerUntagEvent.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerUntagEvent.java similarity index 96% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Events/PlayerUntagEvent.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerUntagEvent.java index 2e8611459..43c9d732c 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Events/PlayerUntagEvent.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerUntagEvent.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Events; +package me.chancesd.pvpmanager.event; import org.bukkit.entity.Player; import org.bukkit.event.Event; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/DebugEntityListener.java similarity index 97% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/DebugEntityListener.java index 7ed461965..bc20bcce9 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/DebugEntityListener.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/DebugEntityListener.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Listeners; +package me.chancesd.pvpmanager.listener; import java.util.concurrent.TimeUnit; @@ -25,12 +25,12 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; -import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Player.ProtectionType; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.manager.PlayerHandler; import me.chancesd.pvpmanager.setting.Permissions; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.sdutils.utils.Log; import me.chancesd.sdutils.utils.MCVersion; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener.java similarity index 97% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener.java index a38d4e06d..1c3e3e072 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Listeners; +package me.chancesd.pvpmanager.listener; import java.util.concurrent.TimeUnit; @@ -36,13 +36,13 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; -import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Player.ProtectionType; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.sdutils.utils.MCVersion; public class EntityListener implements Listener { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener1_9.java similarity index 95% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener1_9.java index ef21680fb..d6987063c 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener1_9.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Listeners; +package me.chancesd.pvpmanager.listener; import java.util.ArrayList; import java.util.HashSet; @@ -26,11 +26,11 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Player.ProtectionResult; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; public class EntityListener1_9 implements Listener { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener.java similarity index 92% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener.java index 11b9cdd4a..00a28a1ba 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Listeners; +package me.chancesd.pvpmanager.listener; import java.util.UUID; import java.util.concurrent.TimeUnit; @@ -15,8 +15,8 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.RegionDependency; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; public class MoveListener implements Listener { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener1_9.java similarity index 90% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener1_9.java index 25c5e0d43..9760b8002 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/MoveListener1_9.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener1_9.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Listeners; +package me.chancesd.pvpmanager.listener; import java.util.UUID; import java.util.concurrent.TimeUnit; @@ -17,11 +17,11 @@ import com.google.common.cache.CacheBuilder; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.DependencyManager; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.manager.DependencyManager; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.tasks.RegionCheckTask; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; public class MoveListener1_9 implements Listener { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener.java similarity index 98% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener.java index 06c1a7003..6f17434ca 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Listeners; +package me.chancesd.pvpmanager.listener; import me.chancesd.pvpmanager.world.CombatWorld; import me.chancesd.sdutils.utils.Log; @@ -42,12 +42,12 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; -import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Player.ProtectionResult; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; @SuppressWarnings("deprecation") diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener1_11.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener1_11.java similarity index 90% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener1_11.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener1_11.java index 79a5bcdc2..dc4fda26b 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/PlayerListener1_11.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener1_11.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Listeners; +package me.chancesd.pvpmanager.listener; import org.bukkit.Material; import org.bukkit.entity.EntityType; @@ -12,9 +12,9 @@ import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; +import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.pvpmanager.utils.ScheduleUtils; public class PlayerListener1_11 implements Listener { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListener.java similarity index 89% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListener.java index ee37fb3b7..7c077e7e8 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListener.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListener.java @@ -1,12 +1,12 @@ -package me.NoChance.PvPManager.Listeners; +package me.chancesd.pvpmanager.listener; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import com.sk89q.worldguard.bukkit.protection.events.DisallowedPVPEvent; -import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Player.ProtectionType; +import me.chancesd.pvpmanager.manager.PlayerHandler; import me.chancesd.sdutils.utils.Log; public class WGListener implements Listener { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListenerLegacy.java similarity index 89% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListenerLegacy.java index a3e2b7fe8..bf82202a2 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/WGListenerLegacy.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListenerLegacy.java @@ -1,12 +1,12 @@ -package me.NoChance.PvPManager.Listeners; +package me.chancesd.pvpmanager.listener; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import com.sk89q.worldguard.protection.events.DisallowedPVPEvent; -import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Player.ProtectionType; +import me.chancesd.pvpmanager.manager.PlayerHandler; import me.chancesd.sdutils.utils.Log; public class WGListenerLegacy implements Listener { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/ConfigManager.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/ConfigManager.java similarity index 96% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/ConfigManager.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/ConfigManager.java index 246814249..adbdf2c0b 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/ConfigManager.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/ConfigManager.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Managers; +package me.chancesd.pvpmanager.manager; import java.io.File; import java.io.FileInputStream; @@ -17,9 +17,9 @@ import org.bukkit.configuration.file.YamlConfiguration; import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.Settings.LogFile; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; +import me.chancesd.pvpmanager.setting.LogFile; +import me.chancesd.pvpmanager.setting.Messages; +import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.sdutils.config.ConfigUpdater; import me.chancesd.sdutils.utils.Log; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DependencyManager.java similarity index 97% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DependencyManager.java index 0a382d26d..6dbe6aa6c 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DependencyManager.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Managers; +package me.chancesd.pvpmanager.manager; import java.util.ArrayList; import java.util.Arrays; @@ -33,11 +33,11 @@ import me.NoChance.PvPManager.Dependencies.Interfaces.GodDependency; import me.NoChance.PvPManager.Dependencies.Interfaces.RegionDependency; import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; -import me.NoChance.PvPManager.Listeners.MoveListener; -import me.NoChance.PvPManager.Listeners.MoveListener1_9; import me.NoChance.PvPManager.Player.ProtectionType; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.listener.MoveListener; +import me.chancesd.pvpmanager.listener.MoveListener1_9; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; import me.chancesd.sdutils.utils.Log; import me.chancesd.sdutils.utils.MCVersion; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DisplayManager.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DisplayManager.java similarity index 94% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DisplayManager.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DisplayManager.java index b0f8f2fbb..9e0e0ddcf 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DisplayManager.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DisplayManager.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Managers; +package me.chancesd.pvpmanager.manager; import java.util.HashMap; import java.util.Map; @@ -11,8 +11,8 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Player.display.ProgressBar; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.ChatUtils; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.ChatUtils; import me.chancesd.sdutils.utils.Log; public class DisplayManager { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/PlayerHandler.java similarity index 96% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/PlayerHandler.java index bfe5fff02..c436c4cf3 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/PlayerHandler.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Managers; +package me.chancesd.pvpmanager.manager; import java.util.HashMap; import java.util.HashSet; @@ -19,15 +19,15 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Events.PlayerCombatLogEvent; import me.NoChance.PvPManager.Player.ProtectionResult; import me.NoChance.PvPManager.Player.ProtectionType; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Tasks.CleanKillersTask; -import me.NoChance.PvPManager.Tasks.PvPToggleFeeTask; -import me.NoChance.PvPManager.Tasks.TagTask; -import me.NoChance.PvPManager.Utils.CombatUtils; import me.chancesd.sdutils.utils.Log; +import me.chancesd.pvpmanager.event.PlayerCombatLogEvent; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.tasks.CleanKillersTask; +import me.chancesd.pvpmanager.tasks.PvPToggleFeeTask; +import me.chancesd.pvpmanager.tasks.TagTask; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; /** diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/StorageManager.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/StorageManager.java similarity index 98% rename from pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/StorageManager.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/StorageManager.java index b02cce6fa..39d05992f 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/StorageManager.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/StorageManager.java @@ -1,4 +1,4 @@ -package me.chancesd.pvpmanager.managers; +package me.chancesd.pvpmanager.manager; import java.io.File; import java.io.IOException; @@ -23,13 +23,13 @@ import org.jetbrains.annotations.NotNull; import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.Utils.ChatUtils; import me.chancesd.sdutils.utils.Log; import me.chancesd.pvpmanager.storage.DatabaseConfigBuilder.DatabaseType; import me.chancesd.pvpmanager.storage.SQLStorage; import me.chancesd.pvpmanager.storage.Storage; import me.chancesd.pvpmanager.storage.fields.UserDataFields; import me.chancesd.pvpmanager.tasks.StorageSaveTask; +import me.chancesd.pvpmanager.utils.ChatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; import net.md_5.bungee.api.ChatColor; diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/UpdateManager.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/UpdateManager.java similarity index 94% rename from pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/UpdateManager.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/UpdateManager.java index 20bf091ac..fa0494657 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/UpdateManager.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/UpdateManager.java @@ -1,13 +1,13 @@ -package me.chancesd.pvpmanager.managers; +package me.chancesd.pvpmanager.manager; import java.util.concurrent.TimeUnit; import org.bukkit.Bukkit; import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; import me.chancesd.sdutils.updater.BukkitUpdater; import me.chancesd.sdutils.updater.SpigotUpdater; diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/WorldManager.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/WorldManager.java similarity index 98% rename from pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/WorldManager.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/WorldManager.java index 7fc969a37..dcb6456ef 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/managers/WorldManager.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/WorldManager.java @@ -1,4 +1,4 @@ -package me.chancesd.pvpmanager.managers; +package me.chancesd.pvpmanager.manager; import java.util.Collection; import java.util.HashMap; 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 ea3946195..f61e583e4 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 @@ -11,7 +11,7 @@ import org.bukkit.scoreboard.Team; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Settings.Settings; +import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.sdutils.utils.Log; import me.chancesd.sdutils.utils.MCVersion; diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/player/nametag/NameTag.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/player/nametag/NameTag.java index d63e15941..b2d78a349 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/player/nametag/NameTag.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/player/nametag/NameTag.java @@ -1,8 +1,8 @@ package me.chancesd.pvpmanager.player.nametag; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.ChatUtils; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.ChatUtils; public abstract class NameTag { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Locale.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/Locale.java similarity index 97% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Locale.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/Locale.java index 2f65bf812..2f136b420 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Locale.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/Locale.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Settings; +package me.chancesd.pvpmanager.setting; import java.util.Arrays; import java.util.List; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/LogFile.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/LogFile.java similarity index 96% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/LogFile.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/LogFile.java index 350898ab7..f52e3554c 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/LogFile.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/LogFile.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Settings; +package me.chancesd.pvpmanager.setting; import java.io.BufferedWriter; import java.io.File; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/Messages.java similarity index 99% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/Messages.java index 99e40126e..a9f7f7855 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Messages.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/Messages.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Settings; +package me.chancesd.pvpmanager.setting; import java.io.File; import java.io.FileInputStream; @@ -22,8 +22,8 @@ import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; import me.NoChance.PvPManager.Player.ProtectionResult; -import me.NoChance.PvPManager.Utils.ChatUtils; -import me.NoChance.PvPManager.Utils.TimeUtil; +import me.chancesd.pvpmanager.utils.ChatUtils; +import me.chancesd.pvpmanager.utils.TimeUtil; import me.chancesd.sdutils.utils.Log; public class Messages { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/Settings.java similarity index 99% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/Settings.java index b1404c5d5..64f3cad05 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Settings/Settings.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/Settings.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Settings; +package me.chancesd.pvpmanager.setting; import java.util.EnumMap; import java.util.HashSet; @@ -16,8 +16,7 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; - -import me.NoChance.PvPManager.Utils.ChatUtils; +import me.chancesd.pvpmanager.utils.ChatUtils; import me.chancesd.sdutils.utils.Log; import me.chancesd.sdutils.utils.MCVersion; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/CleanKillersTask.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/CleanKillersTask.java similarity index 77% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/CleanKillersTask.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/CleanKillersTask.java index ea1d8d0de..92adcea54 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/CleanKillersTask.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/CleanKillersTask.java @@ -1,7 +1,7 @@ -package me.NoChance.PvPManager.Tasks; +package me.chancesd.pvpmanager.tasks; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerHandler; public class CleanKillersTask implements Runnable { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/NewbieTask.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/NewbieTask.java similarity index 89% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/NewbieTask.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/NewbieTask.java index e4781c74c..3741c7ae1 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/NewbieTask.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/NewbieTask.java @@ -1,11 +1,11 @@ -package me.NoChance.PvPManager.Tasks; +package me.chancesd.pvpmanager.tasks; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; +import me.chancesd.pvpmanager.setting.Messages; +import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.pvpmanager.utils.ScheduleUtils; public class NewbieTask implements Runnable { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/PvPToggleFeeTask.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/PvPToggleFeeTask.java similarity index 77% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/PvPToggleFeeTask.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/PvPToggleFeeTask.java index d3da25cf4..ac5cd0924 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/PvPToggleFeeTask.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/PvPToggleFeeTask.java @@ -1,8 +1,8 @@ -package me.NoChance.PvPManager.Tasks; +package me.chancesd.pvpmanager.tasks; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; public class PvPToggleFeeTask implements Runnable { diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/RegionCheckTask.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/RegionCheckTask.java index 3b91d97ee..cf60b734c 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/RegionCheckTask.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/RegionCheckTask.java @@ -9,11 +9,11 @@ import org.bukkit.event.Listener; import org.bukkit.scheduler.BukkitRunnable; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Events.PlayerTagEvent; -import me.NoChance.PvPManager.Events.PlayerUntagEvent; -import me.NoChance.PvPManager.Managers.DependencyManager; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; +import me.chancesd.pvpmanager.event.PlayerTagEvent; +import me.chancesd.pvpmanager.event.PlayerUntagEvent; +import me.chancesd.pvpmanager.manager.DependencyManager; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; public class RegionCheckTask extends BukkitRunnable implements Listener { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/TagTask.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/TagTask.java similarity index 93% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/TagTask.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/TagTask.java index 2ed83e55a..9dec1cb5e 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Tasks/TagTask.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/tasks/TagTask.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Tasks; +package me.chancesd.pvpmanager.tasks; import java.util.Iterator; import java.util.Set; @@ -7,8 +7,8 @@ import java.util.concurrent.ConcurrentHashMap; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.DisplayManager; -import me.NoChance.PvPManager.Settings.Settings; +import me.chancesd.pvpmanager.manager.DisplayManager; +import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.sdutils.utils.Log; public class TagTask extends TimerTask { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/ChatUtils.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/ChatUtils.java similarity index 98% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/ChatUtils.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/ChatUtils.java index 6f2d0b99d..79f80d4a4 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/ChatUtils.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/ChatUtils.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Utils; +package me.chancesd.pvpmanager.utils; import java.util.List; import java.util.regex.Matcher; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/CombatUtils.java similarity index 97% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/CombatUtils.java index 0639b3a55..0d1f4d41a 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/CombatUtils.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Utils; +package me.chancesd.pvpmanager.utils; import java.lang.reflect.InvocationTargetException; import java.text.DecimalFormat; @@ -27,9 +27,8 @@ import org.bukkit.projectiles.ProjectileSource; import org.jetbrains.annotations.NotNull; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; -import me.chancesd.pvpmanager.utils.ScheduleUtils; +import me.chancesd.pvpmanager.setting.Messages; +import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.sdutils.utils.Log; import me.chancesd.sdutils.utils.MCVersion; import me.chancesd.sdutils.utils.ReflectionUtil; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/NCDuration.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/NCDuration.java similarity index 97% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/NCDuration.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/NCDuration.java index c858ae335..9bf337104 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/NCDuration.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/NCDuration.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Utils; +package me.chancesd.pvpmanager.utils; import java.time.Duration; import java.time.temporal.ChronoUnit; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/PaginatedChatMenu.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/PaginatedChatMenu.java similarity index 98% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/PaginatedChatMenu.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/PaginatedChatMenu.java index 976917fee..68589d020 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/PaginatedChatMenu.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/PaginatedChatMenu.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Utils; +package me.chancesd.pvpmanager.utils; import org.bukkit.entity.Player; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/TimeUtil.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/TimeUtil.java similarity index 92% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/TimeUtil.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/TimeUtil.java index 469b99bfc..1432128c0 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/TimeUtil.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/utils/TimeUtil.java @@ -1,9 +1,9 @@ -package me.NoChance.PvPManager.Utils; +package me.chancesd.pvpmanager.utils; import java.time.Instant; import java.time.temporal.ChronoUnit; -import me.NoChance.PvPManager.Settings.Messages; +import me.chancesd.pvpmanager.setting.Messages; public final class TimeUtil { diff --git a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java index 33a1818c7..3b6e8f8e7 100644 --- a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java +++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java @@ -25,11 +25,12 @@ import me.NoChance.PvPManager.InstanceCreator; import me.NoChance.PvPManager.PluginTest; import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.Managers.PlayerHandler; import me.NoChance.PvPManager.Player.ProtectionType; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; -import me.NoChance.PvPManager.Utils.CombatUtils; +import me.chancesd.pvpmanager.listener.EntityListener; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; +import me.chancesd.pvpmanager.setting.Settings; +import me.chancesd.pvpmanager.utils.CombatUtils; @ExtendWith(InstanceCreator.class) public class EntityListenerTest { 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 ba59cd035..39b71eada 100644 --- a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/PlayerListenerTest.java +++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/PlayerListenerTest.java @@ -24,9 +24,10 @@ import me.NoChance.PvPManager.PluginTest; import me.NoChance.PvPManager.PvPManager; import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Managers.PlayerHandler; -import me.NoChance.PvPManager.Settings.Messages; -import me.NoChance.PvPManager.Settings.Settings; +import me.chancesd.pvpmanager.listener.PlayerListener; +import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.setting.Messages; +import me.chancesd.pvpmanager.setting.Settings; @ExtendWith(InstanceCreator.class) public class PlayerListenerTest { diff --git a/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java b/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java index f97ae0331..b61184afd 100644 --- a/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java +++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/Managers/DependencyTest.java @@ -18,6 +18,7 @@ import me.NoChance.PvPManager.InstanceCreator; import me.NoChance.PvPManager.PluginTest; +import me.chancesd.pvpmanager.manager.DependencyManager; import me.chancesd.sdutils.utils.Utils; @ExtendWith(InstanceCreator.class) From 2d965f0b9f73d5e741529a95db8389611baae7a8 Mon Sep 17 00:00:00 2001 From: ChanceSD <5256215+ChanceSD@users.noreply.github.com> Date: Tue, 30 Apr 2024 17:18:46 +0100 Subject: [PATCH 09/16] Finally discard old package --- pom.xml | 11 +-- pvpmanager/pom.xml | 1 - .../pvpmanager}/PvPManager.java | 12 +-- .../chancesd/pvpmanager/command/Newbie.java | 18 ++--- .../me/chancesd/pvpmanager/command/PM.java | 10 +-- .../me/chancesd/pvpmanager/command/PvP.java | 17 ++--- .../chancesd/pvpmanager/command/PvPInfo.java | 12 +-- .../chancesd/pvpmanager/command/PvPList.java | 10 +-- .../pvpmanager/command/PvPOverride.java | 10 +-- .../pvpmanager/command/PvPStatus.java | 12 +-- .../me/chancesd/pvpmanager/command/Tag.java | 12 +-- .../me/chancesd/pvpmanager/command/Untag.java | 10 +-- .../chancesd/pvpmanager/command/Worlds.java | 11 +-- .../event/PlayerCombatLogEvent.java | 8 +- .../pvpmanager/event/PlayerTagEvent.java | 10 +-- .../event/PlayerTogglePvPEvent.java | 8 +- .../pvpmanager/event/PlayerUntagEvent.java | 8 +- .../integration}/AFKDependency.java | 4 +- .../integration}/BaseDependency.java | 4 +- .../integration}/DependencyException.java | 2 +- .../integration}/ForceToggleDependency.java | 6 +- .../integration}/GroupDependency.java | 4 +- .../pvpmanager/integration}/Hook.java | 2 +- .../integration/hook}/EssentialsHook.java | 10 +-- .../hook}/GriefPreventionHook.java | 6 +- .../integration/hook}/LibsDisguisesHook.java | 8 +- .../integration/hook}/PlaceHolderAPI.java | 12 +-- .../integration/hook}/PlaceHolderAPIHook.java | 10 +-- .../integration/hook}/SimpleClansHook.java | 14 ++-- .../integration/hook}/TownyHook.java | 10 +-- .../integration/hook}/VaultHook.java | 8 +- .../hook}/WorldGuardLegacyHook.java | 14 ++-- .../hook}/WorldGuardModernHook.java | 26 +++---- .../integration/type}/Dependency.java | 4 +- .../integration/type}/DisguiseDependency.java | 2 +- .../integration/type}/GodDependency.java | 2 +- .../integration/type}/RegionDependency.java | 2 +- .../type}/WorldGuardDependency.java | 8 +- .../library/metrics}/CustomMetrics.java | 8 +- .../rollbar/PMRUncaughExceptionHandler.java | 2 +- .../listener/DebugEntityListener.java | 22 +++--- .../pvpmanager/listener/EntityListener.java | 28 +++---- .../listener/EntityListener1_9.java | 8 +- .../pvpmanager/listener/MoveListener.java | 14 ++-- .../pvpmanager/listener/MoveListener1_9.java | 10 +-- .../pvpmanager/listener/PlayerListener.java | 48 ++++++------ .../listener/PlayerListener1_11.java | 14 ++-- .../pvpmanager/listener/WGListener.java | 8 +- .../pvpmanager/listener/WGListenerLegacy.java | 8 +- .../pvpmanager/manager/ConfigManager.java | 2 +- .../pvpmanager/manager/DependencyManager.java | 44 +++++------ .../pvpmanager/manager/DisplayManager.java | 18 ++--- ...{PlayerHandler.java => PlayerManager.java} | 53 ++++++------- .../pvpmanager/manager/StorageManager.java | 2 +- .../pvpmanager/manager/UpdateManager.java | 3 +- .../pvpmanager/manager/WorldManager.java | 2 +- .../pvpmanager/player}/BasePlayer.java | 2 +- .../pvpmanager/player/CombatPlayer.java} | 76 +++++++++++-------- .../pvpmanager/player}/EcoPlayer.java | 2 +- .../pvpmanager/player}/ProtectionResult.java | 2 +- .../pvpmanager/player}/ProtectionType.java | 2 +- .../player}/display/ProgressBar.java | 2 +- .../player/nametag/BukkitNameTag.java | 4 +- .../pvpmanager/player/nametag/NameTag.java | 6 +- .../chancesd/pvpmanager/setting/Messages.java | 10 +-- .../pvpmanager/storage/SQLStorage.java | 2 +- .../chancesd/pvpmanager/storage/Storage.java | 10 +-- .../pvpmanager/tasks/CleanKillersTask.java | 10 +-- .../chancesd/pvpmanager/tasks/NewbieTask.java | 6 +- .../pvpmanager/tasks/PvPToggleFeeTask.java | 10 +-- .../pvpmanager/tasks/RegionCheckTask.java | 13 ++-- .../pvpmanager/tasks/StorageSaveTask.java | 6 +- .../me/chancesd/pvpmanager/tasks/TagTask.java | 16 ++-- .../chancesd/pvpmanager/utils/ChatUtils.java | 2 +- .../pvpmanager/utils/ScheduleUtils.java | 2 +- .../Listeners/EntityListenerTest.java | 8 +- .../Listeners/PlayerListenerTest.java | 26 +++---- .../me/NoChance/PvPManager/PluginTest.java | 2 + .../me/NoChance/PvPManager/UpdaterTest.java | 1 + 79 files changed, 431 insertions(+), 421 deletions(-) rename pvpmanager/src/main/java/me/{NoChance/PvPManager => chancesd/pvpmanager}/PvPManager.java (95%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies => chancesd/pvpmanager/integration}/AFKDependency.java (67%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies => chancesd/pvpmanager/integration}/BaseDependency.java (84%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies => chancesd/pvpmanager/integration}/DependencyException.java (90%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies => chancesd/pvpmanager/integration}/ForceToggleDependency.java (67%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies => chancesd/pvpmanager/integration}/GroupDependency.java (73%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies => chancesd/pvpmanager/integration}/Hook.java (97%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Hooks => chancesd/pvpmanager/integration/hook}/EssentialsHook.java (72%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Hooks => chancesd/pvpmanager/integration/hook}/GriefPreventionHook.java (88%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Hooks => chancesd/pvpmanager/integration/hook}/LibsDisguisesHook.java (70%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Hooks => chancesd/pvpmanager/integration/hook}/PlaceHolderAPI.java (91%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Hooks => chancesd/pvpmanager/integration/hook}/PlaceHolderAPIHook.java (64%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Hooks => chancesd/pvpmanager/integration/hook}/SimpleClansHook.java (78%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Hooks => chancesd/pvpmanager/integration/hook}/TownyHook.java (84%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Hooks => chancesd/pvpmanager/integration/hook}/VaultHook.java (78%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Hooks => chancesd/pvpmanager/integration/hook}/WorldGuardLegacyHook.java (85%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Hooks => chancesd/pvpmanager/integration/hook}/WorldGuardModernHook.java (80%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Interfaces => chancesd/pvpmanager/integration/type}/Dependency.java (81%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Interfaces => chancesd/pvpmanager/integration/type}/DisguiseDependency.java (76%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Interfaces => chancesd/pvpmanager/integration/type}/GodDependency.java (79%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Interfaces => chancesd/pvpmanager/integration/type}/RegionDependency.java (84%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Dependencies/Interfaces => chancesd/pvpmanager/integration/type}/WorldGuardDependency.java (73%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Libraries/Metrics => chancesd/pvpmanager/library/metrics}/CustomMetrics.java (96%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Libraries => chancesd/pvpmanager/library}/rollbar/PMRUncaughExceptionHandler.java (85%) rename pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/{PlayerHandler.java => PlayerManager.java} (83%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Player => chancesd/pvpmanager/player}/BasePlayer.java (98%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/PvPlayer.java => chancesd/pvpmanager/player/CombatPlayer.java} (86%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Player => chancesd/pvpmanager/player}/EcoPlayer.java (98%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Player => chancesd/pvpmanager/player}/ProtectionResult.java (87%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Player => chancesd/pvpmanager/player}/ProtectionType.java (88%) rename pvpmanager/src/main/java/me/{NoChance/PvPManager/Player => chancesd/pvpmanager/player}/display/ProgressBar.java (97%) diff --git a/pom.xml b/pom.xml index fb47054b5..5f596f3b2 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ UTF-8 chancesd https://sonarcloud.io - 3.18.13 + 4.0-SNAPSHOT @@ -51,10 +51,6 @@ true true true - - com.massivecraft:FactionsUUID - com.massivecraft:MassiveCore -
post-clean @@ -75,9 +71,8 @@ maven-compiler-plugin 3.13.0 - 16 - 16 - true + 17 + 17 true true diff --git a/pvpmanager/pom.xml b/pvpmanager/pom.xml index 9a921876f..9c588ec1c 100644 --- a/pvpmanager/pom.xml +++ b/pvpmanager/pom.xml @@ -8,7 +8,6 @@ ${revision} - me.NoChance.PvPManager pvpmanager jar diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/PvPManager.java similarity index 95% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/PvPManager.java index a71d63b68..aa45adc46 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/PvPManager.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/PvPManager.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager; +package me.chancesd.pvpmanager; import org.bukkit.ChatColor; import org.bukkit.command.CommandExecutor; @@ -6,7 +6,6 @@ import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; -import me.NoChance.PvPManager.Libraries.Metrics.CustomMetrics; import me.chancesd.pvpmanager.command.Announce; import me.chancesd.pvpmanager.command.Newbie; import me.chancesd.pvpmanager.command.PM; @@ -18,6 +17,7 @@ import me.chancesd.pvpmanager.command.PvPStatus; import me.chancesd.pvpmanager.command.Tag; import me.chancesd.pvpmanager.command.Untag; +import me.chancesd.pvpmanager.library.metrics.CustomMetrics; import me.chancesd.pvpmanager.listener.EntityListener; import me.chancesd.pvpmanager.listener.EntityListener1_9; import me.chancesd.pvpmanager.listener.PlayerListener; @@ -25,7 +25,7 @@ import me.chancesd.pvpmanager.manager.ConfigManager; import me.chancesd.pvpmanager.manager.DependencyManager; import me.chancesd.pvpmanager.manager.DisplayManager; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; import me.chancesd.pvpmanager.manager.StorageManager; import me.chancesd.pvpmanager.manager.UpdateManager; import me.chancesd.pvpmanager.manager.WorldManager; @@ -38,7 +38,7 @@ public class PvPManager extends JavaPlugin { private ConfigManager configM; - private PlayerHandler playerHandler; + private PlayerManager playerHandler; private UpdateManager updateManager; private StorageManager storageManager; private DependencyManager dependencyManager; @@ -68,7 +68,7 @@ public void onEnable() { dependencyManager = new DependencyManager(); displayManager = new DisplayManager(this); worldManager = new WorldManager(this); - playerHandler = new PlayerHandler(this); + playerHandler = new PlayerManager(this); startListeners(); registerCommands(); startMetrics(); @@ -166,7 +166,7 @@ public ConfigManager getConfigM() { return configM; } - public PlayerHandler getPlayerHandler() { + public PlayerManager getPlayerHandler() { return playerHandler; } diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Newbie.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Newbie.java index e3a85c8ea..239c487fb 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Newbie.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Newbie.java @@ -12,8 +12,8 @@ import com.google.common.collect.Lists; -import me.NoChance.PvPManager.PvPlayer; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; import me.chancesd.pvpmanager.setting.Settings; @@ -21,16 +21,16 @@ import me.chancesd.pvpmanager.utils.CombatUtils; public class Newbie implements TabExecutor { - private final PlayerHandler ph; + private final PlayerManager ph; - public Newbie(final PlayerHandler ph) { + public Newbie(final PlayerManager ph) { this.ph = ph; } @Override public final boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) { if (args.length == 0 && sender instanceof Player) { - final PvPlayer pvPlayer = ph.get((Player) sender); + final CombatPlayer pvPlayer = ph.get((Player) sender); if (!pvPlayer.isNewbie()) { pvPlayer.message(Messages.getErrorNotNewbie()); } else { @@ -41,7 +41,7 @@ public final boolean onCommand(final CommandSender sender, final Command command } else if (args.length >= 1) { final String subcommand = args[0]; if (Settings.isNewbieDisableAllowed() && subcommand.equalsIgnoreCase("disable") && sender instanceof Player) { - final PvPlayer player = ph.get((Player) sender); + final CombatPlayer player = ph.get((Player) sender); if (player.isNewbie()) { player.setNewbie(false); return true; @@ -70,7 +70,7 @@ private void checkNewbieTime(final CommandSender sender, final String targetPlay if (!CombatUtils.isOnlineWithFeedback(sender, targetPlayerName)) return; - final PvPlayer specifiedPlayer = ph.get(Bukkit.getPlayer(targetPlayerName)); + final CombatPlayer specifiedPlayer = ph.get(Bukkit.getPlayer(targetPlayerName)); final long timeLeft = specifiedPlayer.getNewbieTimeLeft() / 1000; sender.sendMessage(String.format(Messages.getNewbieTimeCheckOther(), specifiedPlayer.getName(), timeLeft)); } @@ -79,7 +79,7 @@ private void addNewbie(final CommandSender sender, final String targetPlayerName if (!CombatUtils.isOnlineWithFeedback(sender, targetPlayerName)) return; - final PvPlayer specifiedPlayer = ph.get(Bukkit.getPlayer(targetPlayerName)); + final CombatPlayer specifiedPlayer = ph.get(Bukkit.getPlayer(targetPlayerName)); specifiedPlayer.setNewbie(true); sender.sendMessage( ChatUtils.colorize(String.format(Messages.PREFIXMSG + " Added newbie protection to &e%s", specifiedPlayer.getName()))); @@ -89,7 +89,7 @@ private void removeNewbie(final CommandSender sender, final String targetPlayerN if (!CombatUtils.isOnlineWithFeedback(sender, targetPlayerName)) return; - final PvPlayer specifiedPlayer = ph.get(Bukkit.getPlayer(targetPlayerName)); + final CombatPlayer specifiedPlayer = ph.get(Bukkit.getPlayer(targetPlayerName)); specifiedPlayer.setNewbie(false); sender.sendMessage( ChatUtils.colorize(String.format(Messages.PREFIXMSG + " Removed newbie protection from &e%s", specifiedPlayer.getName()))); diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PM.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PM.java index 9e5cbf070..3f862e7b2 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PM.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PM.java @@ -21,10 +21,10 @@ import com.google.common.collect.Lists; -import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.PvPlayer; import me.chancesd.sdutils.utils.Log; +import me.chancesd.pvpmanager.PvPManager; import me.chancesd.pvpmanager.listener.DebugEntityListener; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Locale; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; @@ -161,7 +161,7 @@ private void convert(final CommandSender sender, final String[] args) { } private void debug(final CommandSender sender, final String[] args) { - PvPlayer p = null; + CombatPlayer p = null; if (args.length == 2 && sender instanceof Player) { p = plugin.getPlayerHandler().get((Player) sender); } @@ -186,7 +186,7 @@ private void debug(final CommandSender sender, final String[] args) { sender.sendMessage("Debug damage listener disabled"); } } else if (args[1].equalsIgnoreCase("tagall")) { - for (final PvPlayer player : plugin.getPlayerHandler().getPlayers().values()) { + for (final CombatPlayer player : plugin.getPlayerHandler().getPlayers().values()) { player.setTagged(true, player); } sender.sendMessage("Tagged all players"); @@ -206,7 +206,7 @@ private void debug(final CommandSender sender, final String[] args) { .callEvent(new EntityDamageByEntityEvent(p.getPlayer(), p.getPlayer(), DamageCause.ENTITY_ATTACK, 5.0)); sender.sendMessage("Attacked player with 5 damage"); } else if (args[1].equalsIgnoreCase("players")) { - for (final PvPlayer player : plugin.getPlayerHandler().getPlayers().values()) { + for (final CombatPlayer player : plugin.getPlayerHandler().getPlayers().values()) { if (!Bukkit.getOnlinePlayers().contains(player.getPlayer())) { Log.info("UUID: " + player.getUUID() + " - Name: " + player.getName() + " - Metadata: " + player.getPlayer().hasMetadata("NPC")); } diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvP.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvP.java index e64457d99..f99c8cd91 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvP.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvP.java @@ -5,7 +5,8 @@ import java.util.List; import java.util.stream.Collectors; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; import me.chancesd.pvpmanager.utils.ChatUtils; @@ -19,13 +20,11 @@ import com.google.common.collect.Lists; -import me.NoChance.PvPManager.PvPlayer; - public class PvP implements TabExecutor { - private final PlayerHandler ph; + private final PlayerManager ph; - public PvP(final PlayerHandler playerHandler) { + public PvP(final PlayerManager playerHandler) { this.ph = playerHandler; } @@ -38,14 +37,14 @@ public final boolean onCommand(final CommandSender sender, final Command cmd, fi if (sender instanceof Player && args.length == 0) { final Player player = (Player) sender; - final PvPlayer pvpPlayer = ph.get(player); + final CombatPlayer pvpPlayer = ph.get(player); togglePvP(pvpPlayer, !pvpPlayer.hasPvPEnabled()); return true; } if (args.length == 1) { if (sender instanceof Player && (args[0].equalsIgnoreCase("off") || args[0].equalsIgnoreCase("on"))) { - final PvPlayer pvpPlayer = ph.get((Player) sender); + final CombatPlayer pvpPlayer = ph.get((Player) sender); final boolean state = args[0].equalsIgnoreCase("on"); togglePvP(pvpPlayer, state); return true; @@ -73,7 +72,7 @@ public final boolean onCommand(final CommandSender sender, final Command cmd, fi return true; } - private void togglePvP(final PvPlayer player, final boolean state) { + private void togglePvP(final CombatPlayer player, final boolean state) { if (!player.hasToggleCooldownPassed()) return; @@ -97,7 +96,7 @@ private void togglePvP(final PvPlayer player, final boolean state) { private void togglePvPAdmin(final CommandSender sender, final String playerName, final boolean state, final boolean toggle) { if (!CombatUtils.isOnlineWithFeedback(sender, playerName)) return; - final PvPlayer specifiedPlayer = ph.get(Bukkit.getPlayer(playerName)); + final CombatPlayer specifiedPlayer = ph.get(Bukkit.getPlayer(playerName)); specifiedPlayer.setPvP(toggle ? !specifiedPlayer.hasPvPEnabled() : state); final String stateMessage = specifiedPlayer.hasPvPEnabled() ? Messages.getEnabled() : Messages.getDisabled(); sender.sendMessage(Messages.getPvPToggleAdminChanged().replace("%p", playerName).replace("%state", stateMessage)); // TODO add replace variables diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPInfo.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPInfo.java index 5f86a3983..2e8e23021 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPInfo.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPInfo.java @@ -11,8 +11,8 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; -import me.NoChance.PvPManager.PvPlayer; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; import me.chancesd.pvpmanager.utils.ChatUtils; @@ -20,9 +20,9 @@ public class PvPInfo implements CommandExecutor { - private final PlayerHandler ph; + private final PlayerManager ph; - public PvPInfo(final PlayerHandler ph) { + public PvPInfo(final PlayerManager ph) { this.ph = ph; } @@ -43,7 +43,7 @@ public final boolean onCommand(final CommandSender sender, final Command cmd, fi return false; } - private void sendInfo(final CommandSender sender, final PvPlayer target) { + private void sendInfo(final CommandSender sender, final CombatPlayer target) { sender.sendMessage(Messages.getString("PvPInfo_Title")); sender.sendMessage(Messages.getString("PvPInfo_Line1") + target.getName()); sender.sendMessage(Messages.getString("PvPInfo_Line2") + target.getUUID()); @@ -53,7 +53,7 @@ private void sendInfo(final CommandSender sender, final PvPlayer target) { sender.sendMessage(Messages.getString("PvPInfo_Line6") + target.getPlayer().getWorld().getName()); sender.sendMessage(Messages.getString("PvPInfo_Line7") + target.hasOverride()); sender.sendMessage(ChatUtils.colorize("&2- Enemies: &7" - + (target.getEnemies().isEmpty() ? "&cNone" : target.getEnemies().stream().map(PvPlayer::getName).collect(Collectors.toList())))); + + (target.getEnemies().isEmpty() ? "&cNone" : target.getEnemies().stream().map(CombatPlayer::getName).collect(Collectors.toList())))); sender.sendMessage(ChatUtils.colorize("&2- Exempt Perms: &7" + getExemptions(target.getPlayer()))); } diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPList.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPList.java index f1f35a20b..8b0a3b297 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPList.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPList.java @@ -11,8 +11,8 @@ import com.google.common.collect.Lists; -import me.NoChance.PvPManager.PvPlayer; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.storage.Storage; import me.chancesd.pvpmanager.storage.fields.UserDataFields; @@ -21,9 +21,9 @@ public class PvPList implements TabExecutor { - private final PlayerHandler ph; + private final PlayerManager ph; - public PvPList(final PlayerHandler ph) { + public PvPList(final PlayerManager ph) { this.ph = ph; } @@ -76,7 +76,7 @@ private String pvpListOffline() { private String pvpList(final CommandSender sender, final boolean enabled, final boolean console) { final StringBuilder list = new StringBuilder(); - for (final PvPlayer p : ph.getPlayers().values()) { + for (final CombatPlayer p : ph.getPlayers().values()) { final Player player = p.getPlayer(); if (enabled == p.hasPvPEnabled() && (console || ((Player) sender).canSee(player))) { list.append(p.getName()).append(", "); diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPOverride.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPOverride.java index de47e0394..7af360b15 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPOverride.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPOverride.java @@ -6,22 +6,22 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import me.NoChance.PvPManager.PvPlayer; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Messages; public class PvPOverride implements CommandExecutor { - private final PlayerHandler ph; + private final PlayerManager ph; - public PvPOverride(final PlayerHandler ph) { + public PvPOverride(final PlayerManager ph) { this.ph = ph; } @Override public final boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) { if (sender instanceof Player) { - final PvPlayer pvPlayer = ph.get((Player) sender); + final CombatPlayer pvPlayer = ph.get((Player) sender); final boolean override = pvPlayer.toggleOverride(); pvPlayer.message(Messages.PREFIXMSG + ChatColor.DARK_GREEN + "PvP Override set to: " + ChatColor.GOLD + override); } diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPStatus.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPStatus.java index 56422114f..9cf1376ec 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPStatus.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PvPStatus.java @@ -6,25 +6,25 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import me.NoChance.PvPManager.PvPlayer; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.utils.CombatUtils; public class PvPStatus implements CommandExecutor { - private final PlayerHandler ph; + private final PlayerManager ph; - public PvPStatus(final PlayerHandler ph) { + public PvPStatus(final PlayerManager ph) { this.ph = ph; } @Override public final boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) { - PvPlayer target; + CombatPlayer target; if (args.length == 0 && sender instanceof Player) { final Player player = (Player) sender; - final PvPlayer pvpPlayer = ph.get(player); + final CombatPlayer pvpPlayer = ph.get(player); if (!pvpPlayer.hasPvPEnabled()) { pvpPlayer.message(Messages.getSelfStatusDisabled()); return true; diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Tag.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Tag.java index 2910d6c79..5de15545b 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Tag.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Tag.java @@ -6,8 +6,8 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import me.NoChance.PvPManager.PvPlayer; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; import me.chancesd.pvpmanager.setting.Settings; @@ -15,16 +15,16 @@ public class Tag implements CommandExecutor { - private final PlayerHandler ph; + private final PlayerManager ph; - public Tag(final PlayerHandler ph) { + public Tag(final PlayerManager ph) { this.ph = ph; } @Override public final boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) { if (args.length == 0 && sender instanceof Player) { - final PvPlayer pvPlayer = ph.get((Player) sender); + final CombatPlayer pvPlayer = ph.get((Player) sender); if (!pvPlayer.isInCombat()) { pvPlayer.message(Messages.getTagNotInCombat()); } else { @@ -55,7 +55,7 @@ public final boolean onCommand(final CommandSender sender, final Command command } private void tagPlayer(final CommandSender sender, final String name, final long time) { - final PvPlayer target = ph.get(Bukkit.getPlayer(name)); + final CombatPlayer target = ph.get(Bukkit.getPlayer(name)); if (target.isInCombat()) { sender.sendMessage(Messages.PREFIXMSG + " §cThat player is already in combat"); return; diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Untag.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Untag.java index bfce4dde7..6d4a5770b 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Untag.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Untag.java @@ -5,16 +5,16 @@ import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; -import me.NoChance.PvPManager.PvPlayer; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.utils.CombatUtils; public class Untag implements CommandExecutor { - private final PlayerHandler ph; + private final PlayerManager ph; - public Untag(final PlayerHandler ph) { + public Untag(final PlayerManager ph) { this.ph = ph; } @@ -22,7 +22,7 @@ public Untag(final PlayerHandler ph) { public final boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) { if (args.length == 0) return false; - PvPlayer target; + CombatPlayer target; if (args.length == 1) { final String name = args[0]; if (!CombatUtils.isOnlineWithFeedback(sender, name)) diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Worlds.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Worlds.java index d36650410..f5543b053 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Worlds.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Worlds.java @@ -1,8 +1,9 @@ package me.chancesd.pvpmanager.command; import com.google.common.base.Strings; -import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.PvPlayer; + +import me.chancesd.pvpmanager.PvPManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.world.CombatWorld; import me.chancesd.pvpmanager.world.CombatWorld.WorldOptionState; @@ -37,12 +38,12 @@ public void createWorldMenu(final Player player) { ChatColor.DARK_AQUA + "" + ChatColor.BOLD + "World: " + ChatColor.GOLD + combatWorld.getName() + ChatColor.AQUA + " \n "); final World world = Bukkit.getWorld(combatWorld.getName()); - final List pvPlayerList = world.getPlayers().stream().map(p -> plugin.getPlayerHandler().get(p)).collect(Collectors.toList()); + final List pvPlayerList = world.getPlayers().stream().map(p -> plugin.getPlayerHandler().get(p)).collect(Collectors.toList()); worldItem.addExtra(createInfoText("Players", pvPlayerList.size())); worldItem.addExtra(createSeparator()); - worldItem.addExtra(createInfoText("In Combat", pvPlayerList.stream().filter(PvPlayer::isInCombat).count())); + worldItem.addExtra(createInfoText("In Combat", pvPlayerList.stream().filter(CombatPlayer::isInCombat).count())); worldItem.addExtra(createSeparator()); - worldItem.addExtra(createInfoText("PvP On", pvPlayerList.stream().filter(PvPlayer::hasPvPEnabled).count())); + worldItem.addExtra(createInfoText("PvP On", pvPlayerList.stream().filter(CombatPlayer::hasPvPEnabled).count())); worldItem.addExtra(createSeparator()); worldItem.addExtra(createInfoText("PvP Off", pvPlayerList.stream().filter(pvPlayer -> !pvPlayer.hasPvPEnabled()).count())); player.spigot().sendMessage(worldItem); diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerCombatLogEvent.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerCombatLogEvent.java index fb998bbad..fc91641c5 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerCombatLogEvent.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerCombatLogEvent.java @@ -4,7 +4,7 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import me.NoChance.PvPManager.PvPlayer; +import me.chancesd.pvpmanager.player.CombatPlayer; /** * This event is called whenever a player combat logged. @@ -15,9 +15,9 @@ public final class PlayerCombatLogEvent extends Event { private static final HandlerList handlers = new HandlerList(); private final Player player; - private final PvPlayer pvplayer; + private final CombatPlayer pvplayer; - public PlayerCombatLogEvent(final Player player, final PvPlayer pvplayer) { + public PlayerCombatLogEvent(final Player player, final CombatPlayer pvplayer) { this.player = player; this.pvplayer = pvplayer; } @@ -36,7 +36,7 @@ public final Player getPlayer() { * * @return PvPlayer instance of the player */ - public final PvPlayer getPvPlayer() { + public final CombatPlayer getPvPlayer() { return pvplayer; } diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTagEvent.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTagEvent.java index d3dc74c13..c4d413933 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTagEvent.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTagEvent.java @@ -6,7 +6,7 @@ import org.bukkit.event.HandlerList; import org.jetbrains.annotations.Nullable; -import me.NoChance.PvPManager.PvPlayer; +import me.chancesd.pvpmanager.player.CombatPlayer; /** * This event is fired right before a player is tagged. @@ -20,18 +20,18 @@ public final class PlayerTagEvent extends Event implements Cancellable { private static final HandlerList handlers = new HandlerList(); private boolean cancelled; private final Player player; - private final PvPlayer pvplayer; + private final CombatPlayer pvplayer; private final boolean isAttacker; private final Player enemy; - public PlayerTagEvent(final Player player, final PvPlayer pvplayer, final boolean isAttacker, final Player enemy) { + public PlayerTagEvent(final Player player, final CombatPlayer pvplayer, final boolean isAttacker, final Player enemy) { this.player = player; this.pvplayer = pvplayer; this.isAttacker = isAttacker; this.enemy = enemy; } - public PlayerTagEvent(final Player player, final PvPlayer pvplayer, final boolean isAttacker) { + public PlayerTagEvent(final Player player, final CombatPlayer pvplayer, final boolean isAttacker) { this(player, pvplayer, isAttacker, null); } @@ -49,7 +49,7 @@ public final Player getPlayer() { * * @return PvPlayer instance of the player */ - public final PvPlayer getPvPlayer() { + public final CombatPlayer getPvPlayer() { return pvplayer; } diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTogglePvPEvent.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTogglePvPEvent.java index 7c24c7a80..98261f4c0 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTogglePvPEvent.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerTogglePvPEvent.java @@ -5,7 +5,7 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import me.NoChance.PvPManager.PvPlayer; +import me.chancesd.pvpmanager.player.CombatPlayer; /** * This event is called any time a Player's PvP state would change. @@ -17,10 +17,10 @@ public final class PlayerTogglePvPEvent extends Event implements Cancellable { private static final HandlerList handlers = new HandlerList(); private boolean cancelled; private final Player player; - private final PvPlayer pvplayer; + private final CombatPlayer pvplayer; private final boolean pvpState; - public PlayerTogglePvPEvent(final Player player, final PvPlayer pvplayer, final boolean pvpState) { + public PlayerTogglePvPEvent(final Player player, final CombatPlayer pvplayer, final boolean pvpState) { this.player = player; this.pvplayer = pvplayer; this.pvpState = pvpState; @@ -40,7 +40,7 @@ public final Player getPlayer() { * * @return PvPlayer instance of the player */ - public final PvPlayer getPvPlayer() { + public final CombatPlayer getPvPlayer() { return pvplayer; } diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerUntagEvent.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerUntagEvent.java index 43c9d732c..0a41b3474 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerUntagEvent.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/event/PlayerUntagEvent.java @@ -4,7 +4,7 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import me.NoChance.PvPManager.PvPlayer; +import me.chancesd.pvpmanager.player.CombatPlayer; /** * This event is called before a player is set as no longer in combat. @@ -15,9 +15,9 @@ public final class PlayerUntagEvent extends Event { private static final HandlerList handlers = new HandlerList(); private final Player player; - private final PvPlayer pvplayer; + private final CombatPlayer pvplayer; - public PlayerUntagEvent(final Player player, final PvPlayer pvplayer) { + public PlayerUntagEvent(final Player player, final CombatPlayer pvplayer) { this.player = player; this.pvplayer = pvplayer; } @@ -36,7 +36,7 @@ public final Player getPlayer() { * * @return PvPlayer instance of the player */ - public final PvPlayer getPvPlayer() { + public final CombatPlayer getPvPlayer() { return pvplayer; } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/AFKDependency.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/AFKDependency.java similarity index 67% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/AFKDependency.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/AFKDependency.java index 11a98456f..73b4d4653 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/AFKDependency.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/AFKDependency.java @@ -1,8 +1,8 @@ -package me.NoChance.PvPManager.Dependencies; +package me.chancesd.pvpmanager.integration; import org.bukkit.entity.Player; -import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; +import me.chancesd.pvpmanager.integration.type.Dependency; public interface AFKDependency extends Dependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/BaseDependency.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/BaseDependency.java similarity index 84% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/BaseDependency.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/BaseDependency.java index 231f2c952..acc4dea28 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/BaseDependency.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/BaseDependency.java @@ -1,10 +1,10 @@ -package me.NoChance.PvPManager.Dependencies; +package me.chancesd.pvpmanager.integration; import org.bukkit.ChatColor; import org.bukkit.plugin.java.JavaPlugin; +import me.chancesd.pvpmanager.integration.type.Dependency; import me.chancesd.sdutils.utils.Log; -import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; public class BaseDependency implements Dependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/DependencyException.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/DependencyException.java similarity index 90% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/DependencyException.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/DependencyException.java index 83bd2db07..9e974e30f 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/DependencyException.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/DependencyException.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies; +package me.chancesd.pvpmanager.integration; public class DependencyException extends RuntimeException { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/ForceToggleDependency.java similarity index 67% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/ForceToggleDependency.java index 811f6aa6d..e6030d7f4 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/ForceToggleDependency.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/ForceToggleDependency.java @@ -1,9 +1,9 @@ -package me.NoChance.PvPManager.Dependencies; +package me.chancesd.pvpmanager.integration; import org.bukkit.entity.Player; -import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; -import me.NoChance.PvPManager.Player.ProtectionType; +import me.chancesd.pvpmanager.integration.type.Dependency; +import me.chancesd.pvpmanager.player.ProtectionType; public interface ForceToggleDependency extends Dependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/GroupDependency.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/GroupDependency.java similarity index 73% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/GroupDependency.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/GroupDependency.java index b1395f6c0..7f7653d8b 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/GroupDependency.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/GroupDependency.java @@ -1,8 +1,8 @@ -package me.NoChance.PvPManager.Dependencies; +package me.chancesd.pvpmanager.integration; import org.bukkit.entity.Player; -import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; +import me.chancesd.pvpmanager.integration.type.Dependency; /** * Represents a plugin that groups players in clans/factions/teams/etc.
diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hook.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/Hook.java similarity index 97% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hook.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/Hook.java index d8003f001..953c19ca9 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hook.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/Hook.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies; +package me.chancesd.pvpmanager.integration; import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/EssentialsHook.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/EssentialsHook.java similarity index 72% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/EssentialsHook.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/EssentialsHook.java index 97b6a1879..115cdebb8 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/EssentialsHook.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/EssentialsHook.java @@ -1,13 +1,13 @@ -package me.NoChance.PvPManager.Dependencies.Hooks; +package me.chancesd.pvpmanager.integration.hook; import org.bukkit.entity.Player; import com.earth2me.essentials.Essentials; -import me.NoChance.PvPManager.Dependencies.AFKDependency; -import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Interfaces.GodDependency; +import me.chancesd.pvpmanager.integration.AFKDependency; +import me.chancesd.pvpmanager.integration.BaseDependency; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.integration.type.GodDependency; public class EssentialsHook extends BaseDependency implements AFKDependency, GodDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/GriefPreventionHook.java similarity index 88% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/GriefPreventionHook.java index d90d83933..f8c6c7f8a 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/GriefPreventionHook.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/GriefPreventionHook.java @@ -1,7 +1,7 @@ -package me.NoChance.PvPManager.Dependencies.Hooks; +package me.chancesd.pvpmanager.integration.hook; -import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.Hook; +import me.chancesd.pvpmanager.integration.BaseDependency; +import me.chancesd.pvpmanager.integration.Hook; import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.sdutils.utils.Log; import me.ryanhamshire.GriefPrevention.GriefPrevention; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/LibsDisguisesHook.java similarity index 70% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/LibsDisguisesHook.java index 4c982bee4..d7387ca54 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/LibsDisguisesHook.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/LibsDisguisesHook.java @@ -1,10 +1,10 @@ -package me.NoChance.PvPManager.Dependencies.Hooks; +package me.chancesd.pvpmanager.integration.hook; import org.bukkit.entity.Player; -import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Interfaces.DisguiseDependency; +import me.chancesd.pvpmanager.integration.BaseDependency; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.integration.type.DisguiseDependency; import me.libraryaddict.disguise.DisguiseAPI; public class LibsDisguisesHook extends BaseDependency implements DisguiseDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPI.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/PlaceHolderAPI.java similarity index 91% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPI.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/PlaceHolderAPI.java index e766a524b..eb1cc1168 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPI.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/PlaceHolderAPI.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.Hooks; +package me.chancesd.pvpmanager.integration.hook; import java.text.DecimalFormat; import java.util.ArrayList; @@ -6,8 +6,8 @@ import org.bukkit.entity.Player; -import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.PvPlayer; +import me.chancesd.pvpmanager.PvPManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.pvpmanager.utils.CombatUtils; import me.clip.placeholderapi.PlaceholderAPIPlugin; @@ -39,7 +39,7 @@ public String onPlaceholderRequest(final Player player, final String identifier) if (player == null) return ""; - final PvPlayer p = plugin.getPlayerHandler().get(player); + final CombatPlayer p = plugin.getPlayerHandler().get(player); switch (identifier) { case "in_combat": return getPAPIBoolean(p.isInCombat()); @@ -61,10 +61,10 @@ public String onPlaceholderRequest(final Player player, final String identifier) final int timeLeft = CombatUtils.getTimeLeft(p.getToggleTime(), Settings.getToggleCooldown()); return String.valueOf(Math.max(timeLeft, 0)); case "current_enemy": - final PvPlayer pPlayer = p.getEnemy(); + final CombatPlayer pPlayer = p.getEnemy(); return pPlayer != null ? pPlayer.getName() : "None"; case "current_enemy_health": - final PvPlayer enemy = p.getEnemy(); + final CombatPlayer enemy = p.getEnemy(); return enemy != null ? df.format(enemy.getPlayer().getHealth()) : "0"; default: return null; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPIHook.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/PlaceHolderAPIHook.java similarity index 64% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPIHook.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/PlaceHolderAPIHook.java index af00d07b4..05c1e926b 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/PlaceHolderAPIHook.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/PlaceHolderAPIHook.java @@ -1,9 +1,9 @@ -package me.NoChance.PvPManager.Dependencies.Hooks; +package me.chancesd.pvpmanager.integration.hook; -import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.DependencyException; -import me.NoChance.PvPManager.Dependencies.Hook; +import me.chancesd.pvpmanager.PvPManager; +import me.chancesd.pvpmanager.integration.BaseDependency; +import me.chancesd.pvpmanager.integration.DependencyException; +import me.chancesd.pvpmanager.integration.Hook; public class PlaceHolderAPIHook extends BaseDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/SimpleClansHook.java similarity index 78% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/SimpleClansHook.java index 86d87dfde..1db7c66ae 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/SimpleClansHook.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/SimpleClansHook.java @@ -1,13 +1,13 @@ -package me.NoChance.PvPManager.Dependencies.Hooks; +package me.chancesd.pvpmanager.integration.hook; import org.bukkit.entity.Player; -import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.DependencyException; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.GroupDependency; -import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; -import me.NoChance.PvPManager.Player.ProtectionType; +import me.chancesd.pvpmanager.integration.BaseDependency; +import me.chancesd.pvpmanager.integration.DependencyException; +import me.chancesd.pvpmanager.integration.ForceToggleDependency; +import me.chancesd.pvpmanager.integration.GroupDependency; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.player.ProtectionType; import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer; import net.sacredlabyrinth.phaed.simpleclans.SimpleClans; import net.sacredlabyrinth.phaed.simpleclans.managers.ClanManager; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/TownyHook.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/TownyHook.java similarity index 84% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/TownyHook.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/TownyHook.java index e674773e7..e12ea46b6 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/TownyHook.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/TownyHook.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.Hooks; +package me.chancesd.pvpmanager.integration.hook; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -8,10 +8,10 @@ import com.palmergames.bukkit.towny.object.metadata.BooleanDataField; import com.palmergames.bukkit.towny.utils.MetaDataUtil; -import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Player.ProtectionType; -import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; +import me.chancesd.pvpmanager.integration.BaseDependency; +import me.chancesd.pvpmanager.integration.ForceToggleDependency; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.player.ProtectionType; public class TownyHook extends BaseDependency implements ForceToggleDependency, RegionDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/VaultHook.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/VaultHook.java similarity index 78% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/VaultHook.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/VaultHook.java index 053e78b27..45f84d974 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/VaultHook.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/VaultHook.java @@ -1,11 +1,11 @@ -package me.NoChance.PvPManager.Dependencies.Hooks; +package me.chancesd.pvpmanager.integration.hook; import org.bukkit.Bukkit; import org.bukkit.plugin.RegisteredServiceProvider; -import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.DependencyException; -import me.NoChance.PvPManager.Dependencies.Hook; +import me.chancesd.pvpmanager.integration.BaseDependency; +import me.chancesd.pvpmanager.integration.DependencyException; +import me.chancesd.pvpmanager.integration.Hook; import net.milkbowl.vault.economy.Economy; public class VaultHook extends BaseDependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/WorldGuardLegacyHook.java similarity index 85% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/WorldGuardLegacyHook.java index 43b2c0b07..94c0b95a3 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardLegacyHook.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/WorldGuardLegacyHook.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.Hooks; +package me.chancesd.pvpmanager.integration.hook; import java.lang.reflect.Method; import java.util.Set; @@ -14,12 +14,12 @@ import com.sk89q.worldguard.protection.flags.StateFlag.State; import com.sk89q.worldguard.protection.regions.ProtectedRegion; -import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.DependencyException; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; +import me.chancesd.pvpmanager.integration.BaseDependency; +import me.chancesd.pvpmanager.integration.DependencyException; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.integration.type.WorldGuardDependency; import me.chancesd.pvpmanager.listener.WGListenerLegacy; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; public class WorldGuardLegacyHook extends BaseDependency implements WorldGuardDependency { @@ -79,7 +79,7 @@ public State getWGPvPState(final Location l) { } @Override - public void startListener(final PlayerHandler ph) { + public void startListener(final PlayerManager ph) { Bukkit.getPluginManager().registerEvents(new WGListenerLegacy(ph), ph.getPlugin()); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/WorldGuardModernHook.java similarity index 80% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/WorldGuardModernHook.java index 64f75816a..4b5740931 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Hooks/WorldGuardModernHook.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/WorldGuardModernHook.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.Hooks; +package me.chancesd.pvpmanager.integration.hook; import java.util.Set; @@ -12,14 +12,14 @@ import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.protection.regions.RegionQuery; -import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; -import me.NoChance.PvPManager.Player.ProtectionType; +import me.chancesd.pvpmanager.integration.BaseDependency; +import me.chancesd.pvpmanager.integration.ForceToggleDependency; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.integration.type.WorldGuardDependency; import me.chancesd.pvpmanager.listener.WGListener; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; +import me.chancesd.pvpmanager.player.ProtectionType; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Settings; @@ -75,7 +75,7 @@ public State getWGPvPState(final Location l) { } @Override - public void startListener(final PlayerHandler ph) { + public void startListener(final PlayerManager ph) { Bukkit.getPluginManager().registerEvents(new WGListener(ph), ph.getPlugin()); } @@ -87,8 +87,8 @@ public boolean shouldDisable(final Player player) { @Override public boolean shouldDisable(final Player damager, final Player defender, final ProtectionType reason) { if (hasAllowPvPFlag(defender) || containsRegionsAt(defender.getLocation(), Settings.getWorldguardOverridesList())) { - final PvPlayer attacker = PvPlayer.get(damager); - final PvPlayer attacked = PvPlayer.get(defender); + final CombatPlayer attacker = CombatPlayer.get(damager); + final CombatPlayer attacked = CombatPlayer.get(defender); if (reason == ProtectionType.PVPDISABLED) { disablePvP(attacker); disablePvP(attacked); @@ -101,14 +101,14 @@ public boolean shouldDisable(final Player damager, final Player defender, final return false; } - private void disableNewbieProtection(final PvPlayer player) { + private void disableNewbieProtection(final CombatPlayer player) { if (player.isNewbie()) { player.setNewbie(false); player.message(Messages.getNewbieForceRemovedWG()); } } - private void disablePvP(final PvPlayer player) { + private void disablePvP(final CombatPlayer player) { if (!player.hasPvPEnabled()) { player.setPvP(true); player.message(Messages.getPvpForceEnabledWG()); diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/Dependency.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/Dependency.java similarity index 81% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/Dependency.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/Dependency.java index e881fab39..210a84332 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/Dependency.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/Dependency.java @@ -1,8 +1,8 @@ -package me.NoChance.PvPManager.Dependencies.Interfaces; +package me.chancesd.pvpmanager.integration.type; import org.bukkit.plugin.java.JavaPlugin; -import me.NoChance.PvPManager.Dependencies.Hook; +import me.chancesd.pvpmanager.integration.Hook; import me.chancesd.pvpmanager.setting.Settings; public interface Dependency { diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/DisguiseDependency.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/DisguiseDependency.java similarity index 76% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/DisguiseDependency.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/DisguiseDependency.java index 351fc24d7..533b2a1db 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/DisguiseDependency.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/DisguiseDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.Interfaces; +package me.chancesd.pvpmanager.integration.type; import org.bukkit.entity.Player; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/GodDependency.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/GodDependency.java similarity index 79% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/GodDependency.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/GodDependency.java index fb9115d2a..8115e6b12 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/GodDependency.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/GodDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.Interfaces; +package me.chancesd.pvpmanager.integration.type; import org.bukkit.entity.Player; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/RegionDependency.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/RegionDependency.java similarity index 84% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/RegionDependency.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/RegionDependency.java index 331d32a70..1965af6e5 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/RegionDependency.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/RegionDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.Interfaces; +package me.chancesd.pvpmanager.integration.type; import org.bukkit.Location; import org.bukkit.entity.Player; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/WorldGuardDependency.java similarity index 73% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/WorldGuardDependency.java index 341796ba9..d5a3d3f10 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Dependencies/Interfaces/WorldGuardDependency.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/type/WorldGuardDependency.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Dependencies.Interfaces; +package me.chancesd.pvpmanager.integration.type; import java.util.Set; @@ -8,8 +8,8 @@ import com.sk89q.worldguard.protection.flags.StateFlag.State; import com.sk89q.worldguard.protection.regions.ProtectedRegion; -import me.NoChance.PvPManager.Dependencies.GroupDependency; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.integration.GroupDependency; +import me.chancesd.pvpmanager.manager.PlayerManager; public interface WorldGuardDependency extends GroupDependency, RegionDependency { @@ -23,6 +23,6 @@ public interface WorldGuardDependency extends GroupDependency, RegionDependency public boolean containsRegionsAt(final Location l, final Set regionIDs); - public void startListener(PlayerHandler ph); + public void startListener(PlayerManager ph); } diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Libraries/Metrics/CustomMetrics.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/library/metrics/CustomMetrics.java similarity index 96% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Libraries/Metrics/CustomMetrics.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/library/metrics/CustomMetrics.java index 8af438e0f..1daff3fa7 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Libraries/Metrics/CustomMetrics.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/library/metrics/CustomMetrics.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Libraries.Metrics; +package me.chancesd.pvpmanager.library.metrics; import java.util.Arrays; import java.util.HashMap; @@ -8,9 +8,9 @@ import org.bukkit.Bukkit; -import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; +import me.chancesd.pvpmanager.PvPManager; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.integration.type.Dependency; import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.sdutils.metrics.Metrics; diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Libraries/rollbar/PMRUncaughExceptionHandler.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/library/rollbar/PMRUncaughExceptionHandler.java similarity index 85% rename from pvpmanager/src/main/java/me/NoChance/PvPManager/Libraries/rollbar/PMRUncaughExceptionHandler.java rename to pvpmanager/src/main/java/me/chancesd/pvpmanager/library/rollbar/PMRUncaughExceptionHandler.java index 360276cc5..4da12a020 100644 --- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Libraries/rollbar/PMRUncaughExceptionHandler.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/library/rollbar/PMRUncaughExceptionHandler.java @@ -1,4 +1,4 @@ -package me.NoChance.PvPManager.Libraries.rollbar; +package me.chancesd.pvpmanager.library.rollbar; import java.lang.Thread.UncaughtExceptionHandler; diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/DebugEntityListener.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/DebugEntityListener.java index bc20bcce9..fdac5162e 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/DebugEntityListener.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/DebugEntityListener.java @@ -22,12 +22,12 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; -import me.NoChance.PvPManager.Player.ProtectionResult; -import me.NoChance.PvPManager.Player.ProtectionType; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.integration.type.WorldGuardDependency; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; +import me.chancesd.pvpmanager.player.ProtectionResult; +import me.chancesd.pvpmanager.player.ProtectionType; import me.chancesd.pvpmanager.setting.Permissions; import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.pvpmanager.utils.CombatUtils; @@ -36,11 +36,11 @@ public class DebugEntityListener implements Listener { - private final PlayerHandler ph; + private final PlayerManager ph; private final WorldGuardDependency wg; private final Cache lightningCache = CacheBuilder.newBuilder().expireAfterWrite(2, TimeUnit.SECONDS).build(); - public DebugEntityListener(final PlayerHandler ph) { + public DebugEntityListener(final PlayerManager ph) { this.ph = ph; this.wg = (WorldGuardDependency) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); } @@ -63,7 +63,7 @@ public final void onPlayerDamage(final EntityDamageByEntityEvent event) { Log.debug("Ignoring damage because it wasn't considered PvP"); return; } - final PvPlayer attacked = ph.get((Player) event.getEntity()); + final CombatPlayer attacked = ph.get((Player) event.getEntity()); if (attacked.isNewbie() && Settings.isNewbieGodMode()) { event.setCancelled(true); Log.debug("Blocking damage to newbie because newbie god mode is enabled"); @@ -121,8 +121,8 @@ public final void onPlayerDamageMonitor(final EntityDamageByEntityEvent event) { } public void onDamageActions(final Player attacker, final Player defender) { - final PvPlayer pvpAttacker = ph.get(attacker); - final PvPlayer pvpDefender = ph.get(defender); + final CombatPlayer pvpAttacker = ph.get(attacker); + final CombatPlayer pvpDefender = ph.get(defender); if (Settings.isPvpBlood()) { defender.getWorld().playEffect(defender.getLocation(), Effect.STEP_SOUND, Material.REDSTONE_BLOCK); diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener.java index 1c3e3e072..f773c0435 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener.java @@ -33,12 +33,12 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; -import me.NoChance.PvPManager.Player.ProtectionResult; -import me.NoChance.PvPManager.Player.ProtectionType; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.integration.type.WorldGuardDependency; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; +import me.chancesd.pvpmanager.player.ProtectionResult; +import me.chancesd.pvpmanager.player.ProtectionType; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; import me.chancesd.pvpmanager.setting.Settings; @@ -47,11 +47,11 @@ public class EntityListener implements Listener { - private final PlayerHandler playerHandler; + private final PlayerManager playerHandler; private final WorldGuardDependency wg; private final Cache lightningCache = CacheBuilder.newBuilder().expireAfterWrite(2, TimeUnit.SECONDS).build(); - public EntityListener(final PlayerHandler ph) { + public EntityListener(final PlayerManager ph) { this.playerHandler = ph; this.wg = (WorldGuardDependency) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); } @@ -64,7 +64,7 @@ public final void onPlayerDamage(final EntityDamageByEntityEvent event) { if (!(event.getEntity() instanceof Player)) return; - final PvPlayer attacked = playerHandler.get((Player) event.getEntity()); + final CombatPlayer attacked = playerHandler.get((Player) event.getEntity()); if (attacked.isNewbie() && Settings.isNewbieGodMode()) { event.setCancelled(true); } else if (event.getDamager() instanceof final LightningStrike lightning) { @@ -127,8 +127,8 @@ public final void onEntityCombust(final EntityCombustByEntityEvent event) { } public void processDamage(final Player attacker, final Player defender) { - final PvPlayer pvpAttacker = playerHandler.get(attacker); - final PvPlayer pvpDefender = playerHandler.get(defender); + final CombatPlayer pvpAttacker = playerHandler.get(attacker); + final CombatPlayer pvpDefender = playerHandler.get(defender); if (Settings.isPvpBlood()) { defender.getWorld().playEffect(defender.getLocation(), Effect.STEP_SOUND, Material.REDSTONE_BLOCK); @@ -144,7 +144,7 @@ public void processDamage(final Player attacker, final Player defender) { } } - private void disableActions(final Player attacker, final Player defender, final PvPlayer pvpAttacker, final PvPlayer pvpDefender) { + private void disableActions(final Player attacker, final Player defender, final CombatPlayer pvpAttacker, final CombatPlayer pvpDefender) { final boolean hasExemptPerm = pvpAttacker.hasPerm(Permissions.EXEMPT_DISABLE_ACTIONS); if (Settings.isDisableFly()) { if (CombatUtils.canFly(attacker) && !hasExemptPerm) { @@ -252,7 +252,7 @@ public void onBlockIgnite(final BlockIgniteEvent event) { if (ignitingEntity instanceof final LightningStrike lightningStrike && lightningCache.asMap().containsKey(ignitingEntity)) { for (final Entity entity : lightningStrike.getNearbyEntities(2, 2, 2)) { if (entity instanceof final Player player) { - final PvPlayer attacked = playerHandler.get(player); + final CombatPlayer attacked = playerHandler.get(player); if (!attacked.hasPvPEnabled() || attacked.isNewbie() || attacked.hasRespawnProtection()) { event.setCancelled(true); return; @@ -269,7 +269,7 @@ public void onProjectileHitEvent(final ProjectileHitEvent event) { if (!Settings.isEnderPearlRenewTag() || entity.getType() != EntityType.ENDER_PEARL || !(shooter instanceof final Player player)) return; - final PvPlayer pvPlayer = playerHandler.get(player); + final CombatPlayer pvPlayer = playerHandler.get(player); if (pvPlayer.isInCombat()) { pvPlayer.setTagged(true, pvPlayer); diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener1_9.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener1_9.java index d6987063c..47459b42b 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener1_9.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener1_9.java @@ -26,8 +26,8 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import me.NoChance.PvPManager.Player.ProtectionResult; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.ProtectionResult; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.pvpmanager.utils.CombatUtils; @@ -35,10 +35,10 @@ public class EntityListener1_9 implements Listener { - private final PlayerHandler ph; + private final PlayerManager ph; private final Cache> potionMessageCache = CacheBuilder.newBuilder().expireAfterAccess(3, TimeUnit.SECONDS).build(); - public EntityListener1_9(final PlayerHandler ph) { + public EntityListener1_9(final PlayerManager ph) { this.ph = ph; } diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener.java index 00a28a1ba..091370c22 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener.java @@ -12,19 +12,19 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Interfaces.RegionDependency; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.integration.type.RegionDependency; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Messages; public class MoveListener implements Listener { - private final PlayerHandler ph; + private final PlayerManager ph; private final RegionDependency wg; private final Cache cache = CacheBuilder.newBuilder().weakValues().expireAfterWrite(1, TimeUnit.SECONDS).build(); - public MoveListener(final PlayerHandler ph) { + public MoveListener(final PlayerManager ph) { this.ph = ph; wg = (RegionDependency) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); } @@ -36,7 +36,7 @@ public final void onPlayerMove(final PlayerMoveEvent event) { return; final Player player = event.getPlayer(); - final PvPlayer pvplayer = ph.get(player); + final CombatPlayer pvplayer = ph.get(player); if (!pvplayer.isInCombat()) return; diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener1_9.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener1_9.java index 9760b8002..1e0cef1a7 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener1_9.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/MoveListener1_9.java @@ -16,9 +16,9 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import me.NoChance.PvPManager.PvPlayer; import me.chancesd.pvpmanager.manager.DependencyManager; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.tasks.RegionCheckTask; import me.chancesd.pvpmanager.utils.CombatUtils; @@ -26,11 +26,11 @@ public class MoveListener1_9 implements Listener { - private final PlayerHandler playerManager; + private final PlayerManager playerManager; private final DependencyManager depManager; private final Cache cache = CacheBuilder.newBuilder().weakValues().expireAfterWrite(1, TimeUnit.SECONDS).build(); - public MoveListener1_9(final PlayerHandler ph, final DependencyManager depManager) { + public MoveListener1_9(final PlayerManager ph, final DependencyManager depManager) { this.ph = ph; this.dependencyManager = ph.getPlugin().getDependencyManager(); final RegionCheckTask regionCheckTask = new RegionCheckTask(ph, dependencyManager); @@ -46,7 +46,7 @@ public final void onPlayerMove(final PlayerMoveEvent event) { return; final Player player = event.getPlayer(); - final PvPlayer pvplayer = playerManager.get(player); + final CombatPlayer pvplayer = playerManager.get(player); if (!pvplayer.isInCombat()) return; diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener.java index 6f17434ca..b168e1cc5 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener.java @@ -39,11 +39,11 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; -import me.NoChance.PvPManager.Player.ProtectionResult; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.integration.type.WorldGuardDependency; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; +import me.chancesd.pvpmanager.player.ProtectionResult; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Permissions; import me.chancesd.pvpmanager.setting.Settings; @@ -53,12 +53,12 @@ @SuppressWarnings("deprecation") public class PlayerListener implements Listener { - private final PlayerHandler playerHandler; + private final PlayerManager playerHandler; private final WorldGuardDependency wg; private Material mushroomSoup; private final Cache msgCooldown = CacheBuilder.newBuilder().weakValues().expireAfterWrite(800, TimeUnit.MILLISECONDS).build(); - public PlayerListener(final PlayerHandler ph) { + public PlayerListener(final PlayerManager ph) { this.playerHandler = ph; this.wg = (WorldGuardDependency) ph.getPlugin().getDependencyManager().getDependency(Hook.WORLDGUARD); if (MCVersion.isAtLeast(MCVersion.V1_13)) { @@ -73,7 +73,7 @@ public final void onBlockPlace(final BlockPlaceEvent event) { if (!Settings.isBlockPlaceBlocks() && !Settings.isBlockPlaceBlocksNewbie()) return; - final PvPlayer combatPlayer = playerHandler.get(event.getPlayer()); + final CombatPlayer combatPlayer = playerHandler.get(event.getPlayer()); if (Settings.isBlockPlaceBlocks() && combatPlayer.isInCombat() || Settings.isBlockPlaceBlocksNewbie() && combatPlayer.isNewbie()) { event.setCancelled(true); combatPlayer.sendActionBar(Messages.getBlockPlaceBlockedInCombat(), 1000); @@ -90,7 +90,7 @@ public final void onToggleFlight(final PlayerToggleFlightEvent event) { @EventHandler(ignoreCancelled = true) public final void onPlayerEat(final PlayerItemConsumeEvent event) { final Material type = event.getItem().getType(); - final PvPlayer player = playerHandler.get(event.getPlayer()); + final CombatPlayer player = playerHandler.get(event.getPlayer()); if (Settings.isBlockEat() && player.isInCombat() && type.isEdible()) { event.setCancelled(true); playerHandler.get(event.getPlayer()).sendActionBar(Messages.getEatBlockedInCombat(), 1000); @@ -113,7 +113,7 @@ public final void onPlayerKick(final PlayerKickEvent event) { if (Settings.punishOnKick() && (!Settings.matchKickReason() || Settings.getPunishKickReasons().contains(event.getReason()))) return; - final PvPlayer pvPlayer = playerHandler.get(player); + final CombatPlayer pvPlayer = playerHandler.get(player); if (pvPlayer.isInCombat()) { pvPlayer.unTag(); } @@ -122,7 +122,7 @@ public final void onPlayerKick(final PlayerKickEvent event) { @EventHandler // normal priority to avoid conflict with griefprevention public final void onPlayerLogout(final PlayerQuitEvent event) { final Player player = event.getPlayer(); - final PvPlayer pvPlayer = playerHandler.get(player); + final CombatPlayer pvPlayer = playerHandler.get(player); Log.debug(player.getName() + " quit with reason: " + event.getQuitMessage() + " - In combat: " + pvPlayer.isInCombat()); if (pvPlayer.isInCombat() && !pvPlayer.hasPerm(Permissions.EXEMPT_COMBAT_LOG)) { if (Settings.isLogToFile()) { @@ -144,12 +144,12 @@ public final void onPlayerDeath(final PlayerDeathEvent event) { if (CombatUtils.isWorldExcluded(player.getWorld().getName())) return; - final PvPlayer pvPlayer = playerHandler.get(player); + final CombatPlayer pvPlayer = playerHandler.get(player); final Player killer = player.getKiller(); // Player died in combat, process that if (killer != null && !killer.equals(player)) { - final PvPlayer pKiller = playerHandler.get(killer); + final CombatPlayer pKiller = playerHandler.get(killer); handlePvPDeath(player, pvPlayer, killer, pKiller, event); } @@ -170,7 +170,7 @@ public final void onPlayerDeath(final PlayerDeathEvent event) { playerHandler.handlePlayerDrops(event, player, killer); } - private void handlePvPDeath(final Player player, final PvPlayer pvPlayer, final Player killer, final PvPlayer pKiller, final PlayerDeathEvent event) { + private void handlePvPDeath(final Player player, final CombatPlayer pvPlayer, final Player killer, final CombatPlayer pKiller, final PlayerDeathEvent event) { if (Settings.isKillAbuseEnabled() && !pKiller.hasPerm(Permissions.EXEMPT_KILL_ABUSE)) { pKiller.addVictim(player); } @@ -216,7 +216,7 @@ public final void onPlayerUseSoup(final PlayerInteractEvent e) { i.setType(Material.BOWL); } } - final PvPlayer pvplayer = playerHandler.get(player); + final CombatPlayer pvplayer = playerHandler.get(player); if ((e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_AIR) && Settings.getItemCooldowns().containsKey(type)) { if (pvplayer.hasItemCooldown(type)) { final String msg = Messages.getItemCooldown(pvplayer.getItemCooldown(type)); @@ -238,7 +238,7 @@ public final void onPlayerInteract(final PlayerInteractEvent e) { return; final ItemStack i = player.getItemInHand(); - final PvPlayer pvplayer = playerHandler.get(player); + final CombatPlayer pvplayer = playerHandler.get(player); final Block clickedBlock = e.getClickedBlock(); if (clickedBlock == null) return; @@ -248,7 +248,7 @@ public final void onPlayerInteract(final PlayerInteractEvent e) { if (player.equals(p) || !clickedBlock.getWorld().equals(p.getWorld()) || !player.canSee(p)) { continue; } - final PvPlayer target = playerHandler.get(p); + final CombatPlayer target = playerHandler.get(p); if ((!target.hasPvPEnabled() || !pvplayer.hasPvPEnabled()) && clickedBlock.getLocation().distanceSquared(p.getLocation()) < 9) { pvplayer.message(Messages.pvpDisabledOther(target.getName())); e.setCancelled(true); @@ -271,7 +271,7 @@ public final void onPlayerInteract(final PlayerInteractEvent e) { @EventHandler(ignoreCancelled = true) public final void onPlayerPickup(final PlayerPickupItemEvent e) { if (Settings.isNewbieProtectionEnabled() && Settings.isBlockPickNewbies()) { - final PvPlayer player = playerHandler.get(e.getPlayer()); + final CombatPlayer player = playerHandler.get(e.getPlayer()); if (player.isNewbie()) { e.setCancelled(true); player.sendActionBar(Messages.getNewbiePickupItemBlocked(), 1000); @@ -282,7 +282,7 @@ public final void onPlayerPickup(final PlayerPickupItemEvent e) { @EventHandler public final void onPlayerJoin(final PlayerJoinEvent event) { final Player player = event.getPlayer(); - final PvPlayer pvPlayer = playerHandler.get(player); + final CombatPlayer pvPlayer = playerHandler.get(player); ScheduleUtils.runAsync(() -> { if (player.isOp() || pvPlayer.hasPerm(Permissions.ADMIN)) { Messages.sendQueuedMsgs(pvPlayer); @@ -296,7 +296,7 @@ public final void onPlayerTeleport(final PlayerTeleportEvent event) { if (CombatUtils.isNPC(player)) // Citizens seems to teleport NPCs very often so let's avoid creating new PvPlayer instances return; - final PvPlayer pvplayer = playerHandler.get(player); + final CombatPlayer pvplayer = playerHandler.get(player); if (!Settings.isInCombatEnabled() || !pvplayer.isInCombat()) return; @@ -316,7 +316,7 @@ public final void onPlayerTeleport(final PlayerTeleportEvent event) { @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public final void onCommand(final PlayerCommandPreprocessEvent event) { if (Settings.isInCombatEnabled() && Settings.isStopCommands() || Settings.isNewbieProtectionEnabled()) { - final PvPlayer player = playerHandler.get(event.getPlayer()); + final CombatPlayer player = playerHandler.get(event.getPlayer()); final String[] givenCommand = event.getMessage().substring(1).split(" ", 3); if (player.isInCombat() && !player.hasPerm(Permissions.EXEMPT_BLOCK_COMMANDS)) { @@ -353,7 +353,7 @@ public final void onPlayerRespawn(final PlayerRespawnEvent event) { if (CombatUtils.isWorldExcluded(event.getPlayer().getWorld().getName())) return; if (Settings.isKillAbuseEnabled() && Settings.getRespawnProtection() != 0) { - final PvPlayer player = playerHandler.get(event.getPlayer()); + final CombatPlayer player = playerHandler.get(event.getPlayer()); player.setRespawnTime(System.currentTimeMillis()); } } @@ -362,7 +362,7 @@ public final void onPlayerRespawn(final PlayerRespawnEvent event) { public final void onInventoryOpen(final InventoryOpenEvent event) { if (!Settings.isBlockInventoryOpen()) return; - final PvPlayer combatPlayer = playerHandler.get((Player) event.getPlayer()); + final CombatPlayer combatPlayer = playerHandler.get((Player) event.getPlayer()); if (combatPlayer.isInCombat()) { event.setCancelled(true); combatPlayer.sendActionBar(Messages.getInventoryBlockedInCombat(), 1000); @@ -372,7 +372,7 @@ public final void onInventoryOpen(final InventoryOpenEvent event) { @EventHandler public void onChangeWorld(final PlayerChangedWorldEvent event) { final Player player = event.getPlayer(); - final PvPlayer pvPlayer = playerHandler.get(player); + final CombatPlayer pvPlayer = playerHandler.get(player); final CombatWorld combatWorld = playerHandler.getPlugin().getWorldManager().getWorld(player.getWorld()); pvPlayer.setCombatWorld(combatWorld); diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener1_11.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener1_11.java index dc4fda26b..e7a43aa7e 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener1_11.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener1_11.java @@ -10,18 +10,18 @@ import org.bukkit.event.entity.ProjectileLaunchEvent; import org.bukkit.projectiles.ProjectileSource; -import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.CombatPlayer; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.pvpmanager.utils.ScheduleUtils; public class PlayerListener1_11 implements Listener { - private final PlayerHandler playerHandler; + private final PlayerManager playerHandler; - public PlayerListener1_11(final PlayerHandler ph) { + public PlayerListener1_11(final PlayerManager ph) { this.playerHandler = ph; } @@ -33,7 +33,7 @@ public void onProjectileLaunchEvent(final ProjectileLaunchEvent event) { return; final Player player = (Player) shooter; - final PvPlayer pvPlayer = playerHandler.get(player); + final CombatPlayer pvPlayer = playerHandler.get(player); if (pvPlayer.isInCombat()) { // TODO add feedback while on cooldown @@ -47,7 +47,7 @@ public void onEntityRessurrect(final EntityResurrectEvent event) { return; final Player player = (Player) event.getEntity(); - final PvPlayer pvPlayer = playerHandler.get(player); + final CombatPlayer pvPlayer = playerHandler.get(player); if (pvPlayer.isInCombat()) { event.setCancelled(true); pvPlayer.message(Messages.getTotemBlockedInCombat()); diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListener.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListener.java index 7c077e7e8..99ab9f3bc 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListener.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListener.java @@ -5,15 +5,15 @@ import com.sk89q.worldguard.bukkit.protection.events.DisallowedPVPEvent; -import me.NoChance.PvPManager.Player.ProtectionType; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.ProtectionType; import me.chancesd.sdutils.utils.Log; public class WGListener implements Listener { - private final PlayerHandler ph; + private final PlayerManager ph; - public WGListener(final PlayerHandler ph) { + public WGListener(final PlayerManager ph) { this.ph = ph; } diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListenerLegacy.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListenerLegacy.java index bf82202a2..4dabfc07a 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListenerLegacy.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/WGListenerLegacy.java @@ -5,15 +5,15 @@ import com.sk89q.worldguard.protection.events.DisallowedPVPEvent; -import me.NoChance.PvPManager.Player.ProtectionType; -import me.chancesd.pvpmanager.manager.PlayerHandler; +import me.chancesd.pvpmanager.manager.PlayerManager; +import me.chancesd.pvpmanager.player.ProtectionType; import me.chancesd.sdutils.utils.Log; public class WGListenerLegacy implements Listener { - private final PlayerHandler ph; + private final PlayerManager ph; - public WGListenerLegacy(final PlayerHandler ph) { + public WGListenerLegacy(final PlayerManager ph) { this.ph = ph; } diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/ConfigManager.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/ConfigManager.java index adbdf2c0b..1c4db44e7 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/ConfigManager.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/ConfigManager.java @@ -16,7 +16,7 @@ import org.bukkit.configuration.Configuration; import org.bukkit.configuration.file.YamlConfiguration; -import me.NoChance.PvPManager.PvPManager; +import me.chancesd.pvpmanager.PvPManager; import me.chancesd.pvpmanager.setting.LogFile; import me.chancesd.pvpmanager.setting.Messages; import me.chancesd.pvpmanager.setting.Settings; diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DependencyManager.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DependencyManager.java index 6dbe6aa6c..2db8d6f60 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DependencyManager.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DependencyManager.java @@ -12,30 +12,30 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; -import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.Dependencies.AFKDependency; -import me.NoChance.PvPManager.Dependencies.BaseDependency; -import me.NoChance.PvPManager.Dependencies.DependencyException; -import me.NoChance.PvPManager.Dependencies.Hook; -import me.NoChance.PvPManager.Dependencies.GroupDependency; -import me.NoChance.PvPManager.Dependencies.ForceToggleDependency; -import me.NoChance.PvPManager.Dependencies.Hooks.EssentialsHook; -import me.NoChance.PvPManager.Dependencies.Hooks.GriefPreventionHook; -import me.NoChance.PvPManager.Dependencies.Hooks.LibsDisguisesHook; -import me.NoChance.PvPManager.Dependencies.Hooks.PlaceHolderAPIHook; -import me.NoChance.PvPManager.Dependencies.Hooks.SimpleClansHook; -import me.NoChance.PvPManager.Dependencies.Hooks.TownyHook; -import me.NoChance.PvPManager.Dependencies.Hooks.VaultHook; -import me.NoChance.PvPManager.Dependencies.Hooks.WorldGuardLegacyHook; -import me.NoChance.PvPManager.Dependencies.Hooks.WorldGuardModernHook; -import me.NoChance.PvPManager.Dependencies.Interfaces.Dependency; -import me.NoChance.PvPManager.Dependencies.Interfaces.DisguiseDependency; -import me.NoChance.PvPManager.Dependencies.Interfaces.GodDependency; -import me.NoChance.PvPManager.Dependencies.Interfaces.RegionDependency; -import me.NoChance.PvPManager.Dependencies.Interfaces.WorldGuardDependency; -import me.NoChance.PvPManager.Player.ProtectionType; +import me.chancesd.pvpmanager.PvPManager; +import me.chancesd.pvpmanager.integration.AFKDependency; +import me.chancesd.pvpmanager.integration.BaseDependency; +import me.chancesd.pvpmanager.integration.DependencyException; +import me.chancesd.pvpmanager.integration.ForceToggleDependency; +import me.chancesd.pvpmanager.integration.GroupDependency; +import me.chancesd.pvpmanager.integration.Hook; +import me.chancesd.pvpmanager.integration.hook.EssentialsHook; +import me.chancesd.pvpmanager.integration.hook.GriefPreventionHook; +import me.chancesd.pvpmanager.integration.hook.LibsDisguisesHook; +import me.chancesd.pvpmanager.integration.hook.PlaceHolderAPIHook; +import me.chancesd.pvpmanager.integration.hook.SimpleClansHook; +import me.chancesd.pvpmanager.integration.hook.TownyHook; +import me.chancesd.pvpmanager.integration.hook.VaultHook; +import me.chancesd.pvpmanager.integration.hook.WorldGuardLegacyHook; +import me.chancesd.pvpmanager.integration.hook.WorldGuardModernHook; +import me.chancesd.pvpmanager.integration.type.Dependency; +import me.chancesd.pvpmanager.integration.type.DisguiseDependency; +import me.chancesd.pvpmanager.integration.type.GodDependency; +import me.chancesd.pvpmanager.integration.type.RegionDependency; +import me.chancesd.pvpmanager.integration.type.WorldGuardDependency; import me.chancesd.pvpmanager.listener.MoveListener; import me.chancesd.pvpmanager.listener.MoveListener1_9; +import me.chancesd.pvpmanager.player.ProtectionType; import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.pvpmanager.utils.CombatUtils; import me.chancesd.pvpmanager.utils.ScheduleUtils; diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DisplayManager.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DisplayManager.java index 9e0e0ddcf..3c07ee6b4 100644 --- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DisplayManager.java +++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DisplayManager.java @@ -8,24 +8,24 @@ import org.bukkit.boss.BossBar; import org.jetbrains.annotations.NotNull; -import me.NoChance.PvPManager.PvPManager; -import me.NoChance.PvPManager.PvPlayer; -import me.NoChance.PvPManager.Player.display.ProgressBar; +import me.chancesd.pvpmanager.PvPManager; +import me.chancesd.pvpmanager.player.CombatPlayer; +import me.chancesd.pvpmanager.player.display.ProgressBar; import me.chancesd.pvpmanager.setting.Settings; import me.chancesd.pvpmanager.utils.ChatUtils; import me.chancesd.sdutils.utils.Log; public class DisplayManager { - private final Map actionBars = new HashMap<>(); - private final Map bossBars = new ConcurrentHashMap<>(); + private final Map actionBars = new HashMap<>(); + private final Map bossBars = new ConcurrentHashMap<>(); private final PvPManager plugin; public DisplayManager(final PvPManager plugin) { this.plugin = plugin; } - public void updateBossbar(final PvPlayer player, final double timePassed, final int totalTime) { + public void updateBossbar(final CombatPlayer player, final double timePassed, final int totalTime) { final BossBar bossBar = bossBars.computeIfAbsent(player, this::setupBossbar); final String message = Settings.getBossBarMessage().replace("