/** * Update the CloudPlayer objective * * @param cloudPlayer */ public void updatePlayer(CloudPlayer cloudPlayer) { networkConnection.sendPacket(new PacketOutUpdatePlayer(CloudPlayer.newOfflinePlayer(cloudPlayer))); }
public PlayerDatabase updatePlayer(OfflinePlayer offlinePlayer) { Document document = database.getDocument(offlinePlayer.getUniqueId().toString()); document.append("offlinePlayer", CloudPlayer.newOfflinePlayer(offlinePlayer)); database.insert(document); return this; }
public void handlePlayerLogout(CloudPlayer playerWhereAmI) { CloudNet.getInstance().getEventManager().callEvent(new LogoutEvent(playerWhereAmI)); try { System.out.println("Player [" + playerWhereAmI.getName() + NetworkUtils.SLASH_STRING + playerWhereAmI.getUniqueId() + NetworkUtils.SLASH_STRING + playerWhereAmI.getPlayerConnection().getHost() + "] is disconnected on " + playerWhereAmI.getProxy()); } catch (Exception ex) { } try { this.onlinePlayers.remove(playerWhereAmI.getUniqueId()); } catch (Exception ex) { } this.sendAllUpdate(new PacketOutLogoutPlayer(playerWhereAmI)); this.sendAll(new PacketOutUpdateOnlineCount(getOnlineCount())); try { playerWhereAmI.setLastLogin(System.currentTimeMillis()); playerWhereAmI.setLastPlayerConnection(playerWhereAmI.getPlayerConnection()); CloudNet.getInstance().getDbHandlers().getPlayerDatabase().updatePlayer(CloudPlayer.newOfflinePlayer(playerWhereAmI)); } catch (Exception ex) { } }
public void handlePlayerLoginRequest(ProxyServer proxyServer, PlayerConnection cloudPlayerConnection, UUID uniqueId) { if (this.onlinePlayers.containsKey(cloudPlayerConnection.getUniqueId())) { proxyServer.sendPacketSynchronized(new PacketOutLoginPlayer(uniqueId, null)); return; } LoginRequestEvent loginRequestEvent = new LoginRequestEvent(proxyServer, cloudPlayerConnection); CloudNet.getInstance().getEventManager().callEvent(loginRequestEvent); PlayerDatabase playerDatabase = CloudNet.getInstance().getDbHandlers().getPlayerDatabase(); OfflinePlayer offlinePlayer = null; if (!playerDatabase.containsPlayer(cloudPlayerConnection.getUniqueId())) offlinePlayer = playerDatabase.registerPlayer(cloudPlayerConnection); if (offlinePlayer == null) offlinePlayer = playerDatabase.getPlayer(cloudPlayerConnection.getUniqueId()); CloudPlayer cloudPlayer = new CloudPlayer(offlinePlayer, cloudPlayerConnection, proxyServer.getServerId()); cloudPlayer.setPlayerExecutor(CorePlayerExecutor.INSTANCE); if (cloudPlayer.getFirstLogin() == null) cloudPlayer.setFirstLogin(System.currentTimeMillis()); CloudNet.getInstance().getEventManager().callEvent(new PlayerInitEvent(cloudPlayer)); CloudNet.getInstance().getDbHandlers().getNameToUUIDDatabase().append(new MultiValue<>(cloudPlayerConnection.getName(), cloudPlayerConnection.getUniqueId())); CloudNet.getInstance().getDbHandlers().getNameToUUIDDatabase().replace(new MultiValue<>(cloudPlayerConnection.getUniqueId(), cloudPlayerConnection.getName())); cloudPlayer.setName(cloudPlayerConnection.getName()); CloudNet.getInstance().getDbHandlers().getPlayerDatabase().updatePlayer(CloudPlayer.newOfflinePlayer(cloudPlayer)); proxyServer.sendPacketSynchronized(new PacketOutLoginPlayer(uniqueId, cloudPlayer)); this.waitingPlayers.put(cloudPlayer.getUniqueId(), cloudPlayer); handlePlayerLogin(cloudPlayer); }