aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0524-Implement-methods-to-convert-between-Component-and-B.patch
blob: 614386ecdece9b1a03cba097025fc5bea7ce0166 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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 764395fe8e49d811294ca82887fee91ca6cd01fc..4057ade698a227b4f6efd3aa30b16d78c777be83 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -227,6 +227,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
         io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command
         com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
         com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
+        io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // Paper - init PaperBrigadierProvider
 
         this.setPvpAllowed(dedicatedserverproperties.pvp);
         this.setFlightAllowed(dedicatedserverproperties.allowFlight);