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