perf: 优化代码

This commit is contained in:
2024-03-17 22:12:01 +08:00
parent 92dc1d506b
commit 059864424c
15 changed files with 38 additions and 78 deletions

View File

@@ -16,9 +16,9 @@ import net.md_5.bungee.api.plugin.Plugin;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.logging.Level;
import java.util.logging.Logger;
@SuppressWarnings("CallToPrintStackTrace")
public class HamsterBallPlugin extends Plugin {
@Getter
private static HamsterBallPlugin instance;
@@ -45,8 +45,9 @@ public class HamsterBallPlugin extends Plugin {
BallBungeeCordAPI.init(configFile);
logger.info("已初始化 BallAPI");
} catch (Exception e) {
e.printStackTrace();
ProxyServer.getInstance().stop("由于 HamsterBall 未能成功连接, 服务器将立即关闭");
logger.log(Level.SEVERE, "BallAPI 初始化失败", e);
ProxyServer.getInstance().stop("由于 HamsterBall 初始化失败, 服务器将立即关闭");
return;
}
long time = System.currentTimeMillis() - start;
logger.info("仓鼠球初始化完成,总计耗时 " + time + " ms");
@@ -60,9 +61,8 @@ public class HamsterBallPlugin extends Plugin {
try {
BallBungeeCordAPI.getInstance().enable();
} catch (Exception e) {
getLogger().info("仓鼠球启动失败,原因:" + e.getMessage());
e.printStackTrace();
getLogger().info("由于仓鼠球启动失败,服务器将立即关闭");
logger.log(Level.SEVERE, "仓鼠球启动失败", e);
logger.info("由于仓鼠球启动失败,服务器将立即关闭");
ProxyServer.getInstance().stop("仓鼠球启动失败");
return;
}
@@ -103,7 +103,7 @@ public class HamsterBallPlugin extends Plugin {
try {
BallBungeeCordAPI.getInstance().disable();
} catch (Exception e) {
e.printStackTrace();
logger.log(Level.SEVERE, "关闭仓鼠球时遇到了一个异常", e);
}
long time = System.currentTimeMillis() - start;
logger.info("仓鼠球已关闭,总计耗时 " + time + " ms");

View File

@@ -55,6 +55,9 @@ public class BallBungeeListener {
@Subscribe
public void onKickPlayerEvent(KickPlayerEvent event) {
ProxiedPlayer player = ProxyServer.getInstance().getPlayer(event.getUuid());
if (player == null) {
return;
}
BaseComponent[] components = BungeeComponentSerializer.get().serialize(event.getReason());
player.disconnect(components);
}
@@ -70,8 +73,8 @@ public class BallBungeeListener {
@Subscribe
public void onSendPlayerToLocationEvent(SendPlayerToLocationEvent event) {
String serverID = event.getLocation().getServerID();
ServerInfo serverInfo = ProxyServer.getInstance().getServerInfo(serverID);
if (serverInfo == null) {
ServerInfo toServer = ProxyServer.getInstance().getServerInfo(serverID);
if (toServer == null) {
HamsterBallPlugin.getInstance().getLogger().warning("试图传送玩家时失败: 服务器 " + serverID + " 不在线");
return;
}
@@ -83,12 +86,12 @@ public class BallBungeeListener {
if (player.getServer().getInfo().getName().equals(serverID)) {
continue;
}
player.connect(serverInfo);
player.connect(toServer);
}
}
@Subscribe
public void onSendPlayerToPlayerEvent(SendPlayerToPlayerEvent event) {
public void onSendPlayerToPlayer(SendPlayerToPlayerEvent event) {
UUID toPlayerUUID = event.getToPlayerUUID();
ProxiedPlayer toPlayer = ProxyServer.getInstance().getPlayer(toPlayerUUID);
if (toPlayer == null) {
@@ -98,6 +101,9 @@ public class BallBungeeListener {
ServerInfo toServer = toPlayer.getServer().getInfo();
for (UUID uuid : event.getSendPlayerUUID()) {
ProxiedPlayer sendPlayer = ProxyServer.getInstance().getPlayer(uuid);
if (sendPlayer == null) {
continue;
}
if (sendPlayer.getServer().getInfo().getName().equals(toServer.getName())) {
continue;
}

View File

@@ -12,8 +12,8 @@ import org.jetbrains.annotations.NotNull;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
@SuppressWarnings("CallToPrintStackTrace")
public final class BallBungeeCordUtils {
private BallBungeeCordUtils() {
}
@@ -44,7 +44,7 @@ public final class BallBungeeCordUtils {
statement.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
BallAPI.getInstance().getLogger().log(Level.SEVERE, "更新玩家数据时遇到了一个异常", e);
}
if (!BallAPI.getInstance().getBallConfig().isGameServerUpdatePlayerInfo()) {
BallAPI.getInstance().sendRawBallMessage(