@Override public void execute(CommandSender sender, String[] args) { if ( args.length < 1 ) { sender.sendMessage( ChatColor.RED + "Please follow this command by a user name" ); return; } ProxiedPlayer user = ProxyServer.getInstance().getPlayer( args[0] ); if ( user == null ) { sender.sendMessage( ChatColor.RED + "That user is not online" ); } else { sender.sendMessage( ChatColor.BLUE + "IP of " + args[0] + " is " + user.getAddress() ); } } }
@Override public String getIP(Object player) { return ((ProxiedPlayer) player).getAddress().getHostName(); }
public InetAddress getIp(final UUID uuid) { ProxiedPlayer player = plugin.getProxy().getPlayer(uuid); if (player != null) return player.getAddress().getAddress(); try { return ipCache.get(uuid, new Callable<InetAddress>() { @Override public InetAddress call() throws Exception { try (Jedis tmpRsc = plugin.getPool().getResource()) { String result = tmpRsc.hget("player:" + uuid, "ip"); if (result == null) throw new NullPointerException("user not found"); return InetAddresses.forString(result); } } }); } catch (ExecutionException | UncheckedExecutionException e) { if (e.getCause() instanceof NullPointerException && e.getCause().getMessage().equals("user not found")) return null; // HACK plugin.getLogger().log(Level.SEVERE, "Unable to get IP", e); throw new RuntimeException("Unable to get IP for " + uuid, e); } }
public static ProxiedPlayer getProxiedPlayer(Connection connection) { for (ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) { if (connection.getAddress().equals(player.getAddress())) { return player; } } return null; } }
@Override protected Void call(Jedis jedis) { jedis.publish("redisbungee-data", RedisBungee.getGson().toJson(new DataManager.DataManagerMessage<>( event.getPlayer().getUniqueId(), DataManager.DataManagerMessage.Action.JOIN, new DataManager.LoginPayload(event.getPlayer().getAddress().getAddress())))); return null; } });
@Override public void execute(CommandSender sender, String[] args) { if ( args.length < 1 ) { sender.sendMessage( ChatColor.RED + "Please follow this command by a user name" ); return; } ProxiedPlayer user = ProxyServer.getInstance().getPlayer( args[0] ); if ( user == null ) { sender.sendMessage( ChatColor.RED + "That user is not online" ); } else { sender.sendMessage( ChatColor.BLUE + "IP of " + args[0] + " is " + user.getAddress() ); } } }
public static PlayerObject playerToObject(ProxiedPlayer player, boolean online) { return new PlayerObjectBungeeImplementation( player.getName(), player.getUniqueId(), player.getServer() == null ? null : player.getServer().getInfo().getName(), TimoCloudBungee.getInstance().getProxyName(), player.getAddress().getAddress(), online, online ? 0 : -1); }
@Override public boolean isOnline(String name) { try { if (Universal.get().useRedis()) { for (String str : RedisBungee.getApi().getHumanPlayersOnline()) { if (str.equalsIgnoreCase(name)) { return RedisBungee.getApi().getPlayerIp(RedisBungee.getApi().getUuidFromName(str)) != null; } } } return ProxyServer.getInstance().getPlayer(name).getAddress() != null; } catch (NullPointerException exc) { return false; } }
@EventHandler public void onPostLogin(PostLoginEvent event) { try { ProxiedPlayer player = event.getPlayer(); UUID uuid = player.getUniqueId(); String name = player.getName(); InetAddress address = player.getAddress().getAddress(); long time = System.currentTimeMillis(); sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, null, null)); boolean gatheringGeolocations = config.isTrue(DataGatheringSettings.GEOLOCATIONS); processing.submit(processors.player().proxyRegisterProcessor(uuid, name, time, gatheringGeolocations ? processors.player().ipUpdateProcessor(uuid, address, time) : null )); processing.submit(processors.info().playerPageUpdateProcessor(uuid)); ResponseCache.clearResponse(PageId.SERVER.of(serverInfo.getServerUUID())); } catch (Exception e) { errorHandler.log(L.WARN, this.getClass(), e); } }