Skip to content

Commit 5386666

Browse files
committed
update for latest BungeeCord; see #772
1 parent f0464f3 commit 5386666

File tree

7 files changed

+49
-30
lines changed

7 files changed

+49
-30
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ buildscript {
1010

1111
ext {
1212
spigotVersion = '1.11-R0.1-SNAPSHOT'
13-
bungeeVersion = '1.21-R0.1-SNAPSHOT'
13+
bungeeVersion = '1.21-R0.4-SNAPSHOT'
1414
velocityVersion = '3.4.0-SNAPSHOT'
1515
adventureVersion = '4.18.0'
1616
spongeVersion = '7.0.0'

bungee/src/main/java/codecrafter47/bungeetablistplus/handler/AbstractLegacyTabOverlayHandler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -438,8 +438,8 @@ private void updateSize() {
438438
t.setDisplayName(Either.left(""));
439439
t.setSuffix(Either.left(tabOverlay.text1[index]));
440440
t.setPlayers(new String[]{slotID[index]});
441-
t.setNameTagVisibility(Team.NameTagVisibility.ALWAYS);
442-
t.setCollisionRule(Team.CollisionRule.ALWAYS);
441+
// t.setNameTagVisibility(Team.NameTagVisibility.ALWAYS);
442+
// t.setCollisionRule(Team.CollisionRule.ALWAYS);
443443
sendPacket(t);
444444
}
445445
} else {
@@ -476,8 +476,8 @@ private void updateText(CustomTabOverlay tabOverlay, int index) {
476476
packet.setPrefix(Either.left(tabOverlay.text0[index]));
477477
packet.setDisplayName(Either.left(""));
478478
packet.setSuffix(Either.left(tabOverlay.text1[index]));
479-
packet.setNameTagVisibility(Team.NameTagVisibility.ALWAYS);
480-
packet.setCollisionRule(Team.CollisionRule.ALWAYS);
479+
// packet.setNameTagVisibility(Team.NameTagVisibility.ALWAYS);
480+
// packet.setCollisionRule(Team.CollisionRule.ALWAYS);
481481
sendPacket(packet);
482482
}
483483
}

bungee/src/main/java/codecrafter47/bungeetablistplus/handler/AbstractTabOverlayHandler.java

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,10 @@ public abstract class AbstractTabOverlayHandler implements PacketHandler, TabOve
182182
protected boolean active;
183183

184184
private final Either<String, BaseComponent> emptyEither;
185+
private final Either<String, Team.NameTagVisibility> nameTagVisibilityAlways;
186+
private final Either<String, Team.CollisionRule> collisionRuleAlways;
185187

186-
public AbstractTabOverlayHandler(Logger logger, Executor eventLoopExecutor, UUID viewerUuid, boolean is18, boolean is13OrLater, boolean is119OrLater) {
188+
public AbstractTabOverlayHandler(Logger logger, Executor eventLoopExecutor, UUID viewerUuid, boolean is18, boolean is13OrLater, boolean is119OrLater, boolean is1215OrLater) {
187189
this.logger = logger;
188190
this.eventLoopExecutor = eventLoopExecutor;
189191
this.viewerUuid = viewerUuid;
@@ -197,6 +199,13 @@ public AbstractTabOverlayHandler(Logger logger, Executor eventLoopExecutor, UUID
197199
} else {
198200
emptyEither = Either.left("");
199201
}
202+
if (is1215OrLater) {
203+
nameTagVisibilityAlways = Either.right(Team.NameTagVisibility.ALWAYS);
204+
collisionRuleAlways = Either.right(Team.CollisionRule.ALWAYS);
205+
} else {
206+
nameTagVisibilityAlways = Either.left("always");
207+
collisionRuleAlways = Either.left("always");
208+
}
200209
}
201210

202211
protected abstract void sendPacket(DefinedPacket packet);
@@ -983,7 +992,7 @@ PacketListenerResult onPlayerListPacket(PlayerListItem packet) {
983992
// 2. add player to correct team
984993
sendPacket(createPacketTeamAddPlayers(playerTeamName, new String[]{slotUsername[index]}));
985994
// 3. reset custom slot team
986-
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[index], emptyEither, emptyEither, emptyEither, Team.NameTagVisibility.ALWAYS, Team.CollisionRule.ALWAYS, is13OrLater ? 21 : 0, (byte) 1));
995+
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[index], emptyEither, emptyEither, emptyEither, nameTagVisibilityAlways, collisionRuleAlways, is13OrLater ? 21 : 0, (byte) 1));
987996
}
988997
}
989998

@@ -1059,7 +1068,7 @@ void onTeamPacketPreprocess(Team packet) {
10591068
int slot = playerUsernameToSlotMap.getInt(playerName);
10601069
if (slot != -1) {
10611070
// reset slot team
1062-
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[slot], emptyEither, emptyEither, emptyEither, Team.NameTagVisibility.ALWAYS, Team.CollisionRule.ALWAYS, is13OrLater ? 21 : 0, (byte) 1));
1071+
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[slot], emptyEither, emptyEither, emptyEither, nameTagVisibilityAlways, collisionRuleAlways, is13OrLater ? 21 : 0, (byte) 1));
10631072
}
10641073
}
10651074
}
@@ -1137,7 +1146,7 @@ PacketListenerResult onTeamPacket(Team packet) {
11371146
filteredPlayers[j++] = playerName;
11381147
} else {
11391148
// reset slot team
1140-
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[slot], emptyEither, emptyEither, emptyEither, Team.NameTagVisibility.ALWAYS, Team.CollisionRule.ALWAYS, is13OrLater ? 21 : 0, (byte) 1));
1149+
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[slot], emptyEither, emptyEither, emptyEither, nameTagVisibilityAlways, collisionRuleAlways, is13OrLater ? 21 : 0, (byte) 1));
11411150
}
11421151
}
11431152
packet.setPlayers(filteredPlayers);
@@ -1211,7 +1220,7 @@ void onServerSwitch() {
12111220
// 1. remove player from team
12121221
sendPacket(createPacketTeamRemovePlayers(CUSTOM_SLOT_TEAMNAME[index], new String[]{slotUsername[index]}));
12131222
// reset slot team
1214-
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[index], emptyEither, emptyEither, emptyEither, Team.NameTagVisibility.ALWAYS, Team.CollisionRule.ALWAYS, is13OrLater ? 21 : 0, (byte) 1));
1223+
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[index], emptyEither, emptyEither, emptyEither, nameTagVisibilityAlways, collisionRuleAlways, is13OrLater ? 21 : 0, (byte) 1));
12151224
}
12161225

12171226
// 2. create new custom slot
@@ -1314,12 +1323,12 @@ private void createTeamsIfNecessary() {
13141323
if (!hasCreatedCustomTeams) {
13151324
hasCreatedCustomTeams = true;
13161325

1317-
sendPacket(createPacketTeamCreate(CUSTOM_SLOT_TEAMNAME[0], emptyEither, emptyEither, emptyEither, Team.NameTagVisibility.ALWAYS, Team.CollisionRule.ALWAYS, is13OrLater ? 21 : 0, (byte) 1, new String[]{CUSTOM_SLOT_USERNAME[0], CUSTOM_SLOT_USERNAME_SMILEYS[0], ""}));
1326+
sendPacket(createPacketTeamCreate(CUSTOM_SLOT_TEAMNAME[0], emptyEither, emptyEither, emptyEither, nameTagVisibilityAlways, collisionRuleAlways, is13OrLater ? 21 : 0, (byte) 1, new String[]{CUSTOM_SLOT_USERNAME[0], CUSTOM_SLOT_USERNAME_SMILEYS[0], ""}));
13181327

13191328
for (int i = 1; i < 80; i++) {
1320-
sendPacket(createPacketTeamCreate(CUSTOM_SLOT_TEAMNAME[i], emptyEither, emptyEither, emptyEither, Team.NameTagVisibility.ALWAYS, Team.CollisionRule.ALWAYS, is13OrLater ? 21 : 0, (byte) 1, new String[]{CUSTOM_SLOT_USERNAME[i], CUSTOM_SLOT_USERNAME_SMILEYS[i]}));
1329+
sendPacket(createPacketTeamCreate(CUSTOM_SLOT_TEAMNAME[i], emptyEither, emptyEither, emptyEither, nameTagVisibilityAlways, collisionRuleAlways, is13OrLater ? 21 : 0, (byte) 1, new String[]{CUSTOM_SLOT_USERNAME[i], CUSTOM_SLOT_USERNAME_SMILEYS[i]}));
13211330
}
1322-
sendPacket(createPacketTeamCreate(CUSTOM_SLOT_TEAMNAME[80], emptyEither, emptyEither, emptyEither, Team.NameTagVisibility.ALWAYS, Team.CollisionRule.ALWAYS, is13OrLater ? 21 : 0, (byte) 1, new String[]{CUSTOM_SLOT_USERNAME[80]}));
1331+
sendPacket(createPacketTeamCreate(CUSTOM_SLOT_TEAMNAME[80], emptyEither, emptyEither, emptyEither, nameTagVisibilityAlways, collisionRuleAlways, is13OrLater ? 21 : 0, (byte) 1, new String[]{CUSTOM_SLOT_USERNAME[80]}));
13231332
}
13241333
}
13251334

@@ -1338,7 +1347,7 @@ void onDeactivated() {
13381347
// 2. add player to correct team
13391348
sendPacket(createPacketTeamAddPlayers(playerTeamName, new String[]{slotUsername[index]}));
13401349
// 3. reset custom slot team
1341-
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[index], emptyEither, emptyEither, emptyEither, Team.NameTagVisibility.ALWAYS, Team.CollisionRule.ALWAYS, is13OrLater ? 21 : 0, (byte) 1));
1350+
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[index], emptyEither, emptyEither, emptyEither, nameTagVisibilityAlways, collisionRuleAlways, is13OrLater ? 21 : 0, (byte) 1));
13421351
}
13431352
} else {
13441353
customSlots++;
@@ -1470,7 +1479,7 @@ void update() {
14701479
// 2. add player to correct team
14711480
sendPacket(createPacketTeamAddPlayers(playerTeamName, new String[]{slotUsername[index]}));
14721481
// 3. reset custom slot team
1473-
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[index], emptyEither, emptyEither, emptyEither, Team.NameTagVisibility.ALWAYS, Team.CollisionRule.ALWAYS, is13OrLater ? 21 : 0, (byte) 1));
1482+
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[index], emptyEither, emptyEither, emptyEither, nameTagVisibilityAlways, collisionRuleAlways, is13OrLater ? 21 : 0, (byte) 1));
14741483
} else {
14751484
// 2. add player to overflow team
14761485
sendPacket(createPacketTeamAddPlayers(CUSTOM_SLOT_TEAMNAME[80], new String[]{slotUsername[index]}));
@@ -1658,7 +1667,7 @@ void update() {
16581667
playerUsernameToSlotMap.removeInt(slotUsername[index]);
16591668

16601669
// reset slot team
1661-
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[index], emptyEither, emptyEither, emptyEither, Team.NameTagVisibility.ALWAYS, Team.CollisionRule.ALWAYS, is13OrLater ? 21 : 0, (byte) 1));
1670+
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[index], emptyEither, emptyEither, emptyEither, nameTagVisibilityAlways, collisionRuleAlways, is13OrLater ? 21 : 0, (byte) 1));
16621671
}
16631672

16641673
// 2. update slot state
@@ -1679,7 +1688,7 @@ void update() {
16791688
playerUsernameToSlotMap.removeInt(slotUsername[index]);
16801689

16811690
// reset slot team
1682-
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[index], emptyEither, emptyEither, emptyEither, Team.NameTagVisibility.ALWAYS, Team.CollisionRule.ALWAYS, is13OrLater ? 21 : 0, (byte) 1));
1691+
sendPacket(createPacketTeamUpdate(CUSTOM_SLOT_TEAMNAME[index], emptyEither, emptyEither, emptyEither, nameTagVisibilityAlways, collisionRuleAlways, is13OrLater ? 21 : 0, (byte) 1));
16831692
}
16841693

16851694
freePlayers.add(slotUuid[index]);
@@ -2476,7 +2485,7 @@ private static String[][] toPropertiesArray(ProfileProperty textureProperty) {
24762485
}
24772486
}
24782487

2479-
private static Team createPacketTeamCreate(String name, Either<String, BaseComponent> displayName, Either<String, BaseComponent> prefix, Either<String, BaseComponent> suffix, Team.NameTagVisibility nameTagVisibility, Team.CollisionRule collisionRule, int color, byte friendlyFire, String[] players) {
2488+
private static Team createPacketTeamCreate(String name, Either<String, BaseComponent> displayName, Either<String, BaseComponent> prefix, Either<String, BaseComponent> suffix, Either<String, Team.NameTagVisibility> nameTagVisibility, Either<String, Team.CollisionRule> collisionRule, int color, byte friendlyFire, String[] players) {
24802489
Team team = new Team();
24812490
team.setName(name);
24822491
team.setMode((byte) 0);
@@ -2498,7 +2507,7 @@ private static Team createPacketTeamRemove(String name) {
24982507
return team;
24992508
}
25002509

2501-
private static Team createPacketTeamUpdate(String name, Either<String, BaseComponent> displayName, Either<String, BaseComponent> prefix, Either<String, BaseComponent> suffix, Team.NameTagVisibility nameTagVisibility, Team.CollisionRule collisionRule, int color, byte friendlyFire) {
2510+
private static Team createPacketTeamUpdate(String name, Either<String, BaseComponent> displayName, Either<String, BaseComponent> prefix, Either<String, BaseComponent> suffix, Either<String, Team.NameTagVisibility> nameTagVisibility, Either<String, Team.CollisionRule> collisionRule, int color, byte friendlyFire) {
25022511
Team team = new Team();
25032512
team.setName(name);
25042513
team.setMode((byte) 2);
@@ -2555,8 +2564,8 @@ static class TeamEntry {
25552564
private Either<String, BaseComponent> prefix;
25562565
private Either<String, BaseComponent> suffix;
25572566
private byte friendlyFire;
2558-
private Team.NameTagVisibility nameTagVisibility;
2559-
private Team.CollisionRule collisionRule;
2567+
private Either<String, Team.NameTagVisibility> nameTagVisibility;
2568+
private Either<String, Team.CollisionRule> collisionRule;
25602569
private int color;
25612570
private Set<String> players = new ObjectOpenHashSet<>();
25622571

bungee/src/main/java/codecrafter47/bungeetablistplus/handler/LowMemoryTabOverlayHandlerImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
*/
3333
public class LowMemoryTabOverlayHandlerImpl extends TabOverlayHandlerImpl {
3434

35-
public LowMemoryTabOverlayHandlerImpl(Logger logger, Executor eventLoopExecutor, UUID viewerUuid, ProxiedPlayer player, boolean is18, boolean has113OrLater, boolean has119OrLater) {
36-
super(logger, eventLoopExecutor, viewerUuid, player, is18, has113OrLater, has119OrLater);
35+
public LowMemoryTabOverlayHandlerImpl(Logger logger, Executor eventLoopExecutor, UUID viewerUuid, ProxiedPlayer player, boolean is18, boolean has113OrLater, boolean has119OrLater, boolean has1215OrLater) {
36+
super(logger, eventLoopExecutor, viewerUuid, player, is18, has113OrLater, has119OrLater, has1215OrLater);
3737
}
3838

3939
@Override

bungee/src/main/java/codecrafter47/bungeetablistplus/handler/NewTabOverlayHandler.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ public class NewTabOverlayHandler implements PacketHandler, TabOverlayHandler {
7979
private static final Set<String> CUSTOM_SLOT_USERNAMES;
8080
private static final String[] CUSTOM_SLOT_TEAMNAME;
8181

82+
private final Either<String, Team.NameTagVisibility> nameTagVisibilityAlways;
83+
private final Either<String, Team.CollisionRule> collisionRuleAlways;
84+
8285
static {
8386

8487
// build the dimension to used slots map (for the rectangular tab overlay)
@@ -174,12 +177,19 @@ public class NewTabOverlayHandler implements PacketHandler, TabOverlayHandler {
174177

175178
private final ProxiedPlayer player;
176179

177-
public NewTabOverlayHandler(Logger logger, Executor eventLoopExecutor, ProxiedPlayer player) {
180+
public NewTabOverlayHandler(Logger logger, Executor eventLoopExecutor, ProxiedPlayer player, boolean is1215OrLater) {
178181
this.logger = logger;
179182
this.eventLoopExecutor = eventLoopExecutor;
180183
this.player = player;
181184
this.activeContentHandler = new PassThroughContentHandler();
182185
this.activeHeaderFooterHandler = new PassThroughHeaderFooterHandler();
186+
if (is1215OrLater) {
187+
nameTagVisibilityAlways = Either.right(Team.NameTagVisibility.ALWAYS);
188+
collisionRuleAlways = Either.right(Team.CollisionRule.ALWAYS);
189+
} else {
190+
nameTagVisibilityAlways = Either.left("always");
191+
collisionRuleAlways = Either.left("always");
192+
}
183193
}
184194

185195
private void sendPacket(DefinedPacket packet) {
@@ -688,7 +698,7 @@ private void createTeamsIfNecessary() {
688698
hasCreatedCustomTeams = true;
689699

690700
for (int i = 0; i < 80; i++) {
691-
sendPacket(createPacketTeamCreate(CUSTOM_SLOT_TEAMNAME[i], EMPTY_EITHER_TEXT_COMPONENT, EMPTY_EITHER_TEXT_COMPONENT, EMPTY_EITHER_TEXT_COMPONENT, Team.NameTagVisibility.ALWAYS, Team.CollisionRule.ALWAYS, 21, (byte) 1, new String[]{CUSTOM_SLOT_USERNAME[i], CUSTOM_SLOT_USERNAME_SMILEYS[i]}));
701+
sendPacket(createPacketTeamCreate(CUSTOM_SLOT_TEAMNAME[i], EMPTY_EITHER_TEXT_COMPONENT, EMPTY_EITHER_TEXT_COMPONENT, EMPTY_EITHER_TEXT_COMPONENT, nameTagVisibilityAlways, collisionRuleAlways, 21, (byte) 1, new String[]{CUSTOM_SLOT_USERNAME[i], CUSTOM_SLOT_USERNAME_SMILEYS[i]}));
692702
}
693703
}
694704
}
@@ -1253,7 +1263,7 @@ private static String[][] toPropertiesArray(ProfileProperty textureProperty) {
12531263
}
12541264
}
12551265

1256-
private static Team createPacketTeamCreate(String name, Either<String, BaseComponent> displayName, Either<String, BaseComponent> prefix, Either<String, BaseComponent> suffix, Team.NameTagVisibility nameTagVisibility, Team.CollisionRule collisionRule, int color, byte friendlyFire, String[] players) {
1266+
private static Team createPacketTeamCreate(String name, Either<String, BaseComponent> displayName, Either<String, BaseComponent> prefix, Either<String, BaseComponent> suffix, Either<String, Team.NameTagVisibility> nameTagVisibility, Either<String, Team.CollisionRule> collisionRule, int color, byte friendlyFire, String[] players) {
12571267
Team team = new Team();
12581268
team.setName(name);
12591269
team.setMode((byte) 0);

bungee/src/main/java/codecrafter47/bungeetablistplus/handler/TabOverlayHandlerImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ public class TabOverlayHandlerImpl extends AbstractTabOverlayHandler {
3737

3838
private boolean logVersionMismatch = false;
3939

40-
public TabOverlayHandlerImpl(Logger logger, Executor eventLoopExecutor, UUID viewerUuid, ProxiedPlayer player, boolean is18, boolean is13OrLater, boolean is119OrLater) {
41-
super(logger, eventLoopExecutor, viewerUuid, is18, is13OrLater, is119OrLater);
40+
public TabOverlayHandlerImpl(Logger logger, Executor eventLoopExecutor, UUID viewerUuid, ProxiedPlayer player, boolean is18, boolean is13OrLater, boolean is119OrLater, boolean is1215OrLater) {
41+
super(logger, eventLoopExecutor, viewerUuid, is18, is13OrLater, is119OrLater, is1215OrLater);
4242
this.player = player;
4343
}
4444

bungee/src/main/java/codecrafter47/bungeetablistplus/managers/TabViewManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,11 +145,11 @@ private PlayerTabView createTabView(ProxiedPlayer player) {
145145
tabOverlayHandler = handler;
146146
packetHandler = new RewriteLogic(new GetGamemodeLogic(handler, (UserConnection) player));
147147
} else if (protocolVersionProvider.has1193OrLater(player)) {
148-
NewTabOverlayHandler handler = new NewTabOverlayHandler(logger, eventLoop, player);
148+
NewTabOverlayHandler handler = new NewTabOverlayHandler(logger, eventLoop, player, false);
149149
tabOverlayHandler = handler;
150150
packetHandler = new RewriteLogic(new GetGamemodeLogic(handler, (UserConnection) player));
151151
} else if (protocolVersionProvider.has18OrLater(player)) {
152-
LowMemoryTabOverlayHandlerImpl tabOverlayHandlerImpl = new LowMemoryTabOverlayHandlerImpl(logger, eventLoop, player.getUniqueId(), player, protocolVersionProvider.is18(player), protocolVersionProvider.has113OrLater(player), protocolVersionProvider.has119OrLater(player));
152+
LowMemoryTabOverlayHandlerImpl tabOverlayHandlerImpl = new LowMemoryTabOverlayHandlerImpl(logger, eventLoop, player.getUniqueId(), player, protocolVersionProvider.is18(player), protocolVersionProvider.has113OrLater(player), protocolVersionProvider.has119OrLater(player), false);
153153
tabOverlayHandler = tabOverlayHandlerImpl;
154154
packetHandler = new RewriteLogic(new GetGamemodeLogic(tabOverlayHandlerImpl, ((UserConnection) player)));
155155
} else {

0 commit comments

Comments
 (0)