Files
EssentialsC/src/main/java/cn/infstar/essentialsC/commands/TpsBarCommand.java
T
Coldsmile 292b93e842
Build / build (push) Has been cancelled
Build / Paper 1.21.11 / Java 21 (push) Has been cancelled
Build / Paper 26.1.2 / Java 25 (push) Has been cancelled
Build / Paper 26.2 / Java 25 (push) Has been cancelled
fix: 修复 1.3.0 实机测试问题
2026-08-05 00:42:24 +08:00

110 lines
3.8 KiB
Java

package cn.infstar.essentialsC.commands;
import cn.infstar.essentialsC.tpsbar.TpsBarService;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
public class TpsBarCommand extends BaseCommand implements TabCompleter {
public TpsBarCommand() {
super("essentialsc.command.tpsbar");
}
@Override
protected boolean execute(Player player, String[] args) {
TpsBarService tpsBarService = plugin.getTpsBarManager();
if (tpsBarService == null) {
player.sendMessage(getLang().getPrefixedString("messages.module-disabled"));
return true;
}
if (args.length == 0) {
boolean enabled = tpsBarService.toggle(player);
tpsBarService.sendToggleMessage(player, player, enabled);
return true;
}
if (args.length != 1) {
player.sendMessage(tpsBarService.getUsageMessage());
return true;
}
if (!player.hasPermission("essentialsc.command.tpsbar.others")) {
player.sendMessage(getLang().getPrefixedString("messages.no-permission",
Map.of("permission", "essentialsc.command.tpsbar.others")));
return true;
}
Collection<Player> targets = tpsBarService.resolveTargets(player, args[0]);
if (targets.isEmpty()) {
Player exactPlayer = Bukkit.getPlayerExact(args[0]);
if (exactPlayer == null) {
player.sendMessage(tpsBarService.getPlayerNotFoundMessage(args[0]));
} else {
player.sendMessage(tpsBarService.getNoTargetsMessage());
}
return true;
}
for (Player target : targets) {
boolean enabled = tpsBarService.toggle(target);
tpsBarService.sendToggleMessage(player, target, enabled);
}
return true;
}
@Override
protected boolean executeConsole(CommandSender sender, String[] args) {
TpsBarService tpsBarService = plugin.getTpsBarManager();
if (tpsBarService == null) {
sender.sendMessage(getLang().getPrefixedString("messages.module-disabled"));
return true;
}
if (args.length != 1) {
sender.sendMessage(tpsBarService.getUsageMessage());
return true;
}
if (!sender.hasPermission("essentialsc.command.tpsbar.others")) {
sender.sendMessage(getLang().getPrefixedString("messages.no-permission",
Map.of("permission", "essentialsc.command.tpsbar.others")));
return true;
}
Player target = Bukkit.getPlayerExact(args[0]);
if (target == null) {
sender.sendMessage(tpsBarService.getPlayerNotFoundMessage(args[0]));
return true;
}
boolean enabled = tpsBarService.toggle(target);
sender.sendMessage(getLang().getPrefixedString(enabled
? "tpsbar.messages.enabled-other"
: "tpsbar.messages.disabled-other", Map.of("player", target.getName())));
return true;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
if (args.length != 1 || !sender.hasPermission("essentialsc.command.tpsbar.others")) {
return List.of();
}
String partial = args[0].toLowerCase();
List<String> completions = new ArrayList<>();
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
if (onlinePlayer.getName().toLowerCase().startsWith(partial)) {
completions.add(onlinePlayer.getName());
}
}
return completions;
}
}