3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-11-17 05:20:14 +01:00

Minor server-switching code cleanup

Dieser Commit ist enthalten in:
Andrew Steinborn 2021-07-10 23:36:25 -04:00
Ursprung ea577019b8
Commit 31aa996623

Datei anzeigen

@ -358,24 +358,27 @@ public class ClientPlaySessionHandler implements MinecraftSessionHandler {
final MinecraftConnection serverMc = destination.ensureConnected(); final MinecraftConnection serverMc = destination.ensureConnected();
if (!spawned) { if (!spawned) {
// Nothing special to do with regards to spawning the player // The player wasn't spawned in yet, so we don't need to do anything special. Just send
// JoinGame.
spawned = true; spawned = true;
destination.setActiveDimensionRegistry(joinGame.getDimensionRegistry()); // 1.16
player.getConnection().delayedWrite(joinGame); player.getConnection().delayedWrite(joinGame);
// Required for Legacy Forge // Required for Legacy Forge
player.getPhase().onFirstJoin(player); player.getPhase().onFirstJoin(player);
} else { } else {
// Clear tab list to avoid duplicate entries // Clear tab list to avoid duplicate entries
player.getTabList().clearAll(); player.getTabList().clearAll();
// The player is switching from a server already, so we need to tell the client to change
// entity IDs and send new dimension information.
if (player.getConnection().getType() == ConnectionTypes.LEGACY_FORGE) { if (player.getConnection().getType() == ConnectionTypes.LEGACY_FORGE) {
this.doSafeClientServerSwitch(joinGame); this.doSafeClientServerSwitch(joinGame);
} else { } else {
this.doFastClientServerSwitch(joinGame); this.doFastClientServerSwitch(joinGame);
} }
destination.setActiveDimensionRegistry(joinGame.getDimensionRegistry()); // 1.16
} }
destination.setActiveDimensionRegistry(joinGame.getDimensionRegistry()); // 1.16
// Remove previous boss bars. These don't get cleared when sending JoinGame, thus the need to // Remove previous boss bars. These don't get cleared when sending JoinGame, thus the need to
// track them. // track them.
for (UUID serverBossBar : serverBossBars) { for (UUID serverBossBar : serverBossBars) {
@ -400,9 +403,8 @@ public class ClientPlaySessionHandler implements MinecraftSessionHandler {
// Clear any title from the previous server. // Clear any title from the previous server.
if (player.getProtocolVersion().compareTo(MINECRAFT_1_8) >= 0) { if (player.getProtocolVersion().compareTo(MINECRAFT_1_8) >= 0) {
player.getConnection() player.getConnection().delayedWrite(GenericTitlePacket.constructTitlePacket(
.delayedWrite(GenericTitlePacket.constructTitlePacket( GenericTitlePacket.ActionType.RESET, player.getProtocolVersion()));
GenericTitlePacket.ActionType.RESET, player.getProtocolVersion()));
} }
// Flush everything // Flush everything