Mirror von
https://github.com/GeyserMC/Geyser.git
synchronisiert 2024-12-26 16:12:46 +01:00
Fix some instances of enchantment names not deserializing
Dieser Commit ist enthalten in:
Ursprung
73f7259b6d
Commit
ed5195a842
@ -25,8 +25,6 @@
|
|||||||
|
|
||||||
package org.geysermc.geyser.item.enchantment;
|
package org.geysermc.geyser.item.enchantment;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.function.Function;
|
|
||||||
import net.kyori.adventure.key.Key;
|
import net.kyori.adventure.key.Key;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
import org.cloudburstmc.nbt.NbtMap;
|
import org.cloudburstmc.nbt.NbtMap;
|
||||||
@ -35,11 +33,13 @@ import org.geysermc.geyser.item.Items;
|
|||||||
import org.geysermc.geyser.registry.Registries;
|
import org.geysermc.geyser.registry.Registries;
|
||||||
import org.geysermc.geyser.session.cache.registry.RegistryEntryContext;
|
import org.geysermc.geyser.session.cache.registry.RegistryEntryContext;
|
||||||
import org.geysermc.geyser.translator.text.MessageTranslator;
|
import org.geysermc.geyser.translator.text.MessageTranslator;
|
||||||
|
import org.geysermc.mcprotocollib.protocol.data.game.item.component.HolderSet;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import org.geysermc.mcprotocollib.protocol.data.game.item.component.HolderSet;
|
import java.util.function.Function;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param description only populated if {@link #bedrockEnchantment()} is not null.
|
* @param description only populated if {@link #bedrockEnchantment()} is not null.
|
||||||
|
@ -40,18 +40,25 @@ import net.kyori.adventure.text.serializer.legacy.CharacterAndFormat;
|
|||||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||||
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
||||||
import org.cloudburstmc.nbt.NbtMap;
|
import org.cloudburstmc.nbt.NbtMap;
|
||||||
import org.cloudburstmc.nbt.NbtType;
|
|
||||||
import org.cloudburstmc.protocol.bedrock.packet.TextPacket;
|
import org.cloudburstmc.protocol.bedrock.packet.TextPacket;
|
||||||
import org.geysermc.geyser.GeyserImpl;
|
import org.geysermc.geyser.GeyserImpl;
|
||||||
import org.geysermc.geyser.session.GeyserSession;
|
import org.geysermc.geyser.session.GeyserSession;
|
||||||
import org.geysermc.geyser.text.*;
|
import org.geysermc.geyser.text.ChatColor;
|
||||||
|
import org.geysermc.geyser.text.ChatDecoration;
|
||||||
|
import org.geysermc.geyser.text.DummyLegacyHoverEventSerializer;
|
||||||
|
import org.geysermc.geyser.text.GeyserLocale;
|
||||||
|
import org.geysermc.geyser.text.GsonComponentSerializerWrapper;
|
||||||
|
import org.geysermc.geyser.text.MinecraftTranslationRegistry;
|
||||||
import org.geysermc.mcprotocollib.protocol.data.DefaultComponentSerializer;
|
import org.geysermc.mcprotocollib.protocol.data.DefaultComponentSerializer;
|
||||||
import org.geysermc.mcprotocollib.protocol.data.game.Holder;
|
import org.geysermc.mcprotocollib.protocol.data.game.Holder;
|
||||||
import org.geysermc.mcprotocollib.protocol.data.game.chat.ChatType;
|
import org.geysermc.mcprotocollib.protocol.data.game.chat.ChatType;
|
||||||
import org.geysermc.mcprotocollib.protocol.data.game.chat.ChatTypeDecoration;
|
import org.geysermc.mcprotocollib.protocol.data.game.chat.ChatTypeDecoration;
|
||||||
import org.geysermc.mcprotocollib.protocol.data.game.scoreboard.TeamColor;
|
import org.geysermc.mcprotocollib.protocol.data.game.scoreboard.TeamColor;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class MessageTranslator {
|
public class MessageTranslator {
|
||||||
// These are used for handling the translations of the messages
|
// These are used for handling the translations of the messages
|
||||||
@ -434,7 +441,7 @@ public class MessageTranslator {
|
|||||||
* Deserialize an NbtMap with a description text component (usually provided from a registry) into a Bedrock-formatted string.
|
* Deserialize an NbtMap with a description text component (usually provided from a registry) into a Bedrock-formatted string.
|
||||||
*/
|
*/
|
||||||
public static String deserializeDescription(GeyserSession session, NbtMap tag) {
|
public static String deserializeDescription(GeyserSession session, NbtMap tag) {
|
||||||
NbtMap description = tag.getCompound("description");
|
Object description = tag.get("description");
|
||||||
Component parsed = componentFromNbtTag(description);
|
Component parsed = componentFromNbtTag(description);
|
||||||
return convertMessage(session, parsed);
|
return convertMessage(session, parsed);
|
||||||
}
|
}
|
||||||
@ -482,7 +489,8 @@ public class MessageTranslator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new IllegalArgumentException("Expected tag to be a literal string, a list of components, or a component object with a text/translate key");
|
GeyserImpl.getInstance().getLogger().error("Expected tag to be a literal string, a list of components, or a component object with a text/translate key: " + nbtTag);
|
||||||
|
return Component.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Component> componentsFromNbtList(List<?> list, Style style) {
|
private static List<Component> componentsFromNbtList(List<?> list, Style style) {
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren