diff --git a/src/mineverse/Aust1n46/chat/MineverseChat.java b/src/mineverse/Aust1n46/chat/MineverseChat.java index b5f2afb..33bc7b9 100644 --- a/src/mineverse/Aust1n46/chat/MineverseChat.java +++ b/src/mineverse/Aust1n46/chat/MineverseChat.java @@ -76,7 +76,7 @@ import mineverse.Aust1n46.chat.command.chat.Setchannelall; import mineverse.Aust1n46.chat.command.chat.VentureChatGui; import mineverse.Aust1n46.chat.command.chat.Venturechat; import mineverse.Aust1n46.chat.command.message.Ignore; -import mineverse.Aust1n46.chat.command.message.Message; +import mineverse.Aust1n46.chat.command.message.MessageCommandExecutor; import mineverse.Aust1n46.chat.command.message.MessageToggle; import mineverse.Aust1n46.chat.command.message.Notifications; import mineverse.Aust1n46.chat.command.message.Reply; @@ -314,9 +314,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { commands.put("leave", new Leave("leave")); commands.put("listen", new Listen("listen")); commands.put("me", new Me("me")); - commands.put("message", new Message("message")); - commands.put("tell", new Message("tell")); - commands.put("whisper", new Message("whisper")); commands.put("venturechat", new Venturechat("venturechat")); commands.put("mute", new Mute("mute")); commands.put("muteall", new Muteall("muteall")); @@ -338,6 +335,8 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { for(String command : commands.keySet()) { this.getCommand(command).setExecutor(commandExecutor); } + + this.getCommand("message").setExecutor(new MessageCommandExecutor()); channelListener = new Channel(); signListener = new SignListener(); diff --git a/src/mineverse/Aust1n46/chat/command/message/Message.java b/src/mineverse/Aust1n46/chat/command/message/MessageCommandExecutor.java similarity index 88% rename from src/mineverse/Aust1n46/chat/command/message/Message.java rename to src/mineverse/Aust1n46/chat/command/message/MessageCommandExecutor.java index 3db2a15..f25becf 100644 --- a/src/mineverse/Aust1n46/chat/command/message/Message.java +++ b/src/mineverse/Aust1n46/chat/command/message/MessageCommandExecutor.java @@ -2,46 +2,45 @@ package mineverse.Aust1n46.chat.command.message; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; +import java.util.ArrayList; +import java.util.List; import org.bukkit.ChatColor; import org.bukkit.Sound; +import org.bukkit.command.Command; import org.bukkit.command.CommandSender; +import org.bukkit.command.TabExecutor; import org.bukkit.entity.Player; import me.clip.placeholderapi.PlaceholderAPI; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -import mineverse.Aust1n46.chat.command.MineverseCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.versions.VersionHandler; -public class Message extends MineverseCommand { +public class MessageCommandExecutor implements TabExecutor { private MineverseChat plugin = MineverseChat.getInstance(); - public Message(String name) { - super(name); - } - @Override - public void execute(CommandSender sender, String command, String[] args) { + 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; + return true; } MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer((Player) sender); if(args.length == 0) { mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/" + command) + .replace("{command}", "/" + command.getName()) .replace("{args}", "[player] [message]")); - return; + return true; } if(plugin.getConfig().getBoolean("bungeecordmessaging", true)) { - sendBungeeCordMessage(mcp, command, args); - return; + sendBungeeCordMessage(mcp, command.getName(), args); + return true; } MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); @@ -54,22 +53,22 @@ public class Message extends MineverseCommand { if(player == null || !player.isOnline()) { mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() .replace("{args}", args[0])); - return; + return true; } if(!mcp.getPlayer().canSee(player.getPlayer())) { mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() .replace("{args}", args[0])); - return; + return true; } if(player.getIgnores().contains(mcp.getUUID())) { mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString() .replace("{player}", player.getName())); - return; + return true; } if(!player.getMessageToggle()) { mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString() .replace("{player}", player.getName())); - return; + return true; } if(args.length >= 2) { @@ -161,7 +160,17 @@ public class Message extends MineverseCommand { } } } - return; + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { + List completions = new ArrayList<>(); + + for(Player p : plugin.getServer().getOnlinePlayers()) { + completions.add(p.getName()); + } + return completions; } private void sendBungeeCordMessage(MineverseChatPlayer mcp, String command, String[] args) { @@ -215,4 +224,4 @@ public class Message extends MineverseCommand { e.printStackTrace(); } } -} \ No newline at end of file +} diff --git a/src/plugin.yml b/src/plugin.yml index 6d91a1d..acaf271 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -18,9 +18,9 @@ commands: aliases: [ump,vunmute] description: Unmutes player in a channel so they can talk again. permission-message: You don't have - tell: - usage: /tell [playername] [msg] - aliases: [vtell] + message: + usage: /message [playername] [msg] + aliases: [vmessage,msg,pm,tell,vtell,whisper,w,vwhisper] description: Send a message to a player permission-message: You don't have ignore: @@ -28,11 +28,6 @@ commands: aliases: [vignore] description: This allows you to prevent a player from sending you a tell /ignore list to see who you have ignored permission-message: You don't have - whisper: - usage: /whisper [playername] [msg] - aliases: [w,vwhisper] - description: Send a message to a player - permission-message: You don't have channel: usage: /channel [channelname] aliases: [ch,vchannel] @@ -68,10 +63,6 @@ commands: aliases: [kc,vkickchannel] description: Kicks a player out of a channel permission-message: You don't have - message: - usage: /message [playername] [msg] - aliases: [msg,pm,vmessage] - description: Send a message to a player muteall: usage: /muteall [playername] aliases: [mpa,vmuteall]