perf: 优化代码

This commit is contained in:
2022-12-07 19:30:47 +08:00
parent afbe103909
commit 84696bc408
10 changed files with 96 additions and 26 deletions

View File

@@ -95,16 +95,32 @@ public abstract class BallAPI {
playerInfo.put(info.getUuid(), info);
}
@Override
public void onServerOffline(@NotNull ServerOfflineEvent event) {
String serverID = event.getServerID();
serverInfo.remove(serverID);
}
@Override
public void onServerOnline(@NotNull ServerOnlineEvent event) {
BallServerInfo info = event.getServerInfo();
serverInfo.put(info.getId(), info);
playerInfo.forEachValue(1, playerInfo -> {
if (playerInfo.getGameServer().equals(info.getId())) {
playerInfo.setOnline(false);
}
if (playerInfo.getProxyServer().equals(info.getId())) {
playerInfo.setOnline(false);
}
});
}
@Override
public void onServerOffline(@NotNull ServerOfflineEvent event) {
String serverID = event.getServerID();
serverInfo.remove(serverID);
playerInfo.forEachValue(1, playerInfo -> {
if (playerInfo.getGameServer().equals(serverID)) {
playerInfo.setOnline(false);
}
if (playerInfo.getProxyServer().equals(serverID)) {
playerInfo.setOnline(false);
}
});
}
});
}
@@ -255,10 +271,19 @@ public abstract class BallAPI {
sendBallMessage(new BallMessageInfo(BALL_CHANNEL, ServerOfflineEvent.ACTION, new ServerOfflineEvent(getLocalServerId())), true);
try (Connection connection = CoreAPI.getInstance().getConnection()) {
PreparedStatement statement = connection.prepareStatement("DELETE FROM `hamster_ball_server_info` WHERE `id`=?;");
statement.setString(1, getLocalServerId());
statement.executeUpdate();
statement.close();
try (PreparedStatement statement = connection.prepareStatement(
"DELETE FROM `hamster_ball_server_info` WHERE `id`=?;"
)) {
statement.setString(1, getLocalServerId());
statement.executeUpdate();
}
try (PreparedStatement statement = connection.prepareStatement(
"UPDATE `hamster_ball_player_info` SET `online`=false WHERE `game_server`=? OR `proxy_server`=?"
)) {
statement.setString(1, getLocalServerId());
statement.setString(2, getLocalServerId());
statement.executeUpdate();
}
}
channel = null;