perf: 优化代码
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user