PaperMC/patches/server/0587-Implement-methods-to-convert-between-Component-and-B.patch
Noah van der Aa b8edb0e130
Updated Upstream (Bukkit/CraftBukkit/Spigot) (#9648)
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
6b34da8f SPIGOT-7467: Add getAddress to RemoteConsoleCommandSender

CraftBukkit Changes:
db4ba2897 SPIGOT-7467: Add getAddress to RemoteConsoleCommandSender
4f7ff4dec PR-1246: Add missing AbstractTestingBase to tests which need them
f70a7b68d SPIGOT-7465, MC-264979: Fresh installations print NoSuchFileException for server.properties
8ef7afef6 PR-1240: Call BlockGrowEvent for vines that are growing on additional sides of an existing vine block

Spigot Changes:
d2eba2c8 Rebuild patches
2023-08-28 13:05:48 +02:00

55 lines
2.6 KiB
Diff

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 3acdac903ec7afb034f86d725ca0dc949babd1fc..60d5142f17c561fd7268999faaa084642abbb65c 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -209,6 +209,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
io.papermc.paper.command.PaperCommands.registerCommands(this);
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics();
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now
+ io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider
// Paper end
this.setPvpAllowed(dedicatedserverproperties.pvp);