refactor: store player ip in PlayerEntry, so we don't have to query them in stuff like IP filter which spams console
This commit is contained in:
@@ -36,6 +36,7 @@ public class PlayersPlugin extends Bot.Listener {
|
||||
|
||||
bot.addListener(this);
|
||||
|
||||
bot.executor.scheduleAtFixedRate(this::queryPlayersIP, 0, 1, TimeUnit.SECONDS);
|
||||
bot.executor.scheduleAtFixedRate(this::onLastKnownNameTick, 0, 5, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
@@ -67,6 +68,15 @@ public class PlayersPlugin extends Bot.Listener {
|
||||
}
|
||||
}
|
||||
|
||||
private void queryPlayersIP () { for (PlayerEntry target : list) queryPlayersIP(target); }
|
||||
private void queryPlayersIP (PlayerEntry target) {
|
||||
if (target.ip != null) return;
|
||||
|
||||
final CompletableFuture<String> future = getPlayerIP(target, true);
|
||||
|
||||
future.thenApply(ip -> target.ip = ip);
|
||||
}
|
||||
|
||||
public CompletableFuture<String> getPlayerIP (PlayerEntry target) { return getPlayerIP(target, false); }
|
||||
public CompletableFuture<String> getPlayerIP (PlayerEntry target, boolean forceSeen) {
|
||||
final CompletableFuture<String> outputFuture = new CompletableFuture<>();
|
||||
@@ -185,6 +195,7 @@ public class PlayersPlugin extends Bot.Listener {
|
||||
target.listed = true;
|
||||
|
||||
target.usernames.addAll(duplicate.usernames);
|
||||
target.ip = duplicate.ip;
|
||||
|
||||
list.add(target);
|
||||
|
||||
@@ -192,6 +203,8 @@ public class PlayersPlugin extends Bot.Listener {
|
||||
} else {
|
||||
list.add(target);
|
||||
|
||||
queryPlayersIP(target);
|
||||
|
||||
for (Listener listener : listeners) listener.playerJoined(target);
|
||||
}
|
||||
}
|
||||
@@ -261,6 +274,8 @@ public class PlayersPlugin extends Bot.Listener {
|
||||
newTarget.usernames.addAll(target.usernames);
|
||||
newTarget.usernames.addLast(target.profile.getName());
|
||||
|
||||
newTarget.ip = target.ip;
|
||||
|
||||
list.add(newTarget);
|
||||
|
||||
list.remove(target);
|
||||
|
||||
Reference in New Issue
Block a user