mirror of
https://github.com/Minestom/Minestom.git
synced 2025-02-12 10:21:39 +01:00
Rename serializer and make static static
This commit is contained in:
parent
7fd3daae5f
commit
aa2d1f6397
@ -2,7 +2,7 @@ package net.minestom.server;
|
||||
|
||||
import net.minestom.server.advancements.AdvancementManager;
|
||||
import net.minestom.server.adventure.bossbar.BossBarManager;
|
||||
import net.minestom.server.adventure.SerializationManager;
|
||||
import net.minestom.server.adventure.AdventureSerializer;
|
||||
import net.minestom.server.adventure.audience.Audiences;
|
||||
import net.minestom.server.benchmark.BenchmarkManager;
|
||||
import net.minestom.server.command.CommandManager;
|
||||
@ -118,7 +118,6 @@ public final class MinecraftServer {
|
||||
private static DimensionTypeManager dimensionTypeManager;
|
||||
private static BiomeManager biomeManager;
|
||||
private static AdvancementManager advancementManager;
|
||||
private static SerializationManager serializationManager;
|
||||
private static BossBarManager bossBarManager;
|
||||
private static Audiences audiences;
|
||||
|
||||
@ -186,7 +185,6 @@ public final class MinecraftServer {
|
||||
dimensionTypeManager = new DimensionTypeManager();
|
||||
biomeManager = new BiomeManager();
|
||||
advancementManager = new AdvancementManager();
|
||||
serializationManager = new SerializationManager();
|
||||
bossBarManager = new BossBarManager();
|
||||
audiences = new Audiences();
|
||||
|
||||
@ -436,16 +434,6 @@ public final class MinecraftServer {
|
||||
return connectionManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the manager handing component serialization.
|
||||
*
|
||||
* @return the manager
|
||||
*/
|
||||
public static SerializationManager getSerializationManager() {
|
||||
checkInitStatus(serializationManager);
|
||||
return serializationManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the boss bar manager.
|
||||
*
|
||||
|
@ -14,10 +14,10 @@ import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* Manager class for handling Adventure serialization. By default this will simply
|
||||
* serialize components to Strings using {@link GsonComponentSerializer}. However, this
|
||||
* Manager class for handling Adventure serialization. By default AdventureSerializer will simply
|
||||
* serialize components to Strings using {@link GsonComponentSerializer}. However, AdventureSerializer
|
||||
* class can be used to change the way text is serialized. For example, a pre-JSON
|
||||
* implementation of Minestom could change this to the plain component serializer.
|
||||
* implementation of Minestom could change AdventureSerializer to the plain component serializer.
|
||||
* <br><br>
|
||||
* This manager also performs translation on all messages and the {@code serialize}
|
||||
* method should be used when converting {@link Component}s into strings. This allows for
|
||||
@ -26,7 +26,7 @@ import java.util.function.Function;
|
||||
* own translations, use {@link GlobalTranslator#addSource(Translator)} with a
|
||||
* {@link TranslationRegistry} or your own implementation of {@link Translator}.
|
||||
*/
|
||||
public class SerializationManager {
|
||||
public class AdventureSerializer {
|
||||
/**
|
||||
* If components should be automatically translated in outgoing packets.
|
||||
*/
|
||||
@ -34,16 +34,18 @@ public class SerializationManager {
|
||||
|
||||
protected static final Localizable NULL_LOCALIZABLE = () -> null;
|
||||
|
||||
private Function<Component, String> serializer = component -> GsonComponentSerializer.gson().serialize(component);
|
||||
private Locale defaultLocale = Locale.US;
|
||||
private static Function<Component, String> serializer = component -> GsonComponentSerializer.gson().serialize(component);
|
||||
private static Locale defaultLocale = Locale.US;
|
||||
|
||||
private AdventureSerializer() {}
|
||||
|
||||
/**
|
||||
* Gets the root serializer that is used to convert components into strings.
|
||||
*
|
||||
* @return the serializer
|
||||
*/
|
||||
public @NotNull Function<Component, String> getSerializer() {
|
||||
return this.serializer;
|
||||
public static @NotNull Function<Component, String> getSerializer() {
|
||||
return AdventureSerializer.serializer;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -51,8 +53,8 @@ public class SerializationManager {
|
||||
*
|
||||
* @param serializer the serializer
|
||||
*/
|
||||
public void setSerializer(@NotNull Function<Component, String> serializer) {
|
||||
this.serializer = serializer;
|
||||
public static void setSerializer(@NotNull Function<Component, String> serializer) {
|
||||
AdventureSerializer.serializer = serializer;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -62,7 +64,7 @@ public class SerializationManager {
|
||||
*
|
||||
* @return the default locale
|
||||
*/
|
||||
public @NotNull Locale getDefaultLocale() {
|
||||
public static @NotNull Locale getDefaultLocale() {
|
||||
return defaultLocale;
|
||||
}
|
||||
|
||||
@ -73,17 +75,17 @@ public class SerializationManager {
|
||||
*
|
||||
* @param defaultLocale the new default locale
|
||||
*/
|
||||
public void setDefaultLocale(@NotNull Locale defaultLocale) {
|
||||
this.defaultLocale = defaultLocale;
|
||||
public static void setDefaultLocale(@NotNull Locale defaultLocale) {
|
||||
AdventureSerializer.defaultLocale = defaultLocale;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the global translator object used by this manager. This is just shorthand for
|
||||
* Gets the global translator object used by AdventureSerializer manager. This is just shorthand for
|
||||
* {@link GlobalTranslator#get()}.
|
||||
*
|
||||
* @return the global translator
|
||||
*/
|
||||
public @NotNull GlobalTranslator getTranslator() {
|
||||
public static @NotNull GlobalTranslator getTranslator() {
|
||||
return GlobalTranslator.get();
|
||||
}
|
||||
|
||||
@ -96,8 +98,8 @@ public class SerializationManager {
|
||||
*
|
||||
* @return the prepared component
|
||||
*/
|
||||
public @NotNull Component translate(@NotNull Component component, @NotNull Localizable localizable) {
|
||||
return GlobalTranslator.renderer().render(component, Objects.requireNonNullElse(localizable.getLocale(), this.getDefaultLocale()));
|
||||
public static @NotNull Component translate(@NotNull Component component, @NotNull Localizable localizable) {
|
||||
return GlobalTranslator.renderer().render(component, Objects.requireNonNullElse(localizable.getLocale(), AdventureSerializer.getDefaultLocale()));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -109,7 +111,7 @@ public class SerializationManager {
|
||||
*
|
||||
* @return the prepared component
|
||||
*/
|
||||
public @NotNull Component translate(@NotNull Component component, @NotNull Locale locale) {
|
||||
public static @NotNull Component translate(@NotNull Component component, @NotNull Locale locale) {
|
||||
return GlobalTranslator.renderer().render(component, locale);
|
||||
}
|
||||
|
||||
@ -120,8 +122,8 @@ public class SerializationManager {
|
||||
*
|
||||
* @return the serialized string
|
||||
*/
|
||||
public @NotNull String serialize(@NotNull Component component) {
|
||||
return this.serializer.apply(component);
|
||||
public static @NotNull String serialize(@NotNull Component component) {
|
||||
return AdventureSerializer.serializer.apply(component);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -132,8 +134,8 @@ public class SerializationManager {
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
public String translateAndSerialize(@NotNull Component component, @NotNull Localizable localizable) {
|
||||
return this.translateAndSerialize(component, Objects.requireNonNullElse(localizable.getLocale(), this.getDefaultLocale()));
|
||||
public static String translateAndSerialize(@NotNull Component component, @NotNull Localizable localizable) {
|
||||
return AdventureSerializer.translateAndSerialize(component, Objects.requireNonNullElse(localizable.getLocale(), AdventureSerializer.getDefaultLocale()));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -144,8 +146,8 @@ public class SerializationManager {
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
public String translateAndSerialize(@NotNull Component component, @NotNull Locale locale) {
|
||||
return this.serialize(this.translate(component, locale));
|
||||
public static String translateAndSerialize(@NotNull Component component, @NotNull Locale locale) {
|
||||
return AdventureSerializer.serialize(AdventureSerializer.translate(component, locale));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -156,8 +158,8 @@ public class SerializationManager {
|
||||
* @return {@code true} if the component can be translated server-side,
|
||||
* {@code false} otherwise
|
||||
*/
|
||||
public boolean isTranslatable(@NotNull Component component) {
|
||||
return !component.equals(this.translate(component, this.getDefaultLocale()));
|
||||
public static boolean isTranslatable(@NotNull Component component) {
|
||||
return !component.equals(AdventureSerializer.translate(component, AdventureSerializer.getDefaultLocale()));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -166,9 +168,9 @@ public class SerializationManager {
|
||||
* @return {@code true} if any of the components can be translated server-side,
|
||||
* {@code false} otherwise
|
||||
*/
|
||||
public boolean areAnyTranslatable(@NotNull Collection<Component> components) {
|
||||
public static boolean areAnyTranslatable(@NotNull Collection<Component> components) {
|
||||
for (Component component : components) {
|
||||
if (this.isTranslatable(component)) {
|
||||
if (AdventureSerializer.isTranslatable(component)) {
|
||||
return true;
|
||||
}
|
||||
}
|
@ -16,7 +16,7 @@ public interface Localizable {
|
||||
* @return the empty localizable
|
||||
*/
|
||||
static @NotNull Localizable empty() {
|
||||
return SerializationManager.NULL_LOCALIZABLE;
|
||||
return AdventureSerializer.NULL_LOCALIZABLE;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -6,6 +6,7 @@ import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.adventure.AdventureSerializer;
|
||||
import net.minestom.server.utils.MathUtils;
|
||||
import net.minestom.server.utils.time.UpdateOption;
|
||||
import net.minestom.server.utils.validate.Check;
|
||||
@ -126,7 +127,7 @@ public final class BenchmarkManager {
|
||||
benchmarkMessage.append(Component.newline());
|
||||
}
|
||||
|
||||
return MinecraftServer.getSerializationManager().serialize(benchmarkMessage.build());
|
||||
return AdventureSerializer.serialize(benchmarkMessage.build());
|
||||
}
|
||||
|
||||
private void refreshData() {
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.minestom.server.entity;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.adventure.AdventureSerializer;
|
||||
import net.minestom.server.chat.JsonMessage;
|
||||
import net.minestom.server.item.ItemStack;
|
||||
import net.minestom.server.network.packet.server.play.EntityMetaDataPacket;
|
||||
@ -55,7 +55,7 @@ public class Metadata {
|
||||
}
|
||||
|
||||
public static Value<Component> Chat(@NotNull Component value) {
|
||||
return new Value<>(TYPE_CHAT, value, writer -> writer.writeSizedString(MinecraftServer.getSerializationManager().serialize(value)));
|
||||
return new Value<>(TYPE_CHAT, value, writer -> writer.writeSizedString(AdventureSerializer.serialize(value)));
|
||||
}
|
||||
|
||||
public static Value<Component> OptChat(@Nullable Component value) {
|
||||
@ -63,7 +63,7 @@ public class Metadata {
|
||||
final boolean present = value != null;
|
||||
writer.writeBoolean(present);
|
||||
if (present) {
|
||||
writer.writeSizedString(MinecraftServer.getSerializationManager().serialize(value));
|
||||
writer.writeSizedString(AdventureSerializer.serialize(value));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ package net.minestom.server.item.metadata;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.adventure.AdventureSerializer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jglrxavpok.hephaistos.nbt.NBTCompound;
|
||||
@ -104,7 +104,7 @@ public class WritableBookMeta extends ItemMeta {
|
||||
if (!pages.isEmpty()) {
|
||||
NBTList<NBTString> list = new NBTList<>(NBTTypes.TAG_String);
|
||||
for (Component page : pages) {
|
||||
list.add(new NBTString(MinecraftServer.getSerializationManager().serialize(page)));
|
||||
list.add(new NBTString(AdventureSerializer.serialize(page)));
|
||||
}
|
||||
compound.set("pages", list);
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ package net.minestom.server.item.metadata;
|
||||
import net.kyori.adventure.inventory.Book;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.adventure.AdventureSerializer;
|
||||
import net.minestom.server.adventure.Localizable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jglrxavpok.hephaistos.nbt.NBTCompound;
|
||||
@ -174,7 +174,7 @@ public class WrittenBookMeta extends ItemMeta {
|
||||
if (!pages.isEmpty()) {
|
||||
NBTList<NBTString> list = new NBTList<>(NBTTypes.TAG_String);
|
||||
for (Component page : pages) {
|
||||
list.add(new NBTString(MinecraftServer.getSerializationManager().serialize(page)));
|
||||
list.add(new NBTString(AdventureSerializer.serialize(page)));
|
||||
}
|
||||
compound.set("pages", list);
|
||||
}
|
||||
@ -211,8 +211,8 @@ public class WrittenBookMeta extends ItemMeta {
|
||||
WrittenBookMeta meta = new WrittenBookMeta();
|
||||
meta.resolved = false;
|
||||
meta.generation = WrittenBookGeneration.ORIGINAL;
|
||||
meta.author = MinecraftServer.getSerializationManager().translateAndSerialize(book.author(), localizable);
|
||||
meta.title = MinecraftServer.getSerializationManager().translateAndSerialize(book.title(), localizable);
|
||||
meta.author = AdventureSerializer.translateAndSerialize(book.author(), localizable);
|
||||
meta.title = AdventureSerializer.translateAndSerialize(book.title(), localizable);
|
||||
meta.pages = new ArrayList<>();
|
||||
meta.pages.addAll(book.pages());
|
||||
|
||||
|
@ -5,7 +5,7 @@ import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.socket.SocketChannel;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.adventure.SerializationManager;
|
||||
import net.minestom.server.adventure.AdventureSerializer;
|
||||
import net.minestom.server.entity.PlayerSkin;
|
||||
import net.minestom.server.extras.mojangAuth.Decrypter;
|
||||
import net.minestom.server.extras.mojangAuth.Encrypter;
|
||||
@ -27,7 +27,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.crypto.SecretKey;
|
||||
import java.awt.Component;
|
||||
import java.net.SocketAddress;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
@ -188,8 +187,8 @@ public class NettyPlayerConnection extends PlayerConnection {
|
||||
} else if (message instanceof ServerPacket) {
|
||||
ServerPacket serverPacket = (ServerPacket) message;
|
||||
|
||||
if ((SerializationManager.AUTOMATIC_COMPONENT_TRANSLATION && !skipTranslating) && getPlayer() != null && serverPacket instanceof ComponentHoldingServerPacket) {
|
||||
serverPacket = ((ComponentHoldingServerPacket) serverPacket).copyWithOperator(component -> MinecraftServer.getSerializationManager().translate(component, getPlayer()));
|
||||
if ((AdventureSerializer.AUTOMATIC_COMPONENT_TRANSLATION && !skipTranslating) && getPlayer() != null && serverPacket instanceof ComponentHoldingServerPacket) {
|
||||
serverPacket = ((ComponentHoldingServerPacket) serverPacket).copyWithOperator(component -> AdventureSerializer.translate(component, getPlayer()));
|
||||
}
|
||||
|
||||
synchronized (tickBuffer) {
|
||||
|
@ -5,6 +5,7 @@ import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
import net.kyori.adventure.util.Codec;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.adventure.AdventureSerializer;
|
||||
import net.minestom.server.attribute.Attribute;
|
||||
import net.minestom.server.attribute.AttributeOperation;
|
||||
import net.minestom.server.data.Data;
|
||||
@ -317,7 +318,7 @@ public final class NBTUtils {
|
||||
if (hasDisplayName || hasLore) {
|
||||
NBTCompound displayNBT = new NBTCompound();
|
||||
if (hasDisplayName) {
|
||||
final String name = MinecraftServer.getSerializationManager().serialize(itemStack.getDisplayName());
|
||||
final String name = AdventureSerializer.serialize(itemStack.getDisplayName());
|
||||
displayNBT.setString("Name", name);
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@ package net.minestom.server.utils;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.adventure.SerializationManager;
|
||||
import net.minestom.server.adventure.AdventureSerializer;
|
||||
import net.minestom.server.entity.Player;
|
||||
import net.minestom.server.listener.manager.PacketListenerManager;
|
||||
import net.minestom.server.network.netty.packet.FramedPacket;
|
||||
@ -50,8 +50,8 @@ public final class PacketUtils {
|
||||
// work out if the packet needs to be sent individually due to server-side translating
|
||||
boolean needsTranslating = false;
|
||||
|
||||
if (SerializationManager.AUTOMATIC_COMPONENT_TRANSLATION && packet instanceof ComponentHoldingServerPacket) {
|
||||
needsTranslating = MinecraftServer.getSerializationManager().areAnyTranslatable(((ComponentHoldingServerPacket) packet).components());
|
||||
if (AdventureSerializer.AUTOMATIC_COMPONENT_TRANSLATION && packet instanceof ComponentHoldingServerPacket) {
|
||||
needsTranslating = AdventureSerializer.areAnyTranslatable(((ComponentHoldingServerPacket) packet).components());
|
||||
}
|
||||
|
||||
if (MinecraftServer.hasGroupedPacket() && !needsTranslating) {
|
||||
|
@ -4,6 +4,7 @@ import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.adventure.AdventureSerializer;
|
||||
import net.minestom.server.item.ItemStack;
|
||||
import net.minestom.server.utils.BlockPosition;
|
||||
import net.minestom.server.utils.NBTUtils;
|
||||
@ -69,7 +70,7 @@ public class BinaryWriter extends OutputStream {
|
||||
* @param component the component
|
||||
*/
|
||||
public void writeComponent(Component component) {
|
||||
this.writeSizedString(MinecraftServer.getSerializationManager().serialize(Objects.requireNonNullElseGet(component, Component::empty)));
|
||||
this.writeSizedString(AdventureSerializer.serialize(Objects.requireNonNullElseGet(component, Component::empty)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user