diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..839d647 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/src/main/java/venture/Aust1n46/chat/controllers/CommandController.java b/src/main/java/venture/Aust1n46/chat/controllers/CommandController.java index 13de7a1..ae7b5ee 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/CommandController.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/CommandController.java @@ -1,23 +1,18 @@ package venture.Aust1n46.chat.controllers; 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.CommandExecutor; -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 com.google.inject.Inject; import com.google.inject.Singleton; @@ -25,6 +20,7 @@ import com.google.inject.Singleton; import venture.Aust1n46.chat.controllers.commands.Broadcast; import venture.Aust1n46.chat.controllers.commands.BungeeToggle; import venture.Aust1n46.chat.controllers.commands.Channel; +import venture.Aust1n46.chat.controllers.commands.ChannelAlias; import venture.Aust1n46.chat.controllers.commands.Channelinfo; import venture.Aust1n46.chat.controllers.commands.Chatinfo; import venture.Aust1n46.chat.controllers.commands.Chatreload; @@ -37,13 +33,13 @@ import venture.Aust1n46.chat.controllers.commands.Edit; import venture.Aust1n46.chat.controllers.commands.Filter; import venture.Aust1n46.chat.controllers.commands.Force; import venture.Aust1n46.chat.controllers.commands.Forceall; -import venture.Aust1n46.chat.controllers.commands.IgnoreCommandExecutor; +import venture.Aust1n46.chat.controllers.commands.Ignore; import venture.Aust1n46.chat.controllers.commands.Kickchannel; import venture.Aust1n46.chat.controllers.commands.Kickchannelall; import venture.Aust1n46.chat.controllers.commands.Leave; import venture.Aust1n46.chat.controllers.commands.Listen; import venture.Aust1n46.chat.controllers.commands.Me; -import venture.Aust1n46.chat.controllers.commands.MessageCommandExecutor; +import venture.Aust1n46.chat.controllers.commands.Message; import venture.Aust1n46.chat.controllers.commands.MessageToggle; import venture.Aust1n46.chat.controllers.commands.Mute; import venture.Aust1n46.chat.controllers.commands.Muteall; @@ -60,24 +56,18 @@ import venture.Aust1n46.chat.controllers.commands.Unmuteall; import venture.Aust1n46.chat.controllers.commands.VentureChatGui; import venture.Aust1n46.chat.controllers.commands.Venturechat; import venture.Aust1n46.chat.initiators.application.VentureChat; -import venture.Aust1n46.chat.model.VentureCommand; +import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.utilities.FormatUtils; -/** - * Class that initializes and executes the plugin's commands. - */ @Singleton -public class CommandController implements TabExecutor { +public class CommandController { private static final String COMMAND_CONFIG_VERSION = "3.3.0"; - private Map commandsOld = new HashMap<>(); - @Inject private VentureChat plugin; @Inject - private MessageCommandExecutor messageCommandExecutor; - @Inject - private IgnoreCommandExecutor ignoreCommandExecutor; + private ConfigService configService; @Inject private Broadcast broadcast; @@ -149,23 +139,16 @@ public class CommandController implements TabExecutor { private Unmute unmute; @Inject private Unmuteall unmuteall; - - private Constructor pluginCommandConstructor; + @Inject + private Message message; + @Inject + private Ignore ignore; + @Inject + private ChannelAlias channelAlias; private final Map commands = new HashMap<>(); private Map knownCommands; - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] parameters) { - commandsOld.get(command.getName()).execute(sender, command.getName(), parameters); - return true; - } - - @Override - public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { - return commandsOld.get(command.getName()).onTabComplete(sender, command, label, args); - } - @SuppressWarnings("unchecked") @Inject public void postConstruct() { @@ -183,7 +166,6 @@ public class CommandController implements TabExecutor { plugin.saveResource("commands.yml", true); commandsFileConfiguration = YamlConfiguration.loadConfiguration(commandsFile); } - try { knownCommands = server.getCommandMap().getKnownCommands(); // Paper :) } @@ -202,85 +184,77 @@ public class CommandController implements TabExecutor { e.printStackTrace(); } } - try { - pluginCommandConstructor = PluginCommand.class.getDeclaredConstructor(String.class, Plugin.class); - pluginCommandConstructor.setAccessible(true); - } catch (NoSuchMethodException | SecurityException e) { - e.printStackTrace(); + commands.put("broadcast", broadcast); + commands.put("channel", channel); + commands.put("join", channel); + commands.put("channelinfo", channelinfo); + commands.put("chatinfo", chatinfo); + commands.put("chatreload", chatreload); + commands.put("chlist", chlist); + commands.put("chwho", chwho); + commands.put("clearchat", clearchat); + commands.put("commandblock", commandblock); + commands.put("commandspy", commandspy); + commands.put("edit", edit); + commands.put("filter", filter); + commands.put("force", force); + commands.put("forceall", forceall); + commands.put("kickchannel", kickchannel); + commands.put("kickchannelall", kickchannelall); + commands.put("leave", leave); + commands.put("listen", listen); + commands.put("me", me); + commands.put("venturechat", venturechat); + commands.put("notifications", notifications); + commands.put("party", party); + commands.put("rangedspy", rangedSpy); + commands.put("removemessage", removemessage); + commands.put("setchannel", setchannel); + commands.put("setchannelall", setchannelall); + commands.put("spy", spy); + commands.put("venturechatgui", ventureChatGui); + commands.put("messagetoggle", messageToggle); + commands.put("bungeetoggle", bungeeToggle); + commands.put("reply", reply); + commands.put("mute", mute); + commands.put("muteall", muteall); + commands.put("unmute", unmute); + commands.put("unmuteall", unmuteall); + commands.put("message", message); + commands.put("ignore", ignore); + for (final ChatChannel chatChannel : configService.getChatChannels()) { + final String alias = chatChannel.getAlias(); + commands.put(alias, channelAlias); } - - commandsOld.put("broadcast", broadcast); -// commandsOld.put("channel", channel); -// commandsOld.put("join", channel); - commandsOld.put("channelinfo", channelinfo); - commandsOld.put("chatinfo", chatinfo); - commandsOld.put("chatreload", chatreload); - commandsOld.put("chlist", chlist); - commandsOld.put("chwho", chwho); - commandsOld.put("clearchat", clearchat); - commandsOld.put("commandblock", commandblock); - commandsOld.put("commandspy", commandspy); - commandsOld.put("edit", edit); - commandsOld.put("filter", filter); - commandsOld.put("force", force); - commandsOld.put("forceall", forceall); - commandsOld.put("kickchannel", kickchannel); - commandsOld.put("kickchannelall", kickchannelall); - commandsOld.put("leave", leave); - commandsOld.put("listen", listen); - commandsOld.put("me", me); - commandsOld.put("venturechat", venturechat); - commandsOld.put("notifications", notifications); - commandsOld.put("party", party); - commandsOld.put("rangedspy", rangedSpy); - commandsOld.put("removemessage", removemessage); - commandsOld.put("setchannel", setchannel); - commandsOld.put("setchannelall", setchannelall); - commandsOld.put("spy", spy); - commandsOld.put("venturechatgui", ventureChatGui); - commandsOld.put("messagetoggle", messageToggle); - commandsOld.put("bungeetoggle", bungeeToggle); - for (String command : commandsOld.keySet()) { - registerCommand(command, this); - } - - plugin.getServer().getScheduler().runTaskLater(plugin, () -> { - if (plugin.isEnabled()) { - commandsOld.put("reply", reply); - commandsOld.put("r", reply); - registerCommand("reply", this); - registerCommand("r", this); - - commandsOld.put("mute", mute); - commandsOld.put("muteall", muteall); - commandsOld.put("unmute", unmute); - commandsOld.put("unmuteall", unmuteall); - registerCommand("mute", this); - registerCommand("muteall", this); - registerCommand("unmute", this); - registerCommand("unmuteall", this); - - registerCommand("message", messageCommandExecutor); - registerCommand("msg", messageCommandExecutor); - registerCommand("tell", messageCommandExecutor); - registerCommand("whisper", messageCommandExecutor); - - registerCommand("ignore", ignoreCommandExecutor); + final ConfigurationSection commandsSection = commandsFileConfiguration.getConfigurationSection("commands"); + for (final String commandName : commandsSection.getKeys(false)) { + final ConfigurationSection commandSection = commandsSection.getConfigurationSection(commandName); + final boolean isEnabled = commandSection.getBoolean("enabled", true); + if (!isEnabled) { + commands.remove(commandName); + } else { + 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:" + commandName, command); + } } - }, 0); - - - registerCommand("channel", channel); - } - - private void registerCommand(final String command, final CommandExecutor commandExecutor) { - try { - final PluginCommand pluginCommand = pluginCommandConstructor.newInstance(command, plugin); - pluginCommand.setExecutor(commandExecutor); - knownCommands.put(command, pluginCommand); - } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); } + // Initial registration is required to ensure commands are recognized by the + // server after enabling every plugin + 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 Entry commandEntry : commands.entrySet()) { + registerCommand(commandEntry.getKey(), commandEntry.getValue()); + } + }, 10); } private void registerCommand(final String commandLabel, final Command command) { diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Broadcast.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Broadcast.java index 3301d8a..4a1aef8 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Broadcast.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Broadcast.java @@ -8,40 +8,44 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.localization.LocalizedMessage; -import venture.Aust1n46.chat.model.VentureCommand; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.service.VentureChatFormatService; import venture.Aust1n46.chat.utilities.FormatUtils; -public class Broadcast implements VentureCommand { +public class Broadcast extends UniversalCommand { @Inject - private VentureChat plugin; + private VentureChat plugin; @Inject private VentureChatFormatService formatService; - @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 = FormatUtils.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 = FormatUtils.FormatStringAll(bc); - formatService.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; - } - } + @Inject + public Broadcast(String name) { + super(name); + } + + @Override + protected void executeCommand(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 = FormatUtils.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 = FormatUtils.FormatStringAll(bc); + formatService.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; + } + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/BungeeToggle.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/BungeeToggle.java index 5586681..b5b3b65 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/BungeeToggle.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/BungeeToggle.java @@ -1,43 +1,42 @@ package venture.Aust1n46.chat.controllers.commands; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.PlayerCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class BungeeToggle implements VentureCommand { +public class BungeeToggle extends PlayerCommand { @Inject private PluginMessageController pluginMessageController; @Inject private VentureChatPlayerApiService playerApiService; - @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; - } - VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); - if (mcp.getPlayer().hasPermission("venturechat.bungeetoggle")) { - if (!mcp.isBungeeToggle()) { - mcp.setBungeeToggle(true); - mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_ON.toString()); - pluginMessageController.synchronize(mcp, true); - return; - } - mcp.setBungeeToggle(false); - mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_OFF.toString()); - pluginMessageController.synchronize(mcp, true); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } + @Inject + public BungeeToggle(String name) { + super(name); + } + + @Override + protected void executeCommand(Player player, String command, String[] args) { + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player); + if (mcp.getPlayer().hasPermission("venturechat.bungeetoggle")) { + if (!mcp.isBungeeToggle()) { + mcp.setBungeeToggle(true); + mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_ON.toString()); + pluginMessageController.synchronize(mcp, true); + return; + } + mcp.setBungeeToggle(false); + mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_OFF.toString()); + pluginMessageController.synchronize(mcp, true); + return; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return; + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/ChannelAlias.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/ChannelAlias.java new file mode 100644 index 0000000..9f3f929 --- /dev/null +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/ChannelAlias.java @@ -0,0 +1,70 @@ +package venture.Aust1n46.chat.controllers.commands; + +import org.bukkit.entity.Player; + +import com.google.inject.Inject; + +import venture.Aust1n46.chat.controllers.PluginMessageController; +import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.model.PlayerCommand; +import venture.Aust1n46.chat.model.VentureChatPlayer; +import venture.Aust1n46.chat.service.ConfigService; +import venture.Aust1n46.chat.service.VentureChatPlayerApiService; + +public class ChannelAlias extends PlayerCommand { + @Inject + private VentureChatPlayerApiService playerApiService; + @Inject + private ConfigService configService; + @Inject + private PluginMessageController pluginMessageController; + + public ChannelAlias() { + super("channelalias"); + } + + @Override + public void executeCommand(final Player player, final String commandLabel, final String[] args) { + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player); + for (ChatChannel channel : configService.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 (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) { + if (p.isSpy()) { + p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", mcp.getName()) + .replace("{player_receiver}", playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName())); + } + } + mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString().replace("{player_receiver}", + playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName())); + mcp.setConversation(null); + } + mcp.addListening(channel.getName()); + mcp.setCurrentChannel(channel); + if (channel.getBungee()) { + pluginMessageController.synchronize(mcp, true); + } + return; + } else { + mcp.setQuickChat(true); + mcp.setQuickChannel(channel); + mcp.addListening(channel.getName()); + if (channel.getBungee()) { + pluginMessageController.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; + } + } + } + } +} diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Channelinfo.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Channelinfo.java index a3566a7..8cd43ce 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Channelinfo.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Channelinfo.java @@ -6,64 +6,70 @@ import org.bukkit.command.CommandSender; import com.google.inject.Inject; import venture.Aust1n46.chat.model.ChatChannel; -import venture.Aust1n46.chat.model.VentureCommand; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.utilities.FormatUtils; -public class Channelinfo implements VentureCommand { +public class Channelinfo extends UniversalCommand { @Inject private ConfigService configService; - @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 = configService.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") ? FormatUtils.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; - } - } + @Inject + public Channelinfo(String name) { + super(name); + } + + @Override + protected void executeCommand(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 = configService.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") ? FormatUtils.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; + } + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Chatinfo.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Chatinfo.java index ea4ef06..4b5a387 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Chatinfo.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Chatinfo.java @@ -8,136 +8,142 @@ import org.bukkit.entity.Player; import com.google.inject.Inject; import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Chatinfo implements VentureCommand { +public class Chatinfo extends UniversalCommand { @Inject private VentureChatPlayerApiService playerApiService; @Inject private ConfigService configService; - @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; - } - VentureChatPlayer mcp = playerApiService.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 = configService.getChannel(c); - listen += channel.getColor() + channel.getName() + " "; - } - for (MuteContainer muteContainer : mcp.getMutes()) { - ChatChannel channel = configService.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 + playerApiService.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.isFilter()) { - 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 = ""; - VentureChatPlayer p = playerApiService.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 = configService.getChannel(c); - listen += channel.getColor() + channel.getName() + " "; - } - for (MuteContainer muteContainer : p.getMutes()) { - ChatChannel channel = configService.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 + playerApiService.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.isFilter()) { - 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; - } - } + @Inject + public Chatinfo(String name) { + super(name); + } + + @Override + public void executeCommand(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; + } + VentureChatPlayer mcp = playerApiService.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 = configService.getChannel(c); + listen += channel.getColor() + channel.getName() + " "; + } + for (MuteContainer muteContainer : mcp.getMutes()) { + ChatChannel channel = configService.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 + playerApiService.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.isFilter()) { + 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 = ""; + VentureChatPlayer p = playerApiService.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 = configService.getChannel(c); + listen += channel.getColor() + channel.getName() + " "; + } + for (MuteContainer muteContainer : p.getMutes()) { + ChatChannel channel = configService.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 + playerApiService.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.isFilter()) { + 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; + } + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Chatreload.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Chatreload.java index d0f959b..0418b53 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Chatreload.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Chatreload.java @@ -12,13 +12,13 @@ import venture.Aust1n46.chat.controllers.VentureChatSpigotFlatFileController; import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.JsonFormat; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.utilities.FormatUtils; -public class Chatreload implements VentureCommand { +public class Chatreload extends UniversalCommand { @Inject private VentureChat plugin; @Inject @@ -28,23 +28,29 @@ public class Chatreload implements VentureCommand { @Inject private ConfigService configService; + @Inject + public Chatreload(String name) { + super(name); + } + @Override - public void execute(CommandSender sender, String command, String[] args) { - if(sender.hasPermission("venturechat.reload")) { + public void executeCommand(CommandSender sender, String command, String[] args) { + if (sender.hasPermission("venturechat.reload")) { spigotFlatFileController.savePlayerData(); playerApiService.clearMineverseChatPlayerMap(); playerApiService.clearNameMap(); playerApiService.clearOnlineMineverseChatPlayerMap(); - + plugin.reloadConfig(); configService.postConstruct(); - + spigotFlatFileController.loadLegacyPlayerData(); spigotFlatFileController.loadPlayerData(); - for(Player p : plugin.getServer().getOnlinePlayers()) { + for (Player p : plugin.getServer().getOnlinePlayers()) { VentureChatPlayer mcp = playerApiService.getMineverseChatPlayer(p); - if(mcp == null) { - Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Could not find player data post reload for currently online player: " + p.getName())); + if (mcp == null) { + Bukkit.getConsoleSender() + .sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Could not find player data post reload for currently online player: " + p.getName())); Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - There could be an issue with your player data saving.")); String name = p.getName(); UUID uuid = p.getUniqueId(); @@ -54,9 +60,9 @@ public class Chatreload implements VentureCommand { mcp.setPlayer(plugin.getServer().getPlayer(mcp.getUuid())); mcp.setHasPlayed(false); String jsonFormat = mcp.getJsonFormat(); - for(JsonFormat j : configService.getJsonFormats()) { - if(mcp.getPlayer().hasPermission("venturechat.json." + j.getName())) { - if(configService.getJsonFormat(mcp.getJsonFormat()).getPriority() > j.getPriority()) { + for (JsonFormat j : configService.getJsonFormats()) { + if (mcp.getPlayer().hasPermission("venturechat.json." + j.getName())) { + if (configService.getJsonFormat(mcp.getJsonFormat()).getPriority() > j.getPriority()) { jsonFormat = j.getName(); } } @@ -65,10 +71,10 @@ public class Chatreload implements VentureCommand { playerApiService.addMineverseChatOnlinePlayerToMap(mcp); playerApiService.addNameToMap(mcp); } - - Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Config reloaded")); - for(VentureChatPlayer player : playerApiService.getOnlineMineverseChatPlayers()) { - if(player.getPlayer().hasPermission("venturechat.reload")) { + + Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Config reloaded")); + for (VentureChatPlayer player : playerApiService.getOnlineMineverseChatPlayers()) { + if (player.getPlayer().hasPermission("venturechat.reload")) { player.getPlayer().sendMessage(LocalizedMessage.CONFIG_RELOADED.toString()); } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Chlist.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Chlist.java index 5b7cc45..79383a0 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Chlist.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Chlist.java @@ -6,15 +6,20 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; -import venture.Aust1n46.chat.model.VentureCommand; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.service.ConfigService; -public class Chlist implements VentureCommand { +public class Chlist extends UniversalCommand { @Inject private ConfigService configService; + + @Inject + public Chlist(String name) { + super(name); + } @Override - public void execute(CommandSender sender, String command, String[] args) { + public void executeCommand(CommandSender sender, String command, String[] args) { sender.sendMessage(LocalizedMessage.CHANNEL_LIST_HEADER.toString()); for (ChatChannel chname : configService.getChatChannels()) { if (chname.hasPermission()) { diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Chwho.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Chwho.java index 541b742..9e473b6 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Chwho.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Chwho.java @@ -21,11 +21,11 @@ import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Chwho implements VentureCommand { +public class Chwho extends UniversalCommand { @Inject private VentureChat plugin; @Inject @@ -34,9 +34,14 @@ public class Chwho implements VentureCommand { private VentureChatPlayerApiService playerApiService; @Inject private ConfigService configService; + + @Inject + public Chwho(String name) { + super(name); + } @Override - public void execute(CommandSender sender, String command, String[] args) { + public void executeCommand(CommandSender sender, String command, String[] args) { String playerlist = ""; if (sender.hasPermission("venturechat.chwho")) { if (args.length > 0) { diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Clearchat.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Clearchat.java index eab9050..3562a96 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Clearchat.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Clearchat.java @@ -7,15 +7,20 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.localization.InternalMessage; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Clearchat implements VentureCommand { +public class Clearchat extends UniversalCommand { @Inject private VentureChatPlayerApiService ventureChatApi; + + @Inject + public Clearchat(String name) { + super(name); + } @Override - public void execute(CommandSender sender, String command, String[] args) { + public void executeCommand(CommandSender sender, String command, String[] args) { if (sender.hasPermission("venturechat.clearchat")) { for (VentureChatPlayer player : ventureChatApi.getOnlineMineverseChatPlayers()) { if (!player.getPlayer().hasPermission("venturechat.clearchat.bypass")) { diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Commandblock.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Commandblock.java index 1f8b688..cbe9600 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Commandblock.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Commandblock.java @@ -9,17 +9,22 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Commandblock implements VentureCommand { +public class Commandblock extends UniversalCommand { @Inject private VentureChat plugin; @Inject private VentureChatPlayerApiService playerApiService; + + @Inject + public Commandblock(String name) { + super(name); + } @Override - public void execute(CommandSender sender, String command, String[] args) { + public void executeCommand(CommandSender sender, String command, String[] args) { if (sender.hasPermission("venturechat.commandblock")) { if (args.length > 1) { VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]); diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Commandspy.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Commandspy.java index 0f6dc3c..3c27720 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Commandspy.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Commandspy.java @@ -1,37 +1,36 @@ package venture.Aust1n46.chat.controllers.commands; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.google.inject.Inject; import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.PlayerCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Commandspy implements VentureCommand { +public class Commandspy extends PlayerCommand { @Inject private VentureChatPlayerApiService playerApiService; - @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; - } - VentureChatPlayer mcp = playerApiService.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()); - } + @Inject + public Commandspy(String name) { + super(name); + } + + @Override + public void executeCommand(Player sender, String command, String[] args) { + VentureChatPlayer mcp = playerApiService.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()); + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Edit.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Edit.java index 9d9e305..b87dcf0 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Edit.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Edit.java @@ -17,12 +17,12 @@ import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatMessage; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.service.VentureChatFormatService; -public class Edit implements VentureCommand { +public class Edit extends UniversalCommand { @Inject private VentureChat plugin; @Inject @@ -32,6 +32,11 @@ public class Edit implements VentureCommand { private PacketContainer emptyLinePacketContainer; private WrappedChatComponent messageDeletedComponentPlayer; + + @Inject + public Edit(String name) { + super(name); + } @Inject public void postConstruct() { @@ -41,7 +46,7 @@ public class Edit implements VentureCommand { @Override @SuppressWarnings({"unchecked", "rawtypes"}) - public void execute(CommandSender sender, String command, String[] args) { + public void executeCommand(CommandSender sender, String command, String[] args) { if (args.length == 0) { sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() .replace("{command}", "/edit") diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Filter.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Filter.java index 020c907..cf3ae12 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Filter.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Filter.java @@ -1,37 +1,36 @@ package venture.Aust1n46.chat.controllers.commands; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.google.inject.Inject; import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.PlayerCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Filter implements VentureCommand { +public class Filter extends PlayerCommand { @Inject private VentureChatPlayerApiService playerApiService; - @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; - } - VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); - if (mcp.getPlayer().hasPermission("venturechat.ignorefilter")) { - if (!mcp.isFilter()) { - 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()); - } + @Inject + public Filter(String name) { + super(name); + } + + @Override + public void executeCommand(Player sender, String command, String[] args) { + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); + if (mcp.getPlayer().hasPermission("venturechat.ignorefilter")) { + if (!mcp.isFilter()) { + 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()); + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Force.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Force.java index 39d3e14..823977d 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Force.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Force.java @@ -5,39 +5,39 @@ import org.bukkit.command.CommandSender; import com.google.inject.Inject; import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Force implements VentureCommand { +public class Force extends UniversalCommand { @Inject private VentureChatPlayerApiService playerApiService; - @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; - } - VentureChatPlayer player = playerApiService.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()); - } + @Inject + public Force(String name) { + super(name); + } + + @Override + public void executeCommand(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; + } + VentureChatPlayer player = playerApiService.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()); + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Forceall.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Forceall.java index 0cfa329..30c1247 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Forceall.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Forceall.java @@ -5,34 +5,38 @@ import org.bukkit.command.CommandSender; import com.google.inject.Inject; import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Forceall implements VentureCommand { +public class Forceall extends UniversalCommand { @Inject private VentureChatPlayerApiService playerApiService; - @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 (VentureChatPlayer player : playerApiService.getOnlineMineverseChatPlayers()) { - player.getPlayer().chat(forcemsg); - } - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Inject + public Forceall(String name) { + super(name); + } + + @Override + public void executeCommand(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 (VentureChatPlayer player : playerApiService.getOnlineMineverseChatPlayers()) { + player.getPlayer().chat(forcemsg); + } + return; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Ignore.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Ignore.java new file mode 100644 index 0000000..f466882 --- /dev/null +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Ignore.java @@ -0,0 +1,114 @@ +package venture.Aust1n46.chat.controllers.commands; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.UUID; + +import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.util.StringUtil; + +import com.google.inject.Inject; + +import venture.Aust1n46.chat.controllers.PluginMessageController; +import venture.Aust1n46.chat.initiators.application.VentureChat; +import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.PlayerCommand; +import venture.Aust1n46.chat.model.VentureChatPlayer; +import venture.Aust1n46.chat.service.VentureChatPlayerApiService; + +public class Ignore extends PlayerCommand { + @Inject + private VentureChat plugin; + @Inject + private PluginMessageController pluginMessageController; + @Inject + private VentureChatPlayerApiService playerApiService; + + @Inject + public Ignore(String name) { + super(name); + } + + @Override + public void executeCommand(Player sender, String label, String[] args) { + if (!(sender instanceof Player)) { + plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return; + } + VentureChatPlayer mcp = playerApiService.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()) { + VentureChatPlayer i = playerApiService.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()); + pluginMessageController.sendPluginMessage(byteOutStream); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return; + } + + VentureChatPlayer player = playerApiService.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()); + pluginMessageController.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()); + pluginMessageController.synchronize(mcp, true); + } + + @Override + public List tabComplete(CommandSender sender, String alias, String[] args) { + if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { + List completions = new ArrayList<>(); + StringUtil.copyPartialMatches(args[args.length - 1], playerApiService.getNetworkPlayerNames(), completions); + Collections.sort(completions); + return completions; + } + return null; + } +} diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/IgnoreCommandExecutor.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/IgnoreCommandExecutor.java deleted file mode 100644 index 467f85e..0000000 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/IgnoreCommandExecutor.java +++ /dev/null @@ -1,115 +0,0 @@ -package venture.Aust1n46.chat.controllers.commands; - -import java.io.ByteArrayOutputStream; -import java.io.DataOutputStream; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.UUID; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabExecutor; -import org.bukkit.entity.Player; -import org.bukkit.util.StringUtil; - -import com.google.inject.Inject; - -import venture.Aust1n46.chat.controllers.PluginMessageController; -import venture.Aust1n46.chat.initiators.application.VentureChat; -import venture.Aust1n46.chat.localization.LocalizedMessage; -import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.service.VentureChatPlayerApiService; - -public class IgnoreCommandExecutor implements TabExecutor { - @Inject - private VentureChat plugin; - @Inject - private PluginMessageController pluginMessageController; - @Inject - private VentureChatPlayerApiService playerApiService; - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return true; - } - VentureChatPlayer mcp = playerApiService.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()) { - VentureChatPlayer i = playerApiService.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()); - pluginMessageController.sendPluginMessage(byteOutStream); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - return true; - } - - VentureChatPlayer player = playerApiService.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()); - pluginMessageController.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()); - pluginMessageController.synchronize(mcp, true); - 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], playerApiService.getNetworkPlayerNames(), completions); - Collections.sort(completions); - return completions; - } - return null; - } -} diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Kickchannel.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Kickchannel.java index ea5d889..8d84985 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Kickchannel.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Kickchannel.java @@ -8,12 +8,12 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Kickchannel implements VentureCommand { +public class Kickchannel extends UniversalCommand { @Inject private PluginMessageController pluginMessageController; @Inject @@ -21,59 +21,57 @@ public class Kickchannel implements VentureCommand { @Inject private ConfigService configService; - @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; - } - VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]); - if (player == null) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - ChatChannel channel = configService.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(configService.getDefaultChannel().getName()); - player.setCurrentChannel(configService.getDefaultChannel()); - if (configService.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(configService.getDefaultColor().toUpperCase()) + "") - .replace("{channel_name}", configService.getDefaultChannel().getName())); - } else - player.setModified(true); - } - if (isThereABungeeChannel) { - pluginMessageController.synchronize(player, true); - } - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Inject + public Kickchannel(String name) { + super(name); + } + + @Override + public void executeCommand(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; + } + VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]); + if (player == null) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return; + } + ChatChannel channel = configService.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(configService.getDefaultChannel().getName()); + player.setCurrentChannel(configService.getDefaultChannel()); + if (configService.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(configService.getDefaultColor().toUpperCase()) + "") + .replace("{channel_name}", configService.getDefaultChannel().getName())); + } else + player.setModified(true); + } + if (isThereABungeeChannel) { + pluginMessageController.synchronize(player, true); + } + return; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Kickchannelall.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Kickchannelall.java index c6b9635..996172a 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Kickchannelall.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Kickchannelall.java @@ -8,12 +8,12 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Kickchannelall implements VentureCommand { +public class Kickchannelall extends UniversalCommand { @Inject private PluginMessageController pluginMessageController; @Inject @@ -21,52 +21,53 @@ public class Kickchannelall implements VentureCommand { @Inject private ConfigService configService; - @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; - } - VentureChatPlayer player = playerApiService.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 (configService.isChannel(channel)) { - ChatChannel chatChannelObj = configService.getChannel(channel); - if (chatChannelObj.getBungee()) { - isThereABungeeChannel = true; - } - } - } - player.clearListening(); - sender.sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_SENDER.toString() - .replace("{player}", player.getName())); - player.addListening(configService.getDefaultChannel().getName()); - player.setCurrentChannel(configService.getDefaultChannel()); - if (configService.getDefaultChannel().getBungee()) { - isThereABungeeChannel = true; - } - if (isThereABungeeChannel) { - pluginMessageController.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(configService.getDefaultColor().toUpperCase()) + "") - .replace("{channel_name}", configService.getDefaultChannel().getName())); - } else { - player.setModified(true); - } - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Inject + public Kickchannelall(String name) { + super(name); + } + + @Override + public void executeCommand(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; + } + VentureChatPlayer player = playerApiService.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 (configService.isChannel(channel)) { + ChatChannel chatChannelObj = configService.getChannel(channel); + if (chatChannelObj.getBungee()) { + isThereABungeeChannel = true; + } + } + } + player.clearListening(); + sender.sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_SENDER.toString().replace("{player}", player.getName())); + player.addListening(configService.getDefaultChannel().getName()); + player.setCurrentChannel(configService.getDefaultChannel()); + if (configService.getDefaultChannel().getBungee()) { + isThereABungeeChannel = true; + } + if (isThereABungeeChannel) { + pluginMessageController.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(configService.getDefaultColor().toUpperCase()) + "") + .replace("{channel_name}", configService.getDefaultChannel().getName())); + } else { + player.setModified(true); + } + return; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Leave.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Leave.java index 19656d3..d72391c 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Leave.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Leave.java @@ -1,8 +1,6 @@ package venture.Aust1n46.chat.controllers.commands; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.google.inject.Inject; @@ -10,12 +8,12 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.model.PlayerCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Leave implements VentureCommand { +public class Leave extends PlayerCommand { @Inject private PluginMessageController pluginMessageController; @Inject @@ -23,43 +21,39 @@ public class Leave implements VentureCommand { @Inject private ConfigService configService; - @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; - } - VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); - if (args.length > 0) { - ChatChannel channel = configService.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(configService.getDefaultChannel().getName()); - mcp.setCurrentChannel(configService.getDefaultChannel()); - if (configService.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(configService.getDefaultColor().toUpperCase()) + "") - .replace("{channel_name}", configService.getDefaultChannel().getName())); - } - if (isThereABungeeChannel) { - pluginMessageController.synchronize(mcp, true); - } - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/leave") - .replace("{args}", "[channel]")); - } + @Inject + public Leave(String name) { + super(name); + } + + @Override + public void executeCommand(Player sender, String command, String[] args) { + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); + if (args.length > 0) { + ChatChannel channel = configService.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(configService.getDefaultChannel().getName()); + mcp.setCurrentChannel(configService.getDefaultChannel()); + if (configService.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(configService.getDefaultColor().toUpperCase()) + "") + .replace("{channel_name}", configService.getDefaultChannel().getName())); + } + if (isThereABungeeChannel) { + pluginMessageController.synchronize(mcp, true); + } + return; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/leave").replace("{args}", "[channel]")); + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Listen.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Listen.java index 5c71197..629c1d2 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Listen.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Listen.java @@ -1,7 +1,5 @@ package venture.Aust1n46.chat.controllers.commands; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.google.inject.Inject; @@ -9,12 +7,12 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.model.PlayerCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Listen implements VentureCommand { +public class Listen extends PlayerCommand { @Inject private PluginMessageController pluginMessageController; @Inject @@ -22,38 +20,35 @@ public class Listen implements VentureCommand { @Inject private ConfigService configService; - @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; - } - VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); - if (args.length > 0) { - ChatChannel channel = configService.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()) { - pluginMessageController.synchronize(mcp, true); - } - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/listen") - .replace("{args}", "[channel]")); - } + @Inject + public Listen(String name) { + super(name); + } + + @Override + public void executeCommand(Player player, String command, String[] args) { + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player); + if (args.length > 0) { + ChatChannel channel = configService.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()) { + pluginMessageController.synchronize(mcp, true); + } + return; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/listen").replace("{args}", "[channel]")); + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Me.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Me.java index f42751a..bc60a6c 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Me.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Me.java @@ -6,49 +6,52 @@ import org.bukkit.entity.Player; import com.google.inject.Inject; import venture.Aust1n46.chat.localization.LocalizedMessage; -import venture.Aust1n46.chat.model.VentureCommand; +import venture.Aust1n46.chat.model.UniversalCommand; +import venture.Aust1n46.chat.service.VentureChatFormatService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.utilities.FormatUtils; -import venture.Aust1n46.chat.service.VentureChatFormatService; -public class Me implements VentureCommand { +public class Me extends UniversalCommand { @Inject private VentureChatFormatService formatService; @Inject private VentureChatPlayerApiService playerApiService; - @SuppressWarnings("deprecation") + @Inject + public Me(String name) { + super(name); + } + + @SuppressWarnings("deprecation") @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 && playerApiService.getOnlineMineverseChatPlayer((Player) sender).isFilter()) { - msg = formatService.FilterChat(msg); - } - if (sender.hasPermission("venturechat.color.legacy")) { - msg = FormatUtils.FormatStringLegacyColor(msg); - } - if (sender.hasPermission("venturechat.color")) - msg = FormatUtils.FormatStringColor(msg); - if (sender.hasPermission("venturechat.format")) - msg = FormatUtils.FormatString(msg); - if (sender instanceof Player) { - Player p = (Player) sender; - formatService.broadcastToServer("* " + p.getDisplayName() + msg); - return; - } - formatService.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()); - } + public void executeCommand(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 && playerApiService.getOnlineMineverseChatPlayer((Player) sender).isFilter()) { + msg = formatService.FilterChat(msg); + } + if (sender.hasPermission("venturechat.color.legacy")) { + msg = FormatUtils.FormatStringLegacyColor(msg); + } + if (sender.hasPermission("venturechat.color")) + msg = FormatUtils.FormatStringColor(msg); + if (sender.hasPermission("venturechat.format")) + msg = FormatUtils.FormatString(msg); + if (sender instanceof Player) { + Player p = (Player) sender; + formatService.broadcastToServer("* " + p.getDisplayName() + msg); + return; + } + formatService.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()); + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Message.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Message.java new file mode 100644 index 0000000..696027a --- /dev/null +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Message.java @@ -0,0 +1,219 @@ +package venture.Aust1n46.chat.controllers.commands; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.util.StringUtil; + +import com.google.inject.Inject; + +import me.clip.placeholderapi.PlaceholderAPI; +import venture.Aust1n46.chat.controllers.PluginMessageController; +import venture.Aust1n46.chat.initiators.application.VentureChat; +import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.PlayerCommand; +import venture.Aust1n46.chat.model.VentureChatPlayer; +import venture.Aust1n46.chat.service.VentureChatFormatService; +import venture.Aust1n46.chat.service.VentureChatPlayerApiService; +import venture.Aust1n46.chat.utilities.FormatUtils; + +public class Message extends PlayerCommand { + @Inject + private VentureChat plugin; + @Inject + private VentureChatFormatService formatService; + @Inject + private PluginMessageController pluginMessageController; + @Inject + private VentureChatPlayerApiService playerApiService; + + @Inject + public Message(String name) { + super(name); + } + + @Override + public void executeCommand(Player sender, String command, String[] args) { + if (!(sender instanceof Player)) { + plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return; + } + + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); + if (args.length == 0) { + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/" + command).replace("{args}", "[player] [message]")); + return; + } + + if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { + sendBungeeCordMessage(mcp, command, args); + return; + } + + VentureChatPlayer player = playerApiService.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.isMessageToggle()) { + mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString().replace("{player}", player.getName())); + return; + } + + 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.isFilter()) { + msg = formatService.FilterChat(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { + msg = FormatUtils.FormatStringLegacyColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color")) { + msg = FormatUtils.FormatStringColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.format")) { + msg = FormatUtils.FormatString(msg); + } + + send = FormatUtils + .FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", ""))); + echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", ""))); + spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", ""))); + + send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg; + echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg; + spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; + + player.setReplyPlayer(mcp.getUuid()); + mcp.setReplyPlayer(player.getUuid()); + player.getPlayer().sendMessage(send); + mcp.getPlayer().sendMessage(echo); + if (player.isNotifications()) { + formatService.playMessageSound(player); + } + if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { + for (VentureChatPlayer sp : playerApiService.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 (VentureChatPlayer sp : playerApiService.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 (VentureChatPlayer sp : playerApiService.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())); + } + } + } + } + + @Override + public List tabComplete(CommandSender sender, String alias, String[] args) { + if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { + List completions = new ArrayList<>(); + StringUtil.copyPartialMatches(args[args.length - 1], playerApiService.getNetworkPlayerNames(), completions); + Collections.sort(completions); + return completions; + } + return null; + } + + private void sendBungeeCordMessage(VentureChatPlayer 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.isFilter()) { + msg = formatService.FilterChat(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { + msg = FormatUtils.FormatStringLegacyColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color")) { + msg = FormatUtils.FormatStringColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.format")) { + msg = FormatUtils.FormatString(msg); + } + + String send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", ""))); + String echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", ""))); + String spy = "VentureChat:NoSpy"; + if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { + spy = FormatUtils.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); + pluginMessageController.sendPluginMessage(byteOutStream); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/MessageCommandExecutor.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/MessageCommandExecutor.java deleted file mode 100644 index a536039..0000000 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/MessageCommandExecutor.java +++ /dev/null @@ -1,227 +0,0 @@ -package venture.Aust1n46.chat.controllers.commands; - -import java.io.ByteArrayOutputStream; -import java.io.DataOutputStream; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabExecutor; -import org.bukkit.entity.Player; -import org.bukkit.util.StringUtil; - -import com.google.inject.Inject; - -import me.clip.placeholderapi.PlaceholderAPI; -import venture.Aust1n46.chat.controllers.PluginMessageController; -import venture.Aust1n46.chat.initiators.application.VentureChat; -import venture.Aust1n46.chat.localization.LocalizedMessage; -import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -import venture.Aust1n46.chat.utilities.FormatUtils; -import venture.Aust1n46.chat.service.VentureChatFormatService; - -public class MessageCommandExecutor implements TabExecutor { - @Inject - private VentureChat plugin; - @Inject - private VentureChatFormatService formatService; - @Inject - private PluginMessageController pluginMessageController; - @Inject - private VentureChatPlayerApiService playerApiService; - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); - return true; - } - - VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); - if (args.length == 0) { - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/" + command.getName()) - .replace("{args}", "[player] [message]")); - return true; - } - - if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { - sendBungeeCordMessage(mcp, command.getName(), args); - return true; - } - - VentureChatPlayer player = playerApiService.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.isMessageToggle()) { - mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString() - .replace("{player}", player.getName())); - 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.isFilter()) { - msg = formatService.FilterChat(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { - msg = FormatUtils.FormatStringLegacyColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color")) { - msg = FormatUtils.FormatStringColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.format")) { - msg = FormatUtils.FormatString(msg); - } - - send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", ""))); - echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", ""))); - spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", ""))); - - send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg; - echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg; - spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; - - player.setReplyPlayer(mcp.getUuid()); - mcp.setReplyPlayer(player.getUuid()); - player.getPlayer().sendMessage(send); - mcp.getPlayer().sendMessage(echo); - if (player.isNotifications()) { - formatService.playMessageSound(player); - } - if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - for (VentureChatPlayer sp : playerApiService.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 (VentureChatPlayer sp : playerApiService.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 (VentureChatPlayer sp : playerApiService.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; - } - - @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], playerApiService.getNetworkPlayerNames(), completions); - Collections.sort(completions); - return completions; - } - return null; - } - - private void sendBungeeCordMessage(VentureChatPlayer 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.isFilter()) { - msg = formatService.FilterChat(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { - msg = FormatUtils.FormatStringLegacyColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color")) { - msg = FormatUtils.FormatStringColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.format")) { - msg = FormatUtils.FormatString(msg); - } - - String send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", ""))); - String echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", ""))); - String spy = "VentureChat:NoSpy"; - if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - spy = FormatUtils.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); - pluginMessageController.sendPluginMessage(byteOutStream); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } -} diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/MessageToggle.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/MessageToggle.java index bba6329..cde26c4 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/MessageToggle.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/MessageToggle.java @@ -1,43 +1,42 @@ package venture.Aust1n46.chat.controllers.commands; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.PlayerCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class MessageToggle implements VentureCommand { +public class MessageToggle extends PlayerCommand { @Inject private PluginMessageController pluginMessageController; @Inject private VentureChatPlayerApiService playerApiService; - @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; - } - VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); - if (mcp.getPlayer().hasPermission("venturechat.messagetoggle")) { - if (!mcp.isMessageToggle()) { - mcp.setMessageToggle(true); - mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_ON.toString()); - pluginMessageController.synchronize(mcp, true); - return; - } - mcp.setMessageToggle(false); - mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_OFF.toString()); - pluginMessageController.synchronize(mcp, true); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } + @Inject + public MessageToggle(String name) { + super(name); + } + + @Override + public void executeCommand(Player player, String command, String[] args) { + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player); + if (mcp.getPlayer().hasPermission("venturechat.messagetoggle")) { + if (!mcp.isMessageToggle()) { + mcp.setMessageToggle(true); + mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_ON.toString()); + pluginMessageController.synchronize(mcp, true); + return; + } + mcp.setMessageToggle(false); + mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_OFF.toString()); + pluginMessageController.synchronize(mcp, true); + return; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return; + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Mute.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Mute.java index d91870b..e311e24 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Mute.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Mute.java @@ -8,7 +8,6 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.util.StringUtil; @@ -18,203 +17,184 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.utilities.FormatUtils; -public class Mute implements VentureCommand { - private static final List COMMON_MUTE_TIMES = Collections.unmodifiableList(Arrays.asList(new String[]{"12h", "15m", "1d", "1h", "1m", "30s"})); - - @Inject +public class Mute extends UniversalCommand { + private static final List COMMON_MUTE_TIMES = Collections.unmodifiableList(Arrays.asList(new String[] { "12h", "15m", "1d", "1h", "1m", "30s" })); + + @Inject private PluginMessageController pluginMessageController; - @Inject + @Inject private VentureChatPlayerApiService playerApiService; - @Inject + @Inject private ConfigService configService; - @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 (configService.isChannel(args[0])) { - ChatChannel channel = configService.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 = FormatUtils.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 = FormatUtils.FormatStringAll(reasonBuilder.toString().trim()); - } - if (channel.getBungee()) { - sendBungeeCordMute(sender, args[1], channel, time, reason); - return; - } - VentureChatPlayer playerToMute = playerApiService.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; - } + @Inject + public Mute(String name) { + super(name); + } - if (time > 0) { - if (reason.isEmpty()) { - playerToMute.addMute(channel.getName(), datetime + time); - String timeString = FormatUtils.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 = FormatUtils.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 void executeCommand(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 (configService.isChannel(args[0])) { + ChatChannel channel = configService.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 = FormatUtils.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 = FormatUtils.FormatStringAll(reasonBuilder.toString().trim()); + } + if (channel.getBungee()) { + sendBungeeCordMute(sender, args[1], channel, time, reason); + return; + } + VentureChatPlayer playerToMute = playerApiService.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; + } - @Override - public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { - List completions = new ArrayList<>(); - if (args.length == 1) { - StringUtil.copyPartialMatches(args[0], configService.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions); - Collections.sort(completions); - return completions; - } - if (args.length == 2) { - if (configService.isChannel(args[0])) { - ChatChannel chatChannelObj = configService.getChannel(args[0]); - if (chatChannelObj.getBungee()) { - StringUtil.copyPartialMatches(args[1], playerApiService.getNetworkPlayerNames(), completions); - Collections.sort(completions); - return completions; - } - StringUtil.copyPartialMatches(args[1], playerApiService.getOnlineMineverseChatPlayers().stream().filter(mcp -> !mcp.isMuted(chatChannelObj.getName())).map(VentureChatPlayer::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 = FormatUtils.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 = FormatUtils.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()); + } - } - return Collections.emptyList(); - } + @Override + public List tabComplete(CommandSender sender, String alias, String[] args) { + List completions = new ArrayList<>(); + if (args.length == 1) { + StringUtil.copyPartialMatches(args[0], configService.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions); + Collections.sort(completions); + return completions; + } + if (args.length == 2) { + if (configService.isChannel(args[0])) { + ChatChannel chatChannelObj = configService.getChannel(args[0]); + if (chatChannelObj.getBungee()) { + StringUtil.copyPartialMatches(args[1], playerApiService.getNetworkPlayerNames(), completions); + Collections.sort(completions); + return completions; + } + StringUtil.copyPartialMatches(args[1], playerApiService.getOnlineMineverseChatPlayers().stream().filter(mcp -> !mcp.isMuted(chatChannelObj.getName())) + .map(VentureChatPlayer::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); - pluginMessageController.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); + pluginMessageController.sendPluginMessage(byteOutStream); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Muteall.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Muteall.java index 907bc98..3a5c572 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Muteall.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Muteall.java @@ -7,13 +7,13 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.utilities.FormatUtils; -public class Muteall implements VentureCommand { +public class Muteall extends UniversalCommand { @Inject private PluginMessageController pluginMessageController; @Inject @@ -21,75 +21,73 @@ public class Muteall implements VentureCommand { @Inject private ConfigService configService; - @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; - } - VentureChatPlayer player = playerApiService.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 = FormatUtils.FormatStringAll(reasonBuilder.toString().trim()); - } - if (reason.isEmpty()) { - boolean bungee = false; - for (ChatChannel channel : configService.getChatChannels()) { - if (channel.isMutable()) { - player.addMute(channel.getName()); - if (channel.getBungee()) { - bungee = true; - } - } - } - if (bungee) { - pluginMessageController.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 : configService.getChatChannels()) { - if (channel.isMutable()) { - player.addMute(channel.getName(), reason); - if (channel.getBungee()) { - bungee = true; - } - } - } - if (bungee) { - pluginMessageController.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; - } - } + @Inject + public Muteall(String name) { + super(name); + } + + @Override + public void executeCommand(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; + } + VentureChatPlayer player = playerApiService.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 = FormatUtils.FormatStringAll(reasonBuilder.toString().trim()); + } + if (reason.isEmpty()) { + boolean bungee = false; + for (ChatChannel channel : configService.getChatChannels()) { + if (channel.isMutable()) { + player.addMute(channel.getName()); + if (channel.getBungee()) { + bungee = true; + } + } + } + if (bungee) { + pluginMessageController.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 : configService.getChatChannels()) { + if (channel.isMutable()) { + player.addMute(channel.getName(), reason); + if (channel.getBungee()) { + bungee = true; + } + } + } + if (bungee) { + pluginMessageController.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; + } + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Notifications.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Notifications.java index fc2beae..d0a7693 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Notifications.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Notifications.java @@ -1,35 +1,33 @@ package venture.Aust1n46.chat.controllers.commands; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.google.inject.Inject; import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.PlayerCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Notifications implements VentureCommand { +public class Notifications extends PlayerCommand { @Inject private VentureChatPlayerApiService playerApiService; - @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; - } + @Inject + public Notifications(String name) { + super(name); + } - VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); - if (!mcp.isNotifications()) { - mcp.setNotifications(true); - mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_ON.toString()); - return; - } - mcp.setNotifications(false); - mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_OFF.toString()); - return; - } + @Override + public void executeCommand(Player player, String command, String[] args) { + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player); + if (!mcp.isNotifications()) { + mcp.setNotifications(true); + mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_ON.toString()); + return; + } + mcp.setNotifications(false); + mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_OFF.toString()); + return; + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Party.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Party.java index 22a42fc..660a655 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Party.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Party.java @@ -3,54 +3,53 @@ package venture.Aust1n46.chat.controllers.commands; import static venture.Aust1n46.chat.utilities.FormatUtils.LINE_LENGTH; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.google.inject.Inject; import venture.Aust1n46.chat.initiators.application.VentureChat; +import venture.Aust1n46.chat.model.PlayerCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.VentureChatFormatService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.utilities.FormatUtils; -public class Party implements VentureCommand { +public class Party extends PlayerCommand { @Inject - private VentureChat plugin; + private VentureChat plugin; @Inject private VentureChatFormatService formatService; @Inject private VentureChatPlayerApiService playerApiService; + @Inject + public Party(String name) { + super(name); + } + @Override - public void 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; - } - VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); - if(!mcp.getPlayer().hasPermission("venturechat.party")) { + public void executeCommand(Player sender, String command, String[] args) { + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(sender); + if (!mcp.getPlayer().hasPermission("venturechat.party")) { mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!"); return; } 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; } - if(mcp.isHost()) { + if (mcp.isHost()) { mcp.setHost(false); mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are no longer hosting a party."); - for(VentureChatPlayer player : playerApiService.getMineverseChatPlayers()) { - if(player.hasParty() && player.getParty().equals(mcp.getParty())) { + for (VentureChatPlayer player : playerApiService.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); } } @@ -64,21 +63,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; } - if(args.length > 1) { + if (args.length > 1) { VentureChatPlayer player = playerApiService.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()); @@ -98,21 +95,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; } - if(mcp.hasParty()) { + if (mcp.hasParty()) { mcp.getPlayer().sendMessage(ChatColor.GREEN + "Leaving " + playerApiService.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party."); mcp.setParty(null); - if(mcp.isHost()) { - for(VentureChatPlayer player : playerApiService.getMineverseChatPlayers()) { - if(player.hasParty() && player.getParty().equals(mcp.getUuid()) && !player.getName().equals(mcp.getName())) { + if (mcp.isHost()) { + for (VentureChatPlayer player : playerApiService.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); } } @@ -125,16 +121,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; } - if(mcp.isHost()) { - if(args.length > 1) { + if (mcp.isHost()) { + if (args.length > 1) { VentureChatPlayer player = playerApiService.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."); @@ -156,59 +152,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; } - if(mcp.hasParty() && !mcp.isHost()) { + if (mcp.hasParty() && !mcp.isHost()) { mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are in " + playerApiService.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; } @@ -216,20 +202,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; } - 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 = playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName(); mcp.setConversation(null); - for(VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) { - if(p.isSpy()) { + for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) { + if (p.isSpy()) { p.getPlayer().sendMessage(mcp.getName() + " is no longer in a private conversation with " + tellChat + "."); } } @@ -240,39 +226,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; } - 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; } - if(args.length > 1) { + if (args.length > 1) { VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[1]); - if(player != null) { - if(player.isHost()) { + if (player != null) { + if (player.isHost()) { String members = ""; long linecount = LINE_LENGTH; - for(VentureChatPlayer p : playerApiService.getMineverseChatPlayers()) { - if(p.getParty() != null && p.getParty().equals(player.getUuid())) { - if(members.length() + p.getName().length() > linecount) { + for (VentureChatPlayer p : playerApiService.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); @@ -288,34 +274,36 @@ 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.isFilter()) { + if (mcp.isFilter()) { msg = formatService.FilterChat(msg); } - if(mcp.getPlayer().hasPermission("venturechat.color.legacy")) { + if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { msg = FormatUtils.FormatStringLegacyColor(msg); } - if(mcp.getPlayer().hasPermission("venturechat.color")) { + if (mcp.getPlayer().hasPermission("venturechat.color")) { msg = FormatUtils.FormatStringColor(msg); } - if(mcp.getPlayer().hasPermission("venturechat.format")) { + if (mcp.getPlayer().hasPermission("venturechat.format")) { msg = FormatUtils.FormatString(msg); } - if(plugin.getConfig().getString("partyformat").equalsIgnoreCase("Default")) { + if (plugin.getConfig().getString("partyformat").equalsIgnoreCase("Default")) { partyformat = ChatColor.GREEN + "[" + playerApiService.getMineverseChatPlayer(mcp.getParty()).getName() + "'s Party] " + mcp.getName() + ":" + msg; + } else { + partyformat = FormatUtils.FormatStringAll(plugin.getConfig().getString("partyformat") + .replace("{host}", playerApiService.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg; } - else { - partyformat = FormatUtils.FormatStringAll(plugin.getConfig().getString("partyformat").replace("{host}", playerApiService.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg; - } - for(VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) { - if((p.getParty().equals(mcp.getParty()) || p.isSpy())) { + for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) { + if ((p.getParty().equals(mcp.getParty()) || p.isSpy())) { p.getPlayer().sendMessage(partyformat); } } @@ -324,8 +312,7 @@ public class Party implements VentureCommand { 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; diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/RangedSpy.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/RangedSpy.java index a184473..84cb180 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/RangedSpy.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/RangedSpy.java @@ -1,38 +1,37 @@ package venture.Aust1n46.chat.controllers.commands; -import venture.Aust1n46.chat.localization.LocalizedMessage; -import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; -import venture.Aust1n46.chat.service.VentureChatPlayerApiService; - -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.google.inject.Inject; -public class RangedSpy implements VentureCommand { +import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.PlayerCommand; +import venture.Aust1n46.chat.model.VentureChatPlayer; +import venture.Aust1n46.chat.service.VentureChatPlayerApiService; + +public class RangedSpy extends PlayerCommand { @Inject private VentureChatPlayerApiService playerApiService; - @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; - } - VentureChatPlayer mcp = playerApiService.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; - } + @Inject + public RangedSpy(String name) { + super(name); + } + + @Override + public void executeCommand(Player player, String command, String[] args) { + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) player); + 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; + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Removemessage.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Removemessage.java index 601271c..87d4eff 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Removemessage.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Removemessage.java @@ -20,16 +20,16 @@ import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatMessage; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatFormatService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.utilities.FormatUtils; -public class Removemessage implements VentureCommand { +public class Removemessage extends UniversalCommand { @Inject - private VentureChat plugin; + private VentureChat plugin; @Inject private VentureChatFormatService formatService; @Inject @@ -38,102 +38,115 @@ public class Removemessage implements VentureCommand { private VentureChatPlayerApiService playerApiService; @Inject private ConfigService configService; - - private PacketContainer emptyLinePacketContainer; - private WrappedChatComponent messageDeletedComponentPlayer; - @Inject - public void postConstruct() { - emptyLinePacketContainer = formatService.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}"); - messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions"))) + "]}}}]}"); - } - - @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 && configService.isChannel(args[1]) && configService.getChannel(args[1]).getBungee()) { - ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); - DataOutputStream out = new DataOutputStream(byteOutStream); - try { - out.writeUTF("RemoveMessage"); - out.writeUTF(String.valueOf(hash)); - pluginMessageController.sendPluginMessage(byteOutStream); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - return; - } else { - new BukkitRunnable() { - public void run() { - final Map> packets = new HashMap(); - for (VentureChatPlayer p : playerApiService.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(formatService.createPacketPlayOutChat(removedComponent)); - resend = true; - continue; - } - if (message.getMessage().contains(ChatColor.stripColor(FormatUtils.FormatStringAll(plugin.getConfig().getString("guiicon"))))) { - String submessage = message.getMessage().substring(0, message.getMessage().length() - ChatColor.stripColor(FormatUtils.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(formatService.createPacketPlayOutChat(removedComponent)); - resend = true; - continue; - } - } - playerPackets.add(formatService.createPacketPlayOutChat(message.getComponent())); + private PacketContainer emptyLinePacketContainer; + private WrappedChatComponent messageDeletedComponentPlayer; - } - 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) { - formatService.sendPacketPlayOutChat(p, c); - } - } - } - }.runTask(plugin); - } - }.runTaskAsynchronously(plugin); - } - } + @Inject + public Removemessage(String name) { + super(name); + } - public WrappedChatComponent getMessageDeletedChatComponentPlayer() { - return this.messageDeletedComponentPlayer; - } + @Inject + public void postConstruct() { + emptyLinePacketContainer = formatService.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}"); + messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + + formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + + formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions"))) + "]}}}]}"); + } - public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) { - return WrappedChatComponent.fromJson("[{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\"," + message.getColoredMessage() + "}}}]}]"); - } + @Override + @SuppressWarnings({ "unchecked", "rawtypes" }) + public void executeCommand(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 && configService.isChannel(args[1]) && configService.getChannel(args[1]).getBungee()) { + ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(byteOutStream); + try { + out.writeUTF("RemoveMessage"); + out.writeUTF(String.valueOf(hash)); + pluginMessageController.sendPluginMessage(byteOutStream); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return; + } else { + new BukkitRunnable() { + public void run() { + final Map> packets = new HashMap(); + for (VentureChatPlayer p : playerApiService.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(formatService.createPacketPlayOutChat(removedComponent)); + resend = true; + continue; + } + if (message.getMessage().contains(ChatColor.stripColor(FormatUtils.FormatStringAll(plugin.getConfig().getString("guiicon"))))) { + String submessage = message.getMessage().substring(0, + message.getMessage().length() - ChatColor.stripColor(FormatUtils.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(formatService.createPacketPlayOutChat(removedComponent)); + resend = true; + continue; + } + } + playerPackets.add(formatService.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) { + formatService.sendPacketPlayOutChat(p, c); + } + } + } + }.runTask(plugin); + } + }.runTaskAsynchronously(plugin); + } + } + + public WrappedChatComponent getMessageDeletedChatComponentPlayer() { + return this.messageDeletedComponentPlayer; + } + + public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) { + return WrappedChatComponent.fromJson("[{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + + formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\"," + message.getColoredMessage() + "}}}]}]"); + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Reply.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Reply.java index 5bf5c47..316d62e 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Reply.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Reply.java @@ -3,7 +3,6 @@ package venture.Aust1n46.chat.controllers.commands; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.google.inject.Inject; @@ -12,15 +11,15 @@ import me.clip.placeholderapi.PlaceholderAPI; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.PlayerCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; +import venture.Aust1n46.chat.service.VentureChatFormatService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.utilities.FormatUtils; -import venture.Aust1n46.chat.service.VentureChatFormatService; -public class Reply implements VentureCommand { +public class Reply extends PlayerCommand { @Inject - private VentureChat plugin; + private VentureChat plugin; @Inject private VentureChatFormatService formatService; @Inject @@ -28,135 +27,140 @@ public class Reply implements VentureCommand { @Inject private VentureChatPlayerApiService playerApiService; - @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; - } - VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); - if (args.length > 0) { - if (mcp.hasReplyPlayer()) { - if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { - sendBungeeCordReply(mcp, args); - return; - } + @Inject + public Reply(String name) { + super(name); + } - VentureChatPlayer player = playerApiService.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.isMessageToggle()) { - 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.isFilter()) { - msg = formatService.FilterChat(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { - msg = FormatUtils.FormatStringLegacyColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color")) { - msg = FormatUtils.FormatStringColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.format")) { - msg = FormatUtils.FormatString(msg); - } + @Override + public void executeCommand(Player sender, String command, String[] args) { + if (!(sender instanceof Player)) { + plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); + return; + } + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(sender); + if (args.length > 0) { + if (mcp.hasReplyPlayer()) { + if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) { + sendBungeeCordReply(mcp, args); + return; + } - send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", ""))); - echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", ""))); - spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", ""))); + VentureChatPlayer player = playerApiService.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.isMessageToggle()) { + 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.isFilter()) { + msg = formatService.FilterChat(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { + msg = FormatUtils.FormatStringLegacyColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color")) { + msg = FormatUtils.FormatStringColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.format")) { + msg = FormatUtils.FormatString(msg); + } - send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg; - echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg; - spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; + send = FormatUtils + .FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", ""))); + echo = FormatUtils + .FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", ""))); + spy = FormatUtils + .FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", ""))); - if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - for (VentureChatPlayer p : playerApiService.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.isNotifications()) { - formatService.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 = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg; + echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg; + spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; - private void sendBungeeCordReply(VentureChatPlayer 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.isFilter()) { - msg = formatService.FilterChat(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { - msg = FormatUtils.FormatStringLegacyColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.color")) { - msg = FormatUtils.FormatStringColor(msg); - } - if (mcp.getPlayer().hasPermission("venturechat.format")) { - msg = FormatUtils.FormatString(msg); - } + if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { + for (VentureChatPlayer p : playerApiService.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.isNotifications()) { + formatService.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]")); + } - String send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", ""))); - String echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", ""))); - String spy = "VentureChat:NoSpy"; - if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", ""))); - } - try { - out.writeUTF("Message"); - out.writeUTF("Send"); - out.writeUTF(playerApiService.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); - pluginMessageController.sendPluginMessage(byteOutStream); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } + private void sendBungeeCordReply(VentureChatPlayer 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.isFilter()) { + msg = formatService.FilterChat(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) { + msg = FormatUtils.FormatStringLegacyColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.color")) { + msg = FormatUtils.FormatStringColor(msg); + } + if (mcp.getPlayer().hasPermission("venturechat.format")) { + msg = FormatUtils.FormatString(msg); + } + + String send = FormatUtils + .FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", ""))); + String echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", ""))); + String spy = "VentureChat:NoSpy"; + if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) { + spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", ""))); + } + try { + out.writeUTF("Message"); + out.writeUTF("Send"); + out.writeUTF(playerApiService.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); + pluginMessageController.sendPluginMessage(byteOutStream); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Setchannel.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Setchannel.java index 2a2a152..d3ef52d 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Setchannel.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Setchannel.java @@ -7,12 +7,12 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Setchannel implements VentureCommand { +public class Setchannel extends UniversalCommand { @Inject private PluginMessageController pluginMessageController; @Inject @@ -20,74 +20,69 @@ public class Setchannel implements VentureCommand { @Inject private ConfigService configService; - @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; - } - VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]); - if (player == null) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - ChatChannel channel = configService.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 (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) { - if (p.isSpy()) { - p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() - .replace("{player_sender}", player.getName()) - .replace("{player_receiver}", playerApiService.getMineverseChatPlayer(player.getConversation()).getName())); - } - } - if (player.isOnline()) - player.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString() - .replace("{player_receiver}", playerApiService.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()) { - pluginMessageController.synchronize(player, true); - } - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Inject + public Setchannel(String name) { + super(name); + } + + @Override + public void executeCommand(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; + } + VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]); + if (player == null) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return; + } + ChatChannel channel = configService.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 (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) { + if (p.isSpy()) { + p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString().replace("{player_sender}", player.getName()) + .replace("{player_receiver}", playerApiService.getMineverseChatPlayer(player.getConversation()).getName())); + } + } + if (player.isOnline()) + player.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString().replace("{player_receiver}", + playerApiService.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()) { + pluginMessageController.synchronize(player, true); + } + return; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Setchannelall.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Setchannelall.java index 4c58628..6129700 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Setchannelall.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Setchannelall.java @@ -7,12 +7,12 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Setchannelall implements VentureCommand { +public class Setchannelall extends UniversalCommand { @Inject private PluginMessageController pluginMessageController; @Inject @@ -20,51 +20,52 @@ public class Setchannelall implements VentureCommand { @Inject private ConfigService configService; - @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; - } - VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]); - if (player == null) { - sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - boolean isThereABungeeChannel = false; - for (ChatChannel channel : configService.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) { - pluginMessageController.synchronize(player, true); - } - return; - } - sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - } + @Inject + public Setchannelall(String name) { + super(name); + } + + @Override + public void executeCommand(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; + } + VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]); + if (player == null) { + sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return; + } + boolean isThereABungeeChannel = false; + for (ChatChannel channel : configService.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) { + pluginMessageController.synchronize(player, true); + } + return; + } + sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Spy.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Spy.java index 3e3d98d..d51f87d 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Spy.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Spy.java @@ -1,43 +1,42 @@ package venture.Aust1n46.chat.controllers.commands; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; +import venture.Aust1n46.chat.model.PlayerCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Spy implements VentureCommand { +public class Spy extends PlayerCommand { @Inject private PluginMessageController pluginMessageController; @Inject private VentureChatPlayerApiService playerApiService; - @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; - } - VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); - if (mcp.getPlayer().hasPermission("venturechat.spy")) { - if (!mcp.isSpy()) { - mcp.setSpy(true); - mcp.getPlayer().sendMessage(LocalizedMessage.SPY_ON.toString()); - pluginMessageController.synchronize(mcp, true); - return; - } - mcp.setSpy(false); - mcp.getPlayer().sendMessage(LocalizedMessage.SPY_OFF.toString()); - pluginMessageController.synchronize(mcp, true); - return; - } - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); - return; - } + @Inject + public Spy(String name) { + super(name); + } + + @Override + public void executeCommand(Player player, String command, String[] args) { + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player); + if (mcp.getPlayer().hasPermission("venturechat.spy")) { + if (!mcp.isSpy()) { + mcp.setSpy(true); + mcp.getPlayer().sendMessage(LocalizedMessage.SPY_ON.toString()); + pluginMessageController.synchronize(mcp, true); + return; + } + mcp.setSpy(false); + mcp.getPlayer().sendMessage(LocalizedMessage.SPY_OFF.toString()); + pluginMessageController.synchronize(mcp, true); + return; + } + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); + return; + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Unmute.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Unmute.java index 4901ad5..3426f27 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Unmute.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Unmute.java @@ -7,7 +7,6 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.util.StringUtil; @@ -17,12 +16,12 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Unmute implements VentureCommand { +public class Unmute extends UniversalCommand { @Inject private PluginMessageController pluginMessageController; @Inject @@ -30,93 +29,95 @@ public class Unmute implements VentureCommand { @Inject private ConfigService configService; - @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 (configService.isChannel(args[0])) { - ChatChannel channel = configService.getChannel(args[0]); - if (channel.getBungee()) { - sendBungeeCordUnmute(sender, args[1], channel); - return; - } - VentureChatPlayer player = playerApiService.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; - } - } + @Inject + public Unmute(String name) { + super(name); + } - @Override - public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { - List completions = new ArrayList<>(); - if (args.length == 1) { - StringUtil.copyPartialMatches(args[0], configService.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions); - Collections.sort(completions); - return completions; - } - if (args.length == 2) { - if (configService.isChannel(args[0])) { - ChatChannel chatChannelObj = configService.getChannel(args[0]); - if (chatChannelObj.getBungee()) { - StringUtil.copyPartialMatches(args[1], playerApiService.getNetworkPlayerNames(), completions); - Collections.sort(completions); - return completions; - } - StringUtil.copyPartialMatches(args[1], playerApiService.getOnlineMineverseChatPlayers().stream().filter(mcp -> mcp.isMuted(chatChannelObj.getName())).map(VentureChatPlayer::getName).collect(Collectors.toList()), completions); - Collections.sort(completions); - return completions; - } - } - return Collections.emptyList(); - } + @Override + public void executeCommand(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 (configService.isChannel(args[0])) { + ChatChannel channel = configService.getChannel(args[0]); + if (channel.getBungee()) { + sendBungeeCordUnmute(sender, args[1], channel); + return; + } + VentureChatPlayer player = playerApiService.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; + } + } - 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()); - pluginMessageController.sendPluginMessage(byteOutStream); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } + @Override + public List tabComplete(CommandSender sender, String alias, String[] args) { + List completions = new ArrayList<>(); + if (args.length == 1) { + StringUtil.copyPartialMatches(args[0], configService.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions); + Collections.sort(completions); + return completions; + } + if (args.length == 2) { + if (configService.isChannel(args[0])) { + ChatChannel chatChannelObj = configService.getChannel(args[0]); + if (chatChannelObj.getBungee()) { + StringUtil.copyPartialMatches(args[1], playerApiService.getNetworkPlayerNames(), completions); + Collections.sort(completions); + return completions; + } + StringUtil.copyPartialMatches(args[1], playerApiService.getOnlineMineverseChatPlayers().stream().filter(mcp -> mcp.isMuted(chatChannelObj.getName())) + .map(VentureChatPlayer::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()); + pluginMessageController.sendPluginMessage(byteOutStream); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/Unmuteall.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Unmuteall.java index fa2eb45..4d61389 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Unmuteall.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Unmuteall.java @@ -7,12 +7,12 @@ import com.google.inject.Inject; import venture.Aust1n46.chat.controllers.PluginMessageController; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; +import venture.Aust1n46.chat.model.UniversalCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; -public class Unmuteall implements VentureCommand { +public class Unmuteall extends UniversalCommand { @Inject private PluginMessageController pluginMessageController; @Inject @@ -20,41 +20,42 @@ public class Unmuteall implements VentureCommand { @Inject private ConfigService configService; - @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; - } - VentureChatPlayer player = playerApiService.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 : configService.getChatChannels()) { - player.removeMute(channel.getName()); - if (channel.getBungee()) { - bungee = true; - } - } - if (bungee) { - pluginMessageController.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; - } - } + @Inject + public Unmuteall(String name) { + super(name); + } + + @Override + public void executeCommand(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; + } + VentureChatPlayer player = playerApiService.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 : configService.getChatChannels()) { + player.removeMute(channel.getName()); + if (channel.getBungee()) { + bungee = true; + } + } + if (bungee) { + pluginMessageController.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; + } + } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/commands/VentureChatGui.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/VentureChatGui.java index f9792ec..ccb8bbf 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/VentureChatGui.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/VentureChatGui.java @@ -6,7 +6,6 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; @@ -20,192 +19,189 @@ import venture.Aust1n46.chat.initiators.application.VentureChat; import venture.Aust1n46.chat.localization.LocalizedMessage; import venture.Aust1n46.chat.model.ChatChannel; import venture.Aust1n46.chat.model.GuiSlot; +import venture.Aust1n46.chat.model.PlayerCommand; import venture.Aust1n46.chat.model.VentureChatPlayer; -import venture.Aust1n46.chat.model.VentureCommand; import venture.Aust1n46.chat.service.ConfigService; import venture.Aust1n46.chat.service.VentureChatPlayerApiService; import venture.Aust1n46.chat.utilities.FormatUtils; import venture.Aust1n46.chat.utilities.VersionHandler; -public class VentureChatGui implements VentureCommand { +public class VentureChatGui extends PlayerCommand { @Inject - private VentureChat plugin; + private VentureChat plugin; @Inject private VentureChatPlayerApiService playerApiService; @Inject private ConfigService configService; - @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; - } - VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender); - if (mcp.getPlayer().hasPermission("venturechat.gui")) { - VentureChatPlayer target = playerApiService.getMineverseChatPlayer(args[0]); - if (target == null && !args[0].equals("Discord")) { - mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() - .replace("{args}", args[0])); - return; - } - if (configService.isChannel(args[1])) { - ChatChannel channel = configService.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; - } + @Inject + public VentureChatGui(String name) { + super(name); + } - @SuppressWarnings("deprecation") - private void openInventory(VentureChatPlayer mcp, VentureChatPlayer 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 void executeCommand(Player player, String command, String[] args) { + if (args.length < 3) { + player.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString().replace("{command}", "/venturechatgui").replace("{args}", "[player] [channel] [hashcode]")); + return; + } + VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(player); + if (mcp.getPlayer().hasPermission("venturechat.gui")) { + VentureChatPlayer target = playerApiService.getMineverseChatPlayer(args[0]); + if (target == null && !args[0].equals("Discord")) { + mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); + return; + } + if (configService.isChannel(args[1])) { + ChatChannel channel = configService.getChannel(args[1]); + final int hash; + try { + hash = Integer.parseInt(args[2]); + } catch (Exception e) { + player.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; + } - 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(VentureChatPlayer mcp, VentureChatPlayer 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 : configService.getGuiSlots()) { - if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) { - if (this.checkSlot(g.getSlot())) { - plugin.getServer().getConsoleSender().sendMessage(FormatUtils.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(FormatUtils.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 : configService.getGuiSlots()) { + if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) { + if (this.checkSlot(g.getSlot())) { + plugin.getServer().getConsoleSender().sendMessage(FormatUtils.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(FormatUtils.FormatStringAll(displayName)); + List gLore = new ArrayList(); + gMeta.setLore(gLore); + gStack.setItemMeta(gMeta); + inv.setItem(g.getSlot(), gStack); + } + } - @SuppressWarnings("deprecation") - private void openInventoryDiscord(VentureChatPlayer 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(VentureChatPlayer 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 : configService.getGuiSlots()) { - if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) { - if (this.checkSlot(g.getSlot())) { - plugin.getServer().getConsoleSender().sendMessage(FormatUtils.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(FormatUtils.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 : configService.getGuiSlots()) { + if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) { + if (this.checkSlot(g.getSlot())) { + plugin.getServer().getConsoleSender().sendMessage(FormatUtils.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(FormatUtils.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/venture/Aust1n46/chat/controllers/commands/Venturechat.java b/src/main/java/venture/Aust1n46/chat/controllers/commands/Venturechat.java index 9ff8995..c1d7ff0 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/commands/Venturechat.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/commands/Venturechat.java @@ -1,58 +1,25 @@ package venture.Aust1n46.chat.controllers.commands; -import venture.Aust1n46.chat.initiators.application.VentureChat; -import venture.Aust1n46.chat.localization.InternalMessage; -//import net.md_5.bungee.api.chat.ClickEvent; -//import net.md_5.bungee.api.chat.ComponentBuilder; -//import net.md_5.bungee.api.chat.HoverEvent; -//import net.md_5.bungee.api.chat.TextComponent; -//import net.minecraft.server.v1_15_R1.IChatBaseComponent; -//import net.minecraft.server.v1_15_R1.PacketPlayOutChat; -import venture.Aust1n46.chat.model.VentureCommand; - -//import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; -//import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; -//import org.bukkit.entity.Player; import com.google.inject.Inject; -public class Venturechat implements VentureCommand { +import venture.Aust1n46.chat.initiators.application.VentureChat; +import venture.Aust1n46.chat.localization.InternalMessage; +import venture.Aust1n46.chat.model.UniversalCommand; + +public class Venturechat extends UniversalCommand { @Inject - private VentureChat plugin; + private VentureChat plugin; + + @Inject + public Venturechat(String name) { + super(name); + } @Override - public void execute(CommandSender sender, String command, String[] args) { - sender.sendMessage(InternalMessage.VENTURECHAT_VERSION.toString() - .replace("{version}", plugin.getDescription().getVersion())); + public void executeCommand(CommandSender sender, String command, String[] args) { + sender.sendMessage(InternalMessage.VENTURECHAT_VERSION.toString().replace("{version}", plugin.getDescription().getVersion())); sender.sendMessage(InternalMessage.VENTURECHAT_AUTHOR.toString()); -// 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 + " | "; -// String spaces = " "; -// TextComponent tcSpaces = new TextComponent(spaces); -// TextComponent message = new TextComponent(title); -// message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click here to rank up!").create())); -// message.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "Sample SpigotAPI Click Event")); -// tcSpaces.addExtra(message); -// player.spigot().sendMessage(tcSpaces); -// -//// sendActionBar(player, "NMS ActionBar message"); -// } } - -// public static void sendActionBar(Player player, String message) { -// message= message.replaceAll("%player%", player.getDisplayName()); -// message = ChatColor.translateAlternateColorCodes('&', message); -// CraftPlayer p = (CraftPlayer) player; -// IChatBaseComponent cbc = IChatBaseComponent.ChatSerializer.a("{\"text\": \"" + message + "\"}"); -// PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc); -// try { -// MineverseChat.posField.set(ppoc, MineverseChat.chatMessageType.getEnumConstants()[2]); -// } -// catch (Exception e) { -// e.printStackTrace(); -// } -// p.getHandle().playerConnection.sendPacket(ppoc); -// } } diff --git a/src/main/java/venture/Aust1n46/chat/controllers/proxy/VentureChatProxyController.java b/src/main/java/venture/Aust1n46/chat/controllers/proxy/VentureChatProxyController.java index e8f39f8..d4f6e29 100644 --- a/src/main/java/venture/Aust1n46/chat/controllers/proxy/VentureChatProxyController.java +++ b/src/main/java/venture/Aust1n46/chat/controllers/proxy/VentureChatProxyController.java @@ -398,7 +398,7 @@ public class VentureChatProxyController { out.writeUTF(spy); out.writeUTF(msg); source.getServers().forEach(serv -> { - if(!send.isEmpty()) { + if(!serv.isEmpty()) { source.sendPluginMessage(serv.getName(), outstream.toByteArray()); } }); diff --git a/src/main/java/venture/Aust1n46/chat/model/VentureCommand.java b/src/main/java/venture/Aust1n46/chat/model/VentureCommand.java deleted file mode 100644 index ffd1390..0000000 --- a/src/main/java/venture/Aust1n46/chat/model/VentureCommand.java +++ /dev/null @@ -1,17 +0,0 @@ -package venture.Aust1n46.chat.model; - -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; - } -}