geforkt von SteamWar/BungeeCore
Test tablist with remove
Signed-off-by: Lixfel <agga-games@gmx.de>
Dieser Commit ist enthalten in:
Ursprung
ed9aa9082d
Commit
404462044a
@ -110,6 +110,7 @@ public class Tablist extends MessageToMessageDecoder<PacketWrapper> {
|
|||||||
// Main list handling
|
// Main list handling
|
||||||
int i = 0;
|
int i = 0;
|
||||||
List<PlayerListItem.Item> add = new ArrayList<>();
|
List<PlayerListItem.Item> add = new ArrayList<>();
|
||||||
|
List<PlayerListItem.Item> remove = new ArrayList<>();
|
||||||
for (; i < tablist.size() && i < 80; i++) {
|
for (; i < tablist.size() && i < 80; i++) {
|
||||||
PlayerListItem.Item tabItem;
|
PlayerListItem.Item tabItem;
|
||||||
if(current.size() > i) {
|
if(current.size() > i) {
|
||||||
@ -128,20 +129,23 @@ public class Tablist extends MessageToMessageDecoder<PacketWrapper> {
|
|||||||
tabItem.setProperties(item.getProperties());
|
tabItem.setProperties(item.getProperties());
|
||||||
tabItem.setDisplayName(item.getDisplayName());
|
tabItem.setDisplayName(item.getDisplayName());
|
||||||
add.add(tabItem);
|
add.add(tabItem);
|
||||||
|
if(current.size() > i) {
|
||||||
|
remove.add(tabItem);
|
||||||
|
}
|
||||||
} else if(!item.getDisplayName().equals(tabItem.getDisplayName())) {
|
} else if(!item.getDisplayName().equals(tabItem.getDisplayName())) {
|
||||||
tabItem.setDisplayName(item.getDisplayName());
|
tabItem.setDisplayName(item.getDisplayName());
|
||||||
update.add(tabItem);
|
update.add(tabItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sendTabPacket(update, PlayerListItem.Action.UPDATE_DISPLAY_NAME);
|
|
||||||
sendTabPacket(add, PlayerListItem.Action.ADD_PLAYER);
|
|
||||||
|
|
||||||
// Excess removal
|
// Excess removal
|
||||||
List<PlayerListItem.Item> remove = new ArrayList<>();
|
|
||||||
while(i < current.size()) {
|
while(i < current.size()) {
|
||||||
remove.add(current.remove(i));
|
remove.add(current.remove(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
sendTabPacket(remove, PlayerListItem.Action.REMOVE_PLAYER);
|
sendTabPacket(remove, PlayerListItem.Action.REMOVE_PLAYER);
|
||||||
|
sendTabPacket(update, PlayerListItem.Action.UPDATE_DISPLAY_NAME);
|
||||||
|
sendTabPacket(add, PlayerListItem.Action.ADD_PLAYER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onServerSwitch() {
|
public void onServerSwitch() {
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren