fix: 修复 1.3.0 实机测试问题
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

This commit is contained in:
2026-08-05 00:42:24 +08:00
parent 7816b75325
commit 292b93e842
19 changed files with 284 additions and 48 deletions
@@ -2,6 +2,7 @@ package cn.infstar.essentialsC.commands;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.text.SimpleDateFormat;
@@ -16,45 +17,56 @@ public class SeenCommand extends BaseCommand {
@Override
protected boolean execute(Player player, String[] args) {
return executeCommand(player, player, args);
}
@Override
protected boolean executeConsole(CommandSender sender, String[] args) {
return executeCommand(sender, null, args);
}
private boolean executeCommand(CommandSender sender, Player viewer, String[] args) {
if (args.length == 0) {
player.sendMessage(getLang().getPrefixedString("messages.seen-usage"));
sender.sendMessage(getLang().getPrefixedString(viewer == null
? "messages.seen-usage-console"
: "messages.seen-usage"));
return true;
}
Player onlineTarget = Bukkit.getPlayerExact(args[0]);
if (onlineTarget != null && VanishCommand.isVanished(onlineTarget)
&& !player.hasPermission(VanishCommand.SEE_PERMISSION)) {
player.sendMessage(getLang().getPrefixedString("messages.player-not-found", Map.of("player", args[0])));
&& viewer != null && !viewer.hasPermission(VanishCommand.SEE_PERMISSION)) {
sender.sendMessage(getLang().getPrefixedString("messages.player-not-found", Map.of("player", args[0])));
return true;
}
OfflinePlayer target = Bukkit.getOfflinePlayer(args[0]);
if (!target.hasPlayedBefore() && !target.isOnline()) {
player.sendMessage(getLang().getPrefixedString("messages.player-not-found", Map.of("player", args[0])));
sender.sendMessage(getLang().getPrefixedString("messages.player-not-found", Map.of("player", args[0])));
return true;
}
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
player.sendMessage(getLang().getPrefixedComponent("messages.seen-header",
sender.sendMessage(getLang().getPrefixedComponent("messages.seen-header",
Map.of("player", String.valueOf(target.getName()))));
if (target.isOnline()) {
player.sendMessage(getLang().getComponent("messages.seen-status-online"));
sender.sendMessage(getLang().getComponent("messages.seen-status-online"));
Player onlinePlayer = target.getPlayer();
if (onlinePlayer != null) {
player.sendMessage(getLang().getComponent("messages.seen-world",
sender.sendMessage(getLang().getComponent("messages.seen-world",
Map.of("world", onlinePlayer.getWorld().getName())));
}
} else {
player.sendMessage(getLang().getComponent("messages.seen-status-offline"));
sender.sendMessage(getLang().getComponent("messages.seen-status-offline"));
long lastSeen = target.getLastSeen();
if (lastSeen > 0) {
player.sendMessage(getLang().getComponent("messages.seen-last-online",
sender.sendMessage(getLang().getComponent("messages.seen-last-online",
Map.of("time", format.format(new Date(lastSeen)))));
}
}
player.sendMessage(getLang().getComponent("messages.seen-first-joined",
sender.sendMessage(getLang().getComponent("messages.seen-first-joined",
Map.of("time", format.format(new Date(target.getFirstPlayed())))));
return true;
}