From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Sat, 24 Apr 2021 02:09:32 -0700 Subject: [PATCH] Implement methods to convert between Component and Brigadier's Message diff --git a/src/main/java/io/papermc/paper/brigadier/PaperBrigadierProviderImpl.java b/src/main/java/io/papermc/paper/brigadier/PaperBrigadierProviderImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..dd6012b6a097575b2d1471be5069eccee4537c0a --- /dev/null +++ b/src/main/java/io/papermc/paper/brigadier/PaperBrigadierProviderImpl.java @@ -0,0 +1,30 @@ +package io.papermc.paper.brigadier; + +import com.mojang.brigadier.Message; +import io.papermc.paper.adventure.PaperAdventure; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.ComponentLike; +import net.minecraft.network.chat.ComponentUtils; +import org.checkerframework.checker.nullness.qual.NonNull; + +import static java.util.Objects.requireNonNull; + +public enum PaperBrigadierProviderImpl implements PaperBrigadierProvider { + INSTANCE; + + PaperBrigadierProviderImpl() { + PaperBrigadierProvider.initialize(this); + } + + @Override + public @NonNull Message message(final @NonNull ComponentLike componentLike) { + requireNonNull(componentLike, "componentLike"); + return PaperAdventure.asVanilla(componentLike.asComponent()); + } + + @Override + public @NonNull Component componentFromMessage(final @NonNull Message message) { + requireNonNull(message, "message"); + return PaperAdventure.asAdventure(ComponentUtils.fromMessage(message)); + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java index 77f49329cc903ba687c60032ba4b21786f79a56b..331c85d236922d7a4b5732cb09aa708830e1393c 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -220,6 +220,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface com.destroystokyo.paper.PaperConfig.registerCommands(); com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // load mappings for stacktrace deobf and etc. + io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider // Paper end this.setPvpAllowed(dedicatedserverproperties.pvp);