Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,14 @@ public VelocityBridgeBehavior(ProxyServer server, Logger logger) {
}
@Override
public String runCommand(String playerName, String command, boolean enablePapi) {
server.getCommandManager().executeAsync(server.getConsoleCommandSource(), command);
return "Command executed via Velocity Console";
try {
logger.info("收到命令执行请求: " + command);
server.getCommandManager().executeAsync(server.getConsoleCommandSource(), command);
return "命令已通过控制台执行: " + command;
} catch (Exception e) {
logger.error("执行命令时出错: " + e.getMessage(), e);
return "命令执行失败: " + e.getMessage();
}
}

@Override
Expand All @@ -45,6 +51,7 @@ public ServerInfo getInfo() {

@Override
public void SyncToChat(String message) {
// [修复] 替换所有 § 为 &,防止报错
String safeMessage = message.replace('§', '&');
server.sendMessage(serializer.deserialize("&b[Bot] &r" + safeMessage));
}
Expand All @@ -53,24 +60,29 @@ public void SyncToChat(String message) {
public void SyncToChatExtra(List<Segment> segments, String text) {
StringBuilder sb = new StringBuilder();
for (Segment seg : segments) {
// [修复] 获取文本后,立即替换 §
String segText = seg.getText();
if (segText != null) {
sb.append(segText.replace('§', '&'));
}
}
// 再次确保整体安全
String finalMsg = sb.toString().replace('§', '&');
server.sendMessage(serializer.deserialize("&b[Bot] &r" + finalMsg));
}

@Override
public void BindSuccessBroadcast(String playerName, String accountId, String accountName) {
// [修复] §a -> &a
String msg = String.format("&a[EasyBot] 玩家 %s 成功绑定账号 %s!", playerName, accountName);
server.sendMessage(serializer.deserialize(msg));
}

@Override
public void KickPlayer(String playerName, String kickMessage) {
server.getPlayer(playerName).ifPresent(player -> {
// [修改] 完全忽略后端传来的 kickMessage,直接写死
// 使用 & 格式,确保兼容性
String reason = "&c您已在社交平台解绑账号,请重新验证。";

player.disconnect(serializer.deserialize(reason));
Expand All @@ -86,10 +98,11 @@ public List<PlayerInfo> getPlayerList() {
// 获取玩家所在的子服务器名称
String serverName = p.getCurrentServer()
.map(server -> server.getServerInfo().getName())
.orElse("Unknown");
.orElse("Unknown"); // 正在连接中可能没服务器

// 将服务器名附加在名字后面,或者只上传纯名字
// 等待 bridge 协议增加字段
// [修改] 将服务器名附加在名字后面,或者只上传纯名字
// 如果 EasyBot 后台支持解析 "Name (Server)" 这种格式最好
// 如果不支持,可能需要修改 bridge 协议增加字段
// 这里暂时仅上报纯名字,因为乱改名字可能会影响绑定验证等功能

info.setPlayerName(p.getUsername());
Expand Down
Loading