From b93ce33b383c5a1dde7ba54c087a06a6d65f1307 Mon Sep 17 00:00:00 2001
From: Camotoy <20743703+Camotoy@users.noreply.github.com>
Date: Thu, 21 Jan 2021 17:54:18 -0500
Subject: [PATCH 1/3] Localize Done in the OAuth prompt (#1851)
Oops.
---
.../java/org/geysermc/connector/utils/LoginEncryptionUtils.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/connector/src/main/java/org/geysermc/connector/utils/LoginEncryptionUtils.java b/connector/src/main/java/org/geysermc/connector/utils/LoginEncryptionUtils.java
index fd7ef4e64..3c093df94 100644
--- a/connector/src/main/java/org/geysermc/connector/utils/LoginEncryptionUtils.java
+++ b/connector/src/main/java/org/geysermc/connector/utils/LoginEncryptionUtils.java
@@ -203,7 +203,7 @@ public class LoginEncryptionUtils {
*/
public static void showMicrosoftCodeWindow(GeyserSession session, MsaAuthenticationService.MsCodeResponse response) {
ModalFormWindow msaCodeWindow = new ModalFormWindow("%xbox.signin", "%xbox.signin.website\n%xbox.signin.url\n%xbox.signin.enterCode\n" +
- response.user_code, "Done", "%menu.disconnect");
+ response.user_code, "%gui.done", "%menu.disconnect");
session.sendForm(msaCodeWindow, LoginEncryptionUtils.AUTH_MSA_CODE_FORM_ID);
}
From 0b9b3eb127519466daff80fe1e283d90442b148b Mon Sep 17 00:00:00 2001
From: ScxLore1216 <30559794+EddieDiamondFire@users.noreply.github.com>
Date: Fri, 22 Jan 2021 10:00:18 +1100
Subject: [PATCH 2/3] Update bungeecord-api to 1.16-R0.4-SNAPSHOT (#1857)
---
bootstrap/bungeecord/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bootstrap/bungeecord/pom.xml b/bootstrap/bungeecord/pom.xml
index 54e0d56ef..10855aed4 100644
--- a/bootstrap/bungeecord/pom.xml
+++ b/bootstrap/bungeecord/pom.xml
@@ -20,7 +20,7 @@
net.md-5
bungeecord-api
- 1.15-SNAPSHOT
+ 1.16-R0.4-SNAPSHOT
provided
From 5a8604fe54d9391cac0288d8738b10cf31605884 Mon Sep 17 00:00:00 2001
From: Camotoy <20743703+Camotoy@users.noreply.github.com>
Date: Thu, 21 Jan 2021 19:03:46 -0500
Subject: [PATCH 3/3] Skin fixes and optimizations (#1856)
- Fix self-assigned player skins getting overwritten
- Fix players with no skin silently throwing an exception, and properly handle it instead
- CRITICAL bug fix of handling Deadmau5's skin - it's not handled by his UUID but by his username
---
.../network/session/cache/EntityCache.java | 4 +-
.../player/JavaPlayerListEntryTranslator.java | 42 ++++++-----
.../geysermc/connector/skin/SkinManager.java | 72 +++++++++++--------
3 files changed, 69 insertions(+), 49 deletions(-)
diff --git a/connector/src/main/java/org/geysermc/connector/network/session/cache/EntityCache.java b/connector/src/main/java/org/geysermc/connector/network/session/cache/EntityCache.java
index 40000551c..a2eb60053 100644
--- a/connector/src/main/java/org/geysermc/connector/network/session/cache/EntityCache.java
+++ b/connector/src/main/java/org/geysermc/connector/network/session/cache/EntityCache.java
@@ -128,8 +128,8 @@ public class EntityCache {
return playerEntities.get(uuid);
}
- public void removePlayerEntity(UUID uuid) {
- playerEntities.remove(uuid);
+ public PlayerEntity removePlayerEntity(UUID uuid) {
+ return playerEntities.remove(uuid);
}
public void addBossBar(UUID uuid, BossBar bossBar) {
diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/player/JavaPlayerListEntryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/player/JavaPlayerListEntryTranslator.java
index cd627c645..b8a7972c8 100644
--- a/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/player/JavaPlayerListEntryTranslator.java
+++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/player/JavaPlayerListEntryTranslator.java
@@ -25,6 +25,11 @@
package org.geysermc.connector.network.translators.java.entity.player;
+import com.github.steveice10.mc.protocol.data.game.PlayerListEntry;
+import com.github.steveice10.mc.protocol.data.game.PlayerListEntryAction;
+import com.github.steveice10.mc.protocol.packet.ingame.server.ServerPlayerListEntryPacket;
+import com.nukkitx.math.vector.Vector3f;
+import com.nukkitx.protocol.bedrock.packet.PlayerListPacket;
import org.geysermc.connector.GeyserConnector;
import org.geysermc.connector.entity.player.PlayerEntity;
import org.geysermc.connector.network.session.GeyserSession;
@@ -32,12 +37,6 @@ import org.geysermc.connector.network.translators.PacketTranslator;
import org.geysermc.connector.network.translators.Translator;
import org.geysermc.connector.skin.SkinManager;
-import com.github.steveice10.mc.protocol.data.game.PlayerListEntry;
-import com.github.steveice10.mc.protocol.data.game.PlayerListEntryAction;
-import com.github.steveice10.mc.protocol.packet.ingame.server.ServerPlayerListEntryPacket;
-import com.nukkitx.math.vector.Vector3f;
-import com.nukkitx.protocol.bedrock.packet.PlayerListPacket;
-
@Translator(packet = ServerPlayerListEntryPacket.class)
public class JavaPlayerListEntryTranslator extends PacketTranslator {
@Override
@@ -57,9 +56,6 @@ public class JavaPlayerListEntryTranslator extends PacketTranslator
- GeyserConnector.getInstance().getLogger().debug("Loaded Local Bedrock Java Skin Data"));
} else {
playerEntity = session.getEntityCache().getPlayerEntity(entry.getProfile().getId());
}
@@ -74,27 +70,35 @@ public class JavaPlayerListEntryTranslator extends PacketTranslator
+ GeyserConnector.getInstance().getLogger().debug("Loaded Local Bedrock Java Skin Data for " + session.getClientData().getUsername()));
+ } else {
+ playerEntity.setValid(true);
+ PlayerListPacket.Entry playerListEntry = SkinManager.buildCachedEntry(session, playerEntity);
- translate.getEntries().add(playerListEntry);
+ translate.getEntries().add(playerListEntry);
+ }
break;
case REMOVE_PLAYER:
- PlayerEntity entity = session.getEntityCache().getPlayerEntity(entry.getProfile().getId());
+ // As the player entity is no longer present, we can remove the entry
+ PlayerEntity entity = session.getEntityCache().removePlayerEntity(entry.getProfile().getId());
if (entity != null) {
// Just remove the entity's player list status
// Don't despawn the entity - the Java server will also take care of that.
entity.setPlayerList(false);
}
- // As the player entity is no longer present, we can remove the entry
- session.getEntityCache().removePlayerEntity(entry.getProfile().getId());
if (entity == session.getPlayerEntity()) {
// If removing ourself we use our AuthData UUID
translate.getEntries().add(new PlayerListPacket.Entry(session.getAuthData().getUUID()));
@@ -105,7 +109,7 @@ public class JavaPlayerListEntryTranslator extends PacketTranslator