Added bungee tab completion for /ignore.

This commit is contained in:
Aust1n46 2021-02-09 21:30:52 -06:00
parent 9f676024d8
commit 66fcc22266
2 changed files with 25 additions and 20 deletions

View File

@ -75,7 +75,7 @@ import mineverse.Aust1n46.chat.command.chat.Setchannel;
import mineverse.Aust1n46.chat.command.chat.Setchannelall; import mineverse.Aust1n46.chat.command.chat.Setchannelall;
import mineverse.Aust1n46.chat.command.chat.VentureChatGui; import mineverse.Aust1n46.chat.command.chat.VentureChatGui;
import mineverse.Aust1n46.chat.command.chat.Venturechat; import mineverse.Aust1n46.chat.command.chat.Venturechat;
import mineverse.Aust1n46.chat.command.message.Ignore; import mineverse.Aust1n46.chat.command.message.IgnoreCommandExecutor;
import mineverse.Aust1n46.chat.command.message.MessageCommandExecutor; import mineverse.Aust1n46.chat.command.message.MessageCommandExecutor;
import mineverse.Aust1n46.chat.command.message.MessageToggle; import mineverse.Aust1n46.chat.command.message.MessageToggle;
import mineverse.Aust1n46.chat.command.message.Notifications; import mineverse.Aust1n46.chat.command.message.Notifications;
@ -308,7 +308,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
commands.put("filter", new Filter("filter")); commands.put("filter", new Filter("filter"));
commands.put("force", new Force("force")); commands.put("force", new Force("force"));
commands.put("forceall", new Forceall("forceall")); commands.put("forceall", new Forceall("forceall"));
commands.put("ignore", new Ignore("ignore"));
commands.put("kickchannel", new Kickchannel("kickchannel")); commands.put("kickchannel", new Kickchannel("kickchannel"));
commands.put("kickchannelall", new Kickchannelall("kickchannelall")); commands.put("kickchannelall", new Kickchannelall("kickchannelall"));
commands.put("leave", new Leave("leave")); commands.put("leave", new Leave("leave"));
@ -337,6 +336,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
} }
this.getCommand("message").setExecutor(new MessageCommandExecutor()); this.getCommand("message").setExecutor(new MessageCommandExecutor());
this.getCommand("ignore").setExecutor(new IgnoreCommandExecutor());
channelListener = new Channel(); channelListener = new Channel();
signListener = new SignListener(); signListener = new SignListener();

View File

@ -2,36 +2,33 @@ package mineverse.Aust1n46.chat.command.message;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.MineverseCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Ignore extends MineverseCommand { public class IgnoreCommandExecutor implements TabExecutor {
private MineverseChat plugin; private MineverseChat plugin = MineverseChat.getInstance();
public Ignore(String name) {
super(name);
this.plugin = MineverseChat.getInstance();
}
@Override @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)) { if(!(sender instanceof Player)) {
plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return; return true;
} }
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer((Player) sender); MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer((Player) sender);
if(args.length == 0) { if(args.length == 0) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS_IGNORE.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS_IGNORE.toString());
return; return true;
} }
if(args[0].equalsIgnoreCase("list")) { if(args[0].equalsIgnoreCase("list")) {
String ignoreList = ""; String ignoreList = "";
@ -47,11 +44,11 @@ public class Ignore extends MineverseCommand {
if(ignoreList.length() > 0) { if(ignoreList.length() > 0) {
mcp.getPlayer().sendMessage(ignoreList.substring(0, ignoreList.length() - 2)); mcp.getPlayer().sendMessage(ignoreList.substring(0, ignoreList.length() - 2));
} }
return; return true;
} }
if(mcp.getName().equalsIgnoreCase(args[0])) { if(mcp.getName().equalsIgnoreCase(args[0])) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_YOURSELF.toString()); mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_YOURSELF.toString());
return; return true;
} }
if(plugin.getConfig().getBoolean("bungeecordmessaging", true)) { if(plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
@ -67,31 +64,39 @@ public class Ignore extends MineverseCommand {
catch(Exception e) { catch(Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return; return true;
} }
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
if(player == null || !player.isOnline()) { if(player == null || !player.isOnline()) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0])); .replace("{args}", args[0]));
return; return true;
} }
if(mcp.getIgnores().contains(player.getUUID())) { if(mcp.getIgnores().contains(player.getUUID())) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_OFF.toString() mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_OFF.toString()
.replace("{player}", player.getName())); .replace("{player}", player.getName()));
mcp.removeIgnore(player.getUUID()); mcp.removeIgnore(player.getUUID());
plugin.synchronize(mcp, true); plugin.synchronize(mcp, true);
return; return true;
} }
if(player.getPlayer().hasPermission("venturechat.ignore.bypass")) { if(player.getPlayer().hasPermission("venturechat.ignore.bypass")) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_CANT.toString() mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_CANT.toString()
.replace("{player}", player.getName())); .replace("{player}", player.getName()));
return; return true;
} }
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_ON.toString() mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_ON.toString()
.replace("{player}", player.getName())); .replace("{player}", player.getName()));
mcp.addIgnore(player.getUUID()); mcp.addIgnore(player.getUUID());
plugin.synchronize(mcp, true); plugin.synchronize(mcp, true);
return; return true;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
if(plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
return MineverseChat.networkPlayerNames;
}
return null;
} }
} }