LocalToCommand.java
package dev.aura.bungeechat.command;
import dev.aura.bungeechat.message.Context;
import dev.aura.bungeechat.message.Messages;
import dev.aura.bungeechat.message.MessagesService;
import dev.aura.bungeechat.module.LocalToModule;
import dev.aura.bungeechat.permission.Permission;
import dev.aura.bungeechat.permission.PermissionManager;
import dev.aura.bungeechat.util.ServerNameUtil;
import java.util.Arrays;
import java.util.Collection;
import java.util.Optional;
import java.util.stream.Collectors;
import net.md_5.bungee.api.CommandSender;
public class LocalToCommand extends BaseCommand {
public LocalToCommand(LocalToModule localToModule) {
super(
"localto",
Permission.COMMAND_LOCALTO,
localToModule.getModuleSection().getStringList("aliases"));
}
@Override
public void execute(CommandSender sender, String[] args) {
if (!PermissionManager.hasPermission(sender, Permission.COMMAND_LOCALTO)) return;
if (args.length < 2) {
MessagesService.sendMessage(
sender, Messages.INCORRECT_USAGE.get(sender, "/localto <server> <message>"));
return;
}
Optional<String> optServerName = ServerNameUtil.verifyServerName(args[0], sender);
if (!optServerName.isPresent()) return;
String serverName = optServerName.get();
String finalMessage = Arrays.stream(args, 1, args.length).collect(Collectors.joining(" "));
MessagesService.sendLocalMessage(new Context(sender, finalMessage, serverName));
}
@Override
public Collection<String> tabComplete(CommandSender sender, String[] args) {
if (args.length == 1) {
return ServerNameUtil.getMatchingServerNames(args[0]);
}
return super.tabComplete(sender, args);
}
}