From ddd22623803d5d2a06b9804caf168f3e17eea931 Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Wed, 15 Jun 2022 18:32:27 -0400 Subject: [PATCH] Custom chat types at login are valid Fixes https://github.com/GeyserMC/Geyser-Fabric/issues/55 --- core/pom.xml | 2 +- .../java/org/geysermc/geyser/session/GeyserSession.java | 6 ++++-- .../translator/protocol/java/JavaLoginTranslator.java | 9 +++++---- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index df507e892..a14cf1c29 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -155,7 +155,7 @@ com.github.GeyserMC MCProtocolLib - bb2b414 + 54fc9f0 compile diff --git a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java index c5fe7f2bf..46f5eb1ca 100644 --- a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java +++ b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java @@ -80,6 +80,8 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.objects.Object2IntMap; +import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; import lombok.AccessLevel; @@ -499,7 +501,7 @@ public class GeyserSession implements GeyserConnection, CommandSender { * Stores a map of all statistics sent from the server. * The server only sends new statistics back to us, so in order to show all statistics we need to cache existing ones. */ - private final Map statistics = new HashMap<>(); + private final Object2IntMap statistics = new Object2IntOpenHashMap<>(0); /** * Whether we're expecting statistics to be sent back to us. @@ -1688,7 +1690,7 @@ public class GeyserSession implements GeyserConnection, CommandSender { * * @param statistics Updated statistics values */ - public void updateStatistics(@NonNull Map statistics) { + public void updateStatistics(@Nonnull Object2IntMap statistics) { if (this.statistics.isEmpty()) { // Initialize custom statistics to 0, so that they appear in the form for (CustomStatistic customStatistic : CustomStatistic.values()) { diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java index cd26e53e5..5d259e243 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java @@ -25,7 +25,7 @@ package org.geysermc.geyser.translator.protocol.java; -import com.github.steveice10.mc.protocol.data.game.MessageType; +import com.github.steveice10.mc.protocol.data.game.BuiltinChatType; import com.github.steveice10.mc.protocol.packet.ingame.clientbound.ClientboundLoginPacket; import com.github.steveice10.mc.protocol.packet.ingame.serverbound.ServerboundCustomPayloadPacket; import com.github.steveice10.opennbt.tag.builtin.CompoundTag; @@ -82,14 +82,15 @@ public class JavaLoginTranslator extends PacketTranslator TextPacket.Type.CHAT; case SYSTEM -> TextPacket.Type.SYSTEM; case GAME_INFO -> TextPacket.Type.TIP; default -> TextPacket.Type.RAW; - }; + } : TextPacket.Type.RAW; chatTypes.put(id, new ChatTypeEntry(bedrockType, textDecoration)); }