You have to place the refreshPanel somewhere that is automatically updated by the server if you want it to update pretty consistently. Or you can just place that one sendString method if you want it to be a less intensive load if your player panel is pretty big. In World.java you should already have methods that do this, but the id's are most likely wrong or they're just commented out like mine are
Code:
public static void updateServerTime() {
//players.forEach(p -> p.getPacketSender().sendString(39161, "@cya@Server time: @cya@[ @whi@" + Misc.getCurrentServerTime() + "@cya@ ]"));
}
public static void updatePlayersOnline() {
//players.forEach(p -> p.getPacketSender().sendString(39160, "@cya@Players online: @cya@[ @whi@" + (int) (players.size() * 1.0) + "@cya@ ]"));
players.forEach(p -> p.getPacketSender().sendString(57003, "Players: @gre@" + (int) (World.getPlayers().size() * 1.0) + ""));
}
You should check to see if you have those methods already, but if not, then you can place it in PlayerProcess, ServerTimeUpdateTask, or anywhere thats updated periodically pretty much