diff --git a/src/main/java/me/youhavetrouble/preventstabby/PreventStabby.java b/src/main/java/me/youhavetrouble/preventstabby/PreventStabby.java index f4fd38f..33b628f 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/PreventStabby.java +++ b/src/main/java/me/youhavetrouble/preventstabby/PreventStabby.java @@ -6,6 +6,7 @@ import me.youhavetrouble.preventstabby.hooks.PlacoholderApiHook; import me.youhavetrouble.preventstabby.hooks.WorldGuardHook; import me.youhavetrouble.preventstabby.players.PlayerManager; import me.youhavetrouble.preventstabby.players.SmartCache; +import me.youhavetrouble.preventstabby.util.PluginMessages; import me.youhavetrouble.preventstabby.util.PreventStabbyListener; import me.youhavetrouble.preventstabby.util.DatabaseSQLite; import lombok.Getter; @@ -96,7 +97,7 @@ public final class PreventStabby extends JavaPlugin { public void reloadPluginConfig(CommandSender commandSender) { getServer().getScheduler().runTaskAsynchronously(this, () -> { reloadPluginConfig(); - commandSender.sendMessage("PreventStabby configuration reloaded."); + PluginMessages.sendMessage(commandSender, "PreventStabby configuration reloaded."); }); } diff --git a/src/main/java/me/youhavetrouble/preventstabby/commands/HelpCommand.java b/src/main/java/me/youhavetrouble/preventstabby/commands/HelpCommand.java index e3faf0f..05e2eed 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/commands/HelpCommand.java +++ b/src/main/java/me/youhavetrouble/preventstabby/commands/HelpCommand.java @@ -8,7 +8,7 @@ import java.util.ArrayList; import java.util.List; public class HelpCommand { - + // TODO change this to be 1 component when transitioning to adventure public static void help(CommandSender sender, String[] args) { Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> { List helpPage = new ArrayList<>(); diff --git a/src/main/java/me/youhavetrouble/preventstabby/commands/MainCommand.java b/src/main/java/me/youhavetrouble/preventstabby/commands/MainCommand.java index 862e317..6dbb4c0 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/commands/MainCommand.java +++ b/src/main/java/me/youhavetrouble/preventstabby/commands/MainCommand.java @@ -7,6 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; import org.bukkit.entity.Player; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -28,35 +29,35 @@ public class MainCommand implements TabExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (sender.hasPermission("preventstabby.command")) { - if (args.length >= 1) { - switch (args[0].toLowerCase()) { - case "help": - HelpCommand.help(sender, args); - break; - case "toggle": - PvpToggleCommand.toggle(sender, args); - break; - case "on": - case "enable": - PvpToggleCommand.enable(sender, args); - break; - case "off": - case "disable": - PvpToggleCommand.disable(sender, args); - break; - case "reload": - ReloadCommand.reload(sender); - break; - default: - sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getNo_such_command())); - break; - } - } else { - HelpCommand.help(sender, args); + if (!sender.hasPermission("preventstabby.command")) { + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission()); + return true; + } + if (args.length >= 1) { + switch (args[0].toLowerCase()) { + case "help": + HelpCommand.help(sender, args); + break; + case "toggle": + PvpToggleCommand.toggle(sender, args); + break; + case "on": + case "enable": + PvpToggleCommand.enable(sender, args); + break; + case "off": + case "disable": + PvpToggleCommand.disable(sender, args); + break; + case "reload": + ReloadCommand.reload(sender); + break; + default: + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_such_command()); + break; } } else { - sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getNo_permission())); + HelpCommand.help(sender, args); } return true; } diff --git a/src/main/java/me/youhavetrouble/preventstabby/commands/PvpToggleCommand.java b/src/main/java/me/youhavetrouble/preventstabby/commands/PvpToggleCommand.java index 808dd81..a9d21a9 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/commands/PvpToggleCommand.java +++ b/src/main/java/me/youhavetrouble/preventstabby/commands/PvpToggleCommand.java @@ -4,7 +4,6 @@ import me.youhavetrouble.preventstabby.PreventStabby; import me.youhavetrouble.preventstabby.util.CombatTimer; import me.youhavetrouble.preventstabby.util.PluginMessages; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -13,64 +12,60 @@ public class PvpToggleCommand { public static void toggle(CommandSender sender, String[] args) { Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> { if (!sender.hasPermission("preventstabby.command.toggle")) { - String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission()); - sender.sendMessage(message); + PluginMessages.parseMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission()); return; } if (args.length == 1) { if (sender instanceof Player) { Player player = (Player) sender; - if (CombatTimer.isInCombat(player.getUniqueId())) { - sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat())); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat()); return; } - boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId()); - String message = ""; + String message; if (currentState) { - message = PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getPvp_enabled()); + message = PluginMessages.parseMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_enabled()); } else { - message = PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getPvp_disabled()); + message = PluginMessages.parseMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_disabled()); } - player.sendMessage(message); + PluginMessages.sendMessage(sender, message); } else { - sender.sendMessage("Try /pvp toggle "); + PluginMessages.sendMessage(sender, "Try /pvp toggle "); } } else if (args.length == 2) { if (!sender.hasPermission("preventstabby.command.toggle.others")) { - String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission()); - sender.sendMessage(message); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission()); return; } if (sender instanceof Player) { Player player = (Player) sender; if (CombatTimer.isInCombat(player.getUniqueId())) { - sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat())); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat()); return; } } - try { - Player player = Bukkit.getPlayer(args[1]); - boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId()); - String message; - if (currentState) { - message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other(); - } else { - message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other(); - } - sender.sendMessage(PluginMessages.parsePlayerName(player, message)); - } catch (NullPointerException e) { - sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline.")); + Player player = Bukkit.getPlayer(args[1]); + if (player == null) { + PluginMessages.sendMessage(sender, "&cPlayer offline."); + return; } + boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId()); + String message; + if (currentState) { + message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other(); + } else { + message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other(); + } + PluginMessages.sendMessage(sender, PluginMessages.parsePlayerName(player, message)); } else { if (sender.hasPermission("preventstabby.command.toggle.others")) { - sender.sendMessage("Try /pvp toggle "); + PluginMessages.sendMessage(sender, "Try /pvp toggle "); } else { - sender.sendMessage("Try /pvp toggle"); + PluginMessages.sendMessage(sender, "Try /pvp toggle"); } } }); @@ -78,98 +73,93 @@ public class PvpToggleCommand { public static void enable(CommandSender sender, String[] args) { if (!sender.hasPermission("preventstabby.command.toggle")) { - String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission()); - sender.sendMessage(message); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission()); return; } if (args.length == 1) { if (sender instanceof Player) { Player player = (Player) sender; if (CombatTimer.isInCombat(player.getUniqueId())) { - sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat())); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat()); return; } PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true); - String message = PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getPvp_enabled()); - player.sendMessage(message); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_enabled()); } else { - sender.sendMessage("Try /pvp enable "); + PluginMessages.sendMessage(sender, "Try /pvp enable "); } } else if (args.length == 2) { if (!sender.hasPermission("preventstabby.command.toggle.others")) { - String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission()); - sender.sendMessage(message); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission()); return; } if (sender instanceof Player) { Player player = (Player) sender; if (CombatTimer.isInCombat(player.getUniqueId())) { - sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat())); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat()); return; } } - try { - Player player = Bukkit.getPlayer(args[1]); - String message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other(); - sender.sendMessage(PluginMessages.parsePlayerName(player, message)); - PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true); - } catch (NullPointerException e) { - sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline.")); + Player player = Bukkit.getPlayer(args[1]); + if (player == null) { + PluginMessages.sendMessage(sender, PluginMessages.parseMessage("&cPlayer offline.")); + return; } + String message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other(); + PluginMessages.sendMessage(sender, PluginMessages.parsePlayerName(player, message)); + PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true); } else { if (sender.hasPermission("preventstabby.command.toggle.others")) { - sender.sendMessage("Try /pvp enable "); + PluginMessages.sendMessage(sender, "Try /pvp enable "); } else { - sender.sendMessage("Try /pvp enable"); + PluginMessages.sendMessage(sender, "Try /pvp enable"); } } } public static void disable(CommandSender sender, String[] args) { if (!sender.hasPermission("preventstabby.command.toggle")) { - String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission()); - sender.sendMessage(message); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission()); return; } if (args.length == 1) { if (sender instanceof Player) { Player player = (Player) sender; if (CombatTimer.isInCombat(player.getUniqueId())) { - sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat())); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat()); return; } PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), false); - String message = PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getPvp_disabled()); - player.sendMessage(message); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_disabled()); } else { - sender.sendMessage("Try /pvp disable "); + PluginMessages.sendMessage(sender, "Try /pvp disable "); } } else if (args.length == 2) { if (!sender.hasPermission("preventstabby.command.toggle.others")) { - String message = PreventStabby.getPlugin().getConfigCache().getNo_permission(); - sender.sendMessage(message); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission()); return; } if (sender instanceof Player) { Player player = (Player) sender; if (CombatTimer.isInCombat(player.getUniqueId())) { - sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat())); + PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat()); return; } } - try { - Player player = Bukkit.getPlayer(args[1]); - String message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other(); - sender.sendMessage(PluginMessages.parsePlayerName(player, message)); - PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true); - } catch (NullPointerException e) { - sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline.")); + Player player = Bukkit.getPlayer(args[1]); + if (player == null) { + PluginMessages.sendMessage(sender, PluginMessages.parseMessage("&cPlayer offline.")); + return; } + String message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other(); + PluginMessages.sendMessage(sender, PluginMessages.parsePlayerName(player, message)); + PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true); + } else { if (sender.hasPermission("preventstabby.command.toggle.others")) { - sender.sendMessage("Try /pvp disable "); + PluginMessages.sendMessage(sender, "Try /pvp disable "); } else { - sender.sendMessage("Try /pvp disable"); + PluginMessages.sendMessage(sender, "Try /pvp disable"); } } } diff --git a/src/main/java/me/youhavetrouble/preventstabby/commands/ReloadCommand.java b/src/main/java/me/youhavetrouble/preventstabby/commands/ReloadCommand.java index 6daaca0..9ea034a 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/commands/ReloadCommand.java +++ b/src/main/java/me/youhavetrouble/preventstabby/commands/ReloadCommand.java @@ -1,8 +1,8 @@ package me.youhavetrouble.preventstabby.commands; import me.youhavetrouble.preventstabby.PreventStabby; +import me.youhavetrouble.preventstabby.util.PluginMessages; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; public class ReloadCommand { @@ -10,8 +10,7 @@ public class ReloadCommand { public static void reload(CommandSender sender) { Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> { if (!sender.hasPermission("preventstabby.command.reload")) { - String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission()); - sender.sendMessage(message); + PluginMessages.parseMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission()); return; } PreventStabby.getPlugin().reloadPluginConfig(sender); diff --git a/src/main/java/me/youhavetrouble/preventstabby/hooks/WorldGuardHook.java b/src/main/java/me/youhavetrouble/preventstabby/hooks/WorldGuardHook.java index 3a40976..8cf614d 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/hooks/WorldGuardHook.java +++ b/src/main/java/me/youhavetrouble/preventstabby/hooks/WorldGuardHook.java @@ -55,6 +55,7 @@ public class WorldGuardHook { RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer(); RegionQuery query = container.createQuery(); org.bukkit.Location loc = player.getLocation(); + if (loc.getWorld() == null) return false; LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player); ApplicableRegionSet set = query.getApplicableRegions(new Location(BukkitAdapter.adapt(loc.getWorld()), loc.getX(), loc.getY(), loc.getZ())); return set.testState(localPlayer, FORCE_PVP_FLAG); diff --git a/src/main/java/me/youhavetrouble/preventstabby/util/PluginMessages.java b/src/main/java/me/youhavetrouble/preventstabby/util/PluginMessages.java index 0474b5a..bb28917 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/util/PluginMessages.java +++ b/src/main/java/me/youhavetrouble/preventstabby/util/PluginMessages.java @@ -7,6 +7,7 @@ import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.UUID; @@ -17,19 +18,27 @@ public class PluginMessages { return ChatColor.translateAlternateColorCodes('&', message); } - public static void sendMessage(Player player, String message) { - if (PreventStabby.getPlugin().getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) { + public static String parseMessage(CommandSender sender,String message) { + + if (sender instanceof Player && isPlaceholderApiEnabled()) { + Player player = (Player) sender; message = PlaceholderAPI.setPlaceholders(player, message); } - message = ChatColor.translateAlternateColorCodes('&', message); - player.sendMessage(message); + return ChatColor.translateAlternateColorCodes('&', message); + } + + private static boolean isPlaceholderApiEnabled() { + return PreventStabby.getPlugin().getServer().getPluginManager().getPlugin("PlaceholderAPI") != null; + } + + public static void sendMessage(CommandSender sender, String message) { + message = parseMessage(sender, message); + sender.sendMessage(message); } public static void sendActionBar(Player player, String message) { // TODO use adventure - if (PreventStabby.getPlugin().getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) { - message = PlaceholderAPI.setPlaceholders(player, message); - } + message = parseMessage(player, message); BaseComponent[] component = TextComponent.fromLegacyText(parseMessage(message)); player.spigot().sendMessage(ChatMessageType.ACTION_BAR, component); }