@Override public PlayerObject getPlayer(String name) { for (ProxyObject proxyObject : getProxyGroups().stream().map(ProxyGroupObject::getProxies).flatMap(List::stream).collect(Collectors.toList())) for (PlayerObject playerObject : proxyObject.getOnlinePlayers()) if (playerObject.getName().equals(name)) return playerObject; return null; }
@Override public PlayerObject getPlayer(UUID uuid) { for (ProxyObject proxyObject : getProxyGroups().stream().map(ProxyGroupObject::getProxies).flatMap(List::stream).collect(Collectors.toList())) for (PlayerObject playerObject : proxyObject.getOnlinePlayers()) if (playerObject.getUuid().equals(uuid)) return playerObject; return null; }
@EventHandler public void onPlayerConnectEvent(PlayerConnectEvent event) { ProxyObject proxyObject = event.getPlayer().getProxy(); if (proxyObject != null) { Proxy proxy = TimoCloudCore.getInstance().getInstanceManager().getProxyByProxyObject(proxyObject); if (proxy != null) proxy.onPlayerConnect(event.getPlayer()); } ServerObject serverObject = event.getPlayer().getServer(); if (serverObject != null) { Server server = TimoCloudCore.getInstance().getInstanceManager().getServerByServerObject(serverObject); if (server != null) server.onPlayerConnect(event.getPlayer()); } }
@Override public void execute(CommandSender sender, String[] args) { if (args.length == 0) { sendMessage(sender, "Please specify the name of the player you want to find"); return; } PlayerObject playerObject = TimoCloudAPI.getUniversalAPI().getPlayer(args[0]); if (playerObject == null) { sendMessage(sender, "&cThe player '&e" + args[0] + "&c' is not online."); return; } sendMessage(sender, "&e" + playerObject.getName() + " &ais online at &6" + playerObject.getServer().getName()); }
@EventHandler public void onPlayerServerChange(PlayerServerChangeEvent event) { Server serverFrom = TimoCloudCore.getInstance().getInstanceManager().getServerByServerObject(event.getServerFrom()); if (serverFrom != null) serverFrom.onPlayerDisconnect(event.getPlayer()); Server serverTo = TimoCloudCore.getInstance().getInstanceManager().getServerByServerObject(event.getServerTo()); if (serverTo != null) serverTo.onPlayerConnect(event.getPlayer()); Proxy proxy = TimoCloudCore.getInstance().getInstanceManager().getProxyByProxyObject(event.getPlayer().getProxy()); proxy.update(event.getPlayer()); }
@EventHandler public void onPlayerDisconnect(PlayerDisconnectEvent event) { ((PlayerObjectBasicImplementation) event.getPlayer()).setOnline(false); ProxyObject proxyObject = event.getPlayer().getProxy(); if (proxyObject != null) { Proxy proxy = TimoCloudCore.getInstance().getInstanceManager().getProxyByProxyObject(proxyObject); if (proxy != null) proxy.onPlayerDisconnect(event.getPlayer()); } ServerObject serverObject = event.getPlayer().getServer(); if (serverObject != null) { Server server = TimoCloudCore.getInstance().getInstanceManager().getServerByServerObject(serverObject); if (server != null) server.onPlayerDisconnect(event.getPlayer()); } }
@Override public PlayerObject getPlayer(UUID uuid) { for (Proxy proxy : TimoCloudCore.getInstance().getInstanceManager().getProxyGroups().stream().map(ProxyGroup::getProxies).flatMap(Collection::stream).collect(Collectors.toList())) for (PlayerObject playerObject : proxy.getOnlinePlayers()) if (playerObject.getUuid().equals(uuid)) return playerObject; return null; }
@Override public PlayerObject getPlayer(String name) { for (Proxy proxy : TimoCloudCore.getInstance().getInstanceManager().getProxyGroups().stream().map(ProxyGroup::getProxies).flatMap(Collection::stream).collect(Collectors.toList())) for (PlayerObject playerObject : proxy.getOnlinePlayers()) if (playerObject.getName().equals(name)) return playerObject; return null; } }
@EventHandler public void onServerSwitchEvent(ServerSwitchEvent event) { PlayerObject playerObject = getPlayer(event.getPlayer()); if (isPending(event.getPlayer().getUniqueId())) { // Join TimoCloudBungee.getInstance().getEventManager().sendEvent(new PlayerConnectEvent(playerObject)); pending.remove(event.getPlayer().getUniqueId()); } else { // Server change TimoCloudBungee.getInstance().getEventManager().sendEvent(new PlayerServerChangeEvent( playerObject, previousServer.get(playerObject.getUuid()), event.getPlayer().getServer().getInfo().getName() )); } previousServer.put(event.getPlayer().getUniqueId(), event.getPlayer().getServer().getInfo().getName()); }