VanishCommand.java
package dev.aura.bungeechat.command;
import dev.aura.bungeechat.account.BungeecordAccountManager;
import dev.aura.bungeechat.api.account.BungeeChatAccount;
import dev.aura.bungeechat.message.Messages;
import dev.aura.bungeechat.message.MessagesService;
import dev.aura.bungeechat.module.VanishModule;
import dev.aura.bungeechat.permission.Permission;
import dev.aura.bungeechat.permission.PermissionManager;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.connection.ProxiedPlayer;
public class VanishCommand extends BaseCommand {
private static final List<String> arg1Completions = Arrays.asList("on", "off");
public VanishCommand(VanishModule vanisherModule) {
super(
"bvanish",
Permission.COMMAND_VANISH,
vanisherModule.getModuleSection().getStringList("aliases"));
}
@Override
public void execute(CommandSender sender, String[] args) {
if (!PermissionManager.hasPermission(sender, Permission.COMMAND_VANISH)) return;
if (!(sender instanceof ProxiedPlayer)) {
MessagesService.sendMessage(sender, Messages.NOT_A_PLAYER.get());
return;
}
BungeeChatAccount player = BungeecordAccountManager.getAccount(sender).get();
if (args.length > 0) {
if (args[0].equalsIgnoreCase("on")) {
player.setVanished(true);
} else if (args[0].equalsIgnoreCase("off")) {
player.setVanished(false);
} else {
player.toggleVanished();
}
} else {
player.toggleVanished();
}
if (player.isVanished()) {
MessagesService.sendMessage(sender, Messages.ENABLE_VANISH.get());
} else {
MessagesService.sendMessage(sender, Messages.DISABLE_VANISH.get());
}
}
@Override
public Collection<String> tabComplete(CommandSender sender, String[] args) {
final String param1 = args[0];
if (args.length == 1) {
return arg1Completions.stream()
.filter(completion -> completion.startsWith(param1))
.collect(Collectors.toList());
}
return super.tabComplete(sender, args);
}
}