1
0
Fork 0
forked from mc/VTools

Compare commits

...

2 commits

Author SHA1 Message Date
d647b99465 tp修改权限,find输出可点击 2023-12-24 23:35:45 +08:00
115364f202 增加补全 2023-12-24 23:35:08 +08:00
3 changed files with 18 additions and 8 deletions

View file

@ -5,6 +5,8 @@ import com.velocitypowered.api.command.SimpleCommand;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ProxyServer;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.format.NamedTextColor;
import java.util.ArrayList;
import java.util.List;
@ -29,7 +31,12 @@ public class CommandFind implements SimpleCommand {
if (strings.length == 1) {
Optional<Player> player = server.getPlayer(strings[0]);
if (player.isPresent() && player.get().getCurrentServer().isPresent()) {
commandSource.sendMessage(Component.text("Player " + strings[0] + " is on " + player.get().getCurrentServer().get().getServerInfo().getName() + "!").color(COLOR_YELLOW));
String serverName = player.get().getCurrentServer().get().getServerInfo().getName();
commandSource.sendMessage(Component.empty()
.append(Component.text("Player " + strings[0] + " is on ").color(COLOR_YELLOW))
.append(Component.text(serverName).clickEvent(ClickEvent.runCommand("/server " + serverName)).color(NamedTextColor.GRAY))
.append(Component.text("!").color(COLOR_YELLOW))
);
} else {
commandSource.sendMessage(Component.text("The player is not online!").color(COLOR_YELLOW));
}

View file

@ -104,16 +104,19 @@ public class CommandSend implements SimpleCommand {
String[] currentArgs = invocation.arguments();
switch (currentArgs.length) {
case 0, 1 -> {
List<String> arg = new ArrayList<>(server.getPlayerCount() + 2);
arg.add("all");
arg.add("current");
List<String> args = new ArrayList<>(server.getPlayerCount() + 2);
args.add("all");
args.add("current");
for (Player player : server.getAllPlayers()) {
arg.add(player.getUsername());
args.add(player.getUsername());
}
return arg;
return currentArgs.length==0?args:
args.stream().filter(arg->arg.regionMatches(true,0,currentArgs[0],0,currentArgs[0].length())).toList();
}
case 2 -> {
return server.getAllServers().stream().map(s -> s.getServerInfo().getName()).toList();
return server.getAllServers().stream().map(s -> s.getServerInfo().getName())
.filter(name -> name.regionMatches(true, 0, currentArgs[1], 0, currentArgs[1].length()))
.toList();
}
default -> {
return new ArrayList<>(0);

View file

@ -56,6 +56,6 @@ public class CommandTp implements SimpleCommand {
@Override
public boolean hasPermission(Invocation commandInvocation) {
return commandInvocation.source().hasPermission("VTools.tps");
return commandInvocation.source().hasPermission("VTools.tps") || commandInvocation.source().hasPermission("vtools.server.auto");
}
}