From 03936909c93b32bdedfda97bcccf3cca082939cc Mon Sep 17 00:00:00 2001
From: ChanceSD <5256215+ChanceSD@users.noreply.github.com>
Date: Sat, 4 May 2024 05:22:40 +0100
Subject: [PATCH] Further changes
---
pvpmanager/pom.xml | 18 +-
.../me/chancesd/pvpmanager/PvPManager.java | 6 +-
.../chancesd/pvpmanager/command/Newbie.java | 4 +-
.../me/chancesd/pvpmanager/command/PM.java | 72 +-
.../me/chancesd/pvpmanager/command/PvP.java | 8 +-
.../pvpmanager/command/PvPGlobal.java | 10 +-
.../chancesd/pvpmanager/command/PvPInfo.java | 2 +-
.../pvpmanager/command/PvPStatus.java | 3 +-
.../me/chancesd/pvpmanager/command/Tag.java | 8 +-
.../me/chancesd/pvpmanager/command/Untag.java | 3 +-
.../chancesd/pvpmanager/command/Worlds.java | 2 +-
.../pvpmanager/event/PlayerTagEvent.java | 4 +
.../pvpmanager/event/PlayerUntagEvent.java | 17 +-
.../chancesd/pvpmanager/integration/Hook.java | 9 +-
.../integration/hook/EssentialsHook.java | 2 +-
.../integration/hook/GriefPreventionHook.java | 4 +-
.../integration/hook/PlaceHolderAPI.java | 8 +-
.../integration/hook/SimpleClansHook.java | 4 +-
.../pvpmanager/integration/hook/TABHook.java | 61 ++
.../integration/hook/TownyHook.java | 2 +-
.../hook/worldguard/WorldGuardModernHook.java | 8 +-
.../integration/{ => type}/AFKDependency.java | 4 +-
.../integration/type/Dependency.java | 4 +-
.../{ => type}/ForceToggleDependency.java | 3 +-
.../{ => type}/GroupDependency.java | 4 +-
.../type/WorldGuardDependency.java | 1 -
.../library/metrics/CustomMetrics.java | 80 +-
.../listener/BlockedActionsListener.java | 116 +++
.../listener/DebugEntityListener.java | 24 +-
.../pvpmanager/listener/EntityListener.java | 32 +-
.../listener/EntityListener1_9.java | 31 +-
.../pvpmanager/listener/PlayerListener.java | 167 +---
.../listener/PlayerListener1_11.java | 14 +-
.../pvpmanager/manager/ConfigManager.java | 32 +-
.../pvpmanager/manager/DependencyManager.java | 69 +-
.../pvpmanager/manager/DisplayManager.java | 10 +-
.../pvpmanager/manager/PlayerManager.java | 41 +-
.../pvpmanager/manager/UpdateManager.java | 19 +-
.../pvpmanager/player/BasePlayer.java | 6 +
.../pvpmanager/player/CombatPlayer.java | 109 ++-
.../chancesd/pvpmanager/player/EcoPlayer.java | 24 +-
.../pvpmanager/player/UntagReason.java | 14 +
.../player/nametag/BukkitNameTag.java | 97 +--
.../pvpmanager/player/nametag/NameTag.java | 10 +-
.../pvpmanager/player/nametag/TABNameTag.java | 112 +++
.../me/chancesd/pvpmanager/setting/Conf.java | 400 +++++++++
.../pvpmanager/setting/ItemCooldown.java | 29 +
.../me/chancesd/pvpmanager/setting/Lang.java | 13 +-
.../pvpmanager/setting/Permissions.java | 7 +
.../chancesd/pvpmanager/setting/Settings.java | 818 ------------------
.../pvpmanager/setting/conf/ConfSection.java | 38 +
.../pvpmanager/setting/lang/Replacement.java | 3 +
.../chancesd/pvpmanager/storage/Database.java | 33 +-
.../chancesd/pvpmanager/tasks/NewbieTask.java | 4 +-
.../pvpmanager/tasks/StorageSaveTask.java | 2 +-
.../me/chancesd/pvpmanager/tasks/TagTask.java | 41 +-
.../pvpmanager/utils/CombatUtils.java | 32 +-
pvpmanager/src/main/resources/config.yml | 388 +++++----
.../src/main/resources/plugin-hooks.yml | 20 +
pvpmanager/src/main/resources/plugin.yml | 1 -
.../chancesd/pvpmanager/InstanceCreator.java | 9 +-
.../{PluginTest.java => PluginSetup.java} | 9 +-
.../listener/BlockedActionsListenerTest.java | 70 ++
.../listener/EntityListenerTest.java | 24 +-
.../listener/PlayerListenerTest.java | 40 +-
.../pvpmanager/manager/DependencyTest.java | 5 +-
66 files changed, 1634 insertions(+), 1630 deletions(-)
create mode 100644 pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/TABHook.java
rename pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/{ => type}/AFKDependency.java (68%)
rename pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/{ => type}/ForceToggleDependency.java (82%)
rename pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/{ => type}/GroupDependency.java (74%)
create mode 100644 pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/BlockedActionsListener.java
create mode 100644 pvpmanager/src/main/java/me/chancesd/pvpmanager/player/UntagReason.java
create mode 100644 pvpmanager/src/main/java/me/chancesd/pvpmanager/player/nametag/TABNameTag.java
create mode 100644 pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/Conf.java
create mode 100644 pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/ItemCooldown.java
delete mode 100644 pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/Settings.java
create mode 100644 pvpmanager/src/main/java/me/chancesd/pvpmanager/setting/conf/ConfSection.java
create mode 100644 pvpmanager/src/main/resources/plugin-hooks.yml
rename pvpmanager/src/test/java/me/chancesd/pvpmanager/{PluginTest.java => PluginSetup.java} (92%)
create mode 100644 pvpmanager/src/test/java/me/chancesd/pvpmanager/listener/BlockedActionsListenerTest.java
diff --git a/pvpmanager/pom.xml b/pvpmanager/pom.xml
index 3a22c5cc..13eeed87 100644
--- a/pvpmanager/pom.xml
+++ b/pvpmanager/pom.xml
@@ -16,7 +16,7 @@
https://github.com/ChanceSD/PvPManager
- 78
+ 79
1
@@ -58,6 +58,12 @@
https://repo.md-5.net/content/groups/public/
+
+
+ krypton
+ https://repo.kryptonmc.org/releases
+
+
codemc-repo
https://repo.codemc.org/repository/maven-public
@@ -194,6 +200,14 @@
+
+
+ me.neznamy
+ tab-api
+ 4.0.2
+ provided
+
+
com.github.TownyAdvanced
@@ -223,7 +237,7 @@
1.16.8.1.1
provided
-
+
com.github.TechFortress
diff --git a/pvpmanager/src/main/java/me/chancesd/pvpmanager/PvPManager.java b/pvpmanager/src/main/java/me/chancesd/pvpmanager/PvPManager.java
index 834f32fb..7acd1e47 100644
--- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/PvPManager.java
+++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/PvPManager.java
@@ -15,6 +15,7 @@
import me.chancesd.pvpmanager.command.Tag;
import me.chancesd.pvpmanager.command.Untag;
import me.chancesd.pvpmanager.library.metrics.CustomMetrics;
+import me.chancesd.pvpmanager.listener.BlockedActionsListener;
import me.chancesd.pvpmanager.listener.EntityListener;
import me.chancesd.pvpmanager.listener.EntityListener1_9;
import me.chancesd.pvpmanager.listener.PlayerListener;
@@ -97,6 +98,7 @@ private void startListeners() {
registerListener(new PlayerListener1_11(playerHandler));
}
registerListener(new PlayerListener(playerHandler));
+ registerListener(new BlockedActionsListener(playerHandler));
dependencyManager.startListeners(this);
}
@@ -111,7 +113,7 @@ private void registerCommands() {
registerCommand(getCommand("pvptag"), new Tag(playerHandler));
registerCommand(getCommand("untag"), new Untag(playerHandler));
registerCommand(getCommand("announce"), new Announce());
- registerCommand(getCommand("pvpglobal"), new PvPGlobal());
+ registerCommand(getCommand("pvpglobal"), new PvPGlobal(playerHandler));
}
private void startMetrics() {
@@ -132,7 +134,7 @@ public ConfigManager getConfigM() {
return configM;
}
- public PlayerManager getPlayerHandler() {
+ public PlayerManager getPlayerManager() {
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 066b6495..cd3f75ea 100644
--- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Newbie.java
+++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Newbie.java
@@ -17,7 +17,7 @@
import me.chancesd.pvpmanager.player.CombatPlayer;
import me.chancesd.pvpmanager.setting.Lang;
import me.chancesd.pvpmanager.setting.Permissions;
-import me.chancesd.pvpmanager.setting.Settings;
+import me.chancesd.pvpmanager.setting.Conf;
import me.chancesd.pvpmanager.utils.ChatUtils;
import me.chancesd.pvpmanager.utils.CombatUtils;
@@ -41,7 +41,7 @@ public final boolean onCommand(final CommandSender sender, final Command command
return true;
} else if (args.length >= 1) {
final String subcommand = args[0];
- if (Settings.isNewbieDisableAllowed() && subcommand.equalsIgnoreCase("disable") && sender instanceof final Player player) {
+ if (Conf.NEWBIE_ALLOW_DISABLE.asBool() && subcommand.equalsIgnoreCase("disable") && sender instanceof final Player player) {
final CombatPlayer combatPlayer = ph.get(player);
if (combatPlayer.isNewbie()) {
combatPlayer.setNewbie(false);
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 2874029b..0bd6435e 100644
--- a/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PM.java
+++ b/pvpmanager/src/main/java/me/chancesd/pvpmanager/command/PM.java
@@ -9,6 +9,7 @@
import java.util.concurrent.TimeUnit;
import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@@ -31,7 +32,7 @@
import me.chancesd.pvpmanager.setting.Locale;
import me.chancesd.pvpmanager.setting.Lang;
import me.chancesd.pvpmanager.setting.Permissions;
-import me.chancesd.pvpmanager.setting.Settings;
+import me.chancesd.pvpmanager.setting.Conf;
import me.chancesd.pvpmanager.storage.DatabaseConfigBuilder.DatabaseType;
import me.chancesd.pvpmanager.storage.fields.UserDataFields;
import me.chancesd.pvpmanager.utils.ChatUtils;
@@ -60,8 +61,8 @@ public PM(final PvPManager plugin) {
@Override
public final boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) {
- if (args.length == 0 && sender.hasPermission("pvpmanager.menu")) {
- Settings.helpMenu(sender);
+ if (args.length == 0 && Permissions.COMMAND_MENU.hasPerm(sender)) {
+ helpMenu(sender);
return true;
}
if (args.length == 1) {
@@ -81,7 +82,7 @@ public final boolean onCommand(final CommandSender sender, final Command cmd, fi
} else if (args[0].equalsIgnoreCase(CONVERT) && Permissions.ADMIN.hasPerm(sender)) {
convert(sender, args);
return true;
- } else if (args[0].equalsIgnoreCase(DEBUG) && sender.hasPermission("pvpmanager.debug")) {
+ } else if (args[0].equalsIgnoreCase(DEBUG) && Permissions.COMMAND_DEBUG.hasPerm(sender)) {
debug(sender, args);
return true;
} else if (args[0].equalsIgnoreCase(LOCALE) && Permissions.ADMIN.hasPerm(sender)) {
@@ -172,31 +173,31 @@ private void convert(final CommandSender sender, final String[] args) {
private void debug(final CommandSender sender, final String[] args) {
CombatPlayer p = null;
if (args.length == 2 && sender instanceof final Player player) {
- p = plugin.getPlayerHandler().get(player);
+ p = plugin.getPlayerManager().get(player);
}
if (args.length == 2 && args[1].equalsIgnoreCase("toggle")) {
- Settings.setDEBUG(!Settings.isDebug());
- Log.info("Debug mode: " + Settings.isDebug());
- sender.sendMessage("Debug mode: " + Settings.isDebug());
+ Conf.setDebug(!Conf.DEBUG_MODE.asBool());
+ Log.info("Debug mode: " + Conf.DEBUG_MODE.asBool());
+ sender.sendMessage("Debug mode: " + Conf.DEBUG_MODE.asBool());
} else if (args.length == 2 && args[1].equalsIgnoreCase("damagedebug")) {
if (damageListener == null) {
sender.sendMessage("§4Warning §f- Some plugin features are disabled while in this mode");
sender.sendMessage("Enabling a damage listener for debugging, check the console for details on every entity hit");
sender.sendMessage("§cRun this command again §fafter you are done to disable debugging or reload the plugin");
- Settings.setDEBUG(true);
- damageListener = new DebugEntityListener(plugin.getPlayerHandler());
+ Conf.setDebug(true);
+ damageListener = new DebugEntityListener(plugin.getPlayerManager());
HandlerList.unregisterAll(plugin.getEntityListener());
Bukkit.getServer().getPluginManager().registerEvents(damageListener, plugin);
} else {
HandlerList.unregisterAll(damageListener);
Bukkit.getServer().getPluginManager().registerEvents(plugin.getEntityListener(), plugin);
damageListener = null;
- Settings.setDEBUG(false);
+ Conf.setDebug(false);
sender.sendMessage("Debug damage listener disabled");
}
} else if (args[1].equalsIgnoreCase("tagall")) {
- for (final CombatPlayer player : plugin.getPlayerHandler().getPlayers().values()) {
- player.setTagged(true, player);
+ for (final CombatPlayer player : plugin.getPlayerManager().getPlayers().values()) {
+ player.tag(true, player);
}
sender.sendMessage("Tagged all players");
} else if (args.length == 3) {
@@ -204,24 +205,24 @@ private void debug(final CommandSender sender, final String[] args) {
sender.sendMessage("§4Player not online!");
return;
}
- p = plugin.getPlayerHandler().get(Bukkit.getPlayer(args[2]));
+ p = plugin.getPlayerManager().get(Bukkit.getPlayer(args[2]));
}
if (p == null)
return;
if (args[1].equalsIgnoreCase("tag")) {
- p.setTagged(true, p);
+ p.tag(true, p);
} else if (args[1].equalsIgnoreCase("attack")) {
plugin.getServer().getPluginManager()
.callEvent(new EntityDamageByEntityEvent(p.getPlayer(), p.getPlayer(), DamageCause.ENTITY_ATTACK,
DamageSource.builder(DamageType.PLAYER_ATTACK).build(), 5.0));
sender.sendMessage("Attacked player with 5 damage");
} else if (args[1].equalsIgnoreCase("players")) {
- for (final CombatPlayer player : plugin.getPlayerHandler().getPlayers().values()) {
+ for (final CombatPlayer player : plugin.getPlayerManager().getPlayers().values()) {
if (!Bukkit.getOnlinePlayers().contains(player.getPlayer())) {
Log.info("UUID: " + player.getUUID() + " - Name: " + player.getName() + " - Metadata: " + player.getPlayer().hasMetadata("NPC"));
}
}
- Log.info("Players: " + plugin.getPlayerHandler().getPlayers().size() + "/" + Bukkit.getOnlinePlayers().size());
+ Log.info("Players: " + plugin.getPlayerManager().getPlayers().size() + "/" + Bukkit.getOnlinePlayers().size());
}
}
@@ -244,7 +245,7 @@ private void locale(final CommandSender sender, final String[] args) {
return;
}
- Settings.setLocale(locale.name());
+ Conf.LOCALE.set(locale.name());
changeConfigSetting("General.Locale", locale.name());
Lang.setup(plugin);
sender.sendMessage(Lang.PREFIXMSG + " §aLanguage changed to " + Lang.getLocale() + " - Filename: " + Lang.getLocale().fileName());
@@ -257,7 +258,7 @@ private void changeConfigSetting(final String path, final String value) {
}
private void reload(final CommandSender sender) {
- if (!sender.hasPermission("pvpmanager.reload")) {
+ if (!Permissions.COMMAND_RELOAD.hasPerm(sender)) {
sender.sendMessage(Lang.ERROR_PERMISSION.msg());
return;
}
@@ -268,21 +269,21 @@ private void reload(final CommandSender sender) {
private void reload(final boolean silent) {
Log.setSilent(silent);
- Settings.setReloading(true);
- Settings.setUpdate(false);
+ plugin.setReloading(true);
+ plugin.getUpdateManager().setUpdateAvailable(false);
plugin.onDisable();
ScheduleUtils.cancelAllTasks();
HandlerList.unregisterAll(plugin);
plugin.onEnable();
- Settings.setReloading(false);
+ plugin.setReloading(false);
if (silent)
Log.setSilent(false);
}
private void update(final CommandSender sender) {
- if (Settings.isUpdateCheck()) {
+ if (Conf.CHECK_UPDATES.asBool()) {
final UpdateManager updateManager = plugin.getUpdateManager();
- if (Settings.isUpdate()) {
+ if (updateManager.hasUpdateAvailable()) {
if (updateManager.getUpdater().downloadFile()) {
sender.sendMessage("§2Update Successful. On next restart you will have §e" + updateManager.getNewVersion());
} else {
@@ -310,4 +311,27 @@ public List onTabComplete(final CommandSender sender, final Command comm
return Collections.emptyList();
}
+ public static void helpMenu(final CommandSender player) {
+ player.sendMessage(ChatColor.GOLD + "-------------- PvPManager Help Page --------------");
+ player.sendMessage(ChatColor.GOLD + "/pvp [player]" + helpSeparator() + ChatColor.WHITE + "Set PvP enabled or disabled");
+ player.sendMessage(ChatColor.GOLD + "/pvpinfo [player]" + helpSeparator() + ChatColor.WHITE + "Check your or other player info");
+ player.sendMessage(ChatColor.GOLD + "/pvplist [offline]" + helpSeparator() + ChatColor.WHITE + "List all online or offline players");
+ player.sendMessage(ChatColor.GOLD + "/pvpo " + helpSeparator() + ChatColor.WHITE + "Override all PvP protections");
+ player.sendMessage(ChatColor.GOLD + "/pvpstatus [player]" + helpSeparator() + ChatColor.WHITE + "Check your or other player PvP status");
+ player.sendMessage(ChatColor.GOLD + "/pvpglobal " + helpSeparator() + ChatColor.WHITE + "Toggle PvP for the whole server");
+ player.sendMessage(ChatColor.GOLD + "/pvptag