diff --git a/paper-api/build.gradle.kts b/paper-api/build.gradle.kts
index 1606e63a1492..5c8aed1b65f4 100644
--- a/paper-api/build.gradle.kts
+++ b/paper-api/build.gradle.kts
@@ -10,7 +10,7 @@ java {
}
val annotationsVersion = "26.0.2"
-val adventureVersion = "4.25.0"
+val adventureVersion = "5.0.0-SNAPSHOT"
val bungeeCordChatVersion = "1.21-R0.2-deprecated+build.21"
val slf4jVersion = "2.0.16"
val log4jVersion = "2.24.1"
diff --git a/paper-api/src/main/java/co/aikar/timings/TimingsReportListener.java b/paper-api/src/main/java/co/aikar/timings/TimingsReportListener.java
index df066d6f8d55..eb63d2a5a832 100644
--- a/paper-api/src/main/java/co/aikar/timings/TimingsReportListener.java
+++ b/paper-api/src/main/java/co/aikar/timings/TimingsReportListener.java
@@ -60,11 +60,6 @@ public void done(@Nullable String url) {
}
}
- @Override
- public void sendMessage(final @NotNull net.kyori.adventure.identity.Identity source, final @NotNull net.kyori.adventure.text.Component message, final @NotNull net.kyori.adventure.audience.MessageType type) {
- net.kyori.adventure.audience.ForwardingAudience.super.sendMessage(source, message, type);
- }
-
@NotNull
@Override
public Iterable extends net.kyori.adventure.audience.Audience> audiences() {
diff --git a/paper-api/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java b/paper-api/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java
index c56aa35dd1f1..89d928bd750a 100644
--- a/paper-api/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java
+++ b/paper-api/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java
@@ -27,12 +27,7 @@
import io.papermc.paper.util.TransformingRandomAccessList;
import java.util.ArrayList;
import java.util.List;
-import java.util.Objects;
-import java.util.stream.Stream;
import net.kyori.adventure.text.Component;
-import net.kyori.examination.Examinable;
-import net.kyori.examination.ExaminableProperty;
-import net.kyori.examination.string.StringExaminer;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@@ -241,7 +236,7 @@ private static List fromStrings(final List suggestions) {
/**
* A rich tab completion, consisting of a string suggestion, and a nullable {@link Component} tooltip.
*/
- public interface Completion extends Examinable {
+ public interface Completion {
/**
* Get the suggestion string for this {@link Completion}.
@@ -257,11 +252,6 @@ public interface Completion extends Examinable {
*/
@Nullable Component tooltip();
- @Override
- default Stream extends ExaminableProperty> examinableProperties() {
- return Stream.of(ExaminableProperty.of("suggestion", this.suggestion()), ExaminableProperty.of("tooltip", this.tooltip()));
- }
-
/**
* Create a new {@link Completion} from a suggestion string.
*
@@ -287,47 +277,6 @@ static Completion completion(final String suggestion, final @Nullable Component
}
@ApiStatus.Internal
- static final class CompletionImpl implements Completion {
-
- private final String suggestion;
- private final @Nullable Component tooltip;
-
- CompletionImpl(final String suggestion, final @Nullable Component tooltip) {
- this.suggestion = suggestion;
- this.tooltip = tooltip;
- }
-
- @Override
- public String suggestion() {
- return this.suggestion;
- }
-
- @Override
- public @Nullable Component tooltip() {
- return this.tooltip;
- }
-
- @Override
- public boolean equals(final @Nullable Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || this.getClass() != o.getClass()) {
- return false;
- }
- final CompletionImpl that = (CompletionImpl) o;
- return this.suggestion.equals(that.suggestion)
- && Objects.equals(this.tooltip, that.tooltip);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(this.suggestion, this.tooltip);
- }
-
- @Override
- public String toString() {
- return StringExaminer.simpleEscaping().examine(this);
- }
+ record CompletionImpl(String suggestion, @Nullable Component tooltip) implements Completion {
}
}
diff --git a/paper-api/src/main/java/io/papermc/paper/text/PaperComponents.java b/paper-api/src/main/java/io/papermc/paper/text/PaperComponents.java
index 934d1d3ca490..66f1d1cb7e40 100644
--- a/paper-api/src/main/java/io/papermc/paper/text/PaperComponents.java
+++ b/paper-api/src/main/java/io/papermc/paper/text/PaperComponents.java
@@ -6,7 +6,6 @@
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
-import net.kyori.adventure.text.serializer.plain.PlainComponentSerializer;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
@@ -95,21 +94,6 @@ public static ComponentFlattener flattener() {
return Bukkit.getUnsafe().componentFlattener();
}
- /**
- * Get a serializer for {@link Component}s that will convert components to
- * a plain-text string.
- *
- * Implementations may provide a serializer capable of processing any
- * information that requires access to implementation details.
- *
- * @return a serializer to plain text
- * @deprecated will be removed in adventure 5.0.0, use {@link PlainTextComponentSerializer#plainText()}
- */
- @Deprecated(forRemoval = true, since = "1.18.1")
- public static PlainComponentSerializer plainSerializer() {
- return Bukkit.getUnsafe().plainComponentSerializer();
- }
-
/**
* Get a serializer for {@link Component}s that will convert components to
* a plain-text string.
diff --git a/paper-api/src/main/java/org/bukkit/UnsafeValues.java b/paper-api/src/main/java/org/bukkit/UnsafeValues.java
index f342b8541ef4..02fe439769b6 100644
--- a/paper-api/src/main/java/org/bukkit/UnsafeValues.java
+++ b/paper-api/src/main/java/org/bukkit/UnsafeValues.java
@@ -37,7 +37,6 @@
public interface UnsafeValues {
// Paper start
net.kyori.adventure.text.flattener.ComponentFlattener componentFlattener();
- @Deprecated(forRemoval = true) net.kyori.adventure.text.serializer.plain.PlainComponentSerializer plainComponentSerializer();
@Deprecated(forRemoval = true) net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer plainTextSerializer();
@Deprecated(forRemoval = true) net.kyori.adventure.text.serializer.gson.GsonComponentSerializer gsonComponentSerializer();
@Deprecated(forRemoval = true) net.kyori.adventure.text.serializer.gson.GsonComponentSerializer colorDownsamplingGsonComponentSerializer();
diff --git a/paper-api/src/main/java/org/bukkit/command/CommandSender.java b/paper-api/src/main/java/org/bukkit/command/CommandSender.java
index 1fd0f5f4dc26..22d75ff22388 100644
--- a/paper-api/src/main/java/org/bukkit/command/CommandSender.java
+++ b/paper-api/src/main/java/org/bukkit/command/CommandSender.java
@@ -1,8 +1,6 @@
package org.bukkit.command;
import java.util.UUID;
-import net.kyori.adventure.audience.MessageType;
-import net.kyori.adventure.identity.Identity;
import net.kyori.adventure.text.Component;
import org.bukkit.Server;
import org.bukkit.permissions.Permissible;
@@ -38,7 +36,7 @@ public interface CommandSender extends net.kyori.adventure.audience.Audience, Pe
*
* @param message Message to be displayed
* @param sender The sender of this message
- * @see #sendMessage(net.kyori.adventure.identity.Identified, net.kyori.adventure.text.Component)
+ * @see #sendMessage(Component)
* @deprecated sender UUID is ignored
*/
@Deprecated // Paper
@@ -49,7 +47,7 @@ public interface CommandSender extends net.kyori.adventure.audience.Audience, Pe
*
* @param messages An array of messages to be displayed
* @param sender The sender of this message
- * @see #sendMessage(net.kyori.adventure.identity.Identified, net.kyori.adventure.text.Component)
+ * @see #sendMessage(Component)
* @deprecated sender UUID is ignored
*/
@Deprecated // Paper
@@ -133,11 +131,6 @@ public void sendMessage(@Nullable UUID sender, @NotNull net.md_5.bungee.api.chat
*/
public net.kyori.adventure.text.@NotNull Component name();
- @Override
- default void sendMessage(final net.kyori.adventure.identity.@NotNull Identity identity, final net.kyori.adventure.text.@NotNull Component message, final net.kyori.adventure.audience.@NotNull MessageType type) {
- this.sendMessage(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(message));
- }
-
/**
* Sends a message with the MiniMessage format to the command sender.
*
@@ -179,7 +172,7 @@ default void sendPlainMessage(final @NotNull String message) {
* the component will be sent as legacy text.
*
* @param component the component to send
- * @deprecated use {@link #sendMessage(Identity, Component, MessageType)} instead
+ * @deprecated use {@link #sendMessage(Component)} instead
*/
@Deprecated
default void sendMessage(@NotNull net.md_5.bungee.api.chat.BaseComponent component) {
@@ -193,7 +186,7 @@ default void sendMessage(@NotNull net.md_5.bungee.api.chat.BaseComponent compone
* the components will be sent as legacy text.
*
* @param components the components to send
- * @deprecated use {@link #sendMessage(Identity, Component, MessageType)} instead
+ * @deprecated use {@link #sendMessage(Component)} instead
*/
@Deprecated
default void sendMessage(@NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
diff --git a/paper-api/src/main/java/org/bukkit/command/ProxiedCommandSender.java b/paper-api/src/main/java/org/bukkit/command/ProxiedCommandSender.java
index 5c813ac024f6..f8e88ff42265 100644
--- a/paper-api/src/main/java/org/bukkit/command/ProxiedCommandSender.java
+++ b/paper-api/src/main/java/org/bukkit/command/ProxiedCommandSender.java
@@ -22,11 +22,6 @@ public interface ProxiedCommandSender extends CommandSender, net.kyori.adventure
CommandSender getCallee();
// Paper start
- @Override
- default void sendMessage(final net.kyori.adventure.identity.@NotNull Identity source, final net.kyori.adventure.text.@NotNull Component message, final net.kyori.adventure.audience.@NotNull MessageType type) {
- net.kyori.adventure.audience.ForwardingAudience.Single.super.sendMessage(source, message, type);
- }
-
@NotNull
@Override
default net.kyori.adventure.audience.Audience audience() {
diff --git a/paper-api/src/main/java/org/bukkit/entity/Entity.java b/paper-api/src/main/java/org/bukkit/entity/Entity.java
index 2c68aae864a7..087fd5f9f0fe 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Entity.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Entity.java
@@ -1086,7 +1086,7 @@ public class Spigot extends CommandSender.Spigot {
@NotNull
@Override
default net.kyori.adventure.text.event.HoverEvent asHoverEvent(final @NotNull java.util.function.UnaryOperator op) {
- return net.kyori.adventure.text.event.HoverEvent.showEntity(op.apply(net.kyori.adventure.text.event.HoverEvent.ShowEntity.of(this.getType().getKey(), this.getUniqueId(), this.customName())));
+ return net.kyori.adventure.text.event.HoverEvent.showEntity(op.apply(net.kyori.adventure.text.event.HoverEvent.ShowEntity.showEntity(this.getType().getKey(), this.getUniqueId(), this.customName())));
}
/**
diff --git a/paper-api/src/main/java/org/bukkit/entity/Player.java b/paper-api/src/main/java/org/bukkit/entity/Player.java
index 3eef8d533c2a..18d3290fece8 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Player.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Player.java
@@ -3553,7 +3553,7 @@ default void openSign(Sign sign) {
// Paper start
@Override
default net.kyori.adventure.text.event.HoverEvent asHoverEvent(final java.util.function.UnaryOperator op) {
- return net.kyori.adventure.text.event.HoverEvent.showEntity(op.apply(net.kyori.adventure.text.event.HoverEvent.ShowEntity.of(this.getType().getKey(), this.getUniqueId(), this.displayName())));
+ return net.kyori.adventure.text.event.HoverEvent.showEntity(op.apply(net.kyori.adventure.text.event.HoverEvent.ShowEntity.showEntity(this.getType().getKey(), this.getUniqueId(), this.displayName())));
}
// Paper end
diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/BookMeta.java b/paper-api/src/main/java/org/bukkit/inventory/meta/BookMeta.java
index f0c6943da3f7..b18d1ab2c7d6 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/meta/BookMeta.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/meta/BookMeta.java
@@ -1,10 +1,12 @@
package org.bukkit.inventory.meta;
import java.util.List;
+import net.kyori.adventure.text.Component;
import net.md_5.bungee.api.chat.BaseComponent;
import org.bukkit.Material;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
+import org.jetbrains.annotations.Contract;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
/**
* Represents a {@link Material#WRITTEN_BOOK} that can have a title, an author,
@@ -15,7 +17,8 @@
* the meta instance is not sufficient due to unusual inheritance
* with relation to {@link WritableBookMeta}.
*/
-public interface BookMeta extends WritableBookMeta, net.kyori.adventure.inventory.Book { // Paper - adventure
+@NullMarked
+public interface BookMeta extends WritableBookMeta {
/**
* Represents the generation (or level of copying) of a written book
@@ -118,7 +121,6 @@ enum Generation {
void setGeneration(@Nullable Generation generation);
@Override
- @NotNull
BookMeta clone();
// Paper start - adventure
@@ -128,42 +130,42 @@ enum Generation {
*/
@Deprecated
@Override
- @NotNull String getPage(int page);
+ String getPage(int page);
/**
* @deprecated use {@link #page(int, net.kyori.adventure.text.Component)}
*/
@Deprecated
@Override
- void setPage(int page, @NotNull String data);
+ void setPage(int page, String data);
/**
* @deprecated use {@link #pages()}
*/
@Deprecated
@Override
- @NotNull List getPages();
+ List getPages();
/**
* @deprecated use {@link #pages(List)}
*/
@Deprecated
@Override
- void setPages(@NotNull List pages);
+ void setPages(List pages);
/**
* @deprecated use {@link #pages(net.kyori.adventure.text.Component...)}
*/
@Deprecated
@Override
- void setPages(@NotNull String... pages);
+ void setPages(String... pages);
/**
* @deprecated use {@link #addPages(net.kyori.adventure.text.Component...)}
*/
@Deprecated
@Override
- void addPage(@NotNull String... pages);
+ void addPage(String... pages);
//
/**
@@ -174,8 +176,7 @@ enum Generation {
*
* @return the title of the book
*/
- @Override
- net.kyori.adventure.text.@Nullable Component title();
+ @Nullable Component title();
/**
* Sets the title of the book.
@@ -185,9 +186,8 @@ enum Generation {
* @param title the title to set
* @return the same {@link BookMeta} instance
*/
- @org.jetbrains.annotations.Contract(value = "_ -> this", pure = false)
- @Override
- @NotNull BookMeta title(net.kyori.adventure.text.@Nullable Component title);
+ @Contract(value = "_ -> this")
+ BookMeta title(@Nullable Component title);
/**
* Gets the author of the book.
@@ -197,8 +197,7 @@ enum Generation {
*
* @return the author of the book
*/
- @Override
- net.kyori.adventure.text.@Nullable Component author();
+ @Nullable Component author();
/**
* Sets the author of the book. Removes author when given null.
@@ -206,10 +205,31 @@ enum Generation {
* @param author the author to set
* @return the same {@link BookMeta} instance
*/
- @org.jetbrains.annotations.Contract(value = "_ -> this", pure = false)
- @Override
- @NotNull BookMeta author(net.kyori.adventure.text.@Nullable Component author);
+ @Contract(value = "_ -> this")
+ BookMeta author(@Nullable Component author);
+
+ /**
+ * Gets the list of pages.
+ *
+ * @return the pages
+ */
+ List pages();
+ /**
+ * Sets the pages in this book.
+ *
+ * @param pages the pages to set
+ * @return the same {@link BookMeta} instance
+ */
+ BookMeta pages(List pages);
+
+ /**
+ * Sets the pages in this book.
+ *
+ * @param pages the pages to set
+ * @return the same {@link BookMeta} instance
+ */
+ BookMeta pages(Component... pages);
/**
* Gets the specified page in the book. The page must exist.
@@ -219,7 +239,7 @@ enum Generation {
* @param page the page number to get, in range [1, getPageCount()]
* @return the page from the book
*/
- net.kyori.adventure.text.@NotNull Component page(int page);
+ Component page(int page);
/**
* Sets the specified page in the book. Pages of the book must be
@@ -233,7 +253,7 @@ enum Generation {
* @param page the page number to set, in range [1, getPageCount()]
* @param data the data to set for that page
*/
- void page(int page, net.kyori.adventure.text.@NotNull Component data);
+ void page(int page, Component data);
/**
* Adds new pages to the end of the book. Up to a maximum of 100 pages with
@@ -241,31 +261,7 @@ enum Generation {
*
* @param pages A list of strings, each being a page
*/
- void addPages(net.kyori.adventure.text.@NotNull Component @NotNull ... pages);
-
- interface BookMetaBuilder extends net.kyori.adventure.inventory.Book.Builder {
-
- @Override
- @NotNull BookMetaBuilder title(net.kyori.adventure.text.@Nullable Component title);
-
- @Override
- @NotNull BookMetaBuilder author(net.kyori.adventure.text.@Nullable Component author);
-
- @Override
- @NotNull BookMetaBuilder addPage(net.kyori.adventure.text.@NotNull Component page);
-
- @Override
- @NotNull BookMetaBuilder pages(net.kyori.adventure.text.@NotNull Component @NotNull ... pages);
-
- @Override
- @NotNull BookMetaBuilder pages(java.util.@NotNull Collection pages);
-
- @Override
- @NotNull BookMeta build();
- }
-
- @Override
- @NotNull BookMetaBuilder toBuilder();
+ void addPages(Component... pages);
// Paper end
// Spigot start
@@ -278,7 +274,6 @@ public class Spigot {
* @return the page from the book
* @deprecated in favour of {@link #page(int)}
*/
- @NotNull
@Deprecated // Paper
public BaseComponent[] getPage(int page) {
throw new UnsupportedOperationException("Not supported yet.");
@@ -306,7 +301,6 @@ public void setPage(int page, @Nullable BaseComponent... data) {
* @return list of all the pages in the book
* @deprecated in favour of {@link #pages()}
*/
- @NotNull
@Deprecated // Paper
public List getPages() {
throw new UnsupportedOperationException("Not supported yet.");
@@ -320,7 +314,7 @@ public List getPages() {
* @deprecated in favour of {@link #pages(java.util.List)}
*/
@Deprecated // Paper
- public void setPages(@NotNull List pages) {
+ public void setPages(List pages) {
throw new UnsupportedOperationException("Not supported yet.");
}
@@ -332,7 +326,7 @@ public void setPages(@NotNull List pages) {
* @deprecated in favour of {@link #pages(net.kyori.adventure.text.Component...)}
*/
@Deprecated // Paper
- public void setPages(@NotNull BaseComponent[]... pages) {
+ public void setPages(BaseComponent[]... pages) {
throw new UnsupportedOperationException("Not supported yet.");
}
@@ -344,12 +338,11 @@ public void setPages(@NotNull BaseComponent[]... pages) {
* @deprecated in favour of {@link #addPages(net.kyori.adventure.text.Component...)}
*/
@Deprecated // Paper
- public void addPage(@NotNull BaseComponent[]... pages) {
+ public void addPage(BaseComponent[]... pages) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
- @NotNull
Spigot spigot();
// Spigot end
}
diff --git a/paper-server/patches/sources/net/minecraft/network/chat/MessageSignature.java.patch b/paper-server/patches/sources/net/minecraft/network/chat/MessageSignature.java.patch
index af25ad25c9bd..d645e8ac3ab5 100644
--- a/paper-server/patches/sources/net/minecraft/network/chat/MessageSignature.java.patch
+++ b/paper-server/patches/sources/net/minecraft/network/chat/MessageSignature.java.patch
@@ -4,7 +4,7 @@
import net.minecraft.util.SignatureValidator;
public record MessageSignature(byte[] bytes) {
-+ public net.kyori.adventure.chat.SignedMessage.Signature adventure() { return () -> this.bytes; } // Paper - adventure; support signed messages
++ public net.kyori.adventure.chat.SignedMessage.Signature adventure() { return net.kyori.adventure.chat.SignedMessage.signature(bytes); } // Paper - adventure; support signed messages
public static final Codec CODEC = ExtraCodecs.BASE64_STRING.xmap(MessageSignature::new, MessageSignature::bytes);
public static final int BYTES = 256;
diff --git a/paper-server/src/main/java/com/destroystokyo/paper/console/TerminalConsoleCommandSender.java b/paper-server/src/main/java/com/destroystokyo/paper/console/TerminalConsoleCommandSender.java
index 8f07539a82f4..757690d6ff4c 100644
--- a/paper-server/src/main/java/com/destroystokyo/paper/console/TerminalConsoleCommandSender.java
+++ b/paper-server/src/main/java/com/destroystokyo/paper/console/TerminalConsoleCommandSender.java
@@ -1,13 +1,15 @@
package com.destroystokyo.paper.console;
-import net.kyori.adventure.audience.MessageType;
-import net.kyori.adventure.identity.Identity;
+import net.kyori.adventure.chat.ChatType;
+import net.kyori.adventure.chat.SignedMessage;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.logger.slf4j.ComponentLogger;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.apache.logging.log4j.LogManager;
import org.bukkit.craftbukkit.command.CraftConsoleCommandSender;
+import org.jspecify.annotations.NullMarked;
+@NullMarked
public class TerminalConsoleCommandSender extends CraftConsoleCommandSender {
private static final ComponentLogger LOGGER = ComponentLogger.logger(LogManager.getRootLogger().getName());
@@ -15,12 +17,25 @@ public class TerminalConsoleCommandSender extends CraftConsoleCommandSender {
@Override
public void sendRawMessage(String message) {
final Component msg = LegacyComponentSerializer.legacySection().deserialize(message);
- this.sendMessage(Identity.nil(), msg, MessageType.SYSTEM);
+ this.sendMessage(msg);
}
@Override
- public void sendMessage(Identity identity, Component message, MessageType type) {
+ public void sendMessage(Component message) {
LOGGER.info(message);
}
+ @Override
+ public void sendMessage(final Component message, final ChatType.Bound boundChatType) {
+ this.sendMessage(message);
+ }
+
+ @Override
+ public void sendMessage(final SignedMessage signedMessage, final ChatType.Bound boundChatType) {
+ if (signedMessage.unsignedContent() != null) {
+ this.sendMessage(signedMessage.unsignedContent());
+ } else {
+ LOGGER.info(signedMessage.message());
+ }
+ }
}
diff --git a/paper-server/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java b/paper-server/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java
index 34dc37f83538..8db0905409be 100644
--- a/paper-server/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java
+++ b/paper-server/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java
@@ -113,38 +113,38 @@ public final class AdventureCodecs {
return Key.parseable(s) ? DataResult.success(Key.key(s)) : DataResult.error(() -> "Cannot convert " + s + " to adventure Key");
}, Key::asString);
- static final Function TEXT_PAYLOAD_EXTRACTOR = a -> ((ClickEvent.Payload.Text) a.payload()).value();
+ static final Function, String> TEXT_PAYLOAD_EXTRACTOR = a -> ((ClickEvent.Payload.Text) a.payload()).value();
/*
* Click
*/
- static final MapCodec OPEN_URL_CODEC = mapCodec((instance) -> instance.group(
+ static final MapCodec> OPEN_URL_CODEC = mapCodec((instance) -> instance.group(
ExtraCodecs.UNTRUSTED_URI.fieldOf("url").forGetter(a -> {
final String url = ((ClickEvent.Payload.Text) a.payload()).value();
return URI.create(!url.contains("://") ? "https://" + url : url);
}
)
).apply(instance, (url) -> ClickEvent.openUrl(url.toString())));
- static final MapCodec OPEN_FILE_CODEC = mapCodec((instance) -> instance.group(
+ static final MapCodec> OPEN_FILE_CODEC = mapCodec((instance) -> instance.group(
Codec.STRING.fieldOf("path").forGetter(TEXT_PAYLOAD_EXTRACTOR)
).apply(instance, ClickEvent::openFile));
- static final MapCodec RUN_COMMAND_CODEC = mapCodec((instance) -> instance.group(
+ static final MapCodec> RUN_COMMAND_CODEC = mapCodec((instance) -> instance.group(
ExtraCodecs.CHAT_STRING.fieldOf("command").forGetter(TEXT_PAYLOAD_EXTRACTOR)
).apply(instance, ClickEvent::runCommand));
- static final MapCodec SUGGEST_COMMAND_CODEC = mapCodec((instance) -> instance.group(
+ static final MapCodec> SUGGEST_COMMAND_CODEC = mapCodec((instance) -> instance.group(
ExtraCodecs.CHAT_STRING.fieldOf("command").forGetter(TEXT_PAYLOAD_EXTRACTOR)
).apply(instance, ClickEvent::suggestCommand));
- static final MapCodec CHANGE_PAGE_CODEC = mapCodec((instance) -> instance.group(
+ static final MapCodec> CHANGE_PAGE_CODEC = mapCodec((instance) -> instance.group(
ExtraCodecs.POSITIVE_INT.fieldOf("page").forGetter(a -> ((ClickEvent.Payload.Int) a.payload()).integer())
).apply(instance, ClickEvent::changePage));
- static final MapCodec COPY_TO_CLIPBOARD_CODEC = mapCodec((instance) -> instance.group(
+ static final MapCodec> COPY_TO_CLIPBOARD_CODEC = mapCodec((instance) -> instance.group(
Codec.STRING.fieldOf("value").forGetter(TEXT_PAYLOAD_EXTRACTOR)
).apply(instance, ClickEvent::copyToClipboard));
// needs to be lazy loaded due to depending on PaperDialogCodecs static init
- static final MapCodec SHOW_DIALOG_CODEC = MapCodec.recursive("show_dialog", ignored -> mapCodec((instance) -> instance.group(
+ static final MapCodec> SHOW_DIALOG_CODEC = MapCodec.recursive("show_dialog", ignored -> mapCodec((instance) -> instance.group(
PaperDialogCodecs.DIALOG_CODEC.fieldOf("dialog").forGetter(a -> (Dialog) ((ClickEvent.Payload.Dialog) a.payload()).dialog())
).apply(instance, ClickEvent::showDialog)));
- static final MapCodec CUSTOM_CODEC = mapCodec((instance) -> instance.group(
+ static final MapCodec> CUSTOM_CODEC = mapCodec((instance) -> instance.group(
KEY_CODEC.fieldOf("id").forGetter(a -> ((ClickEvent.Payload.Custom) a.payload()).key()),
BINARY_TAG_HOLDER_CODEC.fieldOf("payload").forGetter(a -> ((ClickEvent.Payload.Custom) a.payload()).nbt())
).apply(instance, ClickEvent::custom));
@@ -160,26 +160,26 @@ public final class AdventureCodecs {
public static final Supplier CLICK_EVENT_TYPES = () -> new ClickEventType[]{OPEN_URL_CLICK_EVENT_TYPE, OPEN_FILE_CLICK_EVENT_TYPE, RUN_COMMAND_CLICK_EVENT_TYPE, SUGGEST_COMMAND_CLICK_EVENT_TYPE, CHANGE_PAGE_CLICK_EVENT_TYPE, COPY_TO_CLIPBOARD_CLICK_EVENT_TYPE, SHOW_DIALOG_CLICK_EVENT_TYPE, CUSTOM_CLICK_EVENT_TYPE};
static final Codec CLICK_EVENT_TYPE_CODEC = StringRepresentable.fromValues(CLICK_EVENT_TYPES);
- public record ClickEventType(MapCodec codec, String id) implements StringRepresentable {
+ public record ClickEventType(MapCodec> codec, String id) implements StringRepresentable {
@Override
public String getSerializedName() {
return this.id;
}
}
- public static final Function GET_CLICK_EVENT_TYPE =
+ public static final Function, ClickEventType> GET_CLICK_EVENT_TYPE =
he -> switch (he.action()) {
- case OPEN_URL -> OPEN_URL_CLICK_EVENT_TYPE;
- case OPEN_FILE -> OPEN_FILE_CLICK_EVENT_TYPE;
- case RUN_COMMAND -> RUN_COMMAND_CLICK_EVENT_TYPE;
- case SUGGEST_COMMAND -> SUGGEST_COMMAND_CLICK_EVENT_TYPE;
- case CHANGE_PAGE -> CHANGE_PAGE_CLICK_EVENT_TYPE;
- case COPY_TO_CLIPBOARD -> COPY_TO_CLIPBOARD_CLICK_EVENT_TYPE;
- case SHOW_DIALOG -> SHOW_DIALOG_CLICK_EVENT_TYPE;
- case CUSTOM -> CUSTOM_CLICK_EVENT_TYPE;
+ case ClickEvent.Action.ChangePage ignored -> CHANGE_PAGE_CLICK_EVENT_TYPE;
+ case ClickEvent.Action.Custom ignored -> CUSTOM_CLICK_EVENT_TYPE;
+ case ClickEvent.Action.ShowDialog ignored -> SHOW_DIALOG_CLICK_EVENT_TYPE;
+ case ClickEvent.Action.CopyToClipboard ignored -> COPY_TO_CLIPBOARD_CLICK_EVENT_TYPE;
+ case ClickEvent.Action.OpenFile ignored -> OPEN_FILE_CLICK_EVENT_TYPE;
+ case ClickEvent.Action.OpenUrl ignored -> OPEN_URL_CLICK_EVENT_TYPE;
+ case ClickEvent.Action.RunCommand ignored -> RUN_COMMAND_CLICK_EVENT_TYPE;
+ case ClickEvent.Action.SuggestCommand ignored -> SUGGEST_COMMAND_CLICK_EVENT_TYPE;
};
- static final Codec CLICK_EVENT_CODEC = CLICK_EVENT_TYPE_CODEC.dispatch("action", GET_CLICK_EVENT_TYPE, ClickEventType::codec);
+ static final Codec> CLICK_EVENT_CODEC = CLICK_EVENT_TYPE_CODEC.dispatch("action", GET_CLICK_EVENT_TYPE, ClickEventType::codec);
/*
* HOVER
@@ -363,7 +363,7 @@ static Function> nullableGetter(final Function new Property(prop.name(), prop.value(), prop.signature()))
- .collect(ImmutableListMultimap.toImmutableListMultimap(Property::name, Function.identity())))
+ .collect(ImmutableListMultimap.toImmutableListMultimap(Property::name, identity())))
));
}
).forGetter(obj -> obj),
@@ -468,7 +468,7 @@ public String getSerializedName() {
}
}
- static final MapCodec> NBT_COMPONENT_MAP_CODEC = mapCodec((instance) -> {
+ static final MapCodec> NBT_COMPONENT_MAP_CODEC = mapCodec((instance) -> {
return instance.group(
Codec.STRING.fieldOf("nbt").forGetter(NBTComponent::nbtPath),
Codec.BOOL.lenientOptionalFieldOf("interpret", false).forGetter(NBTComponent::interpret),
@@ -503,7 +503,7 @@ public String getSerializedName() {
static final ComponentType OBJECT = new ComponentType<>(OBJECT_COMPONENT_MAP_CODEC, ObjectComponent.class::isInstance, "object");
static final ComponentType SCORE = new ComponentType<>(SCORE_COMPONENT_MAP_CODEC, ScoreComponent.class::isInstance, "score");
static final ComponentType SELECTOR = new ComponentType<>(SELECTOR_COMPONENT_MAP_CODEC, SelectorComponent.class::isInstance, "selector");
- static final ComponentType> NBT = new ComponentType<>(NBT_COMPONENT_MAP_CODEC, NBTComponent.class::isInstance, "nbt");
+ static final ComponentType> NBT = new ComponentType<>(NBT_COMPONENT_MAP_CODEC, NBTComponent.class::isInstance, "nbt");
static Codec createCodec(final Codec selfCodec) {
final ExtraCodecs.LateBoundIdMapper> lateBoundIdMapper = new ExtraCodecs.LateBoundIdMapper<>();
@@ -520,7 +520,7 @@ static Codec createCodec(final Codec selfCodec) {
throw new IllegalStateException("Unexpected component type " + component);
}, "type");
- final Codec directCodec = RecordCodecBuilder.create((instance) -> {
+ final Codec directCodec = create((instance) -> {
return instance.group(
legacyCodec.forGetter(identity()),
ExtraCodecs.nonEmptyList(selfCodec.listOf()).optionalFieldOf("extra", List.of()).forGetter(Component::children),
diff --git a/paper-server/src/main/java/io/papermc/paper/adventure/PaperAdventure.java b/paper-server/src/main/java/io/papermc/paper/adventure/PaperAdventure.java
index efcf79712be2..b1c034fd593d 100644
--- a/paper-server/src/main/java/io/papermc/paper/adventure/PaperAdventure.java
+++ b/paper-server/src/main/java/io/papermc/paper/adventure/PaperAdventure.java
@@ -31,7 +31,6 @@
import net.kyori.adventure.text.serializer.ComponentSerializer;
import net.kyori.adventure.text.serializer.ansi.ANSIComponentSerializer;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
-import net.kyori.adventure.text.serializer.plain.PlainComponentSerializer;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import net.kyori.adventure.translation.GlobalTranslator;
import net.kyori.adventure.util.Codec;
@@ -119,8 +118,6 @@ public final class PaperAdventure {
})
.build();
public static final AttributeKey LOCALE_ATTRIBUTE = AttributeKey.valueOf("adventure:locale"); // init after FLATTENER because classloading triggered here might create a logger
- @Deprecated
- public static final PlainComponentSerializer PLAIN = PlainComponentSerializer.builder().flattener(FLATTENER).build();
public static final ANSIComponentSerializer ANSI_SERIALIZER = ANSIComponentSerializer.builder().flattener(FLATTENER).build();
private static final TagParser NBT_PARSER = TagParser.create(NbtOps.INSTANCE);
public static final Codec NBT_CODEC = new Codec<>() {
diff --git a/paper-server/src/main/java/io/papermc/paper/adventure/providers/GsonComponentSerializerProviderImpl.java b/paper-server/src/main/java/io/papermc/paper/adventure/providers/GsonComponentSerializerProviderImpl.java
index c620d5aa2b02..6b474266e8cb 100644
--- a/paper-server/src/main/java/io/papermc/paper/adventure/providers/GsonComponentSerializerProviderImpl.java
+++ b/paper-server/src/main/java/io/papermc/paper/adventure/providers/GsonComponentSerializerProviderImpl.java
@@ -1,6 +1,7 @@
package io.papermc.paper.adventure.providers;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
+import net.kyori.adventure.text.serializer.json.JSONOptions;
import org.jetbrains.annotations.NotNull;
import java.util.function.Consumer;
@@ -19,7 +20,7 @@ public class GsonComponentSerializerProviderImpl implements GsonComponentSeriali
public @NotNull GsonComponentSerializer gsonLegacy() {
return GsonComponentSerializer.builder()
.legacyHoverEventSerializer(NBTLegacyHoverEventSerializer.INSTANCE)
- .downsampleColors()
+ .editOptions(editor -> editor.value(JSONOptions.EMIT_RGB, false))
.build();
}
diff --git a/paper-server/src/main/java/io/papermc/paper/command/subcommands/EntityCommand.java b/paper-server/src/main/java/io/papermc/paper/command/subcommands/EntityCommand.java
index e3ddc201b328..ea9c86c7692a 100644
--- a/paper-server/src/main/java/io/papermc/paper/command/subcommands/EntityCommand.java
+++ b/paper-server/src/main/java/io/papermc/paper/command/subcommands/EntityCommand.java
@@ -129,7 +129,7 @@ private void listEntities(final CommandSender sender, final String[] args) {
final int z = (e.getKey().z << 4) + 8;
final Component message = text(" " + e.getValue() + ": " + e.getKey().x + ", " + e.getKey().z + (chunkProviderServer.isPositionTicking(e.getKey().toLong()) ? " (Ticking)" : " (Non-Ticking)"))
.hoverEvent(HoverEvent.showText(text("Click to teleport to chunk", GREEN)))
- .clickEvent(ClickEvent.clickEvent(ClickEvent.Action.RUN_COMMAND, "/minecraft:execute as @s in " + world.getWorld().getKey() + " run tp " + x + " " + (world.getWorld().getHighestBlockYAt(x, z, HeightMap.MOTION_BLOCKING) + 1) + " " + z));
+ .clickEvent(ClickEvent.runCommand("/minecraft:execute as @s in " + world.getWorld().getKey() + " run tp " + x + " " + (world.getWorld().getHighestBlockYAt(x, z, HeightMap.MOTION_BLOCKING) + 1) + " " + z));
sender.sendMessage(message);
});
} else {
diff --git a/paper-server/src/main/java/io/papermc/paper/commands/FeedbackForwardingSender.java b/paper-server/src/main/java/io/papermc/paper/commands/FeedbackForwardingSender.java
index 7aa78cc98de8..aa9230fcd212 100644
--- a/paper-server/src/main/java/io/papermc/paper/commands/FeedbackForwardingSender.java
+++ b/paper-server/src/main/java/io/papermc/paper/commands/FeedbackForwardingSender.java
@@ -1,9 +1,9 @@
package io.papermc.paper.commands;
import io.papermc.paper.adventure.PaperAdventure;
-import java.util.UUID;
import java.util.function.Consumer;
-import net.kyori.adventure.audience.MessageType;
+import net.kyori.adventure.chat.ChatType;
+import net.kyori.adventure.chat.SignedMessage;
import net.kyori.adventure.identity.Identity;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
@@ -43,10 +43,23 @@ public void sendMessage(final String... messages) {
}
@Override
- public void sendMessage(final Identity identity, final Component message, final MessageType type) {
+ public void sendMessage(final Component message) {
this.feedback.accept(message);
}
+ @Override
+ public void sendMessage(final Component message, final ChatType.Bound boundChatType) {
+ this.feedback.accept(message);
+ }
+
+ @Override
+ public void sendMessage(final SignedMessage signedMessage, final ChatType.Bound boundChatType) {
+ final @Nullable Component component = signedMessage.unsignedContent();
+ if (component != null) {
+ this.feedback.accept(component);
+ }
+ }
+
@Override
public String getName() {
return "FeedbackForwardingSender";
@@ -85,7 +98,7 @@ public CommandSourceStack asVanilla() {
private record Source(FeedbackForwardingSender sender) implements CommandSource {
@Override
public void sendSystemMessage(final net.minecraft.network.chat.Component message) {
- this.sender.sendMessage(Identity.nil(), PaperAdventure.asAdventure(message));
+ this.sender.sendMessage(PaperAdventure.asAdventure(message));
}
@Override
diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/command/CraftBlockCommandSender.java b/paper-server/src/main/java/org/bukkit/craftbukkit/command/CraftBlockCommandSender.java
index 872acd855e45..8d021f31516b 100644
--- a/paper-server/src/main/java/org/bukkit/craftbukkit/command/CraftBlockCommandSender.java
+++ b/paper-server/src/main/java/org/bukkit/craftbukkit/command/CraftBlockCommandSender.java
@@ -1,5 +1,7 @@
package org.bukkit.craftbukkit.command;
+import net.kyori.adventure.chat.ChatType;
+import net.kyori.adventure.chat.SignedMessage;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.entity.BlockEntity;
@@ -62,10 +64,23 @@ public String getName() {
}
@Override
- public void sendMessage(net.kyori.adventure.identity.Identity identity, net.kyori.adventure.text.Component message, net.kyori.adventure.audience.MessageType type) {
+ public void sendMessage(final net.kyori.adventure.text.Component message) {
this.block.source.sendSystemMessage(io.papermc.paper.adventure.PaperAdventure.asVanilla(message));
}
+ @Override
+ public void sendMessage(final net.kyori.adventure.text.Component message, final ChatType.Bound boundChatType) {
+ this.block.source.sendSystemMessage(io.papermc.paper.adventure.PaperAdventure.asVanilla(message));
+ }
+
+ @Override
+ public void sendMessage(final SignedMessage signedMessage, final ChatType.Bound boundChatType) {
+ final net.kyori.adventure.text.Component component = signedMessage.unsignedContent();
+ if (component != null) {
+ this.block.source.sendSystemMessage(io.papermc.paper.adventure.PaperAdventure.asVanilla(component));
+ }
+ }
+
@Override
public net.kyori.adventure.text.Component name() {
return io.papermc.paper.adventure.PaperAdventure.asAdventure(this.block.getDisplayName());
diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java b/paper-server/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java
index 6e2f931b06d4..fdc92e3e2d71 100644
--- a/paper-server/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java
+++ b/paper-server/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java
@@ -1,6 +1,9 @@
package org.bukkit.craftbukkit.command;
import java.util.UUID;
+import net.kyori.adventure.chat.ChatType;
+import net.kyori.adventure.chat.SignedMessage;
+import net.kyori.adventure.text.Component;
import org.bukkit.ChatColor;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.conversations.Conversation;
@@ -86,11 +89,6 @@ public boolean isConversing() {
return this.conversationTracker.isConversing();
}
- @Override
- public void sendMessage(final net.kyori.adventure.identity.Identity identity, final net.kyori.adventure.text.Component message, final net.kyori.adventure.audience.MessageType type) {
- this.sendRawMessage(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(message));
- }
-
@Override
public boolean hasPermission(String name) {
return io.papermc.paper.configuration.GlobalConfiguration.get().console.hasAllPermissions || super.hasPermission(name);
diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 94307a5ffce0..c5785bba2f29 100644
--- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2771,6 +2771,14 @@ private net.minecraft.network.chat.ChatType.Bound toHandle(net.kyori.adventure.c
);
}
+ @Override
+ public void sendMessage(final net.kyori.adventure.text.Component message) {
+ if (getHandle().connection == null) return;
+
+ net.minecraft.network.chat.Component component = io.papermc.paper.adventure.PaperAdventure.asVanilla(message);
+ this.getHandle().sendSystemMessage(component);
+ }
+
@Override
public void sendMessage(net.kyori.adventure.text.Component message, net.kyori.adventure.chat.ChatType.Bound boundChatType) {
if (getHandle().connection == null) return;
@@ -2804,14 +2812,6 @@ public void sendMessage(net.kyori.adventure.chat.SignedMessage signedMessage, ne
// this.getHandle().sendChatMessage(net.minecraft.network.chat.OutgoingChatMessage.create(playerChatMessage), this.getHandle().isTextFilteringEnabled(), this.toHandle(boundChatType));
}
- @Deprecated(forRemoval = true)
- @Override
- public void sendMessage(final net.kyori.adventure.identity.Identity identity, final net.kyori.adventure.text.Component message, final net.kyori.adventure.audience.MessageType type) {
- if (getHandle().connection == null) return;
- final net.minecraft.core.Registry chatTypeRegistry = this.getHandle().level().registryAccess().lookupOrThrow(net.minecraft.core.registries.Registries.CHAT_TYPE);
- this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundSystemChatPacket(message, false));
- }
-
@Override
public void sendActionBar(final net.kyori.adventure.text.Component message) {
final net.minecraft.network.protocol.game.ClientboundSetActionBarTextPacket packet = new net.minecraft.network.protocol.game.ClientboundSetActionBarTextPacket(io.papermc.paper.adventure.PaperAdventure.asVanillaNullToEmpty(message));
diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
index 6b248639801a..fbf8d0c614ec 100644
--- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
+++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
@@ -241,53 +241,6 @@ public void addPages(net.kyori.adventure.text.Component... pages) {
}
}
- private CraftMetaBook(List pages) {
- super((org.bukkit.craftbukkit.inventory.CraftMetaItem) org.bukkit.Bukkit.getItemFactory().getItemMeta(org.bukkit.Material.WRITABLE_BOOK));
- this.pages = pages.subList(0, Math.min(MAX_PAGES, pages.size())).stream().map(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection()::serialize).collect(java.util.stream.Collectors.toList());
- }
-
- static class CraftMetaBookBuilder implements BookMetaBuilder {
- protected final List pages = new java.util.ArrayList<>();
-
- @Override
- public BookMetaBuilder title(net.kyori.adventure.text.Component title) {
- return this;
- }
-
- @Override
- public BookMetaBuilder author(net.kyori.adventure.text.Component author) {
- return this;
- }
-
- @Override
- public BookMetaBuilder addPage(net.kyori.adventure.text.Component page) {
- this.pages.add(page);
- return this;
- }
-
- @Override
- public BookMetaBuilder pages(net.kyori.adventure.text.Component... pages) {
- java.util.Collections.addAll(this.pages, pages);
- return this;
- }
-
- @Override
- public BookMetaBuilder pages(java.util.Collection pages) {
- this.pages.addAll(pages);
- return this;
- }
-
- @Override
- public BookMeta build() {
- return new CraftMetaBook(this.pages);
- }
- }
-
- @Override
- public BookMetaBuilder toBuilder() {
- return new CraftMetaBookBuilder();
- }
-
@Override
public String getPage(final int page) {
Preconditions.checkArgument(this.isValidPage(page), "Invalid page number (%s)", page);
diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java
index eb21c7bf833b..2d2e05694077 100644
--- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java
+++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java
@@ -452,39 +452,6 @@ public BookMeta.Spigot spigot() {
public static final net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer LEGACY_DOWNSAMPLING_COMPONENT_SERIALIZER = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.builder()
.character(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.SECTION_CHAR)
.build();
- private CraftMetaBookSigned(net.kyori.adventure.text.Component title, net.kyori.adventure.text.Component author, java.util.List pages) {
- super((org.bukkit.craftbukkit.inventory.CraftMetaItem) org.bukkit.Bukkit.getItemFactory().getItemMeta(Material.WRITABLE_BOOK));
- this.title = title == null ? null : LEGACY_DOWNSAMPLING_COMPONENT_SERIALIZER.serialize(title);
- this.author = author == null ? null : LEGACY_DOWNSAMPLING_COMPONENT_SERIALIZER.serialize(author);
- this.pages = io.papermc.paper.adventure.PaperAdventure.asVanilla(pages);
- }
-
- static final class CraftMetaBookSignedBuilder extends CraftMetaBook.CraftMetaBookBuilder {
- private net.kyori.adventure.text.Component title;
- private net.kyori.adventure.text.Component author;
-
- @Override
- public org.bukkit.inventory.meta.BookMeta.BookMetaBuilder title(final net.kyori.adventure.text.Component title) {
- this.title = title;
- return this;
- }
-
- @Override
- public org.bukkit.inventory.meta.BookMeta.BookMetaBuilder author(final net.kyori.adventure.text.Component author) {
- this.author = author;
- return this;
- }
-
- @Override
- public org.bukkit.inventory.meta.BookMeta build() {
- return new CraftMetaBookSigned(this.title, this.author, this.pages);
- }
- }
-
- @Override
- public BookMetaBuilder toBuilder() {
- return new CraftMetaBookSignedBuilder();
- }
@Override
public net.kyori.adventure.text.Component title() {
diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/paper-server/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index f83067eaa4ee..fa5649d0c70d 100644
--- a/paper-server/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/paper-server/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -113,11 +113,6 @@ public net.kyori.adventure.text.serializer.gson.GsonComponentSerializer gsonComp
return net.kyori.adventure.text.serializer.gson.GsonComponentSerializer.gson();
}
- @Override
- public net.kyori.adventure.text.serializer.plain.PlainComponentSerializer plainComponentSerializer() {
- return io.papermc.paper.adventure.PaperAdventure.PLAIN;
- }
-
@Override
public net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer plainTextSerializer() {
return net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer.plainText();