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.VentureChatGui;
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.MessageToggle;
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("force", new Force("force"));
commands.put("forceall", new Forceall("forceall"));
commands.put("ignore", new Ignore("ignore"));
commands.put("kickchannel", new Kickchannel("kickchannel"));
commands.put("kickchannelall", new Kickchannelall("kickchannelall"));
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("ignore").setExecutor(new IgnoreCommandExecutor());
channelListener = new Channel();
signListener = new SignListener();

View File

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