package com.metazion.jgd.action; import com.metazion.jgd.AppLogin; import com.metazion.jgd.info.ServerInfo; import com.metazion.jgd.info.ServerInfoManager; import com.metazion.jgd.net.SSServer; import com.metazion.jgd.protocal.Message; import com.metazion.jgd.protocal.gl.ServerJoinSL; import com.metazion.jgd.util.JgdLogger; import com.metazion.object.Server; public class RAServerJoinSL extends RequestAction { private ServerJoinSL req = null; @Override public void setRequest(Message msg) { req = (ServerJoinSL) msg; } @Override public void execute() { final int serverId = req.serverId; final String host = req.host; final int port = req.port; final int crowdThreshold = req.crowdThreshold; final int fullThreshold = req.fullThreshold; final int playerNumber = req.playerNumber; JgdLogger.getLogger().info("Server join sl: serverId[{}] host[{}] port[{}] crowd threshold[{}] full threshold[{}] playerNumber[{}]", serverId, host, port, crowdThreshold, fullThreshold, playerNumber); ServerInfo serverInfo = ServerInfoManager.getInstance().getServerInfo(serverId); if (serverInfo == null) { JgdLogger.getLogger().error("Server join sl error: no server info[{}]", serverId); return; } Server server = AppLogin.getLogicService().getServerManager().getServer(serverId); if (server == null) { server = new Server(); server.setId(serverId); AppLogin.getLogicService().getServerManager().addServer(serverId, server); } serverInfo.onChanged(host, port, crowdThreshold, fullThreshold, playerNumber); assert session instanceof SSServer; SSServer ssServer = (SSServer) session; ssServer.setServerId(server.getId()); server.setServerInfo(serverInfo); server.setSession(ssServer); server.onJoin(); JgdLogger.getLogger().info("Server join sl successful: server id[{}] status[{}] crowd threshold[{}] full threshold[{}] player number[{}]", serverId, serverInfo.serverBean.status, crowdThreshold, fullThreshold, playerNumber); } }