diff --git a/src/main/java/mineverse/Aust1n46/chat/MineverseChat.java b/src/main/java/mineverse/Aust1n46/chat/MineverseChat.java index 4fd902a..f2b366e 100644 --- a/src/main/java/mineverse/Aust1n46/chat/MineverseChat.java +++ b/src/main/java/mineverse/Aust1n46/chat/MineverseChat.java @@ -95,7 +95,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { else { Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Config found! Loading file.")); } - saveResource("example_config_always_up_to_date!.yml", true); } catch(Exception ex) { @@ -107,6 +106,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { if(!setupPermissions() || !setupChat()) { Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - &cCould not find Vault and/or a Vault compatible permissions plugin!")); Bukkit.getPluginManager().disablePlugin(this); + return; } initializeConfigReaders(); @@ -245,7 +245,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { Alias.initialize(); JsonFormat.initialize(); GuiSlot.initialize(); - ChatChannel.initialize(false); + ChatChannel.initialize(); } public static Chat getVaultChat() { diff --git a/src/main/java/mineverse/Aust1n46/chat/channel/ChatChannel.java b/src/main/java/mineverse/Aust1n46/chat/channel/ChatChannel.java index 436826a..d87188d 100644 --- a/src/main/java/mineverse/Aust1n46/chat/channel/ChatChannel.java +++ b/src/main/java/mineverse/Aust1n46/chat/channel/ChatChannel.java @@ -22,8 +22,6 @@ import mineverse.Aust1n46.chat.utilities.Format; public class ChatChannel { private static final String PERMISSION_PREFIX = "venturechat."; private static final String NO_PERMISSIONS = "venturechat.none"; - - private static boolean aliasesRegisteredAsCommands; private static MineverseChat plugin = MineverseChat.getInstance(); private static ChatChannel defaultChatChannel; @@ -52,9 +50,8 @@ public class ChatChannel { /** * Read chat channels from config file and initialize channel array. */ - public static void initialize(boolean aliasesRegisteredAsCommands) { + public static void initialize() { chatChannels = new HashMap(); - ChatChannel.aliasesRegisteredAsCommands = aliasesRegisteredAsCommands; ConfigurationSection cs = plugin.getConfig().getConfigurationSection("channels"); int len = (cs.getKeys(false)).size(); channels = new ChatChannel[len]; @@ -95,10 +92,6 @@ public class ChatChannel { chatChannels.put("md", defaultChatChannel); } } - - public static boolean areAliasesRegisteredAsCommands() { - return aliasesRegisteredAsCommands; - } /** * Get array of chat channels. diff --git a/src/main/java/mineverse/Aust1n46/chat/command/ChannelAlias.java b/src/main/java/mineverse/Aust1n46/chat/command/ChannelAlias.java new file mode 100644 index 0000000..8cae523 --- /dev/null +++ b/src/main/java/mineverse/Aust1n46/chat/command/ChannelAlias.java @@ -0,0 +1,68 @@ +package mineverse.Aust1n46.chat.command; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import mineverse.Aust1n46.chat.MineverseChat; +import mineverse.Aust1n46.chat.api.MineverseChatAPI; +import mineverse.Aust1n46.chat.api.MineverseChatPlayer; +import mineverse.Aust1n46.chat.channel.ChatChannel; +import mineverse.Aust1n46.chat.localization.LocalizedMessage; + +public class ChannelAlias extends Command { + private MineverseChat plugin = MineverseChat.getInstance(); + + public ChannelAlias() { + super("channelalias"); + } + + @Override + public boolean execute(final CommandSender sender, final String commandLabel, final String[] args) { + if (!(sender instanceof Player)) { + plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + for (ChatChannel channel : ChatChannel.getChatChannels()) { + if (commandLabel.toLowerCase().equals(channel.getAlias())) { + if (args.length == 0) { + mcp.getPlayer() + .sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName())); + if (mcp.hasConversation()) { + for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if (p.isSpy()) { + p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", mcp.getName()) + .replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName())); + } + } + mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString().replace("{player_receiver}", + MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName())); + mcp.setConversation(null); + } + mcp.addListening(channel.getName()); + mcp.setCurrentChannel(channel); + if (channel.getBungee()) { + MineverseChat.synchronize(mcp, true); + } + return true; + } else { + mcp.setQuickChat(true); + mcp.setQuickChannel(channel); + mcp.addListening(channel.getName()); + if (channel.getBungee()) { + MineverseChat.synchronize(mcp, true); + } + String msg = ""; + for (int x = 0; x < args.length; x++) { + if (args[x].length() > 0) + msg += " " + args[x]; + } + mcp.getPlayer().chat(msg); + return true; + } + } + } + return true; + } +} diff --git a/src/main/java/mineverse/Aust1n46/chat/command/VentureCommand.java b/src/main/java/mineverse/Aust1n46/chat/command/VentureCommand.java deleted file mode 100644 index 29f5c14..0000000 --- a/src/main/java/mineverse/Aust1n46/chat/command/VentureCommand.java +++ /dev/null @@ -1,17 +0,0 @@ -package mineverse.Aust1n46.chat.command; - -import java.util.List; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; - -/** - * Interface for the plugin's commands. - */ -public interface VentureCommand { - public void execute(CommandSender sender, String command, String[] args); - - public default List onTabComplete(CommandSender sender, Command command, String label, String[] args) { - return null; - } -} diff --git a/src/main/java/mineverse/Aust1n46/chat/command/VentureCommandExecutor.java b/src/main/java/mineverse/Aust1n46/chat/command/VentureCommandExecutor.java index f9d8b99..acd57f9 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/VentureCommandExecutor.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/VentureCommandExecutor.java @@ -1,25 +1,21 @@ package mineverse.Aust1n46.chat.command; import java.io.File; -import java.lang.reflect.Constructor; import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import org.bukkit.Server; import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.PluginCommand; import org.bukkit.command.SimpleCommandMap; -import org.bukkit.command.TabExecutor; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.Plugin; import mineverse.Aust1n46.chat.MineverseChat; +import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.command.chat.Broadcast; import mineverse.Aust1n46.chat.command.chat.BungeeToggle; import mineverse.Aust1n46.chat.command.chat.Channel; @@ -63,26 +59,12 @@ import mineverse.Aust1n46.chat.utilities.Format; /** * Class that initializes and executes the plugin's commands. */ -public class VentureCommandExecutor implements TabExecutor { +public class VentureCommandExecutor { private static final String VERSION = "3.3.0"; - private static final Map commands = new HashMap<>(); + private static final Map commands = new HashMap<>(); private static final MineverseChat plugin = MineverseChat.getInstance(); - private static VentureCommandExecutor commandExecutor; private static Map knownCommands; - private static Constructor pluginCommandConstructor; - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] parameters) { - commands.get(command.getName()).execute(sender, command.getName(), parameters); - command.execute(sender, label, parameters); - return true; - } - - @Override - public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { - return commands.get(command.getName()).onTabComplete(sender, command, label, args); - } @SuppressWarnings("unchecked") public static void initialize() { @@ -112,15 +94,11 @@ public class VentureCommandExecutor implements TabExecutor { knownCommandsField.setAccessible(true); knownCommands = (Map) knownCommandsField.get(simpleCommandMap); } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) { + server.getConsoleSender() + .sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Unable to access CommandMap on Spigot. If this issue persists, try using Paper.")); e.printStackTrace(); } } - try { - pluginCommandConstructor = PluginCommand.class.getDeclaredConstructor(String.class, Plugin.class); - pluginCommandConstructor.setAccessible(true); - } catch (NoSuchMethodException | SecurityException e) { - e.printStackTrace(); - } commands.put("broadcast", new Broadcast()); commands.put("channel", new Channel()); commands.put("channelinfo", new Channelinfo()); @@ -159,46 +137,43 @@ public class VentureCommandExecutor implements TabExecutor { commands.put("reply", new Reply()); commands.put("message", new Message()); commands.put("ignore", new Ignore()); + final ChannelAlias channelAlias = new ChannelAlias(); + for (final ChatChannel chatChannel : ChatChannel.getChatChannels()) { + final String alias = chatChannel.getAlias(); + commands.put(alias, channelAlias); + } final ConfigurationSection commandsSection = commandsFileConfiguration.getConfigurationSection("commands"); - for (final String commandLabel : commandsSection.getKeys(false)) { - final ConfigurationSection commandSection = commandsSection.getConfigurationSection(commandLabel); + for (final String commandName : commandsSection.getKeys(false)) { + final ConfigurationSection commandSection = commandsSection.getConfigurationSection(commandName); final boolean isEnabled = commandSection.getBoolean("enabled", true); if (!isEnabled) { - commands.remove(commandLabel); + commands.remove(commandName); } else { - final VentureCommand command = commands.get(commandLabel); + final Command command = commands.get(commandName); if (command != null) { final List aliases = commandSection.getStringList("aliases"); for (final String alias : aliases) { commands.put(alias, command); } - commands.put("venturechat:" + commandLabel, command); + commands.put("venturechat:" + commandName, command); } } } - commandExecutor = new VentureCommandExecutor(); // Initial registration is required to ensure commands are recognized by the // server after enabling every plugin - for (final String command : commands.keySet()) { - registerCommand(command, commandExecutor); + for (final Entry commandEntry : commands.entrySet()) { + registerCommand(commandEntry.getKey(), commandEntry.getValue()); } // Forcibly re-register enabled VentureChat commands on a delay to ensure they // have priority server.getScheduler().runTaskLater(plugin, () -> { - for (final String command : commands.keySet()) { - registerCommand(command, commandExecutor); + for (final Entry commandEntry : commands.entrySet()) { + registerCommand(commandEntry.getKey(), commandEntry.getValue()); } }, 10); } - private static void registerCommand(String command, TabExecutor tabExecutor) { - try { - final PluginCommand pluginCommand = pluginCommandConstructor.newInstance(command, plugin); - pluginCommand.setExecutor(tabExecutor); - pluginCommand.setTabCompleter(tabExecutor); - knownCommands.put(command, pluginCommand); - } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); - } + public static void registerCommand(final String commandLabel, final Command command) { + knownCommands.put(commandLabel, command); } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Broadcast.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Broadcast.java index b4ff692..cb2d29d 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Broadcast.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Broadcast.java @@ -1,41 +1,44 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.ChatColor; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.configuration.ConfigurationSection; import mineverse.Aust1n46.chat.MineverseChat; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.utilities.Format; -public class Broadcast implements VentureCommand { - private MineverseChat plugin = MineverseChat.getInstance(); +public class Broadcast extends Command { + private MineverseChat plugin = MineverseChat.getInstance(); - @Override - public void execute(CommandSender sender, String command, String[] args) { - ConfigurationSection bs = plugin.getConfig().getConfigurationSection("broadcast"); - String broadcastColor = bs.getString("color", "white"); - String broadcastPermissions = bs.getString("permissions", "None"); - String broadcastDisplayTag = Format.FormatStringAll(bs.getString("displaytag", "[Broadcast]")); - if (broadcastPermissions.equalsIgnoreCase("None") || sender.hasPermission(broadcastPermissions)) { - if (args.length > 0) { - String bc = ""; - for (int x = 0; x < args.length; x++) { - if (args[x].length() > 0) bc += args[x] + " "; - } - bc = Format.FormatStringAll(bc); - Format.broadcastToServer(broadcastDisplayTag + ChatColor.valueOf(broadcastColor.toUpperCase()) + " " + bc); - return; - } else { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/broadcast") - .replace("{args}", "[msg]")); - return; - } - } else { - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } - } + public Broadcast() { + super("broadcast"); + } + + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + ConfigurationSection bs = plugin.getConfig().getConfigurationSection("broadcast"); + String broadcastColor = bs.getString("color", "white"); + String broadcastPermissions = bs.getString("permissions", "None"); + String broadcastDisplayTag = Format.FormatStringAll(bs.getString("displaytag", "[Broadcast]")); + if (broadcastPermissions.equalsIgnoreCase("None") || sender.hasPermission(broadcastPermissions)) { + if (args.length > 0) { + String bc = ""; + for (int x = 0; x < args.length; x++) { + if (args[x].length() > 0) + bc += args[x] + " "; + } + bc = Format.FormatStringAll(bc); + Format.broadcastToServer(broadcastDisplayTag + ChatColor.valueOf(broadcastColor.toUpperCase()) + " " + bc); + return true; + } else { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/broadcast").replace("{args}", "[msg]")); + return true; + } + } else { + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/BungeeToggle.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/BungeeToggle.java index 9469516..455b82c 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/BungeeToggle.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/BungeeToggle.java @@ -1,37 +1,40 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.Bukkit; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class BungeeToggle implements VentureCommand { +public class BungeeToggle extends Command { + public BungeeToggle() { + super("bungeetoggle"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (mcp.getPlayer().hasPermission("venturechat.bungeetoggle")) { - if (!mcp.getBungeeToggle()) { - mcp.setBungeeToggle(true); - mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_ON.toString()); - MineverseChat.synchronize(mcp, true); - return; - } - mcp.setBungeeToggle(false); - mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_OFF.toString()); - MineverseChat.synchronize(mcp, true); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (mcp.getPlayer().hasPermission("venturechat.bungeetoggle")) { + if (!mcp.getBungeeToggle()) { + mcp.setBungeeToggle(true); + mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_ON.toString()); + MineverseChat.synchronize(mcp, true); + return true; + } + mcp.setBungeeToggle(false); + mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_OFF.toString()); + MineverseChat.synchronize(mcp, true); + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Channel.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Channel.java index 491d9c2..2c11c4e 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Channel.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Channel.java @@ -1,6 +1,7 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.Bukkit; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -12,67 +13,64 @@ import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.events.ChannelJoinEvent; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Channel implements VentureCommand, Listener { +public class Channel extends Command implements Listener { + public Channel() { + super("channel"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (args.length > 0) { - if (!ChatChannel.isChannel(args[0])) { - mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() - .replace("{args}", args[0])); - return; - } - ChatChannel channel = ChatChannel.getChannel(args[0]); - Bukkit.getServer().getPluginManager().callEvent(new ChannelJoinEvent(mcp.getPlayer(), channel, LocalizedMessage.SET_CHANNEL.toString() - .replace("{channel_color}", channel.getColor() + "") - .replace("{channel_name}", channel.getName()))); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/channel") - .replace("{args}", "[channel]")); - return; - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (args.length > 0) { + if (!ChatChannel.isChannel(args[0])) { + mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0])); + return true; + } + ChatChannel channel = ChatChannel.getChannel(args[0]); + Bukkit.getServer().getPluginManager().callEvent(new ChannelJoinEvent(mcp.getPlayer(), channel, + LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName()))); + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/channel").replace("{args}", "[channel]")); + return true; + } - @EventHandler(priority = EventPriority.MONITOR) - public void onChannelJoin(ChannelJoinEvent event) { - if (event.isCancelled()) - return; - ChatChannel channel = event.getChannel(); - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer()); - if (channel.hasPermission()) { - if (!mcp.getPlayer().hasPermission(channel.getPermission())) { - mcp.removeListening(channel.getName()); - mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION.toString()); - return; - } - } - if (mcp.hasConversation()) { - for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if (p.isSpy()) { - p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() - .replace("{player_sender}", mcp.getName()) - .replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName())); - } - } - mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString() - .replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName())); - mcp.setConversation(null); - } - mcp.addListening(channel.getName()); - mcp.setCurrentChannel(channel); - mcp.getPlayer().sendMessage(event.getMessage()); - if (channel.getBungee()) { - MineverseChat.synchronize(mcp, true); - } - return; - } + @EventHandler(priority = EventPriority.MONITOR) + public void onChannelJoin(ChannelJoinEvent event) { + if (event.isCancelled()) + return; + ChatChannel channel = event.getChannel(); + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer()); + if (channel.hasPermission()) { + if (!mcp.getPlayer().hasPermission(channel.getPermission())) { + mcp.removeListening(channel.getName()); + mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION.toString()); + return; + } + } + if (mcp.hasConversation()) { + for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if (p.isSpy()) { + p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", mcp.getName()).replace("{player_receiver}", + MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName())); + } + } + mcp.getPlayer().sendMessage( + LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString().replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName())); + mcp.setConversation(null); + } + mcp.addListening(channel.getName()); + mcp.setCurrentChannel(channel); + mcp.getPlayer().sendMessage(event.getMessage()); + if (channel.getBungee()) { + MineverseChat.synchronize(mcp, true); + } + return; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Channelinfo.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Channelinfo.java index 9db5440..4199f6a 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Channelinfo.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Channelinfo.java @@ -1,64 +1,68 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.ChatColor; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.utilities.Format; -public class Channelinfo implements VentureCommand { +public class Channelinfo extends Command { + public Channelinfo() { + super("channelinfo"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.channelinfo")) { - if (args.length < 1) { - sender.sendMessage(ChatColor.RED + "Invalid command: /channelinfo [channel]"); - return; - } - ChatChannel chname = ChatChannel.getChannel(args[0]); - if (chname == null) { - sender.sendMessage(ChatColor.RED + "Invalid channel: " + args[0]); - return; - } - if (chname.hasPermission()) { - if (!sender.hasPermission(chname.getPermission())) { - sender.sendMessage(ChatColor.RED + "You do not have permission to look at this channel."); - return; - } - } - sender.sendMessage(ChatColor.GOLD + "Channel: " + chname.getColor() + chname.getName()); - sender.sendMessage(ChatColor.GOLD + "Alias: " + chname.getColor() + chname.getAlias()); - sender.sendMessage(ChatColor.GOLD + "Color: " + chname.getColor() + chname.getColorRaw()); - sender.sendMessage(ChatColor.GOLD + "ChatColor: " + (chname.getChatColor().equalsIgnoreCase("None") ? Format.DEFAULT_COLOR_CODE : chname.getChatColor()) + chname.getChatColorRaw()); - if (chname.hasPermission()) { - sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + chname.getPermission()); - } else { - sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + "None"); - } - if (chname.hasSpeakPermission()) { - sender.sendMessage(ChatColor.GOLD + "Speak Permission: " + chname.getColor() + chname.getSpeakPermission()); - } else { - sender.sendMessage(ChatColor.GOLD + "Speak Permission: " + chname.getColor() + "None"); - } - sender.sendMessage(ChatColor.GOLD + "Autojoin: " + chname.getColor() + chname.getAutojoin()); - sender.sendMessage(ChatColor.GOLD + "Default: " + chname.getColor() + chname.hasDistance()); - if (!chname.hasDistance() || chname.getBungee()) { - sender.sendMessage(ChatColor.GOLD + "Distance: " + ChatColor.RED + "N/A"); - } else { - sender.sendMessage(ChatColor.GOLD + "Distance: " + chname.getColor() + chname.getDistance()); - } - if (!chname.hasCooldown()) { - sender.sendMessage(ChatColor.GOLD + "Cooldown: " + ChatColor.RED + "N/A"); - } else { - sender.sendMessage(ChatColor.GOLD + "Cooldown: " + chname.getColor() + chname.getCooldown()); - } - sender.sendMessage(ChatColor.GOLD + "Bungeecord: " + chname.getColor() + chname.getBungee()); - sender.sendMessage(ChatColor.GOLD + "Format: " + chname.getColor() + chname.getFormat()); - return; - } else { - sender.sendMessage(ChatColor.RED + "You do not have permission for this command."); - return; - } - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.channelinfo")) { + if (args.length < 1) { + sender.sendMessage(ChatColor.RED + "Invalid command: /channelinfo [channel]"); + return true; + } + ChatChannel chname = ChatChannel.getChannel(args[0]); + if (chname == null) { + sender.sendMessage(ChatColor.RED + "Invalid channel: " + args[0]); + return true; + } + if (chname.hasPermission()) { + if (!sender.hasPermission(chname.getPermission())) { + sender.sendMessage(ChatColor.RED + "You do not have permission to look at this channel."); + return true; + } + } + sender.sendMessage(ChatColor.GOLD + "Channel: " + chname.getColor() + chname.getName()); + sender.sendMessage(ChatColor.GOLD + "Alias: " + chname.getColor() + chname.getAlias()); + sender.sendMessage(ChatColor.GOLD + "Color: " + chname.getColor() + chname.getColorRaw()); + sender.sendMessage(ChatColor.GOLD + "ChatColor: " + (chname.getChatColor().equalsIgnoreCase("None") ? Format.DEFAULT_COLOR_CODE : chname.getChatColor()) + + chname.getChatColorRaw()); + if (chname.hasPermission()) { + sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + chname.getPermission()); + } else { + sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + "None"); + } + if (chname.hasSpeakPermission()) { + sender.sendMessage(ChatColor.GOLD + "Speak Permission: " + chname.getColor() + chname.getSpeakPermission()); + } else { + sender.sendMessage(ChatColor.GOLD + "Speak Permission: " + chname.getColor() + "None"); + } + sender.sendMessage(ChatColor.GOLD + "Autojoin: " + chname.getColor() + chname.getAutojoin()); + sender.sendMessage(ChatColor.GOLD + "Default: " + chname.getColor() + chname.hasDistance()); + if (!chname.hasDistance() || chname.getBungee()) { + sender.sendMessage(ChatColor.GOLD + "Distance: " + ChatColor.RED + "N/A"); + } else { + sender.sendMessage(ChatColor.GOLD + "Distance: " + chname.getColor() + chname.getDistance()); + } + if (!chname.hasCooldown()) { + sender.sendMessage(ChatColor.GOLD + "Cooldown: " + ChatColor.RED + "N/A"); + } else { + sender.sendMessage(ChatColor.GOLD + "Cooldown: " + chname.getColor() + chname.getCooldown()); + } + sender.sendMessage(ChatColor.GOLD + "Bungeecord: " + chname.getColor() + chname.getBungee()); + sender.sendMessage(ChatColor.GOLD + "Format: " + chname.getColor() + chname.getFormat()); + return true; + } else { + sender.sendMessage(ChatColor.RED + "You do not have permission for this command."); + return true; + } + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Chatinfo.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Chatinfo.java index 481f4e3..fac03b1 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Chatinfo.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Chatinfo.java @@ -2,136 +2,140 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.command.mute.MuteContainer; -public class Chatinfo implements VentureCommand { +public class Chatinfo extends Command { + public Chatinfo() { + super("chatinfo"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.chatinfo")) { - if (args.length == 0) { - if (!(sender instanceof Player)) { - Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player; use /ci [name]"); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - String listen = ""; - String mute = ""; - String blockedcommands = ""; - if (args.length < 1) { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Player: " + ChatColor.GREEN + mcp.getName()); - for (String c : mcp.getListening()) { - ChatChannel channel = ChatChannel.getChannel(c); - listen += channel.getColor() + channel.getName() + " "; - } - for (MuteContainer muteContainer : mcp.getMutes()) { - ChatChannel channel = ChatChannel.getChannel(muteContainer.getChannel()); - mute += channel.getColor() + channel.getName() + " "; - } - for (String bc : mcp.getBlockedCommands()) { - blockedcommands += bc + " "; - } - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Listening: " + listen); - if (mute.length() > 0) { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Mutes: " + mute); - } else { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Mutes: " + ChatColor.RED + "N/A"); - } - if (blockedcommands.length() > 0) { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + blockedcommands); - } else { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + "N/A"); - } - if (mcp.hasConversation()) { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.GREEN + MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()); - } else { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.RED + "N/A"); - } - if (mcp.isSpy()) { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.GREEN + "true"); - } else { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.RED + "false"); - } - if (mcp.hasCommandSpy()) { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.GREEN + "true"); - } else { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.RED + "false"); - } - if (mcp.hasFilter()) { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.GREEN + "true"); - } else { - mcp.getPlayer().sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.RED + "false"); - } - return; - } - } - if (sender.hasPermission("venturechat.chatinfo.others")) { - String listen = ""; - String mute = ""; - String blockedcommands = ""; - MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(args[0]); - if (p == null) { - sender.sendMessage(ChatColor.RED + "Player: " + ChatColor.GOLD + args[0] + ChatColor.RED + " is not online."); - return; - } - sender.sendMessage(ChatColor.GOLD + "Player: " + ChatColor.GREEN + p.getName()); - for (String c : p.getListening()) { - ChatChannel channel = ChatChannel.getChannel(c); - listen += channel.getColor() + channel.getName() + " "; - } - for (MuteContainer muteContainer : p.getMutes()) { - ChatChannel channel = ChatChannel.getChannel(muteContainer.getChannel()); - mute += channel.getColor() + channel.getName() + " "; - } - for (String bc : p.getBlockedCommands()) { - blockedcommands += bc + " "; - } - sender.sendMessage(ChatColor.GOLD + "Listening: " + listen); - if (mute.length() > 0) { - sender.sendMessage(ChatColor.GOLD + "Mutes: " + mute); - } else { - sender.sendMessage(ChatColor.GOLD + "Mutes: " + ChatColor.RED + "N/A"); - } - if (blockedcommands.length() > 0) { - sender.sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + blockedcommands); - } else { - sender.sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + "N/A"); - } - if (p.hasConversation()) { - sender.sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.GREEN + MineverseChatAPI.getMineverseChatPlayer(p.getConversation()).getName()); - } else { - sender.sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.RED + "N/A"); - } - if (p.isSpy()) { - sender.sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.GREEN + "true"); - } else { - sender.sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.RED + "false"); - } - if (p.hasCommandSpy()) { - sender.sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.GREEN + "true"); - } else { - sender.sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.RED + "false"); - } - if (p.hasFilter()) { - sender.sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.GREEN + "true"); - } else { - sender.sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.RED + "false"); - } - return; - } else { - sender.sendMessage(ChatColor.RED + "You do not have permission to check the chat info of others."); - } - return; - } else { - sender.sendMessage(ChatColor.RED + "You do not have permission for this command."); - return; - } - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.chatinfo")) { + if (args.length == 0) { + if (!(sender instanceof Player)) { + Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player; use /ci [name]"); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + String listen = ""; + String mute = ""; + String blockedcommands = ""; + if (args.length < 1) { + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Player: " + ChatColor.GREEN + mcp.getName()); + for (String c : mcp.getListening()) { + ChatChannel channel = ChatChannel.getChannel(c); + listen += channel.getColor() + channel.getName() + " "; + } + for (MuteContainer muteContainer : mcp.getMutes()) { + ChatChannel channel = ChatChannel.getChannel(muteContainer.getChannel()); + mute += channel.getColor() + channel.getName() + " "; + } + for (String bc : mcp.getBlockedCommands()) { + blockedcommands += bc + " "; + } + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Listening: " + listen); + if (mute.length() > 0) { + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Mutes: " + mute); + } else { + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Mutes: " + ChatColor.RED + "N/A"); + } + if (blockedcommands.length() > 0) { + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + blockedcommands); + } else { + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + "N/A"); + } + if (mcp.hasConversation()) { + mcp.getPlayer().sendMessage( + ChatColor.GOLD + "Private conversation: " + ChatColor.GREEN + MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()); + } else { + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.RED + "N/A"); + } + if (mcp.isSpy()) { + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.GREEN + "true"); + } else { + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.RED + "false"); + } + if (mcp.hasCommandSpy()) { + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.GREEN + "true"); + } else { + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.RED + "false"); + } + if (mcp.hasFilter()) { + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.GREEN + "true"); + } else { + mcp.getPlayer().sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.RED + "false"); + } + return true; + } + } + if (sender.hasPermission("venturechat.chatinfo.others")) { + String listen = ""; + String mute = ""; + String blockedcommands = ""; + MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(args[0]); + if (p == null) { + sender.sendMessage(ChatColor.RED + "Player: " + ChatColor.GOLD + args[0] + ChatColor.RED + " is not online."); + return true; + } + sender.sendMessage(ChatColor.GOLD + "Player: " + ChatColor.GREEN + p.getName()); + for (String c : p.getListening()) { + ChatChannel channel = ChatChannel.getChannel(c); + listen += channel.getColor() + channel.getName() + " "; + } + for (MuteContainer muteContainer : p.getMutes()) { + ChatChannel channel = ChatChannel.getChannel(muteContainer.getChannel()); + mute += channel.getColor() + channel.getName() + " "; + } + for (String bc : p.getBlockedCommands()) { + blockedcommands += bc + " "; + } + sender.sendMessage(ChatColor.GOLD + "Listening: " + listen); + if (mute.length() > 0) { + sender.sendMessage(ChatColor.GOLD + "Mutes: " + mute); + } else { + sender.sendMessage(ChatColor.GOLD + "Mutes: " + ChatColor.RED + "N/A"); + } + if (blockedcommands.length() > 0) { + sender.sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + blockedcommands); + } else { + sender.sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + "N/A"); + } + if (p.hasConversation()) { + sender.sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.GREEN + MineverseChatAPI.getMineverseChatPlayer(p.getConversation()).getName()); + } else { + sender.sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.RED + "N/A"); + } + if (p.isSpy()) { + sender.sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.GREEN + "true"); + } else { + sender.sendMessage(ChatColor.GOLD + "Spy: " + ChatColor.RED + "false"); + } + if (p.hasCommandSpy()) { + sender.sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.GREEN + "true"); + } else { + sender.sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.RED + "false"); + } + if (p.hasFilter()) { + sender.sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.GREEN + "true"); + } else { + sender.sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.RED + "false"); + } + return true; + } else { + sender.sendMessage(ChatColor.RED + "You do not have permission to check the chat info of others."); + } + return true; + } else { + sender.sendMessage(ChatColor.RED + "You do not have permission for this command."); + return true; + } + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Chatreload.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Chatreload.java index 038b7b8..47e6106 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Chatreload.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Chatreload.java @@ -3,37 +3,42 @@ package mineverse.Aust1n46.chat.command.chat; import java.util.UUID; import org.bukkit.Bukkit; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.database.PlayerData; import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.utilities.Format; -public class Chatreload implements VentureCommand { +public class Chatreload extends Command { private MineverseChat plugin = MineverseChat.getInstance(); + public Chatreload() { + super("chatreload"); + } + @Override - public void execute(CommandSender sender, String command, String[] args) { - if(sender.hasPermission("venturechat.reload")) { + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.reload")) { PlayerData.savePlayerData(); MineverseChatAPI.clearMineverseChatPlayerMap(); MineverseChatAPI.clearNameMap(); MineverseChatAPI.clearOnlineMineverseChatPlayerMap(); - + plugin.reloadConfig(); MineverseChat.initializeConfigReaders(); - + PlayerData.loadLegacyPlayerData(); PlayerData.loadPlayerData(); - for(Player p : plugin.getServer().getOnlinePlayers()) { + for (Player p : plugin.getServer().getOnlinePlayers()) { MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(p); - if(mcp == null) { - Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Could not find player data post reload for currently online player: " + p.getName())); + if (mcp == null) { + Bukkit.getConsoleSender() + .sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Could not find player data post reload for currently online player: " + p.getName())); Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - There could be an issue with your player data saving.")); String name = p.getName(); UUID uuid = p.getUniqueId(); @@ -45,16 +50,16 @@ public class Chatreload implements VentureCommand { MineverseChatAPI.addMineverseChatOnlinePlayerToMap(mcp); MineverseChatAPI.addNameToMap(mcp); } - - Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Config reloaded")); - for(MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if(player.getPlayer().hasPermission("venturechat.reload")) { + + Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Config reloaded")); + for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if (player.getPlayer().hasPermission("venturechat.reload")) { player.getPlayer().sendMessage(LocalizedMessage.CONFIG_RELOADED.toString()); } } - return; + return true; } sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; + return true; } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Chlist.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Chlist.java index 09cbd01..669cad4 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Chlist.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Chlist.java @@ -1,31 +1,30 @@ package mineverse.Aust1n46.chat.command.chat; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Chlist implements VentureCommand { +public class Chlist extends Command { + public Chlist() { + super("chlist"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - sender.sendMessage(LocalizedMessage.CHANNEL_LIST_HEADER.toString()); - for (ChatChannel chname : ChatChannel.getChatChannels()) { - if (chname.hasPermission()) { - if (sender.hasPermission(chname.getPermission())) { - sender.sendMessage(LocalizedMessage.CHANNEL_LIST_WITH_PERMISSIONS.toString() - .replace("{channel_color}", (chname.getColor()).toString()) - .replace("{channel_name}", chname.getName()) - .replace("{channel_alias}", chname.getAlias())); - } - } else { - sender.sendMessage(LocalizedMessage.CHANNEL_LIST.toString() - .replace("{channel_color}", chname.getColor().toString()) - .replace("{channel_name}", chname.getName()) - .replace("{channel_alias}", chname.getAlias())); - } - } - return; - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + sender.sendMessage(LocalizedMessage.CHANNEL_LIST_HEADER.toString()); + for (ChatChannel chname : ChatChannel.getChatChannels()) { + if (chname.hasPermission()) { + if (sender.hasPermission(chname.getPermission())) { + sender.sendMessage(LocalizedMessage.CHANNEL_LIST_WITH_PERMISSIONS.toString().replace("{channel_color}", (chname.getColor()).toString()) + .replace("{channel_name}", chname.getName()).replace("{channel_alias}", chname.getAlias())); + } + } else { + sender.sendMessage(LocalizedMessage.CHANNEL_LIST.toString().replace("{channel_color}", chname.getColor().toString()).replace("{channel_name}", chname.getName()) + .replace("{channel_alias}", chname.getAlias())); + } + } + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Chwho.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Chwho.java index e8d1183..518c855 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Chwho.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Chwho.java @@ -7,6 +7,7 @@ import java.io.DataOutputStream; import org.bukkit.ChatColor; import org.bukkit.Location; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.PluginManager; @@ -19,188 +20,187 @@ import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Chwho implements VentureCommand { - private MineverseChat plugin = MineverseChat.getInstance(); +public class Chwho extends Command { + private MineverseChat plugin = MineverseChat.getInstance(); - @Override - public void execute(CommandSender sender, String command, String[] args) { - String playerlist = ""; - if (sender.hasPermission("venturechat.chwho")) { - if (args.length > 0) { - ChatChannel channel = ChatChannel.getChannel(args[0]); - if (channel != null) { - if (channel.hasPermission()) { - if (!sender.hasPermission(channel.getPermission())) { - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(((Player) sender)); - mcp.removeListening(channel.getName()); - mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION_VIEW.toString()); - return; - } - } + public Chwho() { + super("chwho"); + } - if (channel.getBungee() && sender instanceof Player) { - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); - DataOutputStream out = new DataOutputStream(byteOutStream); - try { - out.writeUTF("Chwho"); - out.writeUTF("Get"); - out.writeUTF(mcp.getUUID().toString()); - out.writeUTF(channel.getName()); - mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - return; - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + String playerlist = ""; + if (sender.hasPermission("venturechat.chwho")) { + if (args.length > 0) { + ChatChannel channel = ChatChannel.getChannel(args[0]); + if (channel != null) { + if (channel.hasPermission()) { + if (!sender.hasPermission(channel.getPermission())) { + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(((Player) sender)); + mcp.removeListening(channel.getName()); + mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION_VIEW.toString()); + return true; + } + } - PluginManager pluginManager = plugin.getServer().getPluginManager(); - long linecount = LINE_LENGTH; - for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if (p.getListening().contains(channel.getName())) { - if (sender instanceof Player) { - if (!((Player) sender).canSee(p.getPlayer())) { - continue; - } - } - if (channel.hasDistance() && sender instanceof Player) { - if (!this.isPlayerWithinDistance((Player) sender, p.getPlayer(), channel.getDistance())) { - continue; - } - } - if (plugin.getConfig().getBoolean("enable_towny_channel") && pluginManager.isPluginEnabled("Towny") && sender instanceof Player) { - try { - TownyUniverse towny = TownyUniverse.getInstance(); - if (channel.getName().equalsIgnoreCase("Town")) { - Resident r = towny.getResident(p.getName()); - Resident pp = towny.getResident(((Player) sender).getName()); - if (!pp.hasTown()) { - if (playerlist.length() + p.getName().length() > linecount) { - playerlist += "\n"; - linecount = linecount + LINE_LENGTH; - } - if (!p.isMuted(channel.getName())) { - playerlist += ChatColor.WHITE + p.getName(); - } else { - playerlist += ChatColor.RED + p.getName(); - } - playerlist += ChatColor.WHITE + ", "; - break; - } else if (!r.hasTown()) { - continue; - } else if (!(r.getTown().getName().equals(pp.getTown().getName()))) { - continue; - } - } - if (channel.getName().equalsIgnoreCase("Nation")) { - Resident r = towny.getResident(p.getName()); - Resident pp = towny.getResident(((Player) sender).getName()); - if (!pp.hasNation()) { - if (playerlist.length() + p.getName().length() > linecount) { - playerlist += "\n"; - linecount = linecount + LINE_LENGTH; - } - if (!p.isMuted(channel.getName())) { - playerlist += ChatColor.WHITE + p.getName(); - } else { - playerlist += ChatColor.RED + p.getName(); - } - playerlist += ChatColor.WHITE + ", "; - break; - } else if (!r.hasNation()) { - continue; - } else if (!(r.getTown().getNation().getName().equals(pp.getTown().getNation().getName()))) { - continue; - } - } - } catch (Exception ex) { - ex.printStackTrace(); - } - } - if (plugin.getConfig().getBoolean("enable_factions_channel") && pluginManager.isPluginEnabled("Factions") && sender instanceof Player) { - try { - if (channel.getName().equalsIgnoreCase("Faction")) { - MPlayer mplayer = MPlayer.get(p.getPlayer()); - MPlayer mplayerp = MPlayer.get((Player) sender); - if (!mplayerp.hasFaction()) { - if (playerlist.length() + p.getName().length() > linecount) { - playerlist += "\n"; - linecount = linecount + LINE_LENGTH; - } - if (!p.isMuted(channel.getName())) { - playerlist += ChatColor.WHITE + p.getName(); - } else { - playerlist += ChatColor.RED + p.getName(); - } - playerlist += ChatColor.WHITE + ", "; - break; - } else if (!mplayerp.hasFaction()) { - continue; - } else if (!(mplayer.getFactionName().equals(mplayerp.getFactionName()))) { - continue; - } - } - } catch (Exception ex) { - ex.printStackTrace(); - } - } - if (playerlist.length() + p.getName().length() > linecount) { - playerlist += "\n"; - linecount = linecount + LINE_LENGTH; - } - if (!p.isMuted(channel.getName())) { - playerlist += ChatColor.WHITE + p.getName(); - } else { - playerlist += ChatColor.RED + p.getName(); - } - playerlist += ChatColor.WHITE + ", "; - } - } - if (playerlist.length() > 2) { - playerlist = playerlist.substring(0, playerlist.length() - 2); - } - sender.sendMessage(LocalizedMessage.CHANNEL_PLAYER_LIST_HEADER.toString() - .replace("{channel_color}", (channel.getColor()).toString()) - .replace("{channel_name}", channel.getName())); - sender.sendMessage(playerlist); - return; - } else { - sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() - .replace("{args}", args[0])); - return; - } - } else { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/chwho") - .replace("{args}", "[channel]")); - return; - } - } else { - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } - } + if (channel.getBungee() && sender instanceof Player) { + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(byteOutStream); + try { + out.writeUTF("Chwho"); + out.writeUTF("Get"); + out.writeUTF(mcp.getUUID().toString()); + out.writeUTF(channel.getName()); + mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return true; + } - private boolean isPlayerWithinDistance(Player p1, Player p2, double Distance) { - Double chDistance = Distance; - Location locreceip; - Location locsender = p1.getLocation(); - Location diff; - if (chDistance > (double) 0) { - locreceip = p2.getLocation(); - if (locreceip.getWorld() == p1.getWorld()) { - diff = locreceip.subtract(locsender); - if (Math.abs(diff.getX()) > chDistance || Math.abs(diff.getZ()) > chDistance || Math.abs(diff.getY()) > chDistance) { - return false; - } - } else { - return false; - } - } - return true; - } + PluginManager pluginManager = plugin.getServer().getPluginManager(); + long linecount = LINE_LENGTH; + for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if (p.getListening().contains(channel.getName())) { + if (sender instanceof Player) { + if (!((Player) sender).canSee(p.getPlayer())) { + continue; + } + } + if (channel.hasDistance() && sender instanceof Player) { + if (!this.isPlayerWithinDistance((Player) sender, p.getPlayer(), channel.getDistance())) { + continue; + } + } + if (plugin.getConfig().getBoolean("enable_towny_channel") && pluginManager.isPluginEnabled("Towny") && sender instanceof Player) { + try { + TownyUniverse towny = TownyUniverse.getInstance(); + if (channel.getName().equalsIgnoreCase("Town")) { + Resident r = towny.getResident(p.getName()); + Resident pp = towny.getResident(((Player) sender).getName()); + if (!pp.hasTown()) { + if (playerlist.length() + p.getName().length() > linecount) { + playerlist += "\n"; + linecount = linecount + LINE_LENGTH; + } + if (!p.isMuted(channel.getName())) { + playerlist += ChatColor.WHITE + p.getName(); + } else { + playerlist += ChatColor.RED + p.getName(); + } + playerlist += ChatColor.WHITE + ", "; + break; + } else if (!r.hasTown()) { + continue; + } else if (!(r.getTown().getName().equals(pp.getTown().getName()))) { + continue; + } + } + if (channel.getName().equalsIgnoreCase("Nation")) { + Resident r = towny.getResident(p.getName()); + Resident pp = towny.getResident(((Player) sender).getName()); + if (!pp.hasNation()) { + if (playerlist.length() + p.getName().length() > linecount) { + playerlist += "\n"; + linecount = linecount + LINE_LENGTH; + } + if (!p.isMuted(channel.getName())) { + playerlist += ChatColor.WHITE + p.getName(); + } else { + playerlist += ChatColor.RED + p.getName(); + } + playerlist += ChatColor.WHITE + ", "; + break; + } else if (!r.hasNation()) { + continue; + } else if (!(r.getTown().getNation().getName().equals(pp.getTown().getNation().getName()))) { + continue; + } + } + } catch (Exception ex) { + ex.printStackTrace(); + } + } + if (plugin.getConfig().getBoolean("enable_factions_channel") && pluginManager.isPluginEnabled("Factions") && sender instanceof Player) { + try { + if (channel.getName().equalsIgnoreCase("Faction")) { + MPlayer mplayer = MPlayer.get(p.getPlayer()); + MPlayer mplayerp = MPlayer.get((Player) sender); + if (!mplayerp.hasFaction()) { + if (playerlist.length() + p.getName().length() > linecount) { + playerlist += "\n"; + linecount = linecount + LINE_LENGTH; + } + if (!p.isMuted(channel.getName())) { + playerlist += ChatColor.WHITE + p.getName(); + } else { + playerlist += ChatColor.RED + p.getName(); + } + playerlist += ChatColor.WHITE + ", "; + break; + } else if (!mplayerp.hasFaction()) { + continue; + } else if (!(mplayer.getFactionName().equals(mplayerp.getFactionName()))) { + continue; + } + } + } catch (Exception ex) { + ex.printStackTrace(); + } + } + if (playerlist.length() + p.getName().length() > linecount) { + playerlist += "\n"; + linecount = linecount + LINE_LENGTH; + } + if (!p.isMuted(channel.getName())) { + playerlist += ChatColor.WHITE + p.getName(); + } else { + playerlist += ChatColor.RED + p.getName(); + } + playerlist += ChatColor.WHITE + ", "; + } + } + if (playerlist.length() > 2) { + playerlist = playerlist.substring(0, playerlist.length() - 2); + } + sender.sendMessage(LocalizedMessage.CHANNEL_PLAYER_LIST_HEADER.toString().replace("{channel_color}", (channel.getColor()).toString()).replace("{channel_name}", + channel.getName())); + sender.sendMessage(playerlist); + return true; + } else { + sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0])); + return true; + } + } else { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/chwho").replace("{args}", "[channel]")); + return true; + } + } else { + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } + } + + private boolean isPlayerWithinDistance(Player p1, Player p2, double Distance) { + Double chDistance = Distance; + Location locreceip; + Location locsender = p1.getLocation(); + Location diff; + if (chDistance > (double) 0) { + locreceip = p2.getLocation(); + if (locreceip.getWorld() == p1.getWorld()) { + diff = locreceip.subtract(locsender); + if (Math.abs(diff.getX()) > chDistance || Math.abs(diff.getZ()) > chDistance || Math.abs(diff.getY()) > chDistance) { + return false; + } + } else { + return false; + } + } + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Clearchat.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Clearchat.java index ef0f2e3..37ae1e5 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Clearchat.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Clearchat.java @@ -1,29 +1,32 @@ package mineverse.Aust1n46.chat.command.chat; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.InternalMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Clearchat implements VentureCommand { +public class Clearchat extends Command { + public Clearchat() { + super("clearchat"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.clearchat")) { - for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if (!player.getPlayer().hasPermission("venturechat.clearchat.bypass")) { - for (int a = 1; a <= 20; a++) - player.getPlayer().sendMessage(InternalMessage.EMPTY_STRING.toString()); - player.getPlayer().sendMessage(LocalizedMessage.CLEAR_CHAT_SERVER.toString()); - } - } - sender.sendMessage(LocalizedMessage.CLEAR_CHAT_SENDER.toString()); - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.clearchat")) { + for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if (!player.getPlayer().hasPermission("venturechat.clearchat.bypass")) { + for (int a = 1; a <= 20; a++) + player.getPlayer().sendMessage(InternalMessage.EMPTY_STRING.toString()); + player.getPlayer().sendMessage(LocalizedMessage.CLEAR_CHAT_SERVER.toString()); + } + } + sender.sendMessage(LocalizedMessage.CLEAR_CHAT_SENDER.toString()); + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Commandblock.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Commandblock.java index a90d38b..d1b4bfd 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Commandblock.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Commandblock.java @@ -2,57 +2,53 @@ package mineverse.Aust1n46.chat.command.chat; import java.util.List; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Commandblock implements VentureCommand { - private MineverseChat plugin = MineverseChat.getInstance(); +public class Commandblock extends Command { + private MineverseChat plugin = MineverseChat.getInstance(); - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.commandblock")) { - if (args.length > 1) { - MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]); - if (player == null) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - boolean match = false; - for (String cb : (List) plugin.getConfig().getStringList("blockablecommands")) - if (args[1].equals("/" + cb)) - match = true; - if (match || player.isBlockedCommand(args[1])) { - if (!player.isBlockedCommand(args[1])) { - player.addBlockedCommand(args[1]); - player.getPlayer().sendMessage(LocalizedMessage.BLOCK_COMMAND_PLAYER.toString() - .replace("{command}", args[1])); - sender.sendMessage(LocalizedMessage.BLOCK_COMMAND_SENDER.toString() - .replace("{player}", player.getName()) - .replace("{command}", args[1])); - return; - } - player.removeBlockedCommand(args[1]); - player.getPlayer().sendMessage(LocalizedMessage.UNBLOCK_COMMAND_PLAYER.toString() - .replace("{command}", args[1])); - sender.sendMessage(LocalizedMessage.UNBLOCK_COMMAND_SENDER.toString() - .replace("{player}", player.getName()) - .replace("{command}", args[1])); - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NOT_BLOCKABLE.toString()); - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/commandblock") - .replace("{args}", "[player] [command]")); - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + public Commandblock() { + super("commandblock"); + } + + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.commandblock")) { + if (args.length > 1) { + MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]); + if (player == null) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return true; + } + boolean match = false; + for (String cb : (List) plugin.getConfig().getStringList("blockablecommands")) + if (args[1].equals("/" + cb)) + match = true; + if (match || player.isBlockedCommand(args[1])) { + if (!player.isBlockedCommand(args[1])) { + player.addBlockedCommand(args[1]); + player.getPlayer().sendMessage(LocalizedMessage.BLOCK_COMMAND_PLAYER.toString().replace("{command}", args[1])); + sender.sendMessage(LocalizedMessage.BLOCK_COMMAND_SENDER.toString().replace("{player}", player.getName()).replace("{command}", args[1])); + return true; + } + player.removeBlockedCommand(args[1]); + player.getPlayer().sendMessage(LocalizedMessage.UNBLOCK_COMMAND_PLAYER.toString().replace("{command}", args[1])); + sender.sendMessage(LocalizedMessage.UNBLOCK_COMMAND_SENDER.toString().replace("{player}", player.getName()).replace("{command}", args[1])); + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_NOT_BLOCKABLE.toString()); + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/commandblock").replace("{args}", "[player] [command]")); + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Commandspy.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Commandspy.java index 3e86d15..4469ffa 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Commandspy.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Commandspy.java @@ -1,33 +1,37 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.Bukkit; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Commandspy implements VentureCommand { +public class Commandspy extends Command { + public Commandspy() { + super("commandspy"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (mcp.getPlayer().hasPermission("venturechat.commandspy")) { - if (!mcp.hasCommandSpy()) { - mcp.setCommandSpy(true); - mcp.getPlayer().sendMessage(LocalizedMessage.COMMANDSPY_ON.toString()); - return; - } - mcp.setCommandSpy(false); - mcp.getPlayer().sendMessage(LocalizedMessage.COMMANDSPY_OFF.toString()); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (mcp.getPlayer().hasPermission("venturechat.commandspy")) { + if (!mcp.hasCommandSpy()) { + mcp.setCommandSpy(true); + mcp.getPlayer().sendMessage(LocalizedMessage.COMMANDSPY_ON.toString()); + return true; + } + mcp.setCommandSpy(false); + mcp.getPlayer().sendMessage(LocalizedMessage.COMMANDSPY_OFF.toString()); + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Config.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Config.java index ef20a85..0d3cf15 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Config.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Config.java @@ -4,1172 +4,1193 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.MineverseChat; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.utilities.Format; -public class Config implements VentureCommand { - private MineverseChat plugin = MineverseChat.getInstance(); +public class Config extends Command { + private MineverseChat plugin = MineverseChat.getInstance(); - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.edit")) { - try { - switch (args[0]) { - case "filters": { - try { - switch (args[1]) { - case "page": { - try { - if (Integer.parseInt(args[2]) > 0) { - plugin.reloadConfig(); - List filters = plugin.getConfig().getStringList("filters"); - sender.sendMessage(ChatColor.RED + "List of filters page: " + args[2]); - for (int a = 0 + (Integer.parseInt(args[2]) - 1) * 97; a <= Integer.parseInt(args[2]) * 97; a++) { - if (a >= filters.size()) { - break; - } - sender.sendMessage(ChatColor.GREEN + "" + filters.get(a)); - } - if (filters.size() >= Integer.parseInt(args[2]) * 97) { - int nextpage = Integer.parseInt(args[2]) + 1; - sender.sendMessage(ChatColor.RED + "/config filters page " + nextpage); - } - break; - } - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config filters page [number]"); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config filters page [number]"); - } - break; - } - case "add": { - List filters = plugin.getConfig().getStringList("filters"); - if (args[2].contains(",")) { - filters.add(args[2]); - plugin.getConfig().set("filters", filters); - sender.sendMessage(ChatColor.GREEN + "Added filter " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - sender.sendMessage(ChatColor.RED + "Invalid arguments, regex1,regex2"); - break; - } - case "remove": { - List filters = plugin.getConfig().getStringList("filters"); - if (args[2].contains(",")) { - filters.remove(args[2]); - plugin.getConfig().set("filters", filters); - sender.sendMessage(ChatColor.GREEN + "Removed filter " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - sender.sendMessage(ChatColor.RED + "Invalid arguments, regex1,regex2"); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config filters [page [number], add, remove]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config filters [page [number], add, remove]"); - } - break; - } - case "blockablecommands": { - try { - switch (args[1]) { - case "page": { - try { - if (Integer.parseInt(args[2]) > 0) { - plugin.reloadConfig(); - List blockablecommands = plugin.getConfig().getStringList("blockablecommands"); - sender.sendMessage(ChatColor.RED + "List of blockablecommands page: " + args[2]); - for (int a = 0 + (Integer.parseInt(args[2]) - 1) * 97; a <= Integer.parseInt(args[2]) * 97; a++) { - if (a >= blockablecommands.size()) { - break; - } - sender.sendMessage(ChatColor.GREEN + "" + blockablecommands.get(a)); - } - if (blockablecommands.size() >= Integer.parseInt(args[2]) * 97) { - int nextpage = Integer.parseInt(args[2]) + 1; - sender.sendMessage(ChatColor.RED + "/config blockablecommands page " + nextpage); - } - break; - } - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config blockablecommands page [number]"); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config blockablecommands page [number]"); - } - break; - } - case "add": { - List blockablecommands = plugin.getConfig().getStringList("blockablecommands"); - blockablecommands.add(args[2]); - plugin.getConfig().set("blockablecommands", blockablecommands); - sender.sendMessage(ChatColor.GREEN + "Added blockablecommand " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - case "remove": { - List blockablecommands = plugin.getConfig().getStringList("blockablecommands"); - blockablecommands.remove(args[2]); - plugin.getConfig().set("blockablecommands", blockablecommands); - sender.sendMessage(ChatColor.GREEN + "Removed blockablecommand " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config blockablecommands [page [number], add, remove]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config blockablecommands [page [number], add, remove]"); - } - break; - } - case "commandspy": { - try { - switch (args[1]) { - case "worldeditcommands": { - try { - switch (args[2]) { - case "true": { - plugin.getConfig().getConfigurationSection("commandspy").set("worldeditcommands", true); - sender.sendMessage(ChatColor.GREEN + "worldeditcommands: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - case "false": { - plugin.getConfig().getConfigurationSection("commandspy").set("worldeditcommands", false); - sender.sendMessage(ChatColor.GREEN + "worldeditcommands: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config commandspy worldeditcommands [true/false]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "worldeditcommands: " + plugin.getConfig().getConfigurationSection("commandspy").getBoolean("worldeditcommands")); - } - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config commandspy worldeditcommands"); - } - break; - } - case "antispam": { - try { - switch (args[1]) { - case "enabled": { - try { - switch (args[2]) { - case "true": { - plugin.getConfig().getConfigurationSection("antispam").set("enabled", true); - sender.sendMessage(ChatColor.GREEN + "enabled: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - case "false": { - plugin.getConfig().getConfigurationSection("antispam").set("enabled", false); - sender.sendMessage(ChatColor.GREEN + "enabled: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config antispam enabled [true/false]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "enabled: " + plugin.getConfig().getConfigurationSection("antispam").getBoolean("enabled")); - } - break; - } - case "spamnumber": { - try { - if (Integer.parseInt(args[2]) > 0) { - plugin.getConfig().getConfigurationSection("antispam").set("spamnumber", Integer.parseInt(args[2])); - sender.sendMessage(ChatColor.GREEN + "spamnumber: has been set to " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - sender.sendMessage(ChatColor.RED + "Invalid spamnumber, /config antispam spamnumber [Integer > 0]"); - break; - } catch (NumberFormatException e) { - sender.sendMessage(ChatColor.RED + "Invalid spamnumber, /config antispam [Integer > 0]"); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "spamnumber: " + plugin.getConfig().getConfigurationSection("antispam").getInt("spamnumber")); - break; - } - } - case "spamtime": { - try { - if (Integer.parseInt(args[2]) > 0) { - plugin.getConfig().getConfigurationSection("antispam").set("spamtime", Integer.parseInt(args[2])); - sender.sendMessage(ChatColor.GREEN + "spamtime: has been set to " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - sender.sendMessage(ChatColor.RED + "Invalid spamtime, /config antispam spamtime [Integer > 0]"); - break; - } catch (NumberFormatException e) { - sender.sendMessage(ChatColor.RED + "Invalid spamtime, /config antispam spamtime [Integer > 0]"); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "spamtime: " + plugin.getConfig().getConfigurationSection("antispam").getInt("spamtime")); - break; - } - } - case "mutetime": { - try { - if (Integer.parseInt(args[2]) >= 0) { - plugin.getConfig().getConfigurationSection("antispam").set("mutetime", Integer.parseInt(args[2])); - sender.sendMessage(ChatColor.GREEN + "mutetime: has been set to " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - sender.sendMessage(ChatColor.RED + "Invalid mutetime, /config antispam mutetime [Integer >= 0]"); - break; - } catch (NumberFormatException e) { - sender.sendMessage(ChatColor.RED + "Invalid mutetime, /config antispam mutetime [Integer >= 0]"); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "mutetime: " + plugin.getConfig().getConfigurationSection("antispam").getInt("mutetime")); - break; - } - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config antispam [enabled, spamnumber, spamtime, mutetime]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "enabled: " + plugin.getConfig().getConfigurationSection("antispam").getString("enabled")); - sender.sendMessage(ChatColor.GREEN + "spamnumber: " + plugin.getConfig().getConfigurationSection("antispam").getString("spamnumber")); - sender.sendMessage(ChatColor.GREEN + "spamtime: " + plugin.getConfig().getConfigurationSection("antispam").getString("spamtime")); - sender.sendMessage(ChatColor.GREEN + "mutetime: " + plugin.getConfig().getConfigurationSection("antispam").getInt("mutetime")); - } - break; - } - case "mysql": { - try { - switch (args[1]) { - case "enabled": { - try { - switch (args[2]) { - case "true": { - plugin.getConfig().getConfigurationSection("mysql").set("enabled", true); - sender.sendMessage(ChatColor.GREEN + "enabled: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - case "false": { - plugin.getConfig().getConfigurationSection("mysql").set("enabled", false); - sender.sendMessage(ChatColor.GREEN + "enabled: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config mysql enabled [true/false]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "enabled: " + plugin.getConfig().getConfigurationSection("mysql").getBoolean("enabled")); - } - break; - } - case "user": { - try { - plugin.getConfig().getConfigurationSection("mysql").set("user", args[2]); - sender.sendMessage(ChatColor.GREEN + "user: has been set to " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "user: " + plugin.getConfig().getConfigurationSection("mysql").getString("user")); - break; - } - } - case "port": { - try { - plugin.getConfig().getConfigurationSection("mysql").set("port", args[2]); - sender.sendMessage(ChatColor.GREEN + "port: has been set to " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "port: " + plugin.getConfig().getConfigurationSection("mysql").getString("port")); - break; - } - } - case "password": { - try { - plugin.getConfig().getConfigurationSection("mysql").set("password", args[2]); - sender.sendMessage(ChatColor.GREEN + "password: has been set to " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "password: " + plugin.getConfig().getConfigurationSection("mysql").getString("password")); - break; - } - } - case "host": { - try { - plugin.getConfig().getConfigurationSection("mysql").set("host", args[2]); - sender.sendMessage(ChatColor.GREEN + "host: has been set to " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "host: " + plugin.getConfig().getConfigurationSection("mysql").getString("host")); - break; - } - } - case "database": { - try { - plugin.getConfig().getConfigurationSection("mysql").set("database", args[2]); - sender.sendMessage(ChatColor.GREEN + "database: has been set to " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "database: " + plugin.getConfig().getConfigurationSection("mysql").getString("database")); - break; - } - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config mysql [enabled, user, port, password, host, database]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config mysql [enabled, user, port, password, host, database]"); - } - break; - } - case "pluginname": { - try { - plugin.getConfig().set("pluginname", args[1]); - sender.sendMessage(ChatColor.GREEN + "pluginname: has been set to " + args[1]); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "pluginname: " + plugin.getConfig().getString("pluginname")); - break; - } - } - case "loglevel": { - try { - switch (args[1]) { - case "info": { - plugin.getConfig().set("loglevel", "info"); - sender.sendMessage(ChatColor.GREEN + "loglevel: has been set to info"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - case "debug": { - plugin.getConfig().set("loglevel", "debug"); - sender.sendMessage(ChatColor.GREEN + "loglevel: has been set to debug"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - case "warning": { - plugin.getConfig().set("loglevel", "warning"); - sender.sendMessage(ChatColor.GREEN + "loglevel: has been set to warning"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - case "error": { - plugin.getConfig().set("loglevel", "error"); - sender.sendMessage(ChatColor.GREEN + "loglevel: has been set to error"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config loglevel [info, debug, warning, error]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "loglevel: " + plugin.getConfig().getString("loglevel")); - } - break; - } - case "savesenderdata": { - try { - switch (args[1]) { - case "true": { - plugin.getConfig().set("savesenderdata", true); - sender.sendMessage(ChatColor.GREEN + "saveplayerdata: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - case "false": { - plugin.getConfig().set("saveplayerdata", false); - sender.sendMessage(ChatColor.GREEN + "saveplayerdata: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config saveplayerdata [true/false]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "saveplayerdata: " + plugin.getConfig().getBoolean("saveplayerdata")); - } - break; - } - case "saveinterval": { - try { - if (Integer.parseInt(args[1]) >= 0) { - plugin.getConfig().set("saveinterval", Integer.parseInt(args[1])); - sender.sendMessage(ChatColor.GREEN + "saveinterval: has been set to " + args[1]); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - sender.sendMessage(ChatColor.RED + "Invalid saveinterval, /config saveinterval [saveinterval]"); - break; - } catch (NumberFormatException e) { - sender.sendMessage(ChatColor.RED + "Invalid saveinterval, /config saveinterval [saveinterval]"); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "saveinterval: " + plugin.getConfig().getInt("saveinterval")); - break; - } - } - case "tellcolor": { - try { - if (Format.isValidColor(args[1])) { - plugin.getConfig().set("tellcolor", args[1].toLowerCase()); - sender.sendMessage(ChatColor.GREEN + "tellcolor: has been set to " + args[1].toLowerCase()); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - sender.sendMessage(ChatColor.RED + "Invalid color, /config tellcolor [color]"); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "tellcolor: " + plugin.getConfig().getString("tellcolor")); - break; - } - } - case "vanishsupport": { - try { - switch (args[1]) { - case "true": { - plugin.getConfig().set("vanishsupport", true); - sender.sendMessage(ChatColor.GREEN + "vanishsupport: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - case "false": { - plugin.getConfig().set("vanishsupport", false); - sender.sendMessage(ChatColor.GREEN + "vanishsupport: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config vanishsupport [true/false]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "vanishsupport: " + plugin.getConfig().getBoolean("vanishsupport")); - } - break; - } - case "tellformatto": { - try { - String format = args[1] + " "; - for (int x = 2; x < args.length; x++) { - if (args[x].length() > 0) format += args[x] + " "; - } - format = format.substring(0, format.length() - 1); - plugin.getConfig().set("tellformatto", format); - sender.sendMessage(ChatColor.GREEN + "tellformatto: has been set to " + format); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "tellformatto: " + plugin.getConfig().getString("tellformatto")); - break; - } - } - case "tellformatfrom": { - try { - String format = args[1] + " "; - for (int x = 2; x < args.length; x++) { - if (args[x].length() > 0) format += args[x] + " "; - } - format = format.substring(0, format.length() - 1); - plugin.getConfig().set("tellformatfrom", format); - sender.sendMessage(ChatColor.GREEN + "tellformatfrom: has been set to " + format); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "tellformatfrom: " + plugin.getConfig().getString("tellformatfrom")); - break; - } - } - case "tellformatspy": { - try { - String format = args[1] + " "; - for (int x = 2; x < args.length; x++) { - if (args[x].length() > 0) format += args[x] + " "; - } - format = format.substring(0, format.length() - 1); - plugin.getConfig().set("tellformatspy", format); - sender.sendMessage(ChatColor.GREEN + "tellformatspy: has been set to " + format); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "tellformatspy: " + plugin.getConfig().getString("tellformatspy")); - break; - } - } - case "replyformatto": { - try { - String format = args[1] + " "; - for (int x = 2; x < args.length; x++) { - if (args[x].length() > 0) format += args[x] + " "; - } - format = format.substring(0, format.length() - 1); - plugin.getConfig().set("replyformatto", format); - sender.sendMessage(ChatColor.GREEN + "replyformatto: has been set to " + format); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "replyformatto: " + plugin.getConfig().getString("replyformatto")); - break; - } - } - case "replyformatfrom": { - try { - String format = args[1] + " "; - for (int x = 2; x < args.length; x++) { - if (args[x].length() > 0) format += args[x] + " "; - } - format = format.substring(0, format.length() - 1); - plugin.getConfig().set("replyformatfrom", format); - sender.sendMessage(ChatColor.GREEN + "replyformatfrom: has been set to " + format); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "replyformatfrom: " + plugin.getConfig().getString("replyformatfrom")); - break; - } - } - case "replyformatspy": { - try { - String format = args[1] + " "; - for (int x = 2; x < args.length; x++) { - if (args[x].length() > 0) format += args[x] + " "; - } - format = format.substring(0, format.length() - 1); - plugin.getConfig().set("replyformatspy", format); - sender.sendMessage(ChatColor.GREEN + "replyformatspy: has been set to " + format); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "replyformatspy: " + plugin.getConfig().getString("replyformatspy")); - break; - } - } - case "partyformat": { - try { - String format = args[1] + " "; - for (int x = 2; x < args.length; x++) { - if (args[x].length() > 0) format += args[x] + " "; - } - format = format.substring(0, format.length() - 1); - plugin.getConfig().set("partyformat", format); - sender.sendMessage(ChatColor.GREEN + "partyformat: has been set to " + format); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "partyformat: " + plugin.getConfig().getString("partyformat")); - break; - } - } - case "broadcastafk": { - try { - switch (args[1]) { - case "true": { - plugin.getConfig().set("broadcastafk", true); - sender.sendMessage(ChatColor.GREEN + "broadcastafk: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - case "false": { - plugin.getConfig().set("broadcastafk", false); - sender.sendMessage(ChatColor.GREEN + "broadcastafk: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config broadcastafk [true/false]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "broadcastafk: " + plugin.getConfig().getBoolean("broadcastafk")); - } - break; - } - case "formatcleaner": { - try { - switch (args[1]) { - case "true": { - plugin.getConfig().set("formatcleaner", true); - sender.sendMessage(ChatColor.GREEN + "formatcleaner: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - case "false": { - plugin.getConfig().set("formatcleaner", false); - sender.sendMessage(ChatColor.GREEN + "formatcleaner: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config formatcleaner [true/false]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "formatcleaner: " + plugin.getConfig().getBoolean("formatcleaner")); - } - break; - } - case "broadcast": { - try { - switch (args[1]) { - case "color": { - try { - if (Format.isValidColor(args[2])) { - plugin.getConfig().getConfigurationSection("broadcast").set("color", args[2].toLowerCase()); - sender.sendMessage(ChatColor.GREEN + "color: has been set to " + args[2].toLowerCase()); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - sender.sendMessage(ChatColor.RED + "Invalid color, /config broadcast color [color]"); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config broadcast color [color]"); - break; - } - } - case "permissions": { - try { - plugin.getConfig().getConfigurationSection("broadcast").set("permissions", args[2]); - sender.sendMessage(ChatColor.GREEN + "permissions: has been set to " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config broadcast permissions [permission]"); - break; - } - } - case "displaytag": { - try { - plugin.getConfig().getConfigurationSection("broadcast").set("displaytag", args[2]); - sender.sendMessage(ChatColor.GREEN + "displaytag: has been set to " + args[2]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config broadcast displaytag [displaytag]"); - break; - } - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config broadcast [color, permissions, displaytag]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "color: " + plugin.getConfig().getConfigurationSection("broadcast").getString("color")); - sender.sendMessage(ChatColor.GREEN + "permissions: " + plugin.getConfig().getConfigurationSection("broadcast").getString("permissions")); - sender.sendMessage(ChatColor.GREEN + "displaytag: " + plugin.getConfig().getConfigurationSection("broadcast").getString("displaytag")); - } - break; - } - case "channels": { - try { - if (plugin.getConfig().getConfigurationSection("channels").getString(args[1]) != null) { - try { - switch (args[2]) { - case "color": { - try { - if (Format.isValidColor(args[3])) { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("color", args[3].toLowerCase()); - sender.sendMessage(ChatColor.GREEN + "color: has been set to " + args[3].toLowerCase()); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - sender.sendMessage(ChatColor.RED + "Invalid color, /config channels [channel] color [color]"); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "color: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getString("color")); - break; - } - } - case "chatcolor": { - try { - if (Format.isValidColor(args[3]) || args[3].equalsIgnoreCase("None")) { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("chatcolor", args[3].toLowerCase()); - sender.sendMessage(ChatColor.GREEN + "chatcolor: has been set to " + args[3].toLowerCase()); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - sender.sendMessage(ChatColor.RED + "Invalid color, /config channels [channel] chatcolor [color]"); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "chatcolor: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getString("chatcolor")); - break; - } - } - case "mutable": { - try { - switch (args[3]) { - case "true": { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("mutable", true); - sender.sendMessage(ChatColor.GREEN + "mutable: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - case "false": { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("mutable", false); - sender.sendMessage(ChatColor.GREEN + "mutable: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel] mutable [true/false]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "mutable: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getBoolean("mutable")); - } - break; - } - case "filter": { - try { - switch (args[3]) { - case "true": { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("filter", true); - sender.sendMessage(ChatColor.GREEN + "filter: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - case "false": { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("filter", false); - sender.sendMessage(ChatColor.GREEN + "filter: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel] filter [true/false]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "filter: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getBoolean("filter")); - } - break; - } - case "permissions": { - try { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("permissions", args[3]); - sender.sendMessage(ChatColor.GREEN + "permissions: has been set to " + args[3]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "permissions: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getString("permissions")); - break; - } - } - case "alias": { - try { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("alias", args[3]); - sender.sendMessage(ChatColor.GREEN + "alias: has been set to " + args[3]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "alias: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getString("alias")); - break; - } - } - case "default": { - try { - switch (args[3]) { - case "true": { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("default", true); - sender.sendMessage(ChatColor.GREEN + "default: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - case "false": { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("default", false); - sender.sendMessage(ChatColor.GREEN + "default: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel] default [true/false]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "default: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getBoolean("default")); - } - break; - } - case "autojoin": { - try { - switch (args[3]) { - case "true": { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("autojoin", true); - sender.sendMessage(ChatColor.GREEN + "autojoin: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - case "false": { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("autojoin", false); - sender.sendMessage(ChatColor.GREEN + "autojoin: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel] autojoin [true/false]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "autojoin: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getBoolean("autojoin")); - } - break; - } - case "distance": { - try { - if (Double.parseDouble(args[3]) >= (double) 0) { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("distance", Double.parseDouble(args[3])); - sender.sendMessage(ChatColor.GREEN + "distance: has been set to " + args[3]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - sender.sendMessage(ChatColor.RED + "Invalid distance, /config channels [channel] distance [distance]"); - break; - } catch (NumberFormatException e) { - sender.sendMessage(ChatColor.RED + "Invalid distance, /config channels [channel] distance [distance]"); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "distance: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getDouble("distance")); - break; - } - } - case "cooldown": { - try { - if (Integer.parseInt(args[3]) >= 0) { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("cooldown", Integer.parseInt(args[3])); - sender.sendMessage(ChatColor.GREEN + "cooldown: has been set to " + args[3]); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - sender.sendMessage(ChatColor.RED + "Invalid cooldown, /config channels [channel] cooldown [cooldown]"); - break; - } catch (NumberFormatException e) { - sender.sendMessage(ChatColor.RED + "Invalid cooldown, /config channels [channel] cooldown [cooldown]"); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "cooldown: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getInt("cooldown")); - break; - } - } - case "bungeecord": { - try { - switch (args[3]) { - case "true": { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("bungeecord", true); - sender.sendMessage(ChatColor.GREEN + "bungeecord: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - case "false": { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("bungeecord", false); - sender.sendMessage(ChatColor.GREEN + "bungeecord: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel] bungeecord [true/false]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "bungeecord: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getBoolean("bungeecord")); - } - break; - } - case "format": { - try { - String format = args[3] + " "; - for (int x = 4; x < args.length; x++) { - if (args[x].length() > 0) format += args[x] + " "; - } - format = format.substring(0, format.length() - 1); - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("format", format); - sender.sendMessage(ChatColor.GREEN + "format: has been set to " + format); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } catch (Exception e) { - sender.sendMessage(ChatColor.GREEN + "format: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getString("format")); - break; - } - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels " + args[1] + " [color, chatcolor, mutable, alias, default, autojoin, distance, cooldown, bungeecord, format]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels " + args[1] + " [color, chatcolor, mutable, alias, default, autojoin, distance, cooldown, bungeecord, format]"); - } - break; - } - switch (args[1]) { - case "create": { - try { - System.out.println(plugin.getConfig().getConfigurationSection("channels").getString(args[2])); - if (!plugin.getConfig().getConfigurationSection("channels").isSet(args[2])) { - sender.sendMessage(ChatColor.GREEN + "Created channel " + args[2] + " and assigned it default configuration."); - plugin.getConfig().createSection("channels." + args[2]); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("color", "white"); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("chatcolor", "white"); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("mutable", true); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("permissions", "None"); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("alias", args[2].toLowerCase().charAt(0)); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("default", false); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("autojoin", true); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("distance", 0.0); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("cooldown", 0); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("bungeecord", false); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("servername", false); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("format", "Default"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - sender.sendMessage(ChatColor.RED + "Channel " + args[2] + " already exists."); - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels create [channelname]"); - } - break; - } - case "delete": { - try { - if (plugin.getConfig().getConfigurationSection("channels").isSet(args[2])) { - sender.sendMessage(ChatColor.GREEN + "Deleted channel " + args[2]); - plugin.getConfig().getConfigurationSection("channels").set(args[2], null); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - sender.sendMessage(ChatColor.RED + "Channel " + args[2] + " doesn't exist."); - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels delete [channelname]"); - } - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel, create, delete]"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel, create, delete]"); - } - break; - } - case "help": { - sender.sendMessage(ChatColor.GREEN + "/config filters [page [number], add, remove]"); - sender.sendMessage(ChatColor.GREEN + "/config blockablecommands [page [number], add, remove]"); - sender.sendMessage(ChatColor.GREEN + "/config commandspy worldeditcommands [true/false]"); - sender.sendMessage(ChatColor.GREEN + "/config antispam [enabled, spamnumber, spamtime, mutetime]"); - sender.sendMessage(ChatColor.GREEN + "/config mysql [enabled, user, port, password, host, database]"); - sender.sendMessage(ChatColor.GREEN + "/config pluginname [pluginname]"); - sender.sendMessage(ChatColor.GREEN + "/config loglevel [info, debug, warning, error]"); - sender.sendMessage(ChatColor.GREEN + "/config saveplayerdata [true/false]"); - sender.sendMessage(ChatColor.GREEN + "/config saveinterval [saveinterval]"); - sender.sendMessage(ChatColor.GREEN + "/config tellcolor [color]"); - sender.sendMessage(ChatColor.GREEN + "/config vanishsupport [true/false]"); - sender.sendMessage(ChatColor.GREEN + "/config tellformatto [format]"); - sender.sendMessage(ChatColor.GREEN + "/config tellformatfrom [format]"); - sender.sendMessage(ChatColor.GREEN + "/config tellformatspy [format]"); - sender.sendMessage(ChatColor.GREEN + "/config replyformatto [format]"); - sender.sendMessage(ChatColor.GREEN + "/config replyformatfrom [format]"); - sender.sendMessage(ChatColor.GREEN + "/config replyformatspy [format]"); - sender.sendMessage(ChatColor.GREEN + "/config partyformat [format]"); - sender.sendMessage(ChatColor.GREEN + "/config broadcastafk [true/false]"); - sender.sendMessage(ChatColor.GREEN + "/config formatcleaner [true/false]"); - sender.sendMessage(ChatColor.GREEN + "/config broadcast [color, permissions, displaytag]"); - sender.sendMessage(ChatColor.GREEN + "/config channels [channel] [chatcolor, mutable, permissions, alias, default, autojoin, distance, cooldown, bungeecord, format, create , delete]"); - sender.sendMessage(ChatColor.GREEN + "/config help"); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config help"); - break; - } - } - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config help"); - } - return; - } - sender.sendMessage(ChatColor.RED + "You do not have permission for this command."); - return; - } + public Config() { + super("config"); + } + + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.edit")) { + try { + switch (args[0]) { + case "filters": { + try { + switch (args[1]) { + case "page": { + try { + if (Integer.parseInt(args[2]) > 0) { + plugin.reloadConfig(); + List filters = plugin.getConfig().getStringList("filters"); + sender.sendMessage(ChatColor.RED + "List of filters page: " + args[2]); + for (int a = 0 + (Integer.parseInt(args[2]) - 1) * 97; a <= Integer.parseInt(args[2]) * 97; a++) { + if (a >= filters.size()) { + break; + } + sender.sendMessage(ChatColor.GREEN + "" + filters.get(a)); + } + if (filters.size() >= Integer.parseInt(args[2]) * 97) { + int nextpage = Integer.parseInt(args[2]) + 1; + sender.sendMessage(ChatColor.RED + "/config filters page " + nextpage); + } + break; + } + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config filters page [number]"); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config filters page [number]"); + } + break; + } + case "add": { + List filters = plugin.getConfig().getStringList("filters"); + if (args[2].contains(",")) { + filters.add(args[2]); + plugin.getConfig().set("filters", filters); + sender.sendMessage(ChatColor.GREEN + "Added filter " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + sender.sendMessage(ChatColor.RED + "Invalid arguments, regex1,regex2"); + break; + } + case "remove": { + List filters = plugin.getConfig().getStringList("filters"); + if (args[2].contains(",")) { + filters.remove(args[2]); + plugin.getConfig().set("filters", filters); + sender.sendMessage(ChatColor.GREEN + "Removed filter " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + sender.sendMessage(ChatColor.RED + "Invalid arguments, regex1,regex2"); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config filters [page [number], add, remove]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config filters [page [number], add, remove]"); + } + break; + } + case "blockablecommands": { + try { + switch (args[1]) { + case "page": { + try { + if (Integer.parseInt(args[2]) > 0) { + plugin.reloadConfig(); + List blockablecommands = plugin.getConfig().getStringList("blockablecommands"); + sender.sendMessage(ChatColor.RED + "List of blockablecommands page: " + args[2]); + for (int a = 0 + (Integer.parseInt(args[2]) - 1) * 97; a <= Integer.parseInt(args[2]) * 97; a++) { + if (a >= blockablecommands.size()) { + break; + } + sender.sendMessage(ChatColor.GREEN + "" + blockablecommands.get(a)); + } + if (blockablecommands.size() >= Integer.parseInt(args[2]) * 97) { + int nextpage = Integer.parseInt(args[2]) + 1; + sender.sendMessage(ChatColor.RED + "/config blockablecommands page " + nextpage); + } + break; + } + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config blockablecommands page [number]"); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config blockablecommands page [number]"); + } + break; + } + case "add": { + List blockablecommands = plugin.getConfig().getStringList("blockablecommands"); + blockablecommands.add(args[2]); + plugin.getConfig().set("blockablecommands", blockablecommands); + sender.sendMessage(ChatColor.GREEN + "Added blockablecommand " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + case "remove": { + List blockablecommands = plugin.getConfig().getStringList("blockablecommands"); + blockablecommands.remove(args[2]); + plugin.getConfig().set("blockablecommands", blockablecommands); + sender.sendMessage(ChatColor.GREEN + "Removed blockablecommand " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config blockablecommands [page [number], add, remove]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config blockablecommands [page [number], add, remove]"); + } + break; + } + case "commandspy": { + try { + switch (args[1]) { + case "worldeditcommands": { + try { + switch (args[2]) { + case "true": { + plugin.getConfig().getConfigurationSection("commandspy").set("worldeditcommands", true); + sender.sendMessage(ChatColor.GREEN + "worldeditcommands: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + case "false": { + plugin.getConfig().getConfigurationSection("commandspy").set("worldeditcommands", false); + sender.sendMessage(ChatColor.GREEN + "worldeditcommands: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config commandspy worldeditcommands [true/false]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage( + ChatColor.GREEN + "worldeditcommands: " + plugin.getConfig().getConfigurationSection("commandspy").getBoolean("worldeditcommands")); + } + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config commandspy worldeditcommands"); + } + break; + } + case "antispam": { + try { + switch (args[1]) { + case "enabled": { + try { + switch (args[2]) { + case "true": { + plugin.getConfig().getConfigurationSection("antispam").set("enabled", true); + sender.sendMessage(ChatColor.GREEN + "enabled: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + case "false": { + plugin.getConfig().getConfigurationSection("antispam").set("enabled", false); + sender.sendMessage(ChatColor.GREEN + "enabled: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config antispam enabled [true/false]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "enabled: " + plugin.getConfig().getConfigurationSection("antispam").getBoolean("enabled")); + } + break; + } + case "spamnumber": { + try { + if (Integer.parseInt(args[2]) > 0) { + plugin.getConfig().getConfigurationSection("antispam").set("spamnumber", Integer.parseInt(args[2])); + sender.sendMessage(ChatColor.GREEN + "spamnumber: has been set to " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + sender.sendMessage(ChatColor.RED + "Invalid spamnumber, /config antispam spamnumber [Integer > 0]"); + break; + } catch (NumberFormatException e) { + sender.sendMessage(ChatColor.RED + "Invalid spamnumber, /config antispam [Integer > 0]"); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "spamnumber: " + plugin.getConfig().getConfigurationSection("antispam").getInt("spamnumber")); + break; + } + } + case "spamtime": { + try { + if (Integer.parseInt(args[2]) > 0) { + plugin.getConfig().getConfigurationSection("antispam").set("spamtime", Integer.parseInt(args[2])); + sender.sendMessage(ChatColor.GREEN + "spamtime: has been set to " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + sender.sendMessage(ChatColor.RED + "Invalid spamtime, /config antispam spamtime [Integer > 0]"); + break; + } catch (NumberFormatException e) { + sender.sendMessage(ChatColor.RED + "Invalid spamtime, /config antispam spamtime [Integer > 0]"); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "spamtime: " + plugin.getConfig().getConfigurationSection("antispam").getInt("spamtime")); + break; + } + } + case "mutetime": { + try { + if (Integer.parseInt(args[2]) >= 0) { + plugin.getConfig().getConfigurationSection("antispam").set("mutetime", Integer.parseInt(args[2])); + sender.sendMessage(ChatColor.GREEN + "mutetime: has been set to " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + sender.sendMessage(ChatColor.RED + "Invalid mutetime, /config antispam mutetime [Integer >= 0]"); + break; + } catch (NumberFormatException e) { + sender.sendMessage(ChatColor.RED + "Invalid mutetime, /config antispam mutetime [Integer >= 0]"); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "mutetime: " + plugin.getConfig().getConfigurationSection("antispam").getInt("mutetime")); + break; + } + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config antispam [enabled, spamnumber, spamtime, mutetime]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "enabled: " + plugin.getConfig().getConfigurationSection("antispam").getString("enabled")); + sender.sendMessage(ChatColor.GREEN + "spamnumber: " + plugin.getConfig().getConfigurationSection("antispam").getString("spamnumber")); + sender.sendMessage(ChatColor.GREEN + "spamtime: " + plugin.getConfig().getConfigurationSection("antispam").getString("spamtime")); + sender.sendMessage(ChatColor.GREEN + "mutetime: " + plugin.getConfig().getConfigurationSection("antispam").getInt("mutetime")); + } + break; + } + case "mysql": { + try { + switch (args[1]) { + case "enabled": { + try { + switch (args[2]) { + case "true": { + plugin.getConfig().getConfigurationSection("mysql").set("enabled", true); + sender.sendMessage(ChatColor.GREEN + "enabled: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + case "false": { + plugin.getConfig().getConfigurationSection("mysql").set("enabled", false); + sender.sendMessage(ChatColor.GREEN + "enabled: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config mysql enabled [true/false]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "enabled: " + plugin.getConfig().getConfigurationSection("mysql").getBoolean("enabled")); + } + break; + } + case "user": { + try { + plugin.getConfig().getConfigurationSection("mysql").set("user", args[2]); + sender.sendMessage(ChatColor.GREEN + "user: has been set to " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "user: " + plugin.getConfig().getConfigurationSection("mysql").getString("user")); + break; + } + } + case "port": { + try { + plugin.getConfig().getConfigurationSection("mysql").set("port", args[2]); + sender.sendMessage(ChatColor.GREEN + "port: has been set to " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "port: " + plugin.getConfig().getConfigurationSection("mysql").getString("port")); + break; + } + } + case "password": { + try { + plugin.getConfig().getConfigurationSection("mysql").set("password", args[2]); + sender.sendMessage(ChatColor.GREEN + "password: has been set to " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "password: " + plugin.getConfig().getConfigurationSection("mysql").getString("password")); + break; + } + } + case "host": { + try { + plugin.getConfig().getConfigurationSection("mysql").set("host", args[2]); + sender.sendMessage(ChatColor.GREEN + "host: has been set to " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "host: " + plugin.getConfig().getConfigurationSection("mysql").getString("host")); + break; + } + } + case "database": { + try { + plugin.getConfig().getConfigurationSection("mysql").set("database", args[2]); + sender.sendMessage(ChatColor.GREEN + "database: has been set to " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "database: " + plugin.getConfig().getConfigurationSection("mysql").getString("database")); + break; + } + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config mysql [enabled, user, port, password, host, database]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config mysql [enabled, user, port, password, host, database]"); + } + break; + } + case "pluginname": { + try { + plugin.getConfig().set("pluginname", args[1]); + sender.sendMessage(ChatColor.GREEN + "pluginname: has been set to " + args[1]); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "pluginname: " + plugin.getConfig().getString("pluginname")); + break; + } + } + case "loglevel": { + try { + switch (args[1]) { + case "info": { + plugin.getConfig().set("loglevel", "info"); + sender.sendMessage(ChatColor.GREEN + "loglevel: has been set to info"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + case "debug": { + plugin.getConfig().set("loglevel", "debug"); + sender.sendMessage(ChatColor.GREEN + "loglevel: has been set to debug"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + case "warning": { + plugin.getConfig().set("loglevel", "warning"); + sender.sendMessage(ChatColor.GREEN + "loglevel: has been set to warning"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + case "error": { + plugin.getConfig().set("loglevel", "error"); + sender.sendMessage(ChatColor.GREEN + "loglevel: has been set to error"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config loglevel [info, debug, warning, error]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "loglevel: " + plugin.getConfig().getString("loglevel")); + } + break; + } + case "savesenderdata": { + try { + switch (args[1]) { + case "true": { + plugin.getConfig().set("savesenderdata", true); + sender.sendMessage(ChatColor.GREEN + "saveplayerdata: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + case "false": { + plugin.getConfig().set("saveplayerdata", false); + sender.sendMessage(ChatColor.GREEN + "saveplayerdata: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config saveplayerdata [true/false]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "saveplayerdata: " + plugin.getConfig().getBoolean("saveplayerdata")); + } + break; + } + case "saveinterval": { + try { + if (Integer.parseInt(args[1]) >= 0) { + plugin.getConfig().set("saveinterval", Integer.parseInt(args[1])); + sender.sendMessage(ChatColor.GREEN + "saveinterval: has been set to " + args[1]); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + sender.sendMessage(ChatColor.RED + "Invalid saveinterval, /config saveinterval [saveinterval]"); + break; + } catch (NumberFormatException e) { + sender.sendMessage(ChatColor.RED + "Invalid saveinterval, /config saveinterval [saveinterval]"); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "saveinterval: " + plugin.getConfig().getInt("saveinterval")); + break; + } + } + case "tellcolor": { + try { + if (Format.isValidColor(args[1])) { + plugin.getConfig().set("tellcolor", args[1].toLowerCase()); + sender.sendMessage(ChatColor.GREEN + "tellcolor: has been set to " + args[1].toLowerCase()); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + sender.sendMessage(ChatColor.RED + "Invalid color, /config tellcolor [color]"); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "tellcolor: " + plugin.getConfig().getString("tellcolor")); + break; + } + } + case "vanishsupport": { + try { + switch (args[1]) { + case "true": { + plugin.getConfig().set("vanishsupport", true); + sender.sendMessage(ChatColor.GREEN + "vanishsupport: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + case "false": { + plugin.getConfig().set("vanishsupport", false); + sender.sendMessage(ChatColor.GREEN + "vanishsupport: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config vanishsupport [true/false]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "vanishsupport: " + plugin.getConfig().getBoolean("vanishsupport")); + } + break; + } + case "tellformatto": { + try { + String format = args[1] + " "; + for (int x = 2; x < args.length; x++) { + if (args[x].length() > 0) + format += args[x] + " "; + } + format = format.substring(0, format.length() - 1); + plugin.getConfig().set("tellformatto", format); + sender.sendMessage(ChatColor.GREEN + "tellformatto: has been set to " + format); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "tellformatto: " + plugin.getConfig().getString("tellformatto")); + break; + } + } + case "tellformatfrom": { + try { + String format = args[1] + " "; + for (int x = 2; x < args.length; x++) { + if (args[x].length() > 0) + format += args[x] + " "; + } + format = format.substring(0, format.length() - 1); + plugin.getConfig().set("tellformatfrom", format); + sender.sendMessage(ChatColor.GREEN + "tellformatfrom: has been set to " + format); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "tellformatfrom: " + plugin.getConfig().getString("tellformatfrom")); + break; + } + } + case "tellformatspy": { + try { + String format = args[1] + " "; + for (int x = 2; x < args.length; x++) { + if (args[x].length() > 0) + format += args[x] + " "; + } + format = format.substring(0, format.length() - 1); + plugin.getConfig().set("tellformatspy", format); + sender.sendMessage(ChatColor.GREEN + "tellformatspy: has been set to " + format); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "tellformatspy: " + plugin.getConfig().getString("tellformatspy")); + break; + } + } + case "replyformatto": { + try { + String format = args[1] + " "; + for (int x = 2; x < args.length; x++) { + if (args[x].length() > 0) + format += args[x] + " "; + } + format = format.substring(0, format.length() - 1); + plugin.getConfig().set("replyformatto", format); + sender.sendMessage(ChatColor.GREEN + "replyformatto: has been set to " + format); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "replyformatto: " + plugin.getConfig().getString("replyformatto")); + break; + } + } + case "replyformatfrom": { + try { + String format = args[1] + " "; + for (int x = 2; x < args.length; x++) { + if (args[x].length() > 0) + format += args[x] + " "; + } + format = format.substring(0, format.length() - 1); + plugin.getConfig().set("replyformatfrom", format); + sender.sendMessage(ChatColor.GREEN + "replyformatfrom: has been set to " + format); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "replyformatfrom: " + plugin.getConfig().getString("replyformatfrom")); + break; + } + } + case "replyformatspy": { + try { + String format = args[1] + " "; + for (int x = 2; x < args.length; x++) { + if (args[x].length() > 0) + format += args[x] + " "; + } + format = format.substring(0, format.length() - 1); + plugin.getConfig().set("replyformatspy", format); + sender.sendMessage(ChatColor.GREEN + "replyformatspy: has been set to " + format); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "replyformatspy: " + plugin.getConfig().getString("replyformatspy")); + break; + } + } + case "partyformat": { + try { + String format = args[1] + " "; + for (int x = 2; x < args.length; x++) { + if (args[x].length() > 0) + format += args[x] + " "; + } + format = format.substring(0, format.length() - 1); + plugin.getConfig().set("partyformat", format); + sender.sendMessage(ChatColor.GREEN + "partyformat: has been set to " + format); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "partyformat: " + plugin.getConfig().getString("partyformat")); + break; + } + } + case "broadcastafk": { + try { + switch (args[1]) { + case "true": { + plugin.getConfig().set("broadcastafk", true); + sender.sendMessage(ChatColor.GREEN + "broadcastafk: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + case "false": { + plugin.getConfig().set("broadcastafk", false); + sender.sendMessage(ChatColor.GREEN + "broadcastafk: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config broadcastafk [true/false]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "broadcastafk: " + plugin.getConfig().getBoolean("broadcastafk")); + } + break; + } + case "formatcleaner": { + try { + switch (args[1]) { + case "true": { + plugin.getConfig().set("formatcleaner", true); + sender.sendMessage(ChatColor.GREEN + "formatcleaner: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + case "false": { + plugin.getConfig().set("formatcleaner", false); + sender.sendMessage(ChatColor.GREEN + "formatcleaner: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config formatcleaner [true/false]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "formatcleaner: " + plugin.getConfig().getBoolean("formatcleaner")); + } + break; + } + case "broadcast": { + try { + switch (args[1]) { + case "color": { + try { + if (Format.isValidColor(args[2])) { + plugin.getConfig().getConfigurationSection("broadcast").set("color", args[2].toLowerCase()); + sender.sendMessage(ChatColor.GREEN + "color: has been set to " + args[2].toLowerCase()); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + sender.sendMessage(ChatColor.RED + "Invalid color, /config broadcast color [color]"); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config broadcast color [color]"); + break; + } + } + case "permissions": { + try { + plugin.getConfig().getConfigurationSection("broadcast").set("permissions", args[2]); + sender.sendMessage(ChatColor.GREEN + "permissions: has been set to " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config broadcast permissions [permission]"); + break; + } + } + case "displaytag": { + try { + plugin.getConfig().getConfigurationSection("broadcast").set("displaytag", args[2]); + sender.sendMessage(ChatColor.GREEN + "displaytag: has been set to " + args[2]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config broadcast displaytag [displaytag]"); + break; + } + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config broadcast [color, permissions, displaytag]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "color: " + plugin.getConfig().getConfigurationSection("broadcast").getString("color")); + sender.sendMessage(ChatColor.GREEN + "permissions: " + plugin.getConfig().getConfigurationSection("broadcast").getString("permissions")); + sender.sendMessage(ChatColor.GREEN + "displaytag: " + plugin.getConfig().getConfigurationSection("broadcast").getString("displaytag")); + } + break; + } + case "channels": { + try { + if (plugin.getConfig().getConfigurationSection("channels").getString(args[1]) != null) { + try { + switch (args[2]) { + case "color": { + try { + if (Format.isValidColor(args[3])) { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("color", args[3].toLowerCase()); + sender.sendMessage(ChatColor.GREEN + "color: has been set to " + args[3].toLowerCase()); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + sender.sendMessage(ChatColor.RED + "Invalid color, /config channels [channel] color [color]"); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "color: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getString("color")); + break; + } + } + case "chatcolor": { + try { + if (Format.isValidColor(args[3]) || args[3].equalsIgnoreCase("None")) { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("chatcolor", args[3].toLowerCase()); + sender.sendMessage(ChatColor.GREEN + "chatcolor: has been set to " + args[3].toLowerCase()); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + sender.sendMessage(ChatColor.RED + "Invalid color, /config channels [channel] chatcolor [color]"); + break; + } catch (Exception e) { + sender.sendMessage( + ChatColor.GREEN + "chatcolor: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getString("chatcolor")); + break; + } + } + case "mutable": { + try { + switch (args[3]) { + case "true": { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("mutable", true); + sender.sendMessage(ChatColor.GREEN + "mutable: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + case "false": { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("mutable", false); + sender.sendMessage(ChatColor.GREEN + "mutable: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel] mutable [true/false]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "mutable: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getBoolean("mutable")); + } + break; + } + case "filter": { + try { + switch (args[3]) { + case "true": { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("filter", true); + sender.sendMessage(ChatColor.GREEN + "filter: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + case "false": { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("filter", false); + sender.sendMessage(ChatColor.GREEN + "filter: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel] filter [true/false]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "filter: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getBoolean("filter")); + } + break; + } + case "permissions": { + try { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("permissions", args[3]); + sender.sendMessage(ChatColor.GREEN + "permissions: has been set to " + args[3]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage( + ChatColor.GREEN + "permissions: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getString("permissions")); + break; + } + } + case "alias": { + try { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("alias", args[3]); + sender.sendMessage(ChatColor.GREEN + "alias: has been set to " + args[3]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "alias: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getString("alias")); + break; + } + } + case "default": { + try { + switch (args[3]) { + case "true": { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("default", true); + sender.sendMessage(ChatColor.GREEN + "default: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + case "false": { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("default", false); + sender.sendMessage(ChatColor.GREEN + "default: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel] default [true/false]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "default: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getBoolean("default")); + } + break; + } + case "autojoin": { + try { + switch (args[3]) { + case "true": { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("autojoin", true); + sender.sendMessage(ChatColor.GREEN + "autojoin: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + case "false": { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("autojoin", false); + sender.sendMessage(ChatColor.GREEN + "autojoin: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel] autojoin [true/false]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage( + ChatColor.GREEN + "autojoin: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getBoolean("autojoin")); + } + break; + } + case "distance": { + try { + if (Double.parseDouble(args[3]) >= (double) 0) { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("distance", Double.parseDouble(args[3])); + sender.sendMessage(ChatColor.GREEN + "distance: has been set to " + args[3]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + sender.sendMessage(ChatColor.RED + "Invalid distance, /config channels [channel] distance [distance]"); + break; + } catch (NumberFormatException e) { + sender.sendMessage(ChatColor.RED + "Invalid distance, /config channels [channel] distance [distance]"); + break; + } catch (Exception e) { + sender.sendMessage( + ChatColor.GREEN + "distance: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getDouble("distance")); + break; + } + } + case "cooldown": { + try { + if (Integer.parseInt(args[3]) >= 0) { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("cooldown", Integer.parseInt(args[3])); + sender.sendMessage(ChatColor.GREEN + "cooldown: has been set to " + args[3]); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + sender.sendMessage(ChatColor.RED + "Invalid cooldown, /config channels [channel] cooldown [cooldown]"); + break; + } catch (NumberFormatException e) { + sender.sendMessage(ChatColor.RED + "Invalid cooldown, /config channels [channel] cooldown [cooldown]"); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "cooldown: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getInt("cooldown")); + break; + } + } + case "bungeecord": { + try { + switch (args[3]) { + case "true": { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("bungeecord", true); + sender.sendMessage(ChatColor.GREEN + "bungeecord: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + case "false": { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("bungeecord", false); + sender.sendMessage(ChatColor.GREEN + "bungeecord: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel] bungeecord [true/false]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage( + ChatColor.GREEN + "bungeecord: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getBoolean("bungeecord")); + } + break; + } + case "format": { + try { + String format = args[3] + " "; + for (int x = 4; x < args.length; x++) { + if (args[x].length() > 0) + format += args[x] + " "; + } + format = format.substring(0, format.length() - 1); + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("format", format); + sender.sendMessage(ChatColor.GREEN + "format: has been set to " + format); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } catch (Exception e) { + sender.sendMessage(ChatColor.GREEN + "format: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getString("format")); + break; + } + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels " + args[1] + + " [color, chatcolor, mutable, alias, default, autojoin, distance, cooldown, bungeecord, format]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels " + args[1] + + " [color, chatcolor, mutable, alias, default, autojoin, distance, cooldown, bungeecord, format]"); + } + break; + } + switch (args[1]) { + case "create": { + try { + System.out.println(plugin.getConfig().getConfigurationSection("channels").getString(args[2])); + if (!plugin.getConfig().getConfigurationSection("channels").isSet(args[2])) { + sender.sendMessage(ChatColor.GREEN + "Created channel " + args[2] + " and assigned it default configuration."); + plugin.getConfig().createSection("channels." + args[2]); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("color", "white"); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("chatcolor", "white"); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("mutable", true); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("permissions", "None"); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("alias", args[2].toLowerCase().charAt(0)); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("default", false); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("autojoin", true); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("distance", 0.0); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("cooldown", 0); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("bungeecord", false); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("servername", false); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("format", "Default"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + sender.sendMessage(ChatColor.RED + "Channel " + args[2] + " already exists."); + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels create [channelname]"); + } + break; + } + case "delete": { + try { + if (plugin.getConfig().getConfigurationSection("channels").isSet(args[2])) { + sender.sendMessage(ChatColor.GREEN + "Deleted channel " + args[2]); + plugin.getConfig().getConfigurationSection("channels").set(args[2], null); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + sender.sendMessage(ChatColor.RED + "Channel " + args[2] + " doesn't exist."); + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels delete [channelname]"); + } + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel, create, delete]"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel, create, delete]"); + } + break; + } + case "help": { + sender.sendMessage(ChatColor.GREEN + "/config filters [page [number], add, remove]"); + sender.sendMessage(ChatColor.GREEN + "/config blockablecommands [page [number], add, remove]"); + sender.sendMessage(ChatColor.GREEN + "/config commandspy worldeditcommands [true/false]"); + sender.sendMessage(ChatColor.GREEN + "/config antispam [enabled, spamnumber, spamtime, mutetime]"); + sender.sendMessage(ChatColor.GREEN + "/config mysql [enabled, user, port, password, host, database]"); + sender.sendMessage(ChatColor.GREEN + "/config pluginname [pluginname]"); + sender.sendMessage(ChatColor.GREEN + "/config loglevel [info, debug, warning, error]"); + sender.sendMessage(ChatColor.GREEN + "/config saveplayerdata [true/false]"); + sender.sendMessage(ChatColor.GREEN + "/config saveinterval [saveinterval]"); + sender.sendMessage(ChatColor.GREEN + "/config tellcolor [color]"); + sender.sendMessage(ChatColor.GREEN + "/config vanishsupport [true/false]"); + sender.sendMessage(ChatColor.GREEN + "/config tellformatto [format]"); + sender.sendMessage(ChatColor.GREEN + "/config tellformatfrom [format]"); + sender.sendMessage(ChatColor.GREEN + "/config tellformatspy [format]"); + sender.sendMessage(ChatColor.GREEN + "/config replyformatto [format]"); + sender.sendMessage(ChatColor.GREEN + "/config replyformatfrom [format]"); + sender.sendMessage(ChatColor.GREEN + "/config replyformatspy [format]"); + sender.sendMessage(ChatColor.GREEN + "/config partyformat [format]"); + sender.sendMessage(ChatColor.GREEN + "/config broadcastafk [true/false]"); + sender.sendMessage(ChatColor.GREEN + "/config formatcleaner [true/false]"); + sender.sendMessage(ChatColor.GREEN + "/config broadcast [color, permissions, displaytag]"); + sender.sendMessage(ChatColor.GREEN + + "/config channels [channel] [chatcolor, mutable, permissions, alias, default, autojoin, distance, cooldown, bungeecord, format, create , delete]"); + sender.sendMessage(ChatColor.GREEN + "/config help"); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config help"); + break; + } + } + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config help"); + } + return true; + } + sender.sendMessage(ChatColor.RED + "You do not have permission for this command."); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Edit.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Edit.java index e0e25dd..4e1b1e2 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Edit.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Edit.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; @@ -16,93 +17,104 @@ import mineverse.Aust1n46.chat.ChatMessage; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.utilities.Format; -public class Edit implements VentureCommand { - private PacketContainer emptyLinePacketContainer = Format.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}"); - private MineverseChat plugin = MineverseChat.getInstance(); - private WrappedChatComponent messageDeletedComponentPlayer; +public class Edit extends Command { + private PacketContainer emptyLinePacketContainer = Format.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}"); + private MineverseChat plugin = MineverseChat.getInstance(); + private WrappedChatComponent messageDeletedComponentPlayer; - @Override - @SuppressWarnings({"unchecked", "rawtypes"}) - public void execute(CommandSender sender, String command, String[] args) { - if (args.length == 0) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/edit") - .replace("{args}", "[hashcode]")); - return; - } - final int hash; - try { - hash = Integer.parseInt(args[0]); - } catch (Exception e) { - sender.sendMessage(LocalizedMessage.INVALID_HASH.toString()); - return; - } - new BukkitRunnable() { - public void run() { - final Map> packets = new HashMap(); - for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - List messages = p.getMessages(); - List playerPackets = new ArrayList(); - boolean resend = false; - for (int fill = 0; fill < 100 - messages.size(); fill++) { - playerPackets.add(Edit.this.emptyLinePacketContainer); - } - for (ChatMessage message : messages) { - if (message.getHash() == hash) { - WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Edit.this.getMessageDeletedChatComponentAdmin(message) : Edit.this.getMessageDeletedChatComponentPlayer(); - message.setComponent(removedComponent); - message.setHash(-1); - playerPackets.add(Format.createPacketPlayOutChat(removedComponent)); - resend = true; - continue; - } - if (message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) { - String submessage = message.getMessage().substring(0, message.getMessage().length() - plugin.getConfig().getString("messageremovericon").length() - 1).replaceAll("(�([a-z0-9]))", ""); - if (submessage.hashCode() == hash) { - WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Edit.this.getMessageDeletedChatComponentAdmin(message) : Edit.this.getMessageDeletedChatComponentPlayer(); - message.setComponent(removedComponent); - message.setHash(-1); - playerPackets.add(Format.createPacketPlayOutChat(removedComponent)); - resend = true; - continue; - } - } - playerPackets.add(Format.createPacketPlayOutChat(message.getComponent())); - } - if (resend) { - packets.put(p.getPlayer(), playerPackets); - } - } - new BukkitRunnable() { - public void run() { - for (Player p : packets.keySet()) { - List pPackets = packets.get(p); - for (PacketContainer c : pPackets) { - Format.sendPacketPlayOutChat(p, c); - } - } - } - }.runTask(plugin); - } - }.runTaskAsynchronously(plugin); - } + public Edit() { + super("edit"); + } - public WrappedChatComponent getMessageDeletedChatComponentPlayer() { - if (this.messageDeletedComponentPlayer == null) { - this.messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"\",\"color\":\"red\",\"italic\":\"true\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions")) + "\"}]}}}]}"); - } - return this.messageDeletedComponentPlayer; - } + @Override + @SuppressWarnings({ "unchecked", "rawtypes" }) + public boolean execute(CommandSender sender, String command, String[] args) { + if (args.length == 0) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/edit").replace("{args}", "[hashcode]")); + return true; + } + final int hash; + try { + hash = Integer.parseInt(args[0]); + } catch (Exception e) { + sender.sendMessage(LocalizedMessage.INVALID_HASH.toString()); + return true; + } + new BukkitRunnable() { + public void run() { + final Map> packets = new HashMap(); + for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + List messages = p.getMessages(); + List playerPackets = new ArrayList(); + boolean resend = false; + for (int fill = 0; fill < 100 - messages.size(); fill++) { + playerPackets.add(Edit.this.emptyLinePacketContainer); + } + for (ChatMessage message : messages) { + if (message.getHash() == hash) { + WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") + ? Edit.this.getMessageDeletedChatComponentAdmin(message) + : Edit.this.getMessageDeletedChatComponentPlayer(); + message.setComponent(removedComponent); + message.setHash(-1); + playerPackets.add(Format.createPacketPlayOutChat(removedComponent)); + resend = true; + continue; + } + if (message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) { + String submessage = message.getMessage().substring(0, message.getMessage().length() - plugin.getConfig().getString("messageremovericon").length() - 1) + .replaceAll("(�([a-z0-9]))", ""); + if (submessage.hashCode() == hash) { + WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") + ? Edit.this.getMessageDeletedChatComponentAdmin(message) + : Edit.this.getMessageDeletedChatComponentPlayer(); + message.setComponent(removedComponent); + message.setHash(-1); + playerPackets.add(Format.createPacketPlayOutChat(removedComponent)); + resend = true; + continue; + } + } + playerPackets.add(Format.createPacketPlayOutChat(message.getComponent())); + } + if (resend) { + packets.put(p.getPlayer(), playerPackets); + } + } + new BukkitRunnable() { + public void run() { + for (Player p : packets.keySet()) { + List pPackets = packets.get(p); + for (PacketContainer c : pPackets) { + Format.sendPacketPlayOutChat(p, c); + } + } + } + }.runTask(plugin); + } + }.runTaskAsynchronously(plugin); + return true; + } - public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) { - String oMessage = message.getComponent().getJson().substring(1, message.getComponent().getJson().length() - 11); - if (message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) { - oMessage = oMessage.substring(0, oMessage.length() - plugin.getConfig().getString("messageremovericon").length() - 4) + "\"}]"; - } - return WrappedChatComponent.fromJson(Format.FormatStringAll("{\"text\":\"\",\"extra\":[{\"text\":\"&c&o\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"&7Message: \"," + oMessage + "}}}]}")); - } + public WrappedChatComponent getMessageDeletedChatComponentPlayer() { + if (this.messageDeletedComponentPlayer == null) { + this.messageDeletedComponentPlayer = WrappedChatComponent.fromJson( + "{\"text\":\"\",\"extra\":[{\"text\":\"\",\"color\":\"red\",\"italic\":\"true\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + + Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions")) + "\"}]}}}]}"); + } + return this.messageDeletedComponentPlayer; + } + + public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) { + String oMessage = message.getComponent().getJson().substring(1, message.getComponent().getJson().length() - 11); + if (message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) { + oMessage = oMessage.substring(0, oMessage.length() - plugin.getConfig().getString("messageremovericon").length() - 4) + "\"}]"; + } + return WrappedChatComponent.fromJson( + Format.FormatStringAll("{\"text\":\"\",\"extra\":[{\"text\":\"&c&o\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"&7Message: \"," + + oMessage + "}}}]}")); + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Filter.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Filter.java index e516c3d..f57b815 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Filter.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Filter.java @@ -1,33 +1,37 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.Bukkit; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Filter implements VentureCommand { +public class Filter extends Command { + public Filter() { + super("filter"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (mcp.getPlayer().hasPermission("venturechat.ignorefilter")) { - if (!mcp.hasFilter()) { - mcp.setFilter(true); - mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_ON.toString()); - return; - } - mcp.setFilter(false); - mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_OFF.toString()); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (mcp.getPlayer().hasPermission("venturechat.ignorefilter")) { + if (!mcp.hasFilter()) { + mcp.setFilter(true); + mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_ON.toString()); + return true; + } + mcp.setFilter(false); + mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_OFF.toString()); + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Force.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Force.java index fbfa094..c0b4486 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Force.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Force.java @@ -1,39 +1,38 @@ package mineverse.Aust1n46.chat.command.chat; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Force implements VentureCommand { +public class Force extends Command { + public Force() { + super("force"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.force")) { - if (args.length < 2) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/force") - .replace("{args}", "[player] [message]")); - return; - } - MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]); - if (player == null) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - String forcemsg = ""; - for (int x = 1; x < args.length; x++) - if (args[x].length() > 0) - forcemsg += args[x] + " "; - sender.sendMessage(LocalizedMessage.FORCE_PLAYER.toString() - .replace("{player}", player.getName()) - .replace("{message}", forcemsg)); - player.getPlayer().chat(forcemsg); - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.force")) { + if (args.length < 2) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/force").replace("{args}", "[player] [message]")); + return true; + } + MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]); + if (player == null) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return true; + } + String forcemsg = ""; + for (int x = 1; x < args.length; x++) + if (args[x].length() > 0) + forcemsg += args[x] + " "; + sender.sendMessage(LocalizedMessage.FORCE_PLAYER.toString().replace("{player}", player.getName()).replace("{message}", forcemsg)); + player.getPlayer().chat(forcemsg); + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Forceall.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Forceall.java index 316fb49..2985a8e 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Forceall.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Forceall.java @@ -1,34 +1,37 @@ package mineverse.Aust1n46.chat.command.chat; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Forceall implements VentureCommand { +public class Forceall extends Command { + public Forceall() { + super("forceall"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.forceall")) { - if (args.length < 1) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/forceall").replace("{args}", "[message]")); - return; - } - String forcemsg = ""; - for (int x = 0; x < args.length; x++) { - if (args[x].length() > 0) { - forcemsg += args[x] + " "; - } - } - sender.sendMessage(LocalizedMessage.FORCE_ALL.toString().replace("{message}", forcemsg)); - for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - player.getPlayer().chat(forcemsg); - } - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.forceall")) { + if (args.length < 1) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/forceall").replace("{args}", "[message]")); + return true; + } + String forcemsg = ""; + for (int x = 0; x < args.length; x++) { + if (args[x].length() > 0) { + forcemsg += args[x] + " "; + } + } + sender.sendMessage(LocalizedMessage.FORCE_ALL.toString().replace("{message}", forcemsg)); + for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + player.getPlayer().chat(forcemsg); + } + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Kickchannel.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Kickchannel.java index bdb35ba..298ba6a 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Kickchannel.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Kickchannel.java @@ -1,70 +1,67 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.ChatColor; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Kickchannel implements VentureCommand { +public class Kickchannel extends Command { + public Kickchannel() { + super("kickchannel"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.kickchannel")) { - if (args.length < 2) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/kickchannel") - .replace("{args}", "[player] [channel]")); - return; - } - MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); - if (player == null) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - ChatChannel channel = ChatChannel.getChannel(args[1]); - if (channel == null) { - sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() - .replace("{args}", args[1])); - return; - } - sender.sendMessage(LocalizedMessage.KICK_CHANNEL.toString() - .replace("{player}", args[0]) - .replace("{channel_color}", channel.getColor() + "") - .replace("{channel_name}", channel.getName())); - player.removeListening(channel.getName()); - if (player.isOnline()) { - player.getPlayer().sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString() - .replace("{channel_color}", channel.getColor() + "") - .replace("{channel_name}", channel.getName())); - } else { - player.setModified(true); - } - boolean isThereABungeeChannel = channel.getBungee(); - if (player.getListening().size() == 0) { - player.addListening(ChatChannel.getDefaultChannel().getName()); - player.setCurrentChannel(ChatChannel.getDefaultChannel()); - if (ChatChannel.getDefaultChannel().getBungee()) { - isThereABungeeChannel = true; - } - if (player.isOnline()) { - player.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString()); - player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() - .replace("{channel_color}", ChatColor.valueOf(ChatChannel.getDefaultColor().toUpperCase()) + "") - .replace("{channel_name}", ChatChannel.getDefaultChannel().getName())); - } else - player.setModified(true); - } - if (isThereABungeeChannel) { - MineverseChat.synchronize(player, true); - } - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.kickchannel")) { + if (args.length < 2) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/kickchannel").replace("{args}", "[player] [channel]")); + return true; + } + MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); + if (player == null) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return true; + } + ChatChannel channel = ChatChannel.getChannel(args[1]); + if (channel == null) { + sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1])); + return true; + } + sender.sendMessage(LocalizedMessage.KICK_CHANNEL.toString().replace("{player}", args[0]).replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", + channel.getName())); + player.removeListening(channel.getName()); + if (player.isOnline()) { + player.getPlayer() + .sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName())); + } else { + player.setModified(true); + } + boolean isThereABungeeChannel = channel.getBungee(); + if (player.getListening().size() == 0) { + player.addListening(ChatChannel.getDefaultChannel().getName()); + player.setCurrentChannel(ChatChannel.getDefaultChannel()); + if (ChatChannel.getDefaultChannel().getBungee()) { + isThereABungeeChannel = true; + } + if (player.isOnline()) { + player.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString()); + player.getPlayer() + .sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", ChatColor.valueOf(ChatChannel.getDefaultColor().toUpperCase()) + "") + .replace("{channel_name}", ChatChannel.getDefaultChannel().getName())); + } else + player.setModified(true); + } + if (isThereABungeeChannel) { + MineverseChat.synchronize(player, true); + } + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Kickchannelall.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Kickchannelall.java index 2116c83..05147cd 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Kickchannelall.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Kickchannelall.java @@ -1,63 +1,63 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.ChatColor; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Kickchannelall implements VentureCommand { +public class Kickchannelall extends Command { + public Kickchannelall() { + super("kickchannelall"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.kickchannelall")) { - if (args.length < 1) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/kickchannelall") - .replace("{args}", "[player]")); - return; - } - MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); - if (player == null) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - boolean isThereABungeeChannel = false; - for (String channel : player.getListening()) { - if (ChatChannel.isChannel(channel)) { - ChatChannel chatChannelObj = ChatChannel.getChannel(channel); - if (chatChannelObj.getBungee()) { - isThereABungeeChannel = true; - } - } - } - player.clearListening(); - sender.sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_SENDER.toString() - .replace("{player}", player.getName())); - player.addListening(ChatChannel.getDefaultChannel().getName()); - player.setCurrentChannel(ChatChannel.getDefaultChannel()); - if (ChatChannel.getDefaultChannel().getBungee()) { - isThereABungeeChannel = true; - } - if (isThereABungeeChannel) { - MineverseChat.synchronize(player, true); - } - if (player.isOnline()) { - player.getPlayer().sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_PLAYER.toString()); - player.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString()); - player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() - .replace("{channel_color}", ChatColor.valueOf(ChatChannel.getDefaultColor().toUpperCase()) + "") - .replace("{channel_name}", ChatChannel.getDefaultChannel().getName())); - } else { - player.setModified(true); - } - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.kickchannelall")) { + if (args.length < 1) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/kickchannelall").replace("{args}", "[player]")); + return true; + } + MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); + if (player == null) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return true; + } + boolean isThereABungeeChannel = false; + for (String channel : player.getListening()) { + if (ChatChannel.isChannel(channel)) { + ChatChannel chatChannelObj = ChatChannel.getChannel(channel); + if (chatChannelObj.getBungee()) { + isThereABungeeChannel = true; + } + } + } + player.clearListening(); + sender.sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_SENDER.toString().replace("{player}", player.getName())); + player.addListening(ChatChannel.getDefaultChannel().getName()); + player.setCurrentChannel(ChatChannel.getDefaultChannel()); + if (ChatChannel.getDefaultChannel().getBungee()) { + isThereABungeeChannel = true; + } + if (isThereABungeeChannel) { + MineverseChat.synchronize(player, true); + } + if (player.isOnline()) { + player.getPlayer().sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_PLAYER.toString()); + player.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString()); + player.getPlayer() + .sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", ChatColor.valueOf(ChatChannel.getDefaultColor().toUpperCase()) + "") + .replace("{channel_name}", ChatChannel.getDefaultChannel().getName())); + } else { + player.setModified(true); + } + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Leave.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Leave.java index a488101..9524c2b 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Leave.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Leave.java @@ -2,6 +2,7 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -9,48 +10,45 @@ import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Leave implements VentureCommand { +public class Leave extends Command { + public Leave() { + super("leave"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (args.length > 0) { - ChatChannel channel = ChatChannel.getChannel(args[0]); - if (channel == null) { - mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() - .replace("{args}", args[0])); - return; - } - mcp.removeListening(channel.getName()); - mcp.getPlayer().sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString() - .replace("{channel_color}", channel.getColor() + "") - .replace("{channel_name}", channel.getName())); - boolean isThereABungeeChannel = channel.getBungee(); - if (mcp.getListening().size() == 0) { - mcp.addListening(ChatChannel.getDefaultChannel().getName()); - mcp.setCurrentChannel(ChatChannel.getDefaultChannel()); - if (ChatChannel.getDefaultChannel().getBungee()) { - isThereABungeeChannel = true; - } - mcp.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString()); - mcp.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() - .replace("{channel_color}", ChatColor.valueOf(ChatChannel.getDefaultColor().toUpperCase()) + "") - .replace("{channel_name}", ChatChannel.getDefaultChannel().getName())); - } - if (isThereABungeeChannel) { - MineverseChat.synchronize(mcp, true); - } - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/leave") - .replace("{args}", "[channel]")); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (args.length > 0) { + ChatChannel channel = ChatChannel.getChannel(args[0]); + if (channel == null) { + mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0])); + return true; + } + mcp.removeListening(channel.getName()); + mcp.getPlayer().sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName())); + boolean isThereABungeeChannel = channel.getBungee(); + if (mcp.getListening().size() == 0) { + mcp.addListening(ChatChannel.getDefaultChannel().getName()); + mcp.setCurrentChannel(ChatChannel.getDefaultChannel()); + if (ChatChannel.getDefaultChannel().getBungee()) { + isThereABungeeChannel = true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.MUST_LISTEN_ONE_CHANNEL.toString()); + mcp.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", ChatColor.valueOf(ChatChannel.getDefaultColor().toUpperCase()) + "") + .replace("{channel_name}", ChatChannel.getDefaultChannel().getName())); + } + if (isThereABungeeChannel) { + MineverseChat.synchronize(mcp, true); + } + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/leave").replace("{args}", "[channel]")); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Listen.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Listen.java index 4c88a82..70bf872 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Listen.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Listen.java @@ -1,6 +1,7 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.Bukkit; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -8,43 +9,42 @@ import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Listen implements VentureCommand { +public class Listen extends Command { + public Listen() { + super("listen"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (args.length > 0) { - ChatChannel channel = ChatChannel.getChannel(args[0]); - if (channel == null) { - mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() - .replace("{args}", args[0])); - return; - } - if (channel.hasPermission()) { - if (!mcp.getPlayer().hasPermission(channel.getPermission())) { - mcp.removeListening(channel.getName()); - mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION.toString()); - return; - } - } - mcp.addListening(channel.getName()); - mcp.getPlayer().sendMessage(LocalizedMessage.LISTEN_CHANNEL.toString() - .replace("{channel_color}", channel.getColor() + "") - .replace("{channel_name}", channel.getName())); - if (channel.getBungee()) { - MineverseChat.synchronize(mcp, true); - } - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/listen") - .replace("{args}", "[channel]")); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (args.length > 0) { + ChatChannel channel = ChatChannel.getChannel(args[0]); + if (channel == null) { + mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0])); + return true; + } + if (channel.hasPermission()) { + if (!mcp.getPlayer().hasPermission(channel.getPermission())) { + mcp.removeListening(channel.getName()); + mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION.toString()); + return true; + } + } + mcp.addListening(channel.getName()); + mcp.getPlayer() + .sendMessage(LocalizedMessage.LISTEN_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName())); + if (channel.getBungee()) { + MineverseChat.synchronize(mcp, true); + } + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/listen").replace("{args}", "[channel]")); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Me.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Me.java index d7db188..c51e777 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Me.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Me.java @@ -1,46 +1,48 @@ package mineverse.Aust1n46.chat.command.chat; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import mineverse.Aust1n46.chat.api.MineverseChatAPI; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.utilities.Format; -public class Me implements VentureCommand { +public class Me extends Command { + public Me() { + super("me"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.me")) { - if (args.length > 0) { - String msg = ""; - for (int x = 0; x < args.length; x++) - if (args[x].length() > 0) - msg += " " + args[x]; - if (sender instanceof Player && MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender).hasFilter()) { - msg = Format.FilterChat(msg); - } - if (sender.hasPermission("venturechat.color.legacy")) { - msg = Format.FormatStringLegacyColor(msg); - } - if (sender.hasPermission("venturechat.color")) - msg = Format.FormatStringColor(msg); - if (sender.hasPermission("venturechat.format")) - msg = Format.FormatString(msg); - if (sender instanceof Player) { - Player p = (Player) sender; - Format.broadcastToServer("* " + p.getDisplayName() + msg); - return; - } - Format.broadcastToServer("* " + sender.getName() + msg); - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/me") - .replace("{args}", "[message]")); - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.me")) { + if (args.length > 0) { + String msg = ""; + for (int x = 0; x < args.length; x++) + if (args[x].length() > 0) + msg += " " + args[x]; + if (sender instanceof Player && MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender).hasFilter()) { + msg = Format.FilterChat(msg); + } + if (sender.hasPermission("venturechat.color.legacy")) { + msg = Format.FormatStringLegacyColor(msg); + } + if (sender.hasPermission("venturechat.color")) + msg = Format.FormatStringColor(msg); + if (sender.hasPermission("venturechat.format")) + msg = Format.FormatString(msg); + if (sender instanceof Player) { + Player p = (Player) sender; + Format.broadcastToServer("* " + p.getDisplayName() + msg); + return true; + } + Format.broadcastToServer("* " + sender.getName() + msg); + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/me").replace("{args}", "[message]")); + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Party.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Party.java index db5afed..9043951 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Party.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Party.java @@ -3,46 +3,49 @@ package mineverse.Aust1n46.chat.command.chat; import static mineverse.Aust1n46.chat.MineverseChat.LINE_LENGTH; import org.bukkit.ChatColor; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.utilities.Format; -public class Party implements VentureCommand { +public class Party extends Command { private MineverseChat plugin = MineverseChat.getInstance(); + public Party() { + super("party"); + } + @Override - public void execute(CommandSender sender, String command, String[] args) { - if(!(sender instanceof Player)) { + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player."); - return; + return true; } MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if(!mcp.getPlayer().hasPermission("venturechat.party")) { + if (!mcp.getPlayer().hasPermission("venturechat.party")) { mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); - return; + return true; } try { - switch(args[0]) { + switch (args[0]) { case "host": { - if(!mcp.getPlayer().hasPermission("venturechat.party.host")) { + if (!mcp.getPlayer().hasPermission("venturechat.party.host")) { mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); - return; + return true; } - if(mcp.isHost()) { + if (mcp.isHost()) { mcp.setHost(false); mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are no longer hosting a party."); - for(MineverseChatPlayer player : MineverseChatAPI.getMineverseChatPlayers()) { - if(player.hasParty() && player.getParty().equals(mcp.getParty())) { + for (MineverseChatPlayer player : MineverseChatAPI.getMineverseChatPlayers()) { + if (player.hasParty() && player.getParty().equals(mcp.getParty())) { player.setParty(null); - if(player.isOnline()) { + if (player.isOnline()) { player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party."); - } - else { + } else { player.setModified(true); } } @@ -56,21 +59,19 @@ public class Party implements VentureCommand { break; } case "join": { - if(!mcp.getPlayer().hasPermission("venturechat.party.join")) { + if (!mcp.getPlayer().hasPermission("venturechat.party.join")) { mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); - return; + return true; } - if(args.length > 1) { + if (args.length > 1) { MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]); - if(player != null) { - if(player.isHost()) { - if(!mcp.hasParty()) { + if (player != null) { + if (player.isHost()) { + if (!mcp.hasParty()) { /* - * if(plugin.getMetadata(player, - * "MineverseChat.party.ban." + tp.getName(), - * plugin)) { player.sendMessage(ChatColor.RED + - * "You are banned from " + tp.getName() + - * "'s party."); break; } + * if(plugin.getMetadata(player, "MineverseChat.party.ban." + tp.getName(), + * plugin)) { player.sendMessage(ChatColor.RED + "You are banned from " + + * tp.getName() + "'s party."); break; } */ mcp.getPlayer().sendMessage(ChatColor.GREEN + "Joined " + player.getName() + "'s party."); mcp.setParty(player.getUUID()); @@ -90,21 +91,20 @@ public class Party implements VentureCommand { break; } case "leave": { - if(!mcp.getPlayer().hasPermission("venturechat.party.leave")) { + if (!mcp.getPlayer().hasPermission("venturechat.party.leave")) { mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); - return; + return true; } - if(mcp.hasParty()) { + if (mcp.hasParty()) { mcp.getPlayer().sendMessage(ChatColor.GREEN + "Leaving " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party."); mcp.setParty(null); - if(mcp.isHost()) { - for(MineverseChatPlayer player : MineverseChatAPI.getMineverseChatPlayers()) { - if(player.hasParty() && player.getParty().equals(mcp.getUUID()) && !player.getName().equals(mcp.getName())) { + if (mcp.isHost()) { + for (MineverseChatPlayer player : MineverseChatAPI.getMineverseChatPlayers()) { + if (player.hasParty() && player.getParty().equals(mcp.getUUID()) && !player.getName().equals(mcp.getName())) { player.setParty(null); - if(player.isOnline()) { + if (player.isOnline()) { player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party."); - } - else { + } else { player.setModified(true); } } @@ -117,16 +117,16 @@ public class Party implements VentureCommand { break; } case "kick": { - if(!mcp.getPlayer().hasPermission("venturechat.party.kick")) { + if (!mcp.getPlayer().hasPermission("venturechat.party.kick")) { mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); - return; + return true; } - if(mcp.isHost()) { - if(args.length > 1) { + if (mcp.isHost()) { + if (args.length > 1) { MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]); - if(player != null) { - if(!player.getName().equals(mcp.getName())) { - if(player.hasParty() && player.getParty().equals(mcp.getUUID())) { + if (player != null) { + if (!player.getName().equals(mcp.getName())) { + if (player.hasParty() && player.getParty().equals(mcp.getUUID())) { player.setParty(null); player.getPlayer().sendMessage(ChatColor.RED + "You have been kicked out of " + mcp.getName() + "'s party."); mcp.getPlayer().sendMessage(ChatColor.RED + "You have kicked " + player.getName() + " out of your party."); @@ -148,59 +148,49 @@ public class Party implements VentureCommand { break; } /* - * case "ban": { if(mcp.isHost()) { if(args.length > 1) { Player tp - * = Bukkit.getPlayer(args[1]); if(tp != null) { - * if(!tp.getName().equals(player.getName())) { - * tp.setMetadata("MineverseChat.party.ban." + - * player.getUniqueId().toString(), new FixedMetadataValue(plugin, - * true)); if(plugin.getMetadataString(tp, "MineverseChat.party", - * plugin).equals(plugin.getMetadataString(player, - * "MineverseChat.party", plugin))) { - * tp.setMetadata("MineverseChat.party", new - * FixedMetadataValue(plugin, "")); } tp.sendMessage(ChatColor.RED + - * "You have been banned from " + player.getName() + "'s party."); - * player.sendMessage(ChatColor.RED + "You have banned " + - * tp.getName() + " from your party."); break; } - * player.sendMessage(ChatColor.RED + "You cannot ban yourself."); - * break; } player.sendMessage(ChatColor.RED + "Player: " + - * ChatColor.GOLD + args[1] + ChatColor.RED + " is not online."); - * break; } player.sendMessage(ChatColor.RED + - * "Invalid command: /party ban [playername]"); break; } - * player.sendMessage(ChatColor.RED + - * "You are not hosting a party."); break; } case "unban": { - * if(plugin.getMetadata(player, "MineverseChat.party.host", - * plugin)) { if(args.length > 1) { Player tp = + * case "ban": { if(mcp.isHost()) { if(args.length > 1) { Player tp = * Bukkit.getPlayer(args[1]); if(tp != null) { * if(!tp.getName().equals(player.getName())) { - * tp.setMetadata("MineverseChat.party.ban." + player.getUniqueId(), - * new FixedMetadataValue(plugin, false)); - * tp.sendMessage(ChatColor.RED + "You have been unbanned from " + - * player.getName() + "'s party."); player.sendMessage(ChatColor.RED - * + "You have unbanned " + tp.getName() + " from your party."); + * tp.setMetadata("MineverseChat.party.ban." + player.getUniqueId().toString(), + * new FixedMetadataValue(plugin, true)); if(plugin.getMetadataString(tp, + * "MineverseChat.party", plugin).equals(plugin.getMetadataString(player, + * "MineverseChat.party", plugin))) { tp.setMetadata("MineverseChat.party", new + * FixedMetadataValue(plugin, "")); } tp.sendMessage(ChatColor.RED + + * "You have been banned from " + player.getName() + "'s party."); + * player.sendMessage(ChatColor.RED + "You have banned " + tp.getName() + + * " from your party."); break; } player.sendMessage(ChatColor.RED + + * "You cannot ban yourself."); break; } player.sendMessage(ChatColor.RED + + * "Player: " + ChatColor.GOLD + args[1] + ChatColor.RED + " is not online."); + * break; } player.sendMessage(ChatColor.RED + + * "Invalid command: /party ban [playername]"); break; } + * player.sendMessage(ChatColor.RED + "You are not hosting a party."); break; } + * case "unban": { if(plugin.getMetadata(player, "MineverseChat.party.host", + * plugin)) { if(args.length > 1) { Player tp = Bukkit.getPlayer(args[1]); if(tp + * != null) { if(!tp.getName().equals(player.getName())) { + * tp.setMetadata("MineverseChat.party.ban." + player.getUniqueId(), new + * FixedMetadataValue(plugin, false)); tp.sendMessage(ChatColor.RED + + * "You have been unbanned from " + player.getName() + "'s party."); + * player.sendMessage(ChatColor.RED + "You have unbanned " + tp.getName() + + * " from your party."); break; } player.sendMessage(ChatColor.RED + + * "You cannot unban yourself."); break; } player.sendMessage(ChatColor.RED + + * "Player: " + ChatColor.GOLD + args[1] + ChatColor.RED + " is not online."); * break; } player.sendMessage(ChatColor.RED + - * "You cannot unban yourself."); break; } - * player.sendMessage(ChatColor.RED + "Player: " + ChatColor.GOLD + - * args[1] + ChatColor.RED + " is not online."); break; } - * player.sendMessage(ChatColor.RED + * "Invalid command: /party unban [playername]"); break; } - * player.sendMessage(ChatColor.RED + - * "You are not hosting a party."); break; } + * player.sendMessage(ChatColor.RED + "You are not hosting a party."); break; } */ case "info": { - if(!mcp.getPlayer().hasPermission("venturechat.party.info")) { + if (!mcp.getPlayer().hasPermission("venturechat.party.info")) { mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); - return; + return true; } - if(mcp.hasParty() && !mcp.isHost()) { + if (mcp.hasParty() && !mcp.isHost()) { mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are in " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party."); - } - else if(mcp.isHost()) { + } else if (mcp.isHost()) { mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are hosting a party."); - } - else { + } else { mcp.getPlayer().sendMessage(ChatColor.RED + "You are not hosting a party and you are not in a party."); } - if(mcp.isPartyChat()) { + if (mcp.isPartyChat()) { mcp.getPlayer().sendMessage(ChatColor.GREEN + "Party chat on."); break; } @@ -208,20 +198,20 @@ public class Party implements VentureCommand { break; } case "chat": { - if(!mcp.getPlayer().hasPermission("venturechat.party.chat")) { + if (!mcp.getPlayer().hasPermission("venturechat.party.chat")) { mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); - return; + return true; } - if(mcp.isPartyChat()) { + if (mcp.isPartyChat()) { mcp.setPartyChat(false); mcp.getPlayer().sendMessage(ChatColor.GREEN + "Toggled party chat off."); break; } - if(mcp.hasConversation()) { + if (mcp.hasConversation()) { String tellChat = MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName(); mcp.setConversation(null); - for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if(p.isSpy()) { + for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if (p.isSpy()) { p.getPlayer().sendMessage(mcp.getName() + " is no longer in a private conversation with " + tellChat + "."); } } @@ -232,39 +222,39 @@ public class Party implements VentureCommand { break; } case "help": { - if(!mcp.getPlayer().hasPermission("venturechat.party.help")) { + if (!mcp.getPlayer().hasPermission("venturechat.party.help")) { mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); - return; + return true; } - mcp.getPlayer().sendMessage(ChatColor.GREEN + "/party host\n/party join [player]\n/party leave\n/party kick [player]\n/party ban [player]\n/party unban [player]\n/party info\n/party members [player]\n/party chat\n/party help"); + mcp.getPlayer().sendMessage(ChatColor.GREEN + + "/party host\n/party join [player]\n/party leave\n/party kick [player]\n/party ban [player]\n/party unban [player]\n/party info\n/party members [player]\n/party chat\n/party help"); break; } case "members": { - if(!mcp.getPlayer().hasPermission("venturechat.party.members")) { + if (!mcp.getPlayer().hasPermission("venturechat.party.members")) { mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); - return; + return true; } - if(args.length > 1) { + if (args.length > 1) { MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]); - if(player != null) { - if(player.isHost()) { + if (player != null) { + if (player.isHost()) { String members = ""; long linecount = LINE_LENGTH; - for(MineverseChatPlayer p : MineverseChatAPI.getMineverseChatPlayers()) { - if(p.getParty() != null && p.getParty().equals(player.getUUID())) { - if(members.length() + p.getName().length() > linecount) { + for (MineverseChatPlayer p : MineverseChatAPI.getMineverseChatPlayers()) { + if (p.getParty() != null && p.getParty().equals(player.getUUID())) { + if (members.length() + p.getName().length() > linecount) { members += "\n"; linecount = linecount + LINE_LENGTH; } - if(p.isOnline()) { + if (p.isOnline()) { members += ChatColor.GREEN + p.getName() + ChatColor.WHITE + ", "; - } - else { + } else { members += ChatColor.RED + p.getName() + ChatColor.WHITE + ", "; } } } - if(members.length() > 2) { + if (members.length() > 2) { members = members.substring(0, members.length() - 2); } mcp.getPlayer().sendMessage(ChatColor.GREEN + "Members in " + player.getName() + "'s party: " + members); @@ -280,46 +270,47 @@ public class Party implements VentureCommand { break; } } - if(args[0].length() > 0) { - if(!args[0].equals("host") && !args[0].equals("join") && !args[0].equals("leave") && !args[0].equals("kick") && !args[0].equals("info") && !args[0].equals("chat") && !args[0].equals("help") && !args[0].equals("members") && !args[0].equals("ban") && !args[0].equals("unban")) { - if(mcp.hasParty()) { + if (args[0].length() > 0) { + if (!args[0].equals("host") && !args[0].equals("join") && !args[0].equals("leave") && !args[0].equals("kick") && !args[0].equals("info") && !args[0].equals("chat") + && !args[0].equals("help") && !args[0].equals("members") && !args[0].equals("ban") && !args[0].equals("unban")) { + if (mcp.hasParty()) { String msg = ""; String partyformat = ""; - for(int x = 0; x < args.length; x++) { - if(args[x].length() > 0) msg += " " + args[x]; + for (int x = 0; x < args.length; x++) { + if (args[x].length() > 0) + msg += " " + args[x]; } - if(mcp.hasFilter()) { + if (mcp.hasFilter()) { msg = Format.FilterChat(msg); } - if(mcp.getPlayer().hasPermission("venturechat.color.legacy")) { + if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { msg = Format.FormatStringLegacyColor(msg); } - if(mcp.getPlayer().hasPermission("venturechat.color")) { + if (mcp.getPlayer().hasPermission("venturechat.color")) { msg = Format.FormatStringColor(msg); } - if(mcp.getPlayer().hasPermission("venturechat.format")) { + if (mcp.getPlayer().hasPermission("venturechat.format")) { msg = Format.FormatString(msg); } - if(plugin.getConfig().getString("partyformat").equalsIgnoreCase("Default")) { + if (plugin.getConfig().getString("partyformat").equalsIgnoreCase("Default")) { partyformat = ChatColor.GREEN + "[" + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s Party] " + mcp.getName() + ":" + msg; + } else { + partyformat = Format.FormatStringAll(plugin.getConfig().getString("partyformat") + .replace("{host}", MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg; } - else { - partyformat = Format.FormatStringAll(plugin.getConfig().getString("partyformat").replace("{host}", MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg; - } - for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if((p.getParty().equals(mcp.getParty()) || p.isSpy())) { + for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if ((p.getParty().equals(mcp.getParty()) || p.isSpy())) { p.getPlayer().sendMessage(partyformat); } } - return; + return true; } mcp.getPlayer().sendMessage(ChatColor.RED + "You are not in a party."); } } - } - catch(Exception e) { + } catch (Exception e) { mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid arguments, /party help"); } - return; + return true; } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/RangedSpy.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/RangedSpy.java index 1a6e0ff..607e826 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/RangedSpy.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/RangedSpy.java @@ -1,34 +1,37 @@ package mineverse.Aust1n46.chat.command.chat; -import mineverse.Aust1n46.chat.api.MineverseChatAPI; -import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; -import mineverse.Aust1n46.chat.localization.LocalizedMessage; - import org.bukkit.Bukkit; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -public class RangedSpy implements VentureCommand { +import mineverse.Aust1n46.chat.api.MineverseChatAPI; +import mineverse.Aust1n46.chat.api.MineverseChatPlayer; +import mineverse.Aust1n46.chat.localization.LocalizedMessage; - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (mcp.getPlayer().hasPermission("venturechat.rangedspy")) { - if (!mcp.getRangedSpy()) { - mcp.setRangedSpy(true); - mcp.getPlayer().sendMessage(LocalizedMessage.RANGED_SPY_ON.toString()); - return; - } - mcp.setRangedSpy(false); - mcp.getPlayer().sendMessage(LocalizedMessage.RANGED_SPY_OFF.toString()); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } +public class RangedSpy extends Command { + public RangedSpy() { + super("rangedspy"); + } + + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (mcp.getPlayer().hasPermission("venturechat.rangedspy")) { + if (!mcp.getRangedSpy()) { + mcp.setRangedSpy(true); + mcp.getPlayer().sendMessage(LocalizedMessage.RANGED_SPY_ON.toString()); + return true; + } + mcp.setRangedSpy(false); + mcp.getPlayer().sendMessage(LocalizedMessage.RANGED_SPY_OFF.toString()); + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Removemessage.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Removemessage.java index 8197a60..fcc6455 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Removemessage.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Removemessage.java @@ -7,16 +7,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import mineverse.Aust1n46.chat.ChatMessage; -import mineverse.Aust1n46.chat.MineverseChat; -import mineverse.Aust1n46.chat.api.MineverseChatAPI; -import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; -import mineverse.Aust1n46.chat.localization.LocalizedMessage; -import mineverse.Aust1n46.chat.utilities.Format; - import org.bukkit.ChatColor; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; @@ -24,98 +16,118 @@ import org.bukkit.scheduler.BukkitRunnable; import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.wrappers.WrappedChatComponent; -public class Removemessage implements VentureCommand { - private MineverseChat plugin = MineverseChat.getInstance(); - private PacketContainer emptyLinePacketContainer = Format.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}"); - private WrappedChatComponent messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions"))) + "]}}}]}"); - ; +import mineverse.Aust1n46.chat.ChatMessage; +import mineverse.Aust1n46.chat.MineverseChat; +import mineverse.Aust1n46.chat.api.MineverseChatAPI; +import mineverse.Aust1n46.chat.api.MineverseChatPlayer; +import mineverse.Aust1n46.chat.channel.ChatChannel; +import mineverse.Aust1n46.chat.localization.LocalizedMessage; +import mineverse.Aust1n46.chat.utilities.Format; - @Override - @SuppressWarnings({"unchecked", "rawtypes"}) - public void execute(CommandSender sender, String command, String[] args) { - if (args.length == 0) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/removemessage") - .replace("{args}", "[hashcode] {channel}")); - return; - } - final int hash; - try { - hash = Integer.parseInt(args[0]); - } catch (Exception e) { - sender.sendMessage(LocalizedMessage.INVALID_HASH.toString()); - return; - } - if (args.length > 1 && ChatChannel.isChannel(args[1]) && ChatChannel.getChannel(args[1]).getBungee() && sender instanceof Player) { - ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); - DataOutputStream out = new DataOutputStream(byteOutStream); - try { - out.writeUTF("RemoveMessage"); - out.writeUTF(String.valueOf(hash)); - ((Player) sender).sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - return; - } else { - new BukkitRunnable() { - public void run() { - final Map> packets = new HashMap(); - for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - List messages = p.getMessages(); - List playerPackets = new ArrayList(); - boolean resend = false; - for (int fill = 0; fill < 100 - messages.size(); fill++) { - playerPackets.add(Removemessage.this.emptyLinePacketContainer); - } - for (ChatMessage message : messages) { - if (message.getHash() == hash) { - WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer(); - message.setComponent(removedComponent); - message.setHash(-1); - playerPackets.add(Format.createPacketPlayOutChat(removedComponent)); - resend = true; - continue; - } - if (message.getMessage().contains(ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))))) { - String submessage = message.getMessage().substring(0, message.getMessage().length() - ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))).length()); - if (submessage.hashCode() == hash) { - WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer(); - message.setComponent(removedComponent); - message.setHash(-1); - playerPackets.add(Format.createPacketPlayOutChat(removedComponent)); - resend = true; - continue; - } - } - playerPackets.add(Format.createPacketPlayOutChat(message.getComponent())); +public class Removemessage extends Command { + private MineverseChat plugin = MineverseChat.getInstance(); + private PacketContainer emptyLinePacketContainer = Format.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}"); + private WrappedChatComponent messageDeletedComponentPlayer = WrappedChatComponent.fromJson( + "{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions"))) + "]}}}]}"); - } - if (resend) { - packets.put(p.getPlayer(), playerPackets); - } - } - new BukkitRunnable() { - public void run() { - for (Player p : packets.keySet()) { - List pPackets = packets.get(p); - for (PacketContainer c : pPackets) { - Format.sendPacketPlayOutChat(p, c); - } - } - } - }.runTask(plugin); - } - }.runTaskAsynchronously(plugin); - } - } + public Removemessage() { + super("removemessage"); + } - public WrappedChatComponent getMessageDeletedChatComponentPlayer() { - return this.messageDeletedComponentPlayer; - } + @Override + @SuppressWarnings({ "unchecked", "rawtypes" }) + public boolean execute(CommandSender sender, String command, String[] args) { + if (args.length == 0) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/removemessage").replace("{args}", "[hashcode] {channel}")); + return true; + } + final int hash; + try { + hash = Integer.parseInt(args[0]); + } catch (Exception e) { + sender.sendMessage(LocalizedMessage.INVALID_HASH.toString()); + return true; + } + if (args.length > 1 && ChatChannel.isChannel(args[1]) && ChatChannel.getChannel(args[1]).getBungee() && sender instanceof Player) { + ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(byteOutStream); + try { + out.writeUTF("RemoveMessage"); + out.writeUTF(String.valueOf(hash)); + ((Player) sender).sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return true; + } else { + new BukkitRunnable() { + public void run() { + final Map> packets = new HashMap(); + for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + List messages = p.getMessages(); + List playerPackets = new ArrayList(); + boolean resend = false; + for (int fill = 0; fill < 100 - messages.size(); fill++) { + playerPackets.add(Removemessage.this.emptyLinePacketContainer); + } + for (ChatMessage message : messages) { + if (message.getHash() == hash) { + WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") + ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) + : Removemessage.this.getMessageDeletedChatComponentPlayer(); + message.setComponent(removedComponent); + message.setHash(-1); + playerPackets.add(Format.createPacketPlayOutChat(removedComponent)); + resend = true; + continue; + } + if (message.getMessage().contains(ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))))) { + String submessage = message.getMessage().substring(0, + message.getMessage().length() - ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))).length()); + if (submessage.hashCode() == hash) { + WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") + ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) + : Removemessage.this.getMessageDeletedChatComponentPlayer(); + message.setComponent(removedComponent); + message.setHash(-1); + playerPackets.add(Format.createPacketPlayOutChat(removedComponent)); + resend = true; + continue; + } + } + playerPackets.add(Format.createPacketPlayOutChat(message.getComponent())); - public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) { - return WrappedChatComponent.fromJson("[{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\"," + message.getColoredMessage() + "}}}]}]"); - } + } + if (resend) { + packets.put(p.getPlayer(), playerPackets); + } + } + new BukkitRunnable() { + public void run() { + for (Player p : packets.keySet()) { + List pPackets = packets.get(p); + for (PacketContainer c : pPackets) { + Format.sendPacketPlayOutChat(p, c); + } + } + } + }.runTask(plugin); + } + }.runTaskAsynchronously(plugin); + return true; + } + } + + public WrappedChatComponent getMessageDeletedChatComponentPlayer() { + return this.messageDeletedComponentPlayer; + } + + public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) { + return WrappedChatComponent.fromJson( + "[{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\"," + message.getColoredMessage() + "}}}]}]"); + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Setchannel.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Setchannel.java index fb9a969..91e1135 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Setchannel.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Setchannel.java @@ -1,84 +1,78 @@ package mineverse.Aust1n46.chat.command.chat; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Setchannel implements VentureCommand { +public class Setchannel extends Command { + public Setchannel() { + super("setchannel"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.setchannel")) { - if (args.length < 2) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/setchannel") - .replace("{args}", "[player] [channel]")); - return; - } - MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); - if (player == null) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - ChatChannel channel = ChatChannel.getChannel(args[1]); - if (channel == null) { - sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() - .replace("{args}", args[1])); - return; - } - if (channel.hasPermission()) { - if (!player.isOnline()) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE_NO_PERMISSIONS_CHECK.toString()); - return; - } - if (!player.getPlayer().hasPermission(channel.getPermission())) { - player.removeListening(channel.getName()); - sender.sendMessage(LocalizedMessage.SET_CHANNEL_PLAYER_CHANNEL_NO_PERMISSION.toString() - .replace("{player}", player.getName()) - .replace("{channel_color}", channel.getColor() + "") - .replace("{channel_name}", channel.getName())); - return; - } - } - player.addListening(channel.getName()); - player.setCurrentChannel(channel); - sender.sendMessage(LocalizedMessage.SET_CHANNEL_SENDER.toString() - .replace("{player}", player.getName()) - .replace("{channel_color}", channel.getColor() + "") - .replace("{channel_name}", channel.getName())); - if (player.hasConversation()) { - for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if (p.isSpy()) { - p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() - .replace("{player_sender}", player.getName()) - .replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(player.getConversation()).getName())); - } - } - if (player.isOnline()) - player.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString() - .replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(player.getConversation()).getName())); - else - player.setModified(true); - player.setConversation(null); - } - if (player.isOnline()) - player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() - .replace("{channel_color}", channel.getColor() + "") - .replace("{channel_name}", channel.getName())); - else { - player.setModified(true); - } - if (channel.getBungee()) { - MineverseChat.synchronize(player, true); - } - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.setchannel")) { + if (args.length < 2) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/setchannel").replace("{args}", "[player] [channel]")); + return true; + } + MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); + if (player == null) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return true; + } + ChatChannel channel = ChatChannel.getChannel(args[1]); + if (channel == null) { + sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1])); + return true; + } + if (channel.hasPermission()) { + if (!player.isOnline()) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE_NO_PERMISSIONS_CHECK.toString()); + return true; + } + if (!player.getPlayer().hasPermission(channel.getPermission())) { + player.removeListening(channel.getName()); + sender.sendMessage(LocalizedMessage.SET_CHANNEL_PLAYER_CHANNEL_NO_PERMISSION.toString().replace("{player}", player.getName()) + .replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName())); + return true; + } + } + player.addListening(channel.getName()); + player.setCurrentChannel(channel); + sender.sendMessage(LocalizedMessage.SET_CHANNEL_SENDER.toString().replace("{player}", player.getName()).replace("{channel_color}", channel.getColor() + "") + .replace("{channel_name}", channel.getName())); + if (player.hasConversation()) { + for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if (p.isSpy()) { + p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", player.getName()) + .replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(player.getConversation()).getName())); + } + } + if (player.isOnline()) + player.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString().replace("{player_receiver}", + MineverseChatAPI.getMineverseChatPlayer(player.getConversation()).getName())); + else + player.setModified(true); + player.setConversation(null); + } + if (player.isOnline()) + player.getPlayer() + .sendMessage(LocalizedMessage.SET_CHANNEL.toString().replace("{channel_color}", channel.getColor() + "").replace("{channel_name}", channel.getName())); + else { + player.setModified(true); + } + if (channel.getBungee()) { + MineverseChat.synchronize(player, true); + } + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Setchannelall.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Setchannelall.java index 94543c1..c790453 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Setchannelall.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Setchannelall.java @@ -1,61 +1,61 @@ package mineverse.Aust1n46.chat.command.chat; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Setchannelall implements VentureCommand { +public class Setchannelall extends Command { + public Setchannelall() { + super("setchannelall"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.setchannelall")) { - if (args.length < 1) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/setchannelall") - .replace("{args}", "[player]")); - return; - } - MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); - if (player == null) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - boolean isThereABungeeChannel = false; - for (ChatChannel channel : ChatChannel.getChatChannels()) { - if (channel.hasPermission()) { - if (!player.isOnline()) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE_NO_PERMISSIONS_CHECK.toString()); - return; - } - if (!player.getPlayer().hasPermission(channel.getPermission())) { - player.removeListening(channel.getName()); - } else { - player.addListening(channel.getName()); - } - } else { - player.addListening(channel.getName()); - } - if (channel.getBungee()) { - isThereABungeeChannel = true; - } - } - sender.sendMessage(LocalizedMessage.SET_CHANNEL_ALL_SENDER.toString() - .replace("{player}", player.getName())); - if (player.isOnline()) - player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL_ALL_PLAYER.toString()); - else - player.setModified(true); - if (isThereABungeeChannel) { - MineverseChat.synchronize(player, true); - } - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.setchannelall")) { + if (args.length < 1) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/setchannelall").replace("{args}", "[player]")); + return true; + } + MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); + if (player == null) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return true; + } + boolean isThereABungeeChannel = false; + for (ChatChannel channel : ChatChannel.getChatChannels()) { + if (channel.hasPermission()) { + if (!player.isOnline()) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE_NO_PERMISSIONS_CHECK.toString()); + return true; + } + if (!player.getPlayer().hasPermission(channel.getPermission())) { + player.removeListening(channel.getName()); + } else { + player.addListening(channel.getName()); + } + } else { + player.addListening(channel.getName()); + } + if (channel.getBungee()) { + isThereABungeeChannel = true; + } + } + sender.sendMessage(LocalizedMessage.SET_CHANNEL_ALL_SENDER.toString().replace("{player}", player.getName())); + if (player.isOnline()) + player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL_ALL_PLAYER.toString()); + else + player.setModified(true); + if (isThereABungeeChannel) { + MineverseChat.synchronize(player, true); + } + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/VentureChatGui.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/VentureChatGui.java index e38cfea..3e06ccb 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/VentureChatGui.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/VentureChatGui.java @@ -6,6 +6,7 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; @@ -18,186 +19,187 @@ import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.gui.GuiSlot; import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.versions.VersionHandler; -public class VentureChatGui implements VentureCommand { - private MineverseChat plugin = MineverseChat.getInstance(); +public class VentureChatGui extends Command { + private MineverseChat plugin = MineverseChat.getInstance(); - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } - if (args.length < 3) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/venturechatgui") - .replace("{args}", "[player] [channel] [hashcode]")); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (mcp.getPlayer().hasPermission("venturechat.gui")) { - MineverseChatPlayer target = MineverseChatAPI.getMineverseChatPlayer(args[0]); - if (target == null && !args[0].equals("Discord")) { - mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - if (ChatChannel.isChannel(args[1])) { - ChatChannel channel = ChatChannel.getChannel(args[1]); - final int hash; - try { - hash = Integer.parseInt(args[2]); - } catch (Exception e) { - sender.sendMessage(LocalizedMessage.INVALID_HASH.toString()); - return; - } - if (args[0].equals("Discord")) { - this.openInventoryDiscord(mcp, channel, hash); - return; - } - this.openInventory(mcp, target, channel, hash); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString() - .replace("{args}", args[1])); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } + public VentureChatGui() { + super("venturechatgui"); + } - @SuppressWarnings("deprecation") - private void openInventory(MineverseChatPlayer mcp, MineverseChatPlayer target, ChatChannel channel, int hash) { - Inventory inv = Bukkit.createInventory(null, this.getSlots(), "VentureChat: " + target.getName() + " GUI"); - ItemStack close = null; - ItemStack skull = null; - if (VersionHandler.is1_7()) { - close = new ItemStack(Material.BEDROCK); - } else { - close = new ItemStack(Material.BARRIER); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + if (args.length < 3) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/venturechatgui").replace("{args}", "[player] [channel] [hashcode]")); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (mcp.getPlayer().hasPermission("venturechat.gui")) { + MineverseChatPlayer target = MineverseChatAPI.getMineverseChatPlayer(args[0]); + if (target == null && !args[0].equals("Discord")) { + mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return true; + } + if (ChatChannel.isChannel(args[1])) { + ChatChannel channel = ChatChannel.getChannel(args[1]); + final int hash; + try { + hash = Integer.parseInt(args[2]); + } catch (Exception e) { + sender.sendMessage(LocalizedMessage.INVALID_HASH.toString()); + return true; + } + if (args[0].equals("Discord")) { + this.openInventoryDiscord(mcp, channel, hash); + return true; + } + this.openInventory(mcp, target, channel, hash); + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1])); + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } - if (VersionHandler.is1_7() || VersionHandler.is1_8() || VersionHandler.is1_9() || VersionHandler.is1_10() || VersionHandler.is1_11() || VersionHandler.is1_12()) { - skull = new ItemStack(Material.getMaterial("SKULL_ITEM")); - } else { - skull = new ItemStack(Material.PLAYER_HEAD); - } + @SuppressWarnings("deprecation") + private void openInventory(MineverseChatPlayer mcp, MineverseChatPlayer target, ChatChannel channel, int hash) { + Inventory inv = Bukkit.createInventory(null, this.getSlots(), "VentureChat: " + target.getName() + " GUI"); + ItemStack close = null; + ItemStack skull = null; + if (VersionHandler.is1_7()) { + close = new ItemStack(Material.BEDROCK); + } else { + close = new ItemStack(Material.BARRIER); + } - ItemMeta closeMeta = close.getItemMeta(); - closeMeta.setDisplayName(ChatColor.RED + "" + ChatColor.ITALIC + "Close GUI"); - close.setItemMeta(closeMeta); + if (VersionHandler.is1_7() || VersionHandler.is1_8() || VersionHandler.is1_9() || VersionHandler.is1_10() || VersionHandler.is1_11() || VersionHandler.is1_12()) { + skull = new ItemStack(Material.getMaterial("SKULL_ITEM")); + } else { + skull = new ItemStack(Material.PLAYER_HEAD); + } - SkullMeta skullMeta = (SkullMeta) skull.getItemMeta(); - skullMeta.setOwner(target.getName()); - skullMeta.setDisplayName(ChatColor.AQUA + target.getName()); - List skullLore = new ArrayList(); - skullLore.add(ChatColor.GRAY + "Channel: " + channel.getColor() + channel.getName()); - skullLore.add(ChatColor.GRAY + "Hash: " + channel.getColor() + hash); - skullMeta.setLore(skullLore); - skull.setItemMeta(skullMeta); - skull.setDurability((short) 3); - inv.setItem(0, skull); + ItemMeta closeMeta = close.getItemMeta(); + closeMeta.setDisplayName(ChatColor.RED + "" + ChatColor.ITALIC + "Close GUI"); + close.setItemMeta(closeMeta); - for (GuiSlot g : GuiSlot.getGuiSlots()) { - if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) { - if (this.checkSlot(g.getSlot())) { - MineverseChat.getInstance().getServer().getConsoleSender().sendMessage(Format.FormatStringAll("&cGUI: " + g.getName() + " has invalid slot: " + g.getSlot() + "!")); - continue; - } - ItemStack gStack = new ItemStack(g.getIcon()); - gStack.setDurability((short) g.getDurability()); - ItemMeta gMeta = gStack.getItemMeta(); - String displayName = g.getText().replace("{player_name}", target.getName()).replace("{channel}", channel.getName()).replace("{hash}", hash + ""); - if (target.isOnline()) { - displayName = PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), displayName); - } - gMeta.setDisplayName(Format.FormatStringAll(displayName)); - List gLore = new ArrayList(); - gMeta.setLore(gLore); - gStack.setItemMeta(gMeta); - inv.setItem(g.getSlot(), gStack); - } - } + SkullMeta skullMeta = (SkullMeta) skull.getItemMeta(); + skullMeta.setOwner(target.getName()); + skullMeta.setDisplayName(ChatColor.AQUA + target.getName()); + List skullLore = new ArrayList(); + skullLore.add(ChatColor.GRAY + "Channel: " + channel.getColor() + channel.getName()); + skullLore.add(ChatColor.GRAY + "Hash: " + channel.getColor() + hash); + skullMeta.setLore(skullLore); + skull.setItemMeta(skullMeta); + skull.setDurability((short) 3); + inv.setItem(0, skull); - inv.setItem(8, close); - mcp.getPlayer().openInventory(inv); - } + for (GuiSlot g : GuiSlot.getGuiSlots()) { + if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) { + if (this.checkSlot(g.getSlot())) { + MineverseChat.getInstance().getServer().getConsoleSender() + .sendMessage(Format.FormatStringAll("&cGUI: " + g.getName() + " has invalid slot: " + g.getSlot() + "!")); + continue; + } + ItemStack gStack = new ItemStack(g.getIcon()); + gStack.setDurability((short) g.getDurability()); + ItemMeta gMeta = gStack.getItemMeta(); + String displayName = g.getText().replace("{player_name}", target.getName()).replace("{channel}", channel.getName()).replace("{hash}", hash + ""); + if (target.isOnline()) { + displayName = PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), displayName); + } + gMeta.setDisplayName(Format.FormatStringAll(displayName)); + List gLore = new ArrayList(); + gMeta.setLore(gLore); + gStack.setItemMeta(gMeta); + inv.setItem(g.getSlot(), gStack); + } + } - @SuppressWarnings("deprecation") - private void openInventoryDiscord(MineverseChatPlayer mcp, ChatChannel channel, int hash) { - Inventory inv = Bukkit.createInventory(null, this.getSlots(), "VentureChat: Discord_Message GUI"); - ItemStack close = null; - ItemStack skull = null; - if (VersionHandler.is1_7()) { - close = new ItemStack(Material.BEDROCK); - } else { - close = new ItemStack(Material.BARRIER); - } + inv.setItem(8, close); + mcp.getPlayer().openInventory(inv); + } - if (VersionHandler.is1_7() || VersionHandler.is1_8() || VersionHandler.is1_9() || VersionHandler.is1_10() || VersionHandler.is1_11() || VersionHandler.is1_12()) { - skull = new ItemStack(Material.getMaterial("SKULL_ITEM")); - } else { - skull = new ItemStack(Material.PLAYER_HEAD); - } + @SuppressWarnings("deprecation") + private void openInventoryDiscord(MineverseChatPlayer mcp, ChatChannel channel, int hash) { + Inventory inv = Bukkit.createInventory(null, this.getSlots(), "VentureChat: Discord_Message GUI"); + ItemStack close = null; + ItemStack skull = null; + if (VersionHandler.is1_7()) { + close = new ItemStack(Material.BEDROCK); + } else { + close = new ItemStack(Material.BARRIER); + } - ItemMeta closeMeta = close.getItemMeta(); - closeMeta.setDisplayName("�oClose GUI"); - close.setItemMeta(closeMeta); + if (VersionHandler.is1_7() || VersionHandler.is1_8() || VersionHandler.is1_9() || VersionHandler.is1_10() || VersionHandler.is1_11() || VersionHandler.is1_12()) { + skull = new ItemStack(Material.getMaterial("SKULL_ITEM")); + } else { + skull = new ItemStack(Material.PLAYER_HEAD); + } - SkullMeta skullMeta = (SkullMeta) skull.getItemMeta(); - skullMeta.setOwner("Scarsz"); - skullMeta.setDisplayName("�bDiscord_Message"); - List skullLore = new ArrayList(); - skullLore.add("�7Channel: " + channel.getColor() + channel.getName()); - skullLore.add("�7Hash: " + channel.getColor() + hash); - skullMeta.setLore(skullLore); - skull.setItemMeta(skullMeta); - skull.setDurability((short) 3); - inv.setItem(0, skull); + ItemMeta closeMeta = close.getItemMeta(); + closeMeta.setDisplayName("�oClose GUI"); + close.setItemMeta(closeMeta); - for (GuiSlot g : GuiSlot.getGuiSlots()) { - if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) { - if (this.checkSlot(g.getSlot())) { - MineverseChat.getInstance().getServer().getConsoleSender().sendMessage(Format.FormatStringAll("&cGUI: " + g.getName() + " has invalid slot: " + g.getSlot() + "!")); - continue; - } - ItemStack gStack = new ItemStack(g.getIcon()); - gStack.setDurability((short) g.getDurability()); - ItemMeta gMeta = gStack.getItemMeta(); - String displayName = g.getText().replace("{player_name}", "Discord_Message").replace("{channel}", channel.getName()).replace("{hash}", hash + ""); - gMeta.setDisplayName(Format.FormatStringAll(displayName)); - List gLore = new ArrayList(); - gMeta.setLore(gLore); - gStack.setItemMeta(gMeta); - inv.setItem(g.getSlot(), gStack); - } - } + SkullMeta skullMeta = (SkullMeta) skull.getItemMeta(); + skullMeta.setOwner("Scarsz"); + skullMeta.setDisplayName("�bDiscord_Message"); + List skullLore = new ArrayList(); + skullLore.add("�7Channel: " + channel.getColor() + channel.getName()); + skullLore.add("�7Hash: " + channel.getColor() + hash); + skullMeta.setLore(skullLore); + skull.setItemMeta(skullMeta); + skull.setDurability((short) 3); + inv.setItem(0, skull); - inv.setItem(8, close); - mcp.getPlayer().openInventory(inv); - } + for (GuiSlot g : GuiSlot.getGuiSlots()) { + if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) { + if (this.checkSlot(g.getSlot())) { + MineverseChat.getInstance().getServer().getConsoleSender() + .sendMessage(Format.FormatStringAll("&cGUI: " + g.getName() + " has invalid slot: " + g.getSlot() + "!")); + continue; + } + ItemStack gStack = new ItemStack(g.getIcon()); + gStack.setDurability((short) g.getDurability()); + ItemMeta gMeta = gStack.getItemMeta(); + String displayName = g.getText().replace("{player_name}", "Discord_Message").replace("{channel}", channel.getName()).replace("{hash}", hash + ""); + gMeta.setDisplayName(Format.FormatStringAll(displayName)); + List gLore = new ArrayList(); + gMeta.setLore(gLore); + gStack.setItemMeta(gMeta); + inv.setItem(g.getSlot(), gStack); + } + } - private boolean checkSlot(int slot) { - return slot == 0 || slot == 8; - } + inv.setItem(8, close); + mcp.getPlayer().openInventory(inv); + } - private int getSlots() { - int rows = plugin.getConfig().getInt("guirows", 1); - if (rows == 2) - return 18; - if (rows == 3) - return 27; - if (rows == 4) - return 36; - if (rows == 5) - return 45; - if (rows == 6) - return 54; - return 9; - } + private boolean checkSlot(int slot) { + return slot == 0 || slot == 8; + } + + private int getSlots() { + int rows = plugin.getConfig().getInt("guirows", 1); + if (rows == 2) + return 18; + if (rows == 3) + return 27; + if (rows == 4) + return 36; + if (rows == 5) + return 45; + if (rows == 6) + return 54; + return 9; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/chat/Venturechat.java b/src/main/java/mineverse/Aust1n46/chat/command/chat/Venturechat.java index 0529880..464c1a1 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/chat/Venturechat.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/chat/Venturechat.java @@ -1,7 +1,12 @@ package mineverse.Aust1n46.chat.command.chat; +import org.bukkit.command.Command; +//import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; +//import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +//import org.bukkit.entity.Player; + import mineverse.Aust1n46.chat.MineverseChat; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.InternalMessage; //import net.md_5.bungee.api.chat.ClickEvent; //import net.md_5.bungee.api.chat.ComponentBuilder; @@ -10,19 +15,19 @@ import mineverse.Aust1n46.chat.localization.InternalMessage; //import net.minecraft.server.v1_15_R1.IChatBaseComponent; //import net.minecraft.server.v1_15_R1.PacketPlayOutChat; -//import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; -//import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; -//import org.bukkit.entity.Player; - -public class Venturechat implements VentureCommand { +public class Venturechat extends Command { private MineverseChat plugin = MineverseChat.getInstance(); - + + public Venturechat() { + super("venturechat"); + } + @Override - public void execute(CommandSender sender, String command, String[] args) { + public boolean execute(CommandSender sender, String command, String[] args) { sender.sendMessage(InternalMessage.VENTURECHAT_VERSION.toString() .replace("{version}", plugin.getDescription().getVersion())); sender.sendMessage(InternalMessage.VENTURECHAT_AUTHOR.toString()); + return true; // if (sender instanceof Player && plugin.getConfig().getString("loglevel", "info").equals("debug")) { // Player player = (Player) sender; // String title = ChatColor.GOLD + " | " + ChatColor.BLUE.toString() + ChatColor.BOLD + "SpigotAPI chat message" + ChatColor.RESET + ChatColor.GOLD + " | "; diff --git a/src/main/java/mineverse/Aust1n46/chat/command/message/Ignore.java b/src/main/java/mineverse/Aust1n46/chat/command/message/Ignore.java index 38c4e71..01a9fb8 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/message/Ignore.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/message/Ignore.java @@ -16,92 +16,91 @@ import org.bukkit.util.StringUtil; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Ignore implements VentureCommand { - private MineverseChat plugin = MineverseChat.getInstance(); +public class Ignore extends Command { + public Ignore() { + super("ignore"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (args.length == 0) { - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS_IGNORE.toString()); - return; - } - if (args[0].equalsIgnoreCase("list")) { - String ignoreList = ""; - for (UUID ignore : mcp.getIgnores()) { - MineverseChatPlayer i = MineverseChatAPI.getMineverseChatPlayer(ignore); - String iName = ignore.toString(); - if (i != null) { - iName = i.getName(); - } - ignoreList += ChatColor.RED + iName + ChatColor.WHITE + ", "; - } - mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_LIST_HEADER.toString()); - if (ignoreList.length() > 0) { - mcp.getPlayer().sendMessage(ignoreList.substring(0, ignoreList.length() - 2)); - } - return; - } - if (mcp.getName().equalsIgnoreCase(args[0])) { - mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_YOURSELF.toString()); - return; - } - if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { - ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); - DataOutputStream out = new DataOutputStream(byteOutStream); - try { - out.writeUTF("Ignore"); - out.writeUTF("Send"); - out.writeUTF(args[0]); - out.writeUTF(mcp.getUUID().toString()); - mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - return; - } + private MineverseChat plugin = MineverseChat.getInstance(); - MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]); - if (player == null) { - mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - if (mcp.getIgnores().contains(player.getUUID())) { - mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_OFF.toString() - .replace("{player}", player.getName())); - mcp.removeIgnore(player.getUUID()); - MineverseChat.synchronize(mcp, true); - return; - } - if (player.getPlayer().hasPermission("venturechat.ignore.bypass")) { - mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_CANT.toString() - .replace("{player}", player.getName())); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_ON.toString() - .replace("{player}", player.getName())); - mcp.addIgnore(player.getUUID()); - MineverseChat.synchronize(mcp, true); - return; - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (args.length == 0) { + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS_IGNORE.toString()); + return true; + } + if (args[0].equalsIgnoreCase("list")) { + String ignoreList = ""; + for (UUID ignore : mcp.getIgnores()) { + MineverseChatPlayer i = MineverseChatAPI.getMineverseChatPlayer(ignore); + String iName = ignore.toString(); + if (i != null) { + iName = i.getName(); + } + ignoreList += ChatColor.RED + iName + ChatColor.WHITE + ", "; + } + mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_LIST_HEADER.toString()); + if (ignoreList.length() > 0) { + mcp.getPlayer().sendMessage(ignoreList.substring(0, ignoreList.length() - 2)); + } + return true; + } + if (mcp.getName().equalsIgnoreCase(args[0])) { + mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_YOURSELF.toString()); + return true; + } + if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { + ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(byteOutStream); + try { + out.writeUTF("Ignore"); + out.writeUTF("Send"); + out.writeUTF(args[0]); + out.writeUTF(mcp.getUUID().toString()); + mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return true; + } - @Override - public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { - if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { - List completions = new ArrayList<>(); - StringUtil.copyPartialMatches(args[args.length - 1], MineverseChatAPI.getNetworkPlayerNames(), completions); - Collections.sort(completions); - return completions; - } - return null; - } + MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]); + if (player == null) { + mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return true; + } + if (mcp.getIgnores().contains(player.getUUID())) { + mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_OFF.toString().replace("{player}", player.getName())); + mcp.removeIgnore(player.getUUID()); + MineverseChat.synchronize(mcp, true); + return true; + } + if (player.getPlayer().hasPermission("venturechat.ignore.bypass")) { + mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_CANT.toString().replace("{player}", player.getName())); + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_ON.toString().replace("{player}", player.getName())); + mcp.addIgnore(player.getUUID()); + MineverseChat.synchronize(mcp, true); + return true; + } + + @Override + public List tabComplete(CommandSender sender, String label, String[] args) { + if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { + List completions = new ArrayList<>(); + StringUtil.copyPartialMatches(args[args.length - 1], MineverseChatAPI.getNetworkPlayerNames(), completions); + Collections.sort(completions); + return completions; + } + return null; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/message/Message.java b/src/main/java/mineverse/Aust1n46/chat/command/message/Message.java index 531a42a..9a126c4 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/message/Message.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/message/Message.java @@ -15,202 +15,193 @@ import me.clip.placeholderapi.PlaceholderAPI; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.utilities.Format; -public class Message implements VentureCommand { - private MineverseChat plugin = MineverseChat.getInstance(); +public class Message extends Command { + public Message() { + super("message"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } + private MineverseChat plugin = MineverseChat.getInstance(); - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (args.length == 0) { - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/" + command) - .replace("{args}", "[player] [message]")); - return; - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } - if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { - sendBungeeCordMessage(mcp, command, args); - return; - } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (args.length == 0) { + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/" + command).replace("{args}", "[player] [message]")); + return true; + } - MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]); - if (player == null) { - mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - if (!mcp.getPlayer().canSee(player.getPlayer())) { - mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - if (player.getIgnores().contains(mcp.getUUID())) { - mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString() - .replace("{player}", player.getName())); - return; - } - if (!player.getMessageToggle()) { - mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString() - .replace("{player}", player.getName())); - return; - } + if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { + sendBungeeCordMessage(mcp, command, args); + return true; + } - if (args.length >= 2) { - String msg = ""; - String echo = ""; - String send = ""; - String spy = ""; - if (args[1].length() > 0) { - for (int r = 1; r < args.length; r++) { - msg += " " + args[r]; - } - if (mcp.hasFilter()) { - msg = Format.FilterChat(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { - msg = Format.FormatStringLegacyColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color")) { - msg = Format.FormatStringColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.format")) { - msg = Format.FormatString(msg); - } + MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]); + if (player == null) { + mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return true; + } + if (!mcp.getPlayer().canSee(player.getPlayer())) { + mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return true; + } + if (player.getIgnores().contains(mcp.getUUID())) { + mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString().replace("{player}", player.getName())); + return true; + } + if (!player.getMessageToggle()) { + mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString().replace("{player}", player.getName())); + return true; + } - send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", ""))); - echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", ""))); - spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", ""))); + if (args.length >= 2) { + String msg = ""; + String echo = ""; + String send = ""; + String spy = ""; + if (args[1].length() > 0) { + for (int r = 1; r < args.length; r++) { + msg += " " + args[r]; + } + if (mcp.hasFilter()) { + msg = Format.FilterChat(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { + msg = Format.FormatStringLegacyColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color")) { + msg = Format.FormatStringColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.format")) { + msg = Format.FormatString(msg); + } - send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg; - echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg; - spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; + send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", ""))); + echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", ""))); + spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", ""))); - player.setReplyPlayer(mcp.getUUID()); - mcp.setReplyPlayer(player.getUUID()); - player.getPlayer().sendMessage(send); - mcp.getPlayer().sendMessage(echo); - if (player.hasNotifications()) { - Format.playMessageSound(player); - } - if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if (sp.getName().equals(mcp.getName()) || sp.getName().equals(player.getName())) { - continue; - } - if (sp.isSpy()) { - sp.getPlayer().sendMessage(spy); - } - } - } - } - } - if (args.length == 1) { - if (args[0].length() > 0) { - if (!mcp.hasConversation() || (mcp.hasConversation() && !mcp.getConversation().toString().equals(player.getUUID().toString()))) { - mcp.setConversation(player.getUUID()); - if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if (sp.getName().equals(mcp.getName())) { - continue; - } - if (sp.isSpy()) { - sp.getPlayer().sendMessage(LocalizedMessage.ENTER_PRIVATE_CONVERSATION_SPY.toString() - .replace("{player_sender}", mcp.getName()) - .replace("{player_receiver}", player.getName())); - } - } - } - mcp.getPlayer().sendMessage(LocalizedMessage.ENTER_PRIVATE_CONVERSATION.toString() - .replace("{player_receiver}", player.getName())); - } else { - mcp.setConversation(null); - if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if (sp.getName().equals(mcp.getName())) { - continue; - } - if (sp.isSpy()) { - sp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() - .replace("{player_sender}", mcp.getName()) - .replace("{player_receiver}", player.getName())); - } - } - } - mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString() - .replace("{player_receiver}", player.getName())); - } - } - } - return; - } + send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg; + echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg; + spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; - @Override - public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { - if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { - List completions = new ArrayList<>(); - StringUtil.copyPartialMatches(args[args.length - 1], MineverseChatAPI.getNetworkPlayerNames(), completions); - Collections.sort(completions); - return completions; - } - return null; - } + player.setReplyPlayer(mcp.getUUID()); + mcp.setReplyPlayer(player.getUUID()); + player.getPlayer().sendMessage(send); + mcp.getPlayer().sendMessage(echo); + if (player.hasNotifications()) { + Format.playMessageSound(player); + } + if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { + for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if (sp.getName().equals(mcp.getName()) || sp.getName().equals(player.getName())) { + continue; + } + if (sp.isSpy()) { + sp.getPlayer().sendMessage(spy); + } + } + } + } + } + if (args.length == 1) { + if (args[0].length() > 0) { + if (!mcp.hasConversation() || (mcp.hasConversation() && !mcp.getConversation().toString().equals(player.getUUID().toString()))) { + mcp.setConversation(player.getUUID()); + if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { + for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if (sp.getName().equals(mcp.getName())) { + continue; + } + if (sp.isSpy()) { + sp.getPlayer().sendMessage(LocalizedMessage.ENTER_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", mcp.getName()) + .replace("{player_receiver}", player.getName())); + } + } + } + mcp.getPlayer().sendMessage(LocalizedMessage.ENTER_PRIVATE_CONVERSATION.toString().replace("{player_receiver}", player.getName())); + } else { + mcp.setConversation(null); + if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { + for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if (sp.getName().equals(mcp.getName())) { + continue; + } + if (sp.isSpy()) { + sp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", mcp.getName()) + .replace("{player_receiver}", player.getName())); + } + } + } + mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString().replace("{player_receiver}", player.getName())); + } + } + } + return true; + } - private void sendBungeeCordMessage(MineverseChatPlayer mcp, String command, String[] args) { - if (args.length < 2) { - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/" + command) - .replace("{args}", "[player] [message]")); - return; - } - ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); - DataOutputStream out = new DataOutputStream(byteOutStream); - StringBuilder msgBuilder = new StringBuilder(); - for (int r = 1; r < args.length; r++) { - msgBuilder.append(" " + args[r]); - } - String msg = msgBuilder.toString(); - if (mcp.hasFilter()) { - msg = Format.FilterChat(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { - msg = Format.FormatStringLegacyColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color")) { - msg = Format.FormatStringColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.format")) { - msg = Format.FormatString(msg); - } + @Override + public List tabComplete(CommandSender sender, String label, String[] args) { + if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { + List completions = new ArrayList<>(); + StringUtil.copyPartialMatches(args[args.length - 1], MineverseChatAPI.getNetworkPlayerNames(), completions); + Collections.sort(completions); + return completions; + } + return null; + } - String send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", ""))); - String echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", ""))); - String spy = "VentureChat:NoSpy"; - if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", ""))); - } - try { - out.writeUTF("Message"); - out.writeUTF("Send"); - out.writeUTF(args[0]); - out.writeUTF(mcp.getUUID().toString()); - out.writeUTF(mcp.getName()); - out.writeUTF(send); - out.writeUTF(echo); - out.writeUTF(spy); - out.writeUTF(msg); - mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } + private void sendBungeeCordMessage(MineverseChatPlayer mcp, String command, String[] args) { + if (args.length < 2) { + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/" + command).replace("{args}", "[player] [message]")); + return; + } + ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(byteOutStream); + StringBuilder msgBuilder = new StringBuilder(); + for (int r = 1; r < args.length; r++) { + msgBuilder.append(" " + args[r]); + } + String msg = msgBuilder.toString(); + if (mcp.hasFilter()) { + msg = Format.FilterChat(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { + msg = Format.FormatStringLegacyColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color")) { + msg = Format.FormatStringColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.format")) { + msg = Format.FormatString(msg); + } + + String send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", ""))); + String echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", ""))); + String spy = "VentureChat:NoSpy"; + if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { + spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", ""))); + } + try { + out.writeUTF("Message"); + out.writeUTF("Send"); + out.writeUTF(args[0]); + out.writeUTF(mcp.getUUID().toString()); + out.writeUTF(mcp.getName()); + out.writeUTF(send); + out.writeUTF(echo); + out.writeUTF(spy); + out.writeUTF(msg); + mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/message/MessageToggle.java b/src/main/java/mineverse/Aust1n46/chat/command/message/MessageToggle.java index 37e79d2..b07f9aa 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/message/MessageToggle.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/message/MessageToggle.java @@ -1,37 +1,40 @@ package mineverse.Aust1n46.chat.command.message; import org.bukkit.Bukkit; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class MessageToggle implements VentureCommand { +public class MessageToggle extends Command { + public MessageToggle() { + super("messagetoggle"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (mcp.getPlayer().hasPermission("venturechat.messagetoggle")) { - if (!mcp.getMessageToggle()) { - mcp.setMessageToggle(true); - mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_ON.toString()); - MineverseChat.synchronize(mcp, true); - return; - } - mcp.setMessageToggle(false); - mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_OFF.toString()); - MineverseChat.synchronize(mcp, true); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (mcp.getPlayer().hasPermission("venturechat.messagetoggle")) { + if (!mcp.getMessageToggle()) { + mcp.setMessageToggle(true); + mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_ON.toString()); + MineverseChat.synchronize(mcp, true); + return true; + } + mcp.setMessageToggle(false); + mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_OFF.toString()); + MineverseChat.synchronize(mcp, true); + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/message/Notifications.java b/src/main/java/mineverse/Aust1n46/chat/command/message/Notifications.java index 97e557d..60a1a65 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/message/Notifications.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/message/Notifications.java @@ -1,31 +1,34 @@ package mineverse.Aust1n46.chat.command.message; import org.bukkit.Bukkit; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Notifications implements VentureCommand { +public class Notifications extends Command { + public Notifications() { + super("notifications"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (!mcp.hasNotifications()) { - mcp.setNotifications(true); - mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_ON.toString()); - return; - } - mcp.setNotifications(false); - mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_OFF.toString()); - return; - } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (!mcp.hasNotifications()) { + mcp.setNotifications(true); + mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_ON.toString()); + return true; + } + mcp.setNotifications(false); + mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_OFF.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/message/Reply.java b/src/main/java/mineverse/Aust1n46/chat/command/message/Reply.java index c9a05cd..986e1bf 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/message/Reply.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/message/Reply.java @@ -3,6 +3,7 @@ package mineverse.Aust1n46.chat.command.message; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -10,142 +11,143 @@ import me.clip.placeholderapi.PlaceholderAPI; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.utilities.Format; -public class Reply implements VentureCommand { - private MineverseChat plugin = MineverseChat.getInstance(); +public class Reply extends Command { + private MineverseChat plugin = MineverseChat.getInstance(); - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (args.length > 0) { - if (mcp.hasReplyPlayer()) { - if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { - sendBungeeCordReply(mcp, args); - return; - } + public Reply() { + super("reply"); + } - MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(mcp.getReplyPlayer()); - if (player == null) { - mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString()); - return; - } - if (!mcp.getPlayer().canSee(player.getPlayer())) { - mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString()); - return; - } - if (player.getIgnores().contains(mcp.getUUID())) { - mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString() - .replace("{player}", player.getName())); - return; - } - if (!player.getMessageToggle()) { - mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString() - .replace("{player}", player.getName())); - return; - } - String msg = ""; - String echo = ""; - String send = ""; - String spy = ""; - if (args.length > 0) { - for (int r = 0; r < args.length; r++) - msg += " " + args[r]; - if (mcp.hasFilter()) { - msg = Format.FilterChat(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { - msg = Format.FormatStringLegacyColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color")) { - msg = Format.FormatStringColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.format")) { - msg = Format.FormatString(msg); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (args.length > 0) { + if (mcp.hasReplyPlayer()) { + if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { + sendBungeeCordReply(mcp, args); + return true; + } - send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", ""))); - echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", ""))); - spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", ""))); + MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(mcp.getReplyPlayer()); + if (player == null) { + mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString()); + return true; + } + if (!mcp.getPlayer().canSee(player.getPlayer())) { + mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString()); + return true; + } + if (player.getIgnores().contains(mcp.getUUID())) { + mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString().replace("{player}", player.getName())); + return true; + } + if (!player.getMessageToggle()) { + mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString().replace("{player}", player.getName())); + return true; + } + String msg = ""; + String echo = ""; + String send = ""; + String spy = ""; + if (args.length > 0) { + for (int r = 0; r < args.length; r++) + msg += " " + args[r]; + if (mcp.hasFilter()) { + msg = Format.FilterChat(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { + msg = Format.FormatStringLegacyColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color")) { + msg = Format.FormatStringColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.format")) { + msg = Format.FormatString(msg); + } - send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg; - echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg; - spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; + send = Format + .FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", ""))); + echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", ""))); + spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", ""))); - if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if (p.getName().equals(mcp.getName()) || p.getName().equals(player.getName())) { - continue; - } - if (p.isSpy()) { - p.getPlayer().sendMessage(spy); - } - } - } - player.getPlayer().sendMessage(send); - mcp.getPlayer().sendMessage(echo); - if (player.hasNotifications()) { - Format.playMessageSound(player); - } - player.setReplyPlayer(mcp.getUUID()); - return; - } - } - mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString()); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/reply") - .replace("{args}", "[message]")); - } + send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg; + echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg; + spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; - private void sendBungeeCordReply(MineverseChatPlayer mcp, String[] args) { - ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); - DataOutputStream out = new DataOutputStream(byteOutStream); - StringBuilder msgBuilder = new StringBuilder(); - for (int r = 0; r < args.length; r++) { - msgBuilder.append(" " + args[r]); - } - String msg = msgBuilder.toString(); - if (mcp.hasFilter()) { - msg = Format.FilterChat(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { - msg = Format.FormatStringLegacyColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color")) { - msg = Format.FormatStringColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.format")) { - msg = Format.FormatString(msg); - } + if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { + for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if (p.getName().equals(mcp.getName()) || p.getName().equals(player.getName())) { + continue; + } + if (p.isSpy()) { + p.getPlayer().sendMessage(spy); + } + } + } + player.getPlayer().sendMessage(send); + mcp.getPlayer().sendMessage(echo); + if (player.hasNotifications()) { + Format.playMessageSound(player); + } + player.setReplyPlayer(mcp.getUUID()); + return true; + } + } + mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString()); + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/reply").replace("{args}", "[message]")); + return true; + } - String send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", ""))); - String echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", ""))); - String spy = "VentureChat:NoSpy"; - if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", ""))); - } - try { - out.writeUTF("Message"); - out.writeUTF("Send"); - out.writeUTF(MineverseChatAPI.getMineverseChatPlayer(mcp.getReplyPlayer()).getName()); - out.writeUTF(mcp.getUUID().toString()); - out.writeUTF(mcp.getName()); - out.writeUTF(send); - out.writeUTF(echo); - out.writeUTF(spy); - out.writeUTF(msg); - mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } + private void sendBungeeCordReply(MineverseChatPlayer mcp, String[] args) { + ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(byteOutStream); + StringBuilder msgBuilder = new StringBuilder(); + for (int r = 0; r < args.length; r++) { + msgBuilder.append(" " + args[r]); + } + String msg = msgBuilder.toString(); + if (mcp.hasFilter()) { + msg = Format.FilterChat(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { + msg = Format.FormatStringLegacyColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color")) { + msg = Format.FormatStringColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.format")) { + msg = Format.FormatString(msg); + } + + String send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", ""))); + String echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", ""))); + String spy = "VentureChat:NoSpy"; + if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { + spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", ""))); + } + try { + out.writeUTF("Message"); + out.writeUTF("Send"); + out.writeUTF(MineverseChatAPI.getMineverseChatPlayer(mcp.getReplyPlayer()).getName()); + out.writeUTF(mcp.getUUID().toString()); + out.writeUTF(mcp.getName()); + out.writeUTF(send); + out.writeUTF(echo); + out.writeUTF(spy); + out.writeUTF(msg); + mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/message/Spy.java b/src/main/java/mineverse/Aust1n46/chat/command/message/Spy.java index 64ab015..a83b21e 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/message/Spy.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/message/Spy.java @@ -1,37 +1,40 @@ package mineverse.Aust1n46.chat.command.message; import org.bukkit.Bukkit; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Spy implements VentureCommand { +public class Spy extends Command { + public Spy() { + super("spy"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (!(sender instanceof Player)) { - Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - if (mcp.getPlayer().hasPermission("venturechat.spy")) { - if (!mcp.isSpy()) { - mcp.setSpy(true); - mcp.getPlayer().sendMessage(LocalizedMessage.SPY_ON.toString()); - MineverseChat.synchronize(mcp, true); - return; - } - mcp.setSpy(false); - mcp.getPlayer().sendMessage(LocalizedMessage.SPY_OFF.toString()); - MineverseChat.synchronize(mcp, true); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (!(sender instanceof Player)) { + Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return true; + } + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); + if (mcp.getPlayer().hasPermission("venturechat.spy")) { + if (!mcp.isSpy()) { + mcp.setSpy(true); + mcp.getPlayer().sendMessage(LocalizedMessage.SPY_ON.toString()); + MineverseChat.synchronize(mcp, true); + return true; + } + mcp.setSpy(false); + mcp.getPlayer().sendMessage(LocalizedMessage.SPY_OFF.toString()); + MineverseChat.synchronize(mcp, true); + return true; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/mute/Mute.java b/src/main/java/mineverse/Aust1n46/chat/command/mute/Mute.java index 149d1fa..6d04f30 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/mute/Mute.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/mute/Mute.java @@ -17,194 +17,174 @@ import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.utilities.Format; -public class Mute implements VentureCommand { - private static final List COMMON_MUTE_TIMES = Collections.unmodifiableList(Arrays.asList(new String[]{"12h", "15m", "1d", "1h", "1m", "30s"})); +public class Mute extends Command { + public Mute() { + super("mute"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.mute")) { - if (args.length < 2) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/mute") - .replace("{args}", "[channel] [player] {time} {reason}")); - return; - } - if (ChatChannel.isChannel(args[0])) { - ChatChannel channel = ChatChannel.getChannel(args[0]); - if (channel.isMutable()) { - long datetime = System.currentTimeMillis(); - long time = 0; - int reasonStartPos = 2; - String reason = ""; - if (args.length > 2) { - String timeString = args[2]; - if (Character.isDigit(timeString.charAt(0))) { - reasonStartPos = 3; - time = Format.parseTimeStringToMillis(timeString); - if (time <= 0) { - sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", timeString)); - return; - } - } - StringBuilder reasonBuilder = new StringBuilder(); - for (int a = reasonStartPos; a < args.length; a++) { - reasonBuilder.append(args[a] + " "); - } - reason = Format.FormatStringAll(reasonBuilder.toString().trim()); - } - if (channel.getBungee()) { - sendBungeeCordMute(sender, args[1], channel, time, reason); - return; - } - MineverseChatPlayer playerToMute = MineverseChatAPI.getMineverseChatPlayer(args[1]); - if (playerToMute == null || (!playerToMute.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[1])); - return; - } - if (playerToMute.isMuted(channel.getName())) { - sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString() - .replace("{player}", playerToMute.getName()).replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName())); - return; - } + private static final List COMMON_MUTE_TIMES = Collections.unmodifiableList(Arrays.asList(new String[] { "12h", "15m", "1d", "1h", "1m", "30s" })); - if (time > 0) { - if (reason.isEmpty()) { - playerToMute.addMute(channel.getName(), datetime + time); - String timeString = Format.parseTimeStringFromMillis(time); - sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString() - .replace("{player}", playerToMute.getName()) - .replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName()) - .replace("{time}", timeString)); - if (playerToMute.isOnline()) { - playerToMute.getPlayer() - .sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME.toString() - .replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName()) - .replace("{time}", timeString)); - } else { - playerToMute.setModified(true); - } - return; - } else { - playerToMute.addMute(channel.getName(), datetime + time, reason); - String timeString = Format.parseTimeStringFromMillis(time); - sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME_REASON.toString() - .replace("{player}", playerToMute.getName()) - .replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName()) - .replace("{time}", timeString) - .replace("{reason}", reason)); - if (playerToMute.isOnline()) { - playerToMute.getPlayer() - .sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME_REASON.toString() - .replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName()) - .replace("{time}", timeString) - .replace("{reason}", reason)); - } else { - playerToMute.setModified(true); - } - return; - } - } else { - if (reason.isEmpty()) { - playerToMute.addMute(channel.getName()); - sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER.toString() - .replace("{player}", playerToMute.getName()).replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName())); - if (playerToMute.isOnline()) { - playerToMute.getPlayer() - .sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER.toString() - .replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName())); - } else { - playerToMute.setModified(true); - } - return; - } else { - playerToMute.addMute(channel.getName(), reason); - sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_REASON.toString() - .replace("{player}", playerToMute.getName()).replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName()) - .replace("{reason}", reason)); - if (playerToMute.isOnline()) { - playerToMute.getPlayer() - .sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_REASON.toString() - .replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName()) - .replace("{reason}", reason)); - } else { - playerToMute.setModified(true); - } - return; - } - } - } - sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString() - .replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName())); - return; - } - sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0])); - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.mute")) { + if (args.length < 2) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/mute").replace("{args}", "[channel] [player] {time} {reason}")); + return true; + } + if (ChatChannel.isChannel(args[0])) { + ChatChannel channel = ChatChannel.getChannel(args[0]); + if (channel.isMutable()) { + long datetime = System.currentTimeMillis(); + long time = 0; + int reasonStartPos = 2; + String reason = ""; + if (args.length > 2) { + String timeString = args[2]; + if (Character.isDigit(timeString.charAt(0))) { + reasonStartPos = 3; + time = Format.parseTimeStringToMillis(timeString); + if (time <= 0) { + sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", timeString)); + return true; + } + } + StringBuilder reasonBuilder = new StringBuilder(); + for (int a = reasonStartPos; a < args.length; a++) { + reasonBuilder.append(args[a] + " "); + } + reason = Format.FormatStringAll(reasonBuilder.toString().trim()); + } + if (channel.getBungee()) { + sendBungeeCordMute(sender, args[1], channel, time, reason); + return true; + } + MineverseChatPlayer playerToMute = MineverseChatAPI.getMineverseChatPlayer(args[1]); + if (playerToMute == null || (!playerToMute.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[1])); + return true; + } + if (playerToMute.isMuted(channel.getName())) { + sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString().replace("{player}", playerToMute.getName()) + .replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName())); + return true; + } - @Override - public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { - List completions = new ArrayList<>(); - if (args.length == 1) { - StringUtil.copyPartialMatches(args[0], ChatChannel.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions); - Collections.sort(completions); - return completions; - } - if (args.length == 2) { - if (ChatChannel.isChannel(args[0])) { - ChatChannel chatChannelObj = ChatChannel.getChannel(args[0]); - if (chatChannelObj.getBungee()) { - StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getNetworkPlayerNames(), completions); - Collections.sort(completions); - return completions; - } - StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getOnlineMineverseChatPlayers().stream().filter(mcp -> !mcp.isMuted(chatChannelObj.getName())).map(MineverseChatPlayer::getName).collect(Collectors.toList()), completions); - Collections.sort(completions); - return completions; - } - } - if (args.length == 3) { - StringUtil.copyPartialMatches(args[2], COMMON_MUTE_TIMES, completions); - Collections.sort(completions); - return completions; + if (time > 0) { + if (reason.isEmpty()) { + playerToMute.addMute(channel.getName(), datetime + time); + String timeString = Format.parseTimeStringFromMillis(time); + sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString().replace("{player}", playerToMute.getName()) + .replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()).replace("{time}", timeString)); + if (playerToMute.isOnline()) { + playerToMute.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME.toString().replace("{channel_color}", channel.getColor()) + .replace("{channel_name}", channel.getName()).replace("{time}", timeString)); + } else { + playerToMute.setModified(true); + } + return true; + } else { + playerToMute.addMute(channel.getName(), datetime + time, reason); + String timeString = Format.parseTimeStringFromMillis(time); + sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME_REASON.toString().replace("{player}", playerToMute.getName()) + .replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()).replace("{time}", timeString) + .replace("{reason}", reason)); + if (playerToMute.isOnline()) { + playerToMute.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME_REASON.toString().replace("{channel_color}", channel.getColor()) + .replace("{channel_name}", channel.getName()).replace("{time}", timeString).replace("{reason}", reason)); + } else { + playerToMute.setModified(true); + } + return true; + } + } else { + if (reason.isEmpty()) { + playerToMute.addMute(channel.getName()); + sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER.toString().replace("{player}", playerToMute.getName()) + .replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName())); + if (playerToMute.isOnline()) { + playerToMute.getPlayer().sendMessage( + LocalizedMessage.MUTE_PLAYER_PLAYER.toString().replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName())); + } else { + playerToMute.setModified(true); + } + return true; + } else { + playerToMute.addMute(channel.getName(), reason); + sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_REASON.toString().replace("{player}", playerToMute.getName()) + .replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName()).replace("{reason}", reason)); + if (playerToMute.isOnline()) { + playerToMute.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_REASON.toString().replace("{channel_color}", channel.getColor()) + .replace("{channel_name}", channel.getName()).replace("{reason}", reason)); + } else { + playerToMute.setModified(true); + } + return true; + } + } + } + sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString().replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName())); + return true; + } + sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0])); + return true; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } - } - return Collections.emptyList(); - } + @Override + public List tabComplete(CommandSender sender, String label, String[] args) { + List completions = new ArrayList<>(); + if (args.length == 1) { + StringUtil.copyPartialMatches(args[0], ChatChannel.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions); + Collections.sort(completions); + return completions; + } + if (args.length == 2) { + if (ChatChannel.isChannel(args[0])) { + ChatChannel chatChannelObj = ChatChannel.getChannel(args[0]); + if (chatChannelObj.getBungee()) { + StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getNetworkPlayerNames(), completions); + Collections.sort(completions); + return completions; + } + StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getOnlineMineverseChatPlayers().stream().filter(mcp -> !mcp.isMuted(chatChannelObj.getName())) + .map(MineverseChatPlayer::getName).collect(Collectors.toList()), completions); + Collections.sort(completions); + return completions; + } + } + if (args.length == 3) { + StringUtil.copyPartialMatches(args[2], COMMON_MUTE_TIMES, completions); + Collections.sort(completions); + return completions; - private void sendBungeeCordMute(CommandSender sender, String playerToMute, ChatChannel channel, long time, String reason) { - ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); - DataOutputStream out = new DataOutputStream(byteOutStream); - try { - out.writeUTF("Mute"); - out.writeUTF("Send"); - if (sender instanceof Player) { - out.writeUTF(((Player) sender).getUniqueId().toString()); - } else { - out.writeUTF("VentureChat:Console"); - } - out.writeUTF(playerToMute); - out.writeUTF(channel.getName()); - out.writeLong(time); - out.writeUTF(reason); - MineverseChat.sendPluginMessage(byteOutStream); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } + } + return Collections.emptyList(); + } + + private void sendBungeeCordMute(CommandSender sender, String playerToMute, ChatChannel channel, long time, String reason) { + ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(byteOutStream); + try { + out.writeUTF("Mute"); + out.writeUTF("Send"); + if (sender instanceof Player) { + out.writeUTF(((Player) sender).getUniqueId().toString()); + } else { + out.writeUTF("VentureChat:Console"); + } + out.writeUTF(playerToMute); + out.writeUTF(channel.getName()); + out.writeLong(time); + out.writeUTF(reason); + MineverseChat.sendPluginMessage(byteOutStream); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/mute/Muteall.java b/src/main/java/mineverse/Aust1n46/chat/command/mute/Muteall.java index 048ef17..21eb371 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/mute/Muteall.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/mute/Muteall.java @@ -1,86 +1,82 @@ package mineverse.Aust1n46.chat.command.mute; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.utilities.Format; -public class Muteall implements VentureCommand { +public class Muteall extends Command { + public Muteall() { + super("muteall"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.mute")) { - if (args.length < 1) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/muteall") - .replace("{args}", "[player] {reason}")); - return; - } - MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); - if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - String reason = ""; - if (args.length > 1) { - StringBuilder reasonBuilder = new StringBuilder(); - for (int a = 1; a < args.length; a++) { - reasonBuilder.append(args[a] + " "); - } - reason = Format.FormatStringAll(reasonBuilder.toString().trim()); - } - if (reason.isEmpty()) { - boolean bungee = false; - for (ChatChannel channel : ChatChannel.getChatChannels()) { - if (channel.isMutable()) { - player.addMute(channel.getName()); - if (channel.getBungee()) { - bungee = true; - } - } - } - if (bungee) { - MineverseChat.synchronize(player, true); - } - sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER.toString() - .replace("{player}", player.getName())); - if (player.isOnline()) { - player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_PLAYER.toString()); - } else - player.setModified(true); - return; - } else { - boolean bungee = false; - for (ChatChannel channel : ChatChannel.getChatChannels()) { - if (channel.isMutable()) { - player.addMute(channel.getName(), reason); - if (channel.getBungee()) { - bungee = true; - } - } - } - if (bungee) { - MineverseChat.synchronize(player, true); - } - sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER_REASON.toString() - .replace("{player}", player.getName()) - .replace("{reason}", reason)); - if (player.isOnline()) { - player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_PLAYER_REASON.toString() - .replace("{reason}", reason)); - } else - player.setModified(true); - return; - } - } else { - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.mute")) { + if (args.length < 1) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/muteall").replace("{args}", "[player] {reason}")); + return true; + } + MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); + if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return true; + } + String reason = ""; + if (args.length > 1) { + StringBuilder reasonBuilder = new StringBuilder(); + for (int a = 1; a < args.length; a++) { + reasonBuilder.append(args[a] + " "); + } + reason = Format.FormatStringAll(reasonBuilder.toString().trim()); + } + if (reason.isEmpty()) { + boolean bungee = false; + for (ChatChannel channel : ChatChannel.getChatChannels()) { + if (channel.isMutable()) { + player.addMute(channel.getName()); + if (channel.getBungee()) { + bungee = true; + } + } + } + if (bungee) { + MineverseChat.synchronize(player, true); + } + sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER.toString().replace("{player}", player.getName())); + if (player.isOnline()) { + player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_PLAYER.toString()); + } else + player.setModified(true); + return true; + } else { + boolean bungee = false; + for (ChatChannel channel : ChatChannel.getChatChannels()) { + if (channel.isMutable()) { + player.addMute(channel.getName(), reason); + if (channel.getBungee()) { + bungee = true; + } + } + } + if (bungee) { + MineverseChat.synchronize(player, true); + } + sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER_REASON.toString().replace("{player}", player.getName()).replace("{reason}", reason)); + if (player.isOnline()) { + player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_PLAYER_REASON.toString().replace("{reason}", reason)); + } else + player.setModified(true); + return true; + } + } else { + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/mute/Unmute.java b/src/main/java/mineverse/Aust1n46/chat/command/mute/Unmute.java index 3070e09..80c08c2 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/mute/Unmute.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/mute/Unmute.java @@ -16,98 +16,97 @@ import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Unmute implements VentureCommand { +public class Unmute extends Command { + public Unmute() { + super("unmute"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.mute")) { - if (args.length < 2) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/unmute") - .replace("{args}", "[channel] [player]")); - return; - } - if (ChatChannel.isChannel(args[0])) { - ChatChannel channel = ChatChannel.getChannel(args[0]); - if (channel.getBungee()) { - sendBungeeCordUnmute(sender, args[1], channel); - return; - } - MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]); - if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[1])); - return; - } - if (!player.isMuted(channel.getName())) { - sender.sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString() - .replace("{player}", player.getName()).replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName())); - return; - } - player.removeMute(channel.getName()); - sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_SENDER.toString() - .replace("{player}", player.getName()).replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName())); - if (player.isOnline()) { - player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString() - .replace("{player}", player.getName()).replace("{channel_color}", channel.getColor()) - .replace("{channel_name}", channel.getName())); - } else { - player.setModified(true); - } - return; - } - sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0])); - return; - } else { - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } - } + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.mute")) { + if (args.length < 2) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/unmute").replace("{args}", "[channel] [player]")); + return true; + } + if (ChatChannel.isChannel(args[0])) { + ChatChannel channel = ChatChannel.getChannel(args[0]); + if (channel.getBungee()) { + sendBungeeCordUnmute(sender, args[1], channel); + return true; + } + MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]); + if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[1])); + return true; + } + if (!player.isMuted(channel.getName())) { + sender.sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString().replace("{player}", player.getName()).replace("{channel_color}", channel.getColor()) + .replace("{channel_name}", channel.getName())); + return true; + } + player.removeMute(channel.getName()); + sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_SENDER.toString().replace("{player}", player.getName()).replace("{channel_color}", channel.getColor()) + .replace("{channel_name}", channel.getName())); + if (player.isOnline()) { + player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString().replace("{player}", player.getName()) + .replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName())); + } else { + player.setModified(true); + } + return true; + } + sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[0])); + return true; + } else { + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } + } - @Override - public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { - List completions = new ArrayList<>(); - if (args.length == 1) { - StringUtil.copyPartialMatches(args[0], ChatChannel.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions); - Collections.sort(completions); - return completions; - } - if (args.length == 2) { - if (ChatChannel.isChannel(args[0])) { - ChatChannel chatChannelObj = ChatChannel.getChannel(args[0]); - if (chatChannelObj.getBungee()) { - StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getNetworkPlayerNames(), completions); - Collections.sort(completions); - return completions; - } - StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getOnlineMineverseChatPlayers().stream().filter(mcp -> mcp.isMuted(chatChannelObj.getName())).map(MineverseChatPlayer::getName).collect(Collectors.toList()), completions); - Collections.sort(completions); - return completions; - } - } - return Collections.emptyList(); - } + @Override + public List tabComplete(CommandSender sender, String label, String[] args) { + List completions = new ArrayList<>(); + if (args.length == 1) { + StringUtil.copyPartialMatches(args[0], ChatChannel.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions); + Collections.sort(completions); + return completions; + } + if (args.length == 2) { + if (ChatChannel.isChannel(args[0])) { + ChatChannel chatChannelObj = ChatChannel.getChannel(args[0]); + if (chatChannelObj.getBungee()) { + StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getNetworkPlayerNames(), completions); + Collections.sort(completions); + return completions; + } + StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getOnlineMineverseChatPlayers().stream().filter(mcp -> mcp.isMuted(chatChannelObj.getName())) + .map(MineverseChatPlayer::getName).collect(Collectors.toList()), completions); + Collections.sort(completions); + return completions; + } + } + return Collections.emptyList(); + } - private void sendBungeeCordUnmute(CommandSender sender, String playerToUnmute, ChatChannel channel) { - ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); - DataOutputStream out = new DataOutputStream(byteOutStream); - try { - out.writeUTF("Unmute"); - out.writeUTF("Send"); - if (sender instanceof Player) { - out.writeUTF(((Player) sender).getUniqueId().toString()); - } else { - out.writeUTF("VentureChat:Console"); - } - out.writeUTF(playerToUnmute); - out.writeUTF(channel.getName()); - MineverseChat.sendPluginMessage(byteOutStream); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } + private void sendBungeeCordUnmute(CommandSender sender, String playerToUnmute, ChatChannel channel) { + ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(byteOutStream); + try { + out.writeUTF("Unmute"); + out.writeUTF("Send"); + if (sender instanceof Player) { + out.writeUTF(((Player) sender).getUniqueId().toString()); + } else { + out.writeUTF("VentureChat:Console"); + } + out.writeUTF(playerToUnmute); + out.writeUTF(channel.getName()); + MineverseChat.sendPluginMessage(byteOutStream); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/mineverse/Aust1n46/chat/command/mute/Unmuteall.java b/src/main/java/mineverse/Aust1n46/chat/command/mute/Unmuteall.java index 8d634b2..ced49f3 100644 --- a/src/main/java/mineverse/Aust1n46/chat/command/mute/Unmuteall.java +++ b/src/main/java/mineverse/Aust1n46/chat/command/mute/Unmuteall.java @@ -1,51 +1,50 @@ package mineverse.Aust1n46.chat.command.mute; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.command.VentureCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; -public class Unmuteall implements VentureCommand { +public class Unmuteall extends Command { + public Unmuteall() { + super("unmuteall"); + } - @Override - public void execute(CommandSender sender, String command, String[] args) { - if (sender.hasPermission("venturechat.mute")) { - if (args.length < 1) { - sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/unmuteall") - .replace("{args}", "[player]")); - return; - } - MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); - if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - boolean bungee = false; - for (ChatChannel channel : ChatChannel.getChatChannels()) { - player.removeMute(channel.getName()); - if (channel.getBungee()) { - bungee = true; - } - } - if (bungee) { - MineverseChat.synchronize(player, true); - } - sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_SENDER.toString() - .replace("{player}", player.getName())); - if (player.isOnline()) { - player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_PLAYER.toString()); - } else - player.setModified(true); - return; - } else { - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } - } -} \ No newline at end of file + @Override + public boolean execute(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.mute")) { + if (args.length < 1) { + sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/unmuteall").replace("{args}", "[player]")); + return true; + } + MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); + if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return true; + } + boolean bungee = false; + for (ChatChannel channel : ChatChannel.getChatChannels()) { + player.removeMute(channel.getName()); + if (channel.getBungee()) { + bungee = true; + } + } + if (bungee) { + MineverseChat.synchronize(player, true); + } + sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_SENDER.toString().replace("{player}", player.getName())); + if (player.isOnline()) { + player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_PLAYER.toString()); + } else + player.setModified(true); + return true; + } else { + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return true; + } + } +} diff --git a/src/main/java/mineverse/Aust1n46/chat/listeners/CommandListener.java b/src/main/java/mineverse/Aust1n46/chat/listeners/CommandListener.java index 27963bd..697c384 100644 --- a/src/main/java/mineverse/Aust1n46/chat/listeners/CommandListener.java +++ b/src/main/java/mineverse/Aust1n46/chat/listeners/CommandListener.java @@ -2,23 +2,9 @@ package mineverse.Aust1n46.chat.listeners; import java.io.FileNotFoundException; -import mineverse.Aust1n46.chat.MineverseChat; -import mineverse.Aust1n46.chat.alias.Alias; -import mineverse.Aust1n46.chat.api.MineverseChatAPI; -import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.channel.ChatChannel; -import mineverse.Aust1n46.chat.database.Database; -import mineverse.Aust1n46.chat.gui.GuiSlot; -import mineverse.Aust1n46.chat.localization.LocalizedMessage; -import mineverse.Aust1n46.chat.utilities.Format; -import mineverse.Aust1n46.chat.versions.VersionHandler; - import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -30,34 +16,40 @@ import org.bukkit.event.server.ServerCommandEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.SkullMeta; -import me.clip.placeholderapi.PlaceholderAPI; - -//This class listens for commands (Any chat that begins with a /) to use in the command spy and -//in the custom commands such as aliases. -public class CommandListener implements CommandExecutor, Listener { - private MineverseChat plugin = MineverseChat.getInstance(); - - @EventHandler - public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) throws FileNotFoundException { - if(event.getPlayer() == null) { - Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Event.getPlayer() returned null in PlayerCommandPreprocessEvent")); - return; - } - ConfigurationSection cs = plugin.getConfig().getConfigurationSection("commandspy"); - Boolean wec = cs.getBoolean("worldeditcommands", true); +import me.clip.placeholderapi.PlaceholderAPI; +import mineverse.Aust1n46.chat.MineverseChat; +import mineverse.Aust1n46.chat.alias.Alias; +import mineverse.Aust1n46.chat.api.MineverseChatAPI; +import mineverse.Aust1n46.chat.api.MineverseChatPlayer; +import mineverse.Aust1n46.chat.channel.ChatChannel; +import mineverse.Aust1n46.chat.database.Database; +import mineverse.Aust1n46.chat.gui.GuiSlot; +import mineverse.Aust1n46.chat.localization.LocalizedMessage; +import mineverse.Aust1n46.chat.utilities.Format; +import mineverse.Aust1n46.chat.versions.VersionHandler; + +public class CommandListener implements Listener { + private MineverseChat plugin = MineverseChat.getInstance(); + + @EventHandler + public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) throws FileNotFoundException { + if (event.getPlayer() == null) { + Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Event.getPlayer() returned null in PlayerCommandPreprocessEvent")); + return; + } + ConfigurationSection cs = plugin.getConfig().getConfigurationSection("commandspy"); + Boolean wec = cs.getBoolean("worldeditcommands", true); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer()); - if(!mcp.getPlayer().hasPermission("venturechat.commandspy.override")) { - for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if(p.hasCommandSpy()) { - if(wec) { + if (!mcp.getPlayer().hasPermission("venturechat.commandspy.override")) { + for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if (p.hasCommandSpy()) { + if (wec) { p.getPlayer().sendMessage(Format.FormatStringAll(cs.getString("format").replace("{player}", mcp.getName()).replace("{command}", event.getMessage()))); - } - else { - if(!(event.getMessage().toLowerCase().startsWith("//"))) { + } else { + if (!(event.getMessage().toLowerCase().startsWith("//"))) { p.getPlayer().sendMessage(Format.FormatStringAll(cs.getString("format").replace("{player}", mcp.getName()).replace("{command}", event.getMessage()))); - } - else { - if(!(event.getMessage().toLowerCase().startsWith("//"))) { + } else { + if (!(event.getMessage().toLowerCase().startsWith("//"))) { p.getPlayer().sendMessage(ChatColor.GOLD + mcp.getName() + ": " + event.getMessage()); } } @@ -67,170 +59,87 @@ public class CommandListener implements CommandExecutor, Listener { } String[] blocked = event.getMessage().split(" "); - if(mcp.getBlockedCommands().contains(blocked[0])) { - mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKED_COMMAND.toString() - .replace("{command}", event.getMessage())); + if (mcp.getBlockedCommands().contains(blocked[0])) { + mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKED_COMMAND.toString().replace("{command}", event.getMessage())); event.setCancelled(true); return; } String message = event.getMessage(); - if(Database.isEnabled()) { + if (Database.isEnabled()) { Database.writeVentureChat(mcp.getUUID().toString(), mcp.getName(), "Local", "Command_Component", event.getMessage().replace("'", "''"), "Command"); } - for(Alias a : Alias.getAliases()) { - if(message.toLowerCase().substring(1).split(" ")[0].equals(a.getName().toLowerCase())) { - for(String s : a.getComponents()) { - if(!mcp.getPlayer().hasPermission(a.getPermission()) && a.hasPermission()) { + for (Alias a : Alias.getAliases()) { + if (message.toLowerCase().substring(1).split(" ")[0].equals(a.getName().toLowerCase())) { + for (String s : a.getComponents()) { + if (!mcp.getPlayer().hasPermission(a.getPermission()) && a.hasPermission()) { mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this alias."); event.setCancelled(true); return; } int num = 1; - if(message.length() < a.getName().length() + 2 || a.getArguments() == 0) num = 0; + if (message.length() < a.getName().length() + 2 || a.getArguments() == 0) + num = 0; int arg = 0; - if(message.substring(a.getName().length() + 1 + num).length() == 0) arg = 1; + if (message.substring(a.getName().length() + 1 + num).length() == 0) + arg = 1; String[] args = message.substring(a.getName().length() + 1 + num).split(" "); String send = ""; - if(args.length - arg < a.getArguments()) { + if (args.length - arg < a.getArguments()) { String keyword = "arguments."; - if(a.getArguments() == 1) keyword = "argument."; + if (a.getArguments() == 1) + keyword = "argument."; mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid arguments for this alias, enter at least " + a.getArguments() + " " + keyword); event.setCancelled(true); return; } - for(int b = 0; b < args.length; b++) { + for (int b = 0; b < args.length; b++) { send += " " + args[b]; } - if(send.length() > 0) send = send.substring(1); + if (send.length() > 0) + send = send.substring(1); s = Format.FormatStringAll(s); - if(mcp.getPlayer().hasPermission("venturechat.color.legacy")) { + if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { send = Format.FormatStringLegacyColor(send); } - if(mcp.getPlayer().hasPermission("venturechat.color")) { + if (mcp.getPlayer().hasPermission("venturechat.color")) { send = Format.FormatStringColor(send); } - if(mcp.getPlayer().hasPermission("venturechat.format")) { + if (mcp.getPlayer().hasPermission("venturechat.format")) { send = Format.FormatString(send); } - if(s.startsWith("Command:")) { + if (s.startsWith("Command:")) { mcp.getPlayer().chat(s.substring(9).replace("$", send)); event.setCancelled(true); } - if(s.startsWith("Message:")) { + if (s.startsWith("Message:")) { mcp.getPlayer().sendMessage(s.substring(9).replace("$", send)); event.setCancelled(true); } - if(s.startsWith("Broadcast:")) { + if (s.startsWith("Broadcast:")) { Format.broadcastToServer(s.substring(11).replace("$", send)); event.setCancelled(true); } } } } - - if(!ChatChannel.areAliasesRegisteredAsCommands()) { - for(ChatChannel channel : ChatChannel.getChatChannels()) { - if(!channel.hasPermission() || mcp.getPlayer().hasPermission(channel.getPermission())) { - if(message.equals("/" + channel.getAlias())) { - mcp.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() - .replace("{channel_color}", channel.getColor() + "") - .replace("{channel_name}", channel.getName())); - if(mcp.hasConversation()) { - for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { - if(p.isSpy()) { - p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() - .replace("{player_sender}", mcp.getName()) - .replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName())); - } - } - mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString() - .replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName())); - mcp.setConversation(null); - } - mcp.addListening(channel.getName()); - mcp.setCurrentChannel(channel); - if(channel.getBungee()) { - MineverseChat.synchronize(mcp, true); - } - event.setCancelled(true); - return; - } - if(message.toLowerCase().startsWith("/" + channel.getAlias() + " ")) { - message = message.substring(channel.getAlias().length() + 1); - mcp.addListening(channel.getName()); - if(channel.getBungee()) { - MineverseChat.synchronize(mcp, true); - } - mcp.setQuickChannel(channel); - /*String format = ""; - if(plugin.getConfig().getConfigurationSection("channels." + channel.getName()).getString("format").equalsIgnoreCase("Default")) { - format = FormatTags.ChatFormat(ChatColor.valueOf(channel.getColor().toUpperCase()) + "[" + channel.getName() + "] {prefix}{name}" + ChatColor.valueOf(channel.getColor().toUpperCase()) + ":" + ChatColor.valueOf(channel.getChatColor().toUpperCase()), mcp.getPlayer(), plugin, cc, channel, plugin.getConfig().getBoolean("jsonFormat")); - } - else { - format = FormatTags.ChatFormat(plugin.getConfig().getConfigurationSection("channels." + channel.getName()).getString("format"), mcp.getPlayer(), plugin, cc, channel, plugin.getConfig().getBoolean("jsonFormat")); - if(plugin.getConfig().getBoolean("formatcleaner", false)) { - format = format.replace("[]", " "); - format = format.replace(" ", " ").replace(" ", " ").replace(" ", " "); - } - }*/ - mcp.setQuickChat(true); - mcp.getPlayer().chat(message); - event.setCancelled(true); - } - } - } - } } - //old 1.8 command map + // old 1.8 command map @EventHandler public void onServerCommand(ServerCommandEvent event) { if (Database.isEnabled()) { - Database.writeVentureChat("N/A", "Console", "Local", "Command_Component", event.getCommand().replace("'", "''") , "Command"); + Database.writeVentureChat("N/A", "Console", "Local", "Command_Component", event.getCommand().replace("'", "''"), "Command"); } } - /** - * Unused - */ - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if(!(sender instanceof Player)) { - plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player."); - return true; - } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender); - for(ChatChannel channel : ChatChannel.getChatChannels()) { - if(command.getName().toLowerCase().equals(channel.getAlias())) { - if(args.length == 0) { - mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid command: /" + channel.getAlias() + " message"); - return true; - } - mcp.setQuickChat(true); - mcp.setQuickChannel(channel); - mcp.addListening(channel.getName()); - if(channel.getBungee()) { - MineverseChat.synchronize(mcp, true); - } - String msg = ""; - for(int x = 0; x < args.length; x++) { - if(args[x].length() > 0) msg += " " + args[x]; - } - mcp.getPlayer().chat(msg); - return true; - } - } - return false; - } - @SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.LOW) public void InventoryClick(InventoryClickEvent e) { ItemStack item = e.getCurrentItem(); - if(item == null || !e.getView().getTitle().contains("VentureChat")) { + if (item == null || !e.getView().getTitle().contains("VentureChat")) { return; } e.setCancelled(true); @@ -241,26 +150,24 @@ public class CommandListener implements CommandExecutor, Listener { SkullMeta skullMeta = (SkullMeta) skull.getItemMeta(); ChatChannel channel = ChatChannel.getChannel(ChatColor.stripColor(skullMeta.getLore().get(0)).replace("Channel: ", "")); int hash = Integer.parseInt(ChatColor.stripColor(skullMeta.getLore().get(1).replace("Hash: ", ""))); - if(VersionHandler.is1_7()) { - if(item.getType() == Material.BEDROCK) { + if (VersionHandler.is1_7()) { + if (item.getType() == Material.BEDROCK) { + mcp.getPlayer().closeInventory(); + } + } else { + if (item.getType() == Material.BARRIER) { mcp.getPlayer().closeInventory(); } } - else { - if(item.getType() == Material.BARRIER) { - mcp.getPlayer().closeInventory(); - } - } - for(GuiSlot g : GuiSlot.getGuiSlots()) { - if(g.getIcon() == item.getType() && g.getDurability() == item.getDurability() && g.getSlot() == e.getSlot()) { + for (GuiSlot g : GuiSlot.getGuiSlots()) { + if (g.getIcon() == item.getType() && g.getDurability() == item.getDurability() && g.getSlot() == e.getSlot()) { String command = g.getCommand().replace("{channel}", channel.getName()).replace("{hash}", hash + ""); - if(target != null) { + if (target != null) { command = command.replace("{player_name}", target.getName()); - if(target.isOnline()) { + if (target.isOnline()) { command = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), command)); } - } - else { + } else { command = command.replace("{player_name}", "Discord_Message"); } mcp.getPlayer().chat(command);