private void updatePlayer(OfflinePlayer offlinePlayer) { CloudNet.getInstance().getDbHandlers().getPlayerDatabase().updatePlayer(offlinePlayer); if (CloudNet.getInstance().getNetworkManager().getOnlinePlayers().containsKey(offlinePlayer.getUniqueId())) { CloudNet.getInstance().getNetworkManager().getOnlinePlayers().get(offlinePlayer.getUniqueId()).setPermissionEntity(offlinePlayer.getPermissionEntity()); CloudNet.getInstance().getNetworkManager().handlePlayerUpdate(CloudNet.getInstance().getNetworkManager().getOnlinePlayers().get(offlinePlayer.getUniqueId())); } CloudNet.getInstance().getNetworkManager().sendAllUpdate(new PacketOutUpdateOfflinePlayer(offlinePlayer)); }
@Override public void onCall(PlayerInitEvent event) { if (event.getCloudPlayer().getPermissionEntity() == null) { event.getCloudPlayer().setPermissionEntity(PermissionModule.getInstance().getPermissionPool().getNewPermissionEntity(event.getCloudPlayer())); } Collection<GroupEntityData> groupEntiys = new LinkedList<>(); for (GroupEntityData groupEntityData : event.getCloudPlayer().getPermissionEntity().getGroups()) { if (!PermissionModule.getInstance().getPermissionPool().getGroups().containsKey(groupEntityData.getGroup()) || (System.currentTimeMillis() > groupEntityData.getTimeout() && groupEntityData.getTimeout() != -1 && groupEntityData.getTimeout() != 0)) { groupEntiys.add(groupEntityData); } } for (GroupEntityData groupEntityData : groupEntiys) event.getCloudPlayer().getPermissionEntity().getGroups().remove(groupEntityData); if (event.getCloudPlayer().getPermissionEntity().getGroups().size() == 0) { event.getCloudPlayer().getPermissionEntity().getGroups().add(new GroupEntityData(PermissionModule.getInstance().getPermissionPool().getDefaultGroup().getName(), 0L)); } } }
@Override public void handleInput(Document data, PacketSender packetSender) { OfflinePlayer offlinePlayer = data.getObject("player", new TypeToken<OfflinePlayer>() { }.getType()); CloudNet.getInstance().getDbHandlers().getPlayerDatabase().updatePlayer(offlinePlayer); if (CloudNet.getInstance().getNetworkManager().getOnlinePlayers().containsKey(offlinePlayer.getUniqueId())) { CloudPlayer cloudPlayer = CloudNet.getInstance().getNetworkManager().getOnlinePlayers().get(offlinePlayer.getUniqueId()); cloudPlayer.setMetaData(offlinePlayer.getMetaData()); cloudPlayer.setPermissionEntity(offlinePlayer.getPermissionEntity()); CloudNet.getInstance().getNetworkManager().handlePlayerUpdate(cloudPlayer); } else CloudNet.getInstance().getNetworkManager().sendAllUpdate(new PacketOutUpdateOfflinePlayer(offlinePlayer)); } }