mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 23:38:25 +01:00
55421b2226
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: c589f546 Use upstream plexus-compiler-eclipse
3502 lines
140 KiB
Diff
3502 lines
140 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Riley Park <rileysebastianpark@gmail.com>
|
|
Date: Fri, 29 Jan 2021 17:21:55 +0100
|
|
Subject: [PATCH] Adventure
|
|
|
|
Co-authored-by: zml <zml@stellardrift.ca>
|
|
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
|
|
diff --git a/pom.xml b/pom.xml
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/pom.xml
|
|
+++ b/pom.xml
|
|
@@ -0,0 +0,0 @@
|
|
</repository>
|
|
</repositories>
|
|
|
|
+ <!-- Paper start -->
|
|
+ <dependencyManagement>
|
|
+ <dependencies>
|
|
+ <dependency>
|
|
+ <groupId>net.kyori</groupId>
|
|
+ <artifactId>adventure-bom</artifactId>
|
|
+ <version>4.7.0</version> <!-- keep this version in synch with javadoc section below! -->
|
|
+ <type>pom</type>
|
|
+ <scope>import</scope>
|
|
+ </dependency>
|
|
+ </dependencies>
|
|
+ </dependencyManagement>
|
|
+ <!-- Paper end -->
|
|
+
|
|
<dependencies>
|
|
+ <!-- Paper start -->
|
|
+ <dependency>
|
|
+ <groupId>net.kyori</groupId>
|
|
+ <artifactId>adventure-api</artifactId>
|
|
+ </dependency>
|
|
+ <dependency>
|
|
+ <groupId>net.kyori</groupId>
|
|
+ <artifactId>adventure-text-serializer-gson</artifactId>
|
|
+ </dependency>
|
|
+ <dependency>
|
|
+ <groupId>net.kyori</groupId>
|
|
+ <artifactId>adventure-text-serializer-legacy</artifactId>
|
|
+ </dependency>
|
|
+ <dependency>
|
|
+ <groupId>net.kyori</groupId>
|
|
+ <artifactId>adventure-text-serializer-plain</artifactId>
|
|
+ </dependency>
|
|
+ <!-- Paper end -->
|
|
<dependency>
|
|
<groupId>it.unimi.dsi</groupId>
|
|
<artifactId>fastutil</artifactId>
|
|
@@ -0,0 +0,0 @@
|
|
<link>https://javadoc.io/doc/org.yaml/snakeyaml/1.27/</link>
|
|
<link>https://javadoc.io/doc/org.jetbrains/annotations-java5/20.1.0/</link>
|
|
<link>https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/</link>
|
|
+ <!-- Paper start -->
|
|
+ <link>https://jd.adventure.kyori.net/api/4.7.0/</link>
|
|
+ <link>https://jd.adventure.kyori.net/text-serializer-gson/4.7.0/</link>
|
|
+ <link>https://jd.adventure.kyori.net/text-serializer-legacy/4.7.0/</link>
|
|
+ <link>https://jd.adventure.kyori.net/text-serializer-plain/4.7.0/</link>
|
|
+ <!-- Paper end -->
|
|
</links>
|
|
</configuration>
|
|
</plugin>
|
|
diff --git a/src/main/java/co/aikar/timings/TimingsReportListener.java b/src/main/java/co/aikar/timings/TimingsReportListener.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/co/aikar/timings/TimingsReportListener.java
|
|
+++ b/src/main/java/co/aikar/timings/TimingsReportListener.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
@SuppressWarnings("WeakerAccess")
|
|
-public class TimingsReportListener implements MessageCommandSender {
|
|
+public class TimingsReportListener implements net.kyori.adventure.audience.ForwardingAudience, MessageCommandSender { // Paper
|
|
private final List<CommandSender> senders;
|
|
private final Runnable onDone;
|
|
private String timingsURL;
|
|
@@ -0,0 +0,0 @@ public class TimingsReportListener implements MessageCommandSender {
|
|
this.senders.add(Bukkit.getConsoleSender());
|
|
}
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @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() {
|
|
+ return this.senders;
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/io/papermc/paper/chat/ChatFormatter.java b/src/main/java/io/papermc/paper/chat/ChatFormatter.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
|
--- /dev/null
|
|
+++ b/src/main/java/io/papermc/paper/chat/ChatFormatter.java
|
|
@@ -0,0 +0,0 @@
|
|
+package io.papermc.paper.chat;
|
|
+
|
|
+import net.kyori.adventure.text.Component;
|
|
+import org.bukkit.entity.Player;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+/**
|
|
+ * A chat formatter is responsible for the formatting of chat messages sent by {@link Player}s to the server.
|
|
+ */
|
|
+@FunctionalInterface
|
|
+public interface ChatFormatter {
|
|
+ // This format might be different than the CraftBukkit one?
|
|
+ ChatFormatter DEFAULT = (displayName, message) -> Component.translatable("chat.type.text", displayName, message);
|
|
+
|
|
+ /**
|
|
+ * Formats a chat message.
|
|
+ *
|
|
+ * @param displayName the display name of the {@link Player} sending the message
|
|
+ * @param message the chat message
|
|
+ * @return a formatted chat message
|
|
+ */
|
|
+ @NotNull
|
|
+ Component chat(final @NotNull Component displayName, final @NotNull Component message);
|
|
+}
|
|
diff --git a/src/main/java/io/papermc/paper/event/player/AbstractChatEvent.java b/src/main/java/io/papermc/paper/event/player/AbstractChatEvent.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
|
--- /dev/null
|
|
+++ b/src/main/java/io/papermc/paper/event/player/AbstractChatEvent.java
|
|
@@ -0,0 +0,0 @@
|
|
+package io.papermc.paper.event.player;
|
|
+
|
|
+import io.papermc.paper.chat.ChatFormatter;
|
|
+import java.util.Objects;
|
|
+import java.util.Set;
|
|
+import net.kyori.adventure.text.Component;
|
|
+import org.bukkit.entity.Player;
|
|
+import org.bukkit.event.Cancellable;
|
|
+import org.bukkit.event.player.PlayerEvent;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+/**
|
|
+ * An abstract implementation of a chat event, handling shared logic.
|
|
+ */
|
|
+public abstract class AbstractChatEvent extends PlayerEvent implements Cancellable {
|
|
+ private final Set<Player> recipients;
|
|
+ private boolean cancelled = false;
|
|
+ private ChatFormatter formatter;
|
|
+ private Component message;
|
|
+
|
|
+ AbstractChatEvent(final boolean async, final @NotNull Player player, final @NotNull Set<Player> recipients, final @NotNull ChatFormatter formatter, final @NotNull Component message) {
|
|
+ super(player, async);
|
|
+ this.recipients = recipients;
|
|
+ this.formatter = formatter;
|
|
+ this.message = message;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets a set of recipients that this chat message will be displayed to.
|
|
+ *
|
|
+ * <p>The set returned is not guaranteed to be mutable and may auto-populate
|
|
+ * on access. Any listener accessing the returned set should be aware that
|
|
+ * it may reduce performance for a lazy set implementation.</p>
|
|
+ *
|
|
+ * <p>Listeners should be aware that modifying the list may throw {@link
|
|
+ * UnsupportedOperationException} if the event caller provides an
|
|
+ * unmodifiable set.</p>
|
|
+ *
|
|
+ * @return a set of players who will receive the chat message
|
|
+ */
|
|
+ @NotNull
|
|
+ public final Set<Player> recipients() {
|
|
+ return this.recipients;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the chat formatter.
|
|
+ *
|
|
+ * @return the chat formatter
|
|
+ */
|
|
+ @NotNull
|
|
+ public final ChatFormatter formatter() {
|
|
+ return this.formatter;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets the chat formatter.
|
|
+ *
|
|
+ * @param formatter the chat formatter
|
|
+ * @throws NullPointerException if {@code formatter} is {@code null}
|
|
+ */
|
|
+ public final void formatter(final @NotNull ChatFormatter formatter) {
|
|
+ this.formatter = Objects.requireNonNull(formatter, "formatter");
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the user-supplied message.
|
|
+ *
|
|
+ * @return the user-supplied message
|
|
+ */
|
|
+ @NotNull
|
|
+ public final Component message() {
|
|
+ return this.message;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets the user-supplied message.
|
|
+ *
|
|
+ * @param message the user-supplied message
|
|
+ * @throws NullPointerException if {@code message} is {@code null}
|
|
+ */
|
|
+ public final void message(final @NotNull Component message) {
|
|
+ this.message = Objects.requireNonNull(message, "message");
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public final boolean isCancelled() {
|
|
+ return this.cancelled;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public final void setCancelled(final boolean cancelled) {
|
|
+ this.cancelled = cancelled;
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/io/papermc/paper/event/player/AsyncChatEvent.java b/src/main/java/io/papermc/paper/event/player/AsyncChatEvent.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
|
--- /dev/null
|
|
+++ b/src/main/java/io/papermc/paper/event/player/AsyncChatEvent.java
|
|
@@ -0,0 +0,0 @@
|
|
+package io.papermc.paper.event.player;
|
|
+
|
|
+import io.papermc.paper.chat.ChatFormatter;
|
|
+import java.util.Set;
|
|
+import net.kyori.adventure.text.Component;
|
|
+import org.bukkit.entity.Player;
|
|
+import org.bukkit.event.HandlerList;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+/**
|
|
+ * An event fired when a {@link Player} sends a chat message to the server.
|
|
+ */
|
|
+public final class AsyncChatEvent extends AbstractChatEvent {
|
|
+ private static final HandlerList HANDLERS = new HandlerList();
|
|
+
|
|
+ public AsyncChatEvent(final boolean async, final @NotNull Player player, final @NotNull Set<Player> recipients, final @NotNull ChatFormatter formatter, final @NotNull Component message) {
|
|
+ super(async, player, recipients, formatter, message);
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public HandlerList getHandlers() {
|
|
+ return HANDLERS;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return HANDLERS;
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/io/papermc/paper/event/player/ChatEvent.java b/src/main/java/io/papermc/paper/event/player/ChatEvent.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
|
--- /dev/null
|
|
+++ b/src/main/java/io/papermc/paper/event/player/ChatEvent.java
|
|
@@ -0,0 +0,0 @@
|
|
+package io.papermc.paper.event.player;
|
|
+
|
|
+import io.papermc.paper.chat.ChatFormatter;
|
|
+import java.util.Set;
|
|
+import net.kyori.adventure.text.Component;
|
|
+import org.bukkit.Warning;
|
|
+import org.bukkit.entity.Player;
|
|
+import org.bukkit.event.HandlerList;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+/**
|
|
+ * An event fired when a {@link Player} sends a chat message to the server.
|
|
+ *
|
|
+ * @deprecated Listening to this event forces chat to wait for the main thread, delaying chat messages. It is recommended to use {@link AsyncChatEvent} instead, wherever possible.
|
|
+ */
|
|
+@Deprecated
|
|
+@Warning(reason = "Listening to this event forces chat to wait for the main thread, delaying chat messages.")
|
|
+public final class ChatEvent extends AbstractChatEvent {
|
|
+ private static final HandlerList HANDLERS = new HandlerList();
|
|
+
|
|
+ public ChatEvent(final @NotNull Player player, final @NotNull Set<Player> recipients, final @NotNull ChatFormatter formatter, final @NotNull Component message) {
|
|
+ super(false, player, recipients, formatter, message);
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public HandlerList getHandlers() {
|
|
+ return HANDLERS;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return HANDLERS;
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/Bukkit.java
|
|
+++ b/src/main/java/org/bukkit/Bukkit.java
|
|
@@ -0,0 +0,0 @@ public final class Bukkit {
|
|
*
|
|
* @param message the message
|
|
* @return the number of players
|
|
+ * @deprecated in favour of {@link Server#sendMessage(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public static int broadcastMessage(@NotNull String message) {
|
|
return server.broadcastMessage(message);
|
|
}
|
|
@@ -0,0 +0,0 @@ public final class Bukkit {
|
|
server.shutdown();
|
|
}
|
|
|
|
+ // Paper start
|
|
/**
|
|
* Broadcasts the specified message to every user with the given
|
|
* permission name.
|
|
@@ -0,0 +0,0 @@ public final class Bukkit {
|
|
* permissibles} must have to receive the broadcast
|
|
* @return number of message recipients
|
|
*/
|
|
+ public static int broadcast(@NotNull net.kyori.adventure.text.Component message, @NotNull String permission) {
|
|
+ return server.broadcast(message, permission);
|
|
+ }
|
|
+ // Paper end
|
|
+ /**
|
|
+ * Broadcasts the specified message to every user with the given
|
|
+ * permission name.
|
|
+ *
|
|
+ * @param message message to broadcast
|
|
+ * @param permission the required permission {@link Permissible
|
|
+ * permissibles} must have to receive the broadcast
|
|
+ * @return number of message recipients
|
|
+ * @deprecated in favour of {@link #broadcast(net.kyori.adventure.text.Component, String)}
|
|
+ */
|
|
+ @Deprecated // Paper
|
|
public static int broadcast(@NotNull String message, @NotNull String permission) {
|
|
return server.broadcast(message, permission);
|
|
}
|
|
@@ -0,0 +0,0 @@ public final class Bukkit {
|
|
return server.createInventory(owner, type);
|
|
}
|
|
|
|
+ // Paper start
|
|
/**
|
|
* Creates an empty inventory with the specified type and title. If the type
|
|
* is {@link InventoryType#CHEST}, the new inventory has a size of 27;
|
|
@@ -0,0 +0,0 @@ public final class Bukkit {
|
|
* @see InventoryType#isCreatable()
|
|
*/
|
|
@NotNull
|
|
+ public static Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull net.kyori.adventure.text.Component title) {
|
|
+ return server.createInventory(owner, type, title);
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
+ /**
|
|
+ * Creates an empty inventory with the specified type and title. If the type
|
|
+ * is {@link InventoryType#CHEST}, the new inventory has a size of 27;
|
|
+ * otherwise the new inventory has the normal size for its type.<br>
|
|
+ * It should be noted that some inventory types do not support titles and
|
|
+ * may not render with said titles on the Minecraft client.
|
|
+ * <br>
|
|
+ * {@link InventoryType#WORKBENCH} will not process crafting recipes if
|
|
+ * created with this method. Use
|
|
+ * {@link Player#openWorkbench(Location, boolean)} instead.
|
|
+ * <br>
|
|
+ * {@link InventoryType#ENCHANTING} will not process {@link ItemStack}s
|
|
+ * for possible enchanting results. Use
|
|
+ * {@link Player#openEnchanting(Location, boolean)} instead.
|
|
+ *
|
|
+ * @param owner The holder of the inventory; can be null if there's no holder.
|
|
+ * @param type The type of inventory to create.
|
|
+ * @param title The title of the inventory, to be displayed when it is viewed.
|
|
+ * @return The new inventory.
|
|
+ * @throws IllegalArgumentException if the {@link InventoryType} cannot be
|
|
+ * viewed.
|
|
+ * @deprecated in favour of {@link #createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)}
|
|
+ *
|
|
+ * @see InventoryType#isCreatable()
|
|
+ */
|
|
+ @Deprecated // Paper
|
|
+ @NotNull
|
|
public static Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title) {
|
|
return server.createInventory(owner, type, title);
|
|
}
|
|
@@ -0,0 +0,0 @@ public final class Bukkit {
|
|
return server.createInventory(owner, size);
|
|
}
|
|
|
|
+ // Paper start
|
|
/**
|
|
* Creates an empty inventory of type {@link InventoryType#CHEST} with the
|
|
* specified size and title.
|
|
@@ -0,0 +0,0 @@ public final class Bukkit {
|
|
* @throws IllegalArgumentException if the size is not a multiple of 9
|
|
*/
|
|
@NotNull
|
|
+ public static Inventory createInventory(@Nullable InventoryHolder owner, int size, @NotNull net.kyori.adventure.text.Component title) throws IllegalArgumentException {
|
|
+ return server.createInventory(owner, size, title);
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
+ /**
|
|
+ * Creates an empty inventory of type {@link InventoryType#CHEST} with the
|
|
+ * specified size and title.
|
|
+ *
|
|
+ * @param owner the holder of the inventory, or null to indicate no holder
|
|
+ * @param size a multiple of 9 as the size of inventory to create
|
|
+ * @param title the title of the inventory, displayed when inventory is
|
|
+ * viewed
|
|
+ * @return a new inventory
|
|
+ * @throws IllegalArgumentException if the size is not a multiple of 9
|
|
+ * @deprecated in favour of {@link #createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)}
|
|
+ */
|
|
+ @Deprecated // Paper
|
|
+ @NotNull
|
|
public static Inventory createInventory(@Nullable InventoryHolder owner, int size, @NotNull String title) throws IllegalArgumentException {
|
|
return server.createInventory(owner, size, title);
|
|
}
|
|
|
|
+ // Paper start
|
|
/**
|
|
* Creates an empty merchant.
|
|
*
|
|
@@ -0,0 +0,0 @@ public final class Bukkit {
|
|
* when the merchant inventory is viewed
|
|
* @return a new merchant
|
|
*/
|
|
+ public static @NotNull Merchant createMerchant(@Nullable net.kyori.adventure.text.Component title) {
|
|
+ return server.createMerchant(title);
|
|
+ }
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Creates an empty merchant.
|
|
+ *
|
|
+ * @param title the title of the corresponding merchant inventory, displayed
|
|
+ * when the merchant inventory is viewed
|
|
+ * @return a new merchant
|
|
+ * @deprecated in favour of {@link #createMerchant(net.kyori.adventure.text.Component)}
|
|
+ */
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public static Merchant createMerchant(@Nullable String title) {
|
|
return server.createMerchant(title);
|
|
}
|
|
@@ -0,0 +0,0 @@ public final class Bukkit {
|
|
return server.isPrimaryThread();
|
|
}
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the message that is displayed on the server list.
|
|
+ *
|
|
+ * @return the server's MOTD
|
|
+ */
|
|
+ @NotNull public static net.kyori.adventure.text.Component motd() {
|
|
+ return server.motd();
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Gets the message that is displayed on the server list.
|
|
*
|
|
* @return the servers MOTD
|
|
+ * @deprecated in favour of {@link #motd()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public static String getMotd() {
|
|
return server.getMotd();
|
|
}
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the default message that is displayed when the server is stopped.
|
|
+ *
|
|
+ * @return the shutdown message
|
|
+ */
|
|
+ public static @Nullable net.kyori.adventure.text.Component shutdownMessage() {
|
|
+ return server.shutdownMessage();
|
|
+ }
|
|
+ // Paper end
|
|
/**
|
|
* Gets the default message that is displayed when the server is stopped.
|
|
*
|
|
* @return the shutdown message
|
|
+ * @deprecated in favour of {@link #shutdownMessage()}
|
|
*/
|
|
@Nullable
|
|
+ @Deprecated // Paper
|
|
public static String getShutdownMessage() {
|
|
return server.getShutdownMessage();
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/Nameable.java b/src/main/java/org/bukkit/Nameable.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/Nameable.java
|
|
+++ b/src/main/java/org/bukkit/Nameable.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
|
|
public interface Nameable {
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the custom name.
|
|
+ *
|
|
+ * <p>This value has no effect on players, they will always use their real name.</p>
|
|
+ *
|
|
+ * @return the custom name
|
|
+ */
|
|
+ @Nullable net.kyori.adventure.text.Component customName();
|
|
+
|
|
+ /**
|
|
+ * Sets the custom name.
|
|
+ *
|
|
+ * <p>This name will be used in death messages and can be sent to the client as a nameplate over the mob.</p>
|
|
+ *
|
|
+ * <p>Setting the name to {@code null} will clear it.</p>
|
|
+ *
|
|
+ * <p>This value has no effect on players, they will always use their real name.</p>
|
|
+ *
|
|
+ * @param customName the custom name to set
|
|
+ */
|
|
+ void customName(final @Nullable net.kyori.adventure.text.Component customName);
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Gets the custom name on a mob or block. If there is no name this method
|
|
* will return null.
|
|
diff --git a/src/main/java/org/bukkit/NamespacedKey.java b/src/main/java/org/bukkit/NamespacedKey.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/NamespacedKey.java
|
|
+++ b/src/main/java/org/bukkit/NamespacedKey.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
* underscores, hyphens, and forward slashes.
|
|
*
|
|
*/
|
|
-public final class NamespacedKey {
|
|
+public final class NamespacedKey implements net.kyori.adventure.key.Key { // Paper - implement Key
|
|
|
|
/**
|
|
* The namespace representing all inbuilt keys.
|
|
@@ -0,0 +0,0 @@ public final class NamespacedKey {
|
|
public static NamespacedKey fromString(@NotNull String key) {
|
|
return fromString(key, null);
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public String namespace() {
|
|
+ return this.getNamespace();
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public String value() {
|
|
+ return this.getKey();
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public String asString() {
|
|
+ return this.namespace + ':' + this.key;
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/Server.java
|
|
+++ b/src/main/java/org/bukkit/Server.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
/**
|
|
* Represents a server implementation.
|
|
*/
|
|
-public interface Server extends PluginMessageRecipient {
|
|
+public interface Server extends PluginMessageRecipient, net.kyori.adventure.audience.ForwardingAudience { // Paper
|
|
|
|
/**
|
|
* Used for all administrative messages, such as an operator using a
|
|
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
|
|
*
|
|
* @param message the message
|
|
* @return the number of players
|
|
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public int broadcastMessage(@NotNull String message);
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
|
|
* @param permission the required permission {@link Permissible
|
|
* permissibles} must have to receive the broadcast
|
|
* @return number of message recipients
|
|
+ * @deprecated in favour of {@link #broadcast(net.kyori.adventure.text.Component, String)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public int broadcast(@NotNull String message, @NotNull String permission);
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Broadcasts the specified message to every user with the given
|
|
+ * permission name.
|
|
+ *
|
|
+ * @param message message to broadcast
|
|
+ * @param permission the required permission {@link Permissible
|
|
+ * permissibles} must have to receive the broadcast
|
|
+ * @return number of message recipients
|
|
+ */
|
|
+ int broadcast(@NotNull net.kyori.adventure.text.Component message, @NotNull String permission);
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Gets the player by the given name, regardless if they are offline or
|
|
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
|
|
@NotNull
|
|
Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type);
|
|
|
|
+ // Paper start
|
|
/**
|
|
* Creates an empty inventory with the specified type and title. If the type
|
|
* is {@link InventoryType#CHEST}, the new inventory has a size of 27;
|
|
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
|
|
* @see InventoryType#isCreatable()
|
|
*/
|
|
@NotNull
|
|
+ Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull net.kyori.adventure.text.Component title);
|
|
+ // Paper end
|
|
+
|
|
+ /**
|
|
+ * Creates an empty inventory with the specified type and title. If the type
|
|
+ * is {@link InventoryType#CHEST}, the new inventory has a size of 27;
|
|
+ * otherwise the new inventory has the normal size for its type.<br>
|
|
+ * It should be noted that some inventory types do not support titles and
|
|
+ * may not render with said titles on the Minecraft client.
|
|
+ * <br>
|
|
+ * {@link InventoryType#WORKBENCH} will not process crafting recipes if
|
|
+ * created with this method. Use
|
|
+ * {@link Player#openWorkbench(Location, boolean)} instead.
|
|
+ * <br>
|
|
+ * {@link InventoryType#ENCHANTING} will not process {@link ItemStack}s
|
|
+ * for possible enchanting results. Use
|
|
+ * {@link Player#openEnchanting(Location, boolean)} instead.
|
|
+ *
|
|
+ * @param owner The holder of the inventory; can be null if there's no holder.
|
|
+ * @param type The type of inventory to create.
|
|
+ * @param title The title of the inventory, to be displayed when it is viewed.
|
|
+ * @return The new inventory.
|
|
+ * @throws IllegalArgumentException if the {@link InventoryType} cannot be
|
|
+ * viewed.
|
|
+ * @deprecated in favour of {@link #createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)}
|
|
+ *
|
|
+ * @see InventoryType#isCreatable()
|
|
+ */
|
|
+ @Deprecated // Paper
|
|
+ @NotNull
|
|
Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title);
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
|
|
@NotNull
|
|
Inventory createInventory(@Nullable InventoryHolder owner, int size) throws IllegalArgumentException;
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Creates an empty inventory of type {@link InventoryType#CHEST} with the
|
|
+ * specified size and title.
|
|
+ *
|
|
+ * @param owner the holder of the inventory, or null to indicate no holder
|
|
+ * @param size a multiple of 9 as the size of inventory to create
|
|
+ * @param title the title of the inventory, displayed when inventory is
|
|
+ * viewed
|
|
+ * @return a new inventory
|
|
+ * @throws IllegalArgumentException if the size is not a multiple of 9
|
|
+ */
|
|
+ @NotNull
|
|
+ Inventory createInventory(@Nullable InventoryHolder owner, int size, @NotNull net.kyori.adventure.text.Component title) throws IllegalArgumentException;
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Creates an empty inventory of type {@link InventoryType#CHEST} with the
|
|
* specified size and title.
|
|
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
|
|
* viewed
|
|
* @return a new inventory
|
|
* @throws IllegalArgumentException if the size is not a multiple of 9
|
|
+ * @deprecated in favour of {@link #createInventory(InventoryHolder, int, net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
@NotNull
|
|
Inventory createInventory(@Nullable InventoryHolder owner, int size, @NotNull String title) throws IllegalArgumentException;
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Creates an empty merchant.
|
|
+ *
|
|
+ * @param title the title of the corresponding merchant inventory, displayed
|
|
+ * when the merchant inventory is viewed
|
|
+ * @return a new merchant
|
|
+ */
|
|
+ @NotNull Merchant createMerchant(@Nullable net.kyori.adventure.text.Component title);
|
|
+ // Paper start
|
|
/**
|
|
* Creates an empty merchant.
|
|
*
|
|
* @param title the title of the corresponding merchant inventory, displayed
|
|
* when the merchant inventory is viewed
|
|
* @return a new merchant
|
|
+ * @deprecated in favour of {@link #createMerchant(net.kyori.adventure.text.Component)}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
Merchant createMerchant(@Nullable String title);
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
|
|
*/
|
|
boolean isPrimaryThread();
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the message that is displayed on the server list.
|
|
+ *
|
|
+ * @return the server's MOTD
|
|
+ */
|
|
+ @NotNull net.kyori.adventure.text.Component motd();
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Gets the message that is displayed on the server list.
|
|
*
|
|
* @return the servers MOTD
|
|
+ * @deprecated in favour of {@link #motd()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
String getMotd();
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the default message that is displayed when the server is stopped.
|
|
+ *
|
|
+ * @return the shutdown message
|
|
+ */
|
|
+ @Nullable net.kyori.adventure.text.Component shutdownMessage();
|
|
+ // Paper end
|
|
/**
|
|
* Gets the default message that is displayed when the server is stopped.
|
|
*
|
|
* @return the shutdown message
|
|
+ * @deprecated in favour of {@link #shutdownMessage()}
|
|
*/
|
|
@Nullable
|
|
+ @Deprecated // Paper
|
|
String getShutdownMessage();
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
|
|
* Sends the component to the player
|
|
*
|
|
* @param component the components to send
|
|
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void broadcast(@NotNull net.md_5.bungee.api.chat.BaseComponent component) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
|
|
* Sends an array of components as a single message to the player
|
|
*
|
|
* @param components the components to send
|
|
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void broadcast(@NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/Sound.java b/src/main/java/org/bukkit/Sound.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/Sound.java
|
|
+++ b/src/main/java/org/bukkit/Sound.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
* guarantee values will not be removed from this Enum. As such, you should not
|
|
* depend on the ordinal values of this class.
|
|
*/
|
|
-public enum Sound implements Keyed {
|
|
+public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Paper - implement Sound.Type
|
|
|
|
AMBIENT_BASALT_DELTAS_ADDITIONS("ambient.basalt_deltas.additions"),
|
|
AMBIENT_BASALT_DELTAS_LOOP("ambient.basalt_deltas.loop"),
|
|
@@ -0,0 +0,0 @@ public enum Sound implements Keyed {
|
|
public NamespacedKey getKey() {
|
|
return key;
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public net.kyori.adventure.key.@org.checkerframework.checker.nullness.qual.NonNull Key key() {
|
|
+ return this.key;
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/UnsafeValues.java
|
|
+++ b/src/main/java/org/bukkit/UnsafeValues.java
|
|
@@ -0,0 +0,0 @@ import org.bukkit.plugin.PluginDescriptionFile;
|
|
*/
|
|
@Deprecated
|
|
public interface UnsafeValues {
|
|
+ net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer legacyComponentSerializer(); // Paper
|
|
|
|
void reportTimings(); // Paper
|
|
Material toLegacy(Material material);
|
|
diff --git a/src/main/java/org/bukkit/Warning.java b/src/main/java/org/bukkit/Warning.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/Warning.java
|
|
+++ b/src/main/java/org/bukkit/Warning.java
|
|
@@ -0,0 +0,0 @@ public @interface Warning {
|
|
* </ul>
|
|
*/
|
|
public boolean printFor(@Nullable Warning warning) {
|
|
+ if (Boolean.getBoolean("paper.alwaysPrintWarningState")) return true; // Paper
|
|
if (this == DEFAULT) {
|
|
return warning == null || warning.value();
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/World.java
|
|
+++ b/src/main/java/org/bukkit/World.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
/**
|
|
* Represents a world, which may contain entities, chunks and blocks
|
|
*/
|
|
-public interface World extends PluginMessageRecipient, Metadatable {
|
|
+public interface World extends PluginMessageRecipient, Metadatable, net.kyori.adventure.audience.ForwardingAudience { // Paper
|
|
|
|
/**
|
|
* Gets the {@link Block} at the given coordinates
|
|
@@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable {
|
|
@NotNull
|
|
public List<Player> getPlayers();
|
|
|
|
+ // Paper start
|
|
+ @NotNull
|
|
+ @Override
|
|
+ default Iterable<? extends net.kyori.adventure.audience.Audience> audiences() {
|
|
+ return this.getPlayers();
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Returns a list of entities within a bounding box centered around a
|
|
* Location.
|
|
diff --git a/src/main/java/org/bukkit/block/Sign.java b/src/main/java/org/bukkit/block/Sign.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/block/Sign.java
|
|
+++ b/src/main/java/org/bukkit/block/Sign.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
* Represents a captured state of either a SignPost or a WallSign.
|
|
*/
|
|
public interface Sign extends TileState, Colorable {
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets all the lines of text currently on this sign.
|
|
+ *
|
|
+ * @return Array of Strings containing each line of text
|
|
+ */
|
|
+ @NotNull
|
|
+ public java.util.List<net.kyori.adventure.text.Component> lines();
|
|
+
|
|
+ /**
|
|
+ * Gets the line of text at the specified index.
|
|
+ * <p>
|
|
+ * For example, getLine(0) will return the first line of text.
|
|
+ *
|
|
+ * @param index Line number to get the text from, starting at 0
|
|
+ * @throws IndexOutOfBoundsException Thrown when the line does not exist
|
|
+ * @return Text on the given line
|
|
+ */
|
|
+ @NotNull
|
|
+ public net.kyori.adventure.text.Component line(int index) throws IndexOutOfBoundsException;
|
|
+
|
|
+ /**
|
|
+ * Sets the line of text at the specified index.
|
|
+ * <p>
|
|
+ * For example, setLine(0, "Line One") will set the first line of text to
|
|
+ * "Line One".
|
|
+ *
|
|
+ * @param index Line number to set the text at, starting from 0
|
|
+ * @param line New text to set at the specified index
|
|
+ * @throws IndexOutOfBoundsException If the index is out of the range 0..3
|
|
+ */
|
|
+ public void line(int index, @NotNull net.kyori.adventure.text.Component line) throws IndexOutOfBoundsException;
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Gets all the lines of text currently on this sign.
|
|
*
|
|
* @return Array of Strings containing each line of text
|
|
+ * @deprecated in favour of {@link #lines()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public String[] getLines();
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Sign extends TileState, Colorable {
|
|
* @param index Line number to get the text from, starting at 0
|
|
* @throws IndexOutOfBoundsException Thrown when the line does not exist
|
|
* @return Text on the given line
|
|
+ * @deprecated in favour of {@link #line(int)}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public String getLine(int index) throws IndexOutOfBoundsException;
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Sign extends TileState, Colorable {
|
|
* @param index Line number to set the text at, starting from 0
|
|
* @param line New text to set at the specified index
|
|
* @throws IndexOutOfBoundsException If the index is out of the range 0..3
|
|
+ * @deprecated in favour of {@link #line(int, net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setLine(int index, @NotNull String line) throws IndexOutOfBoundsException;
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/command/CommandSender.java b/src/main/java/org/bukkit/command/CommandSender.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/command/CommandSender.java
|
|
+++ b/src/main/java/org/bukkit/command/CommandSender.java
|
|
@@ -0,0 +0,0 @@ import org.bukkit.permissions.Permissible;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
-public interface CommandSender extends Permissible {
|
|
+public interface CommandSender extends net.kyori.adventure.audience.Audience, Permissible { // Paper
|
|
|
|
/**
|
|
* Sends this sender a message
|
|
*
|
|
* @param message Message to be displayed
|
|
+ * @see #sendMessage(net.kyori.adventure.text.Component)
|
|
*/
|
|
public void sendMessage(@NotNull String message);
|
|
|
|
@@ -0,0 +0,0 @@ public interface CommandSender extends Permissible {
|
|
* Sends this sender multiple messages
|
|
*
|
|
* @param messages An array of messages to be displayed
|
|
+ * @see #sendMessage(net.kyori.adventure.text.Component)
|
|
*/
|
|
public void sendMessage(@NotNull String[] messages);
|
|
|
|
@@ -0,0 +0,0 @@ public interface CommandSender extends Permissible {
|
|
*
|
|
* @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)
|
|
*/
|
|
public void sendMessage(@Nullable UUID sender, @NotNull String message);
|
|
|
|
@@ -0,0 +0,0 @@ public interface CommandSender extends Permissible {
|
|
*
|
|
* @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)
|
|
*/
|
|
public void sendMessage(@Nullable UUID sender, @NotNull String[] messages);
|
|
|
|
@@ -0,0 +0,0 @@ public interface CommandSender extends Permissible {
|
|
* Sends this sender a chat component.
|
|
*
|
|
* @param component the components to send
|
|
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void sendMessage(@NotNull net.md_5.bungee.api.chat.BaseComponent component) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface CommandSender extends Permissible {
|
|
* Sends an array of components as a single message to the sender.
|
|
*
|
|
* @param components the components to send
|
|
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void sendMessage(@NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface CommandSender extends Permissible {
|
|
*
|
|
* @param component the components to send
|
|
* @param sender the sender of the message
|
|
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void sendMessage(@Nullable UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent component) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface CommandSender extends Permissible {
|
|
*
|
|
* @param components the components to send
|
|
* @param sender the sender of the message
|
|
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void sendMessage(@Nullable UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface CommandSender extends Permissible {
|
|
@NotNull
|
|
Spigot spigot();
|
|
// Spigot end
|
|
+
|
|
+ // Paper start
|
|
+ @Override
|
|
+ default void sendMessage(final @NotNull net.kyori.adventure.identity.Identity identity, final @NotNull net.kyori.adventure.text.Component message, final @NotNull net.kyori.adventure.audience.MessageType type) {
|
|
+ this.sendMessage(org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(message));
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/command/ProxiedCommandSender.java b/src/main/java/org/bukkit/command/ProxiedCommandSender.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/command/ProxiedCommandSender.java
|
|
+++ b/src/main/java/org/bukkit/command/ProxiedCommandSender.java
|
|
@@ -0,0 +0,0 @@ package org.bukkit.command;
|
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
-public interface ProxiedCommandSender extends CommandSender {
|
|
+public interface ProxiedCommandSender extends CommandSender, net.kyori.adventure.audience.ForwardingAudience.Single { // Paper
|
|
|
|
/**
|
|
* Returns the CommandSender which triggered this proxied command
|
|
@@ -0,0 +0,0 @@ public interface ProxiedCommandSender extends CommandSender {
|
|
@NotNull
|
|
CommandSender getCallee();
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ default 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.Single.super.sendMessage(source, message, type);
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ default net.kyori.adventure.audience.Audience audience() {
|
|
+ return this.getCaller();
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/enchantments/Enchantment.java
|
|
+++ b/src/main/java/org/bukkit/enchantments/Enchantment.java
|
|
@@ -0,0 +0,0 @@ public abstract class Enchantment implements Keyed {
|
|
* @return True if the enchantment may be applied, otherwise False
|
|
*/
|
|
public abstract boolean canEnchantItem(@NotNull ItemStack item);
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Get the name of the enchantment with its applied level.
|
|
+ * <p>
|
|
+ * If the given {@code level} is either less than the {@link #getStartLevel()} or greater than the {@link #getMaxLevel()},
|
|
+ * the level may not be shown in the numeral format one may otherwise expect.
|
|
+ * </p>
|
|
+ *
|
|
+ * @param level the level of the enchantment to show
|
|
+ * @return the name of the enchantment with {@code level} applied
|
|
+ */
|
|
+ public abstract @NotNull net.kyori.adventure.text.Component displayName(int level);
|
|
+ // Paper end
|
|
|
|
@Override
|
|
public boolean equals(Object obj) {
|
|
diff --git a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java b/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
|
|
+++ b/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
|
|
@@ -0,0 +0,0 @@ public class EnchantmentWrapper extends Enchantment {
|
|
public boolean conflictsWith(@NotNull Enchantment other) {
|
|
return getEnchantment().conflictsWith(other);
|
|
}
|
|
+ // Paper start
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public net.kyori.adventure.text.Component displayName(int level) {
|
|
+ return getEnchantment().displayName(level);
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/Entity.java
|
|
+++ b/src/main/java/org/bukkit/entity/Entity.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
/**
|
|
* Represents a base entity in the world
|
|
*/
|
|
-public interface Entity extends Metadatable, CommandSender, Nameable, PersistentDataHolder {
|
|
+public interface Entity extends Metadatable, CommandSender, Nameable, PersistentDataHolder, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowEntity> { // Paper
|
|
|
|
/**
|
|
* Gets the entity's current position
|
|
@@ -0,0 +0,0 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
|
|
@Override
|
|
Spigot spigot();
|
|
// Spigot end
|
|
+
|
|
+ // Paper start
|
|
+ @NotNull
|
|
+ @Override
|
|
+ default net.kyori.adventure.text.event.HoverEvent<net.kyori.adventure.text.event.HoverEvent.ShowEntity> asHoverEvent(final @NotNull java.util.function.UnaryOperator<net.kyori.adventure.text.event.HoverEvent.ShowEntity> 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())));
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/Player.java
|
|
+++ b/src/main/java/org/bukkit/entity/Player.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
/**
|
|
* Represents a player, connected or not
|
|
*/
|
|
-public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginMessageRecipient {
|
|
+public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginMessageRecipient, net.kyori.adventure.identity.Identified { // Paper
|
|
+
|
|
+ // Paper start
|
|
+ @Override
|
|
+ default @NotNull net.kyori.adventure.identity.Identity identity() {
|
|
+ return net.kyori.adventure.identity.Identity.identity(this.getUniqueId());
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the "friendly" name to display of this player.
|
|
+ *
|
|
+ * @return the display name
|
|
+ */
|
|
+ @NotNull net.kyori.adventure.text.Component displayName();
|
|
+
|
|
+ /**
|
|
+ * Sets the "friendly" name to display of this player.
|
|
+ *
|
|
+ * @param displayName the display name to set
|
|
+ */
|
|
+ void displayName(final @Nullable net.kyori.adventure.text.Component displayName);
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Gets the "friendly" name to display of this player. This may include
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
* places defined by plugins.
|
|
*
|
|
* @return the friendly name
|
|
+ * @deprecated in favour of {@link #displayName()}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
@NotNull
|
|
public String getDisplayName();
|
|
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
* places defined by plugins.
|
|
*
|
|
* @param name The new display name.
|
|
+ * @deprecated in favour of {@link #displayName(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setDisplayName(@Nullable String name);
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Sets the name that is shown on the in-game player list.
|
|
+ * <p>
|
|
+ * If the value is null, the name will be identical to {@link #getName()}.
|
|
+ *
|
|
+ * @param name new player list name
|
|
+ */
|
|
+ void playerListName(@Nullable net.kyori.adventure.text.Component name);
|
|
+
|
|
+ /**
|
|
+ * Gets the name that is shown on the in-game player list.
|
|
+ *
|
|
+ * @return the player list name
|
|
+ */
|
|
+ @Nullable net.kyori.adventure.text.Component playerListName();
|
|
+
|
|
+ /**
|
|
+ * Gets the currently displayed player list header for this player.
|
|
+ *
|
|
+ * @return player list header or null
|
|
+ */
|
|
+ @Nullable net.kyori.adventure.text.Component playerListHeader();
|
|
+
|
|
+ /**
|
|
+ * Gets the currently displayed player list footer for this player.
|
|
+ *
|
|
+ * @return player list footer or null
|
|
+ */
|
|
+ @Nullable net.kyori.adventure.text.Component playerListFooter();
|
|
+ // Paper end
|
|
/**
|
|
* Gets the name that is shown on the player list.
|
|
*
|
|
* @return the player list name
|
|
+ * @deprecated in favour of {@link #playerListName()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public String getPlayerListName();
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
* If the value is null, the name will be identical to {@link #getName()}.
|
|
*
|
|
* @param name new player list name
|
|
+ * @deprecated in favour of {@link #playerListName(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setPlayerListName(@Nullable String name);
|
|
|
|
/**
|
|
* Gets the currently displayed player list header for this player.
|
|
*
|
|
* @return player list header or null
|
|
+ * @deprecated in favour of {@link #playerListHeader()}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
@Nullable
|
|
public String getPlayerListHeader();
|
|
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
* Gets the currently displayed player list footer for this player.
|
|
*
|
|
* @return player list header or null
|
|
+ * @deprecated in favour of {@link #playerListFooter()}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
@Nullable
|
|
public String getPlayerListFooter();
|
|
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
* Sets the currently displayed player list header for this player.
|
|
*
|
|
* @param header player list header, null for empty
|
|
+ * @deprecated in favour of {@link #sendPlayerListHeader(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setPlayerListHeader(@Nullable String header);
|
|
|
|
/**
|
|
* Sets the currently displayed player list footer for this player.
|
|
*
|
|
* @param footer player list footer, null for empty
|
|
+ * @deprecated in favour of {@link #sendPlayerListFooter(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setPlayerListFooter(@Nullable String footer);
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
*
|
|
* @param header player list header, null for empty
|
|
* @param footer player list footer, null for empty
|
|
+ * @deprecated in favour of {@link #sendPlayerListHeaderAndFooter(net.kyori.adventure.text.Component, net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setPlayerListHeaderFooter(@Nullable String header, @Nullable String footer);
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
* Kicks player with custom kick message.
|
|
*
|
|
* @param message kick message
|
|
+ * @deprecated in favour of {@link #kick(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void kickPlayer(@Nullable String message);
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Kicks player with custom kick message.
|
|
+ *
|
|
+ * @param message kick message
|
|
+ */
|
|
+ void kick(final @Nullable net.kyori.adventure.text.Component message);
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Says a message (or runs a command).
|
|
*
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
@Deprecated
|
|
public boolean sendChunkChange(@NotNull Location loc, int sx, int sy, int sz, @NotNull byte[] data);
|
|
|
|
+ // Paper start
|
|
/**
|
|
* Send a sign change. This fakes a sign change packet for a user at
|
|
* a certain location. This will not actually change the world in any way.
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
* @throws IllegalArgumentException if location is null
|
|
* @throws IllegalArgumentException if lines is non-null and has a length less than 4
|
|
*/
|
|
+ void sendSignChange(@NotNull Location loc, @Nullable java.util.List<net.kyori.adventure.text.Component> lines) throws IllegalArgumentException;
|
|
+ /**
|
|
+ * Send a sign change. This fakes a sign change packet for a user at
|
|
+ * a certain location. This will not actually change the world in any way.
|
|
+ * This method will use a sign at the location's block or a faked sign
|
|
+ * sent via
|
|
+ * {@link #sendBlockChange(org.bukkit.Location, org.bukkit.Material, byte)}.
|
|
+ * <p>
|
|
+ * If the client does not have a sign at the given location it will
|
|
+ * display an error message to the user.
|
|
+ *
|
|
+ * @param loc the location of the sign
|
|
+ * @param lines the new text on the sign or null to clear it
|
|
+ * @param dyeColor the color of the sign
|
|
+ * @throws IllegalArgumentException if location is null
|
|
+ * @throws IllegalArgumentException if dyeColor is null
|
|
+ * @throws IllegalArgumentException if lines is non-null and has a length less than 4
|
|
+ */
|
|
+ void sendSignChange(@NotNull Location loc, @Nullable java.util.List<net.kyori.adventure.text.Component> lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException;
|
|
+ // Paper end
|
|
+ /**
|
|
+ * Send a sign change. This fakes a sign change packet for a user at
|
|
+ * a certain location. This will not actually change the world in any way.
|
|
+ * This method will use a sign at the location's block or a faked sign
|
|
+ * sent via
|
|
+ * {@link #sendBlockChange(org.bukkit.Location, org.bukkit.Material, byte)}.
|
|
+ * <p>
|
|
+ * If the client does not have a sign at the given location it will
|
|
+ * display an error message to the user.
|
|
+ *
|
|
+ * @param loc the location of the sign
|
|
+ * @param lines the new text on the sign or null to clear it
|
|
+ * @throws IllegalArgumentException if location is null
|
|
+ * @throws IllegalArgumentException if lines is non-null and has a length less than 4
|
|
+ * @deprecated in favour of {@link #sendSignChange(org.bukkit.Location, java.util.List)}
|
|
+ */
|
|
+ @Deprecated // Paper
|
|
public void sendSignChange(@NotNull Location loc, @Nullable String[] lines) throws IllegalArgumentException;
|
|
|
|
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
* @throws IllegalArgumentException if location is null
|
|
* @throws IllegalArgumentException if dyeColor is null
|
|
* @throws IllegalArgumentException if lines is non-null and has a length less than 4
|
|
+ * @deprecated in favour of {@link #sendSignChange(org.bukkit.Location, java.util.List, org.bukkit.DyeColor)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException;
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
*/
|
|
public int getClientViewDistance();
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the player's current locale.
|
|
+ *
|
|
+ * @return the player's locale
|
|
+ */
|
|
+ @NotNull java.util.Locale locale();
|
|
+ // Paper end
|
|
/**
|
|
* Gets the player's current locale.
|
|
*
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
* they wish.
|
|
*
|
|
* @return the player's locale
|
|
+ * @deprecated in favour of {@link #locale()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public String getLocale();
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
*/
|
|
public void openBook(@NotNull ItemStack book);
|
|
|
|
+ // Paper start
|
|
+ @NotNull
|
|
+ @Override
|
|
+ default net.kyori.adventure.text.event.HoverEvent<net.kyori.adventure.text.event.HoverEvent.ShowEntity> asHoverEvent(final @NotNull java.util.function.UnaryOperator<net.kyori.adventure.text.event.HoverEvent.ShowEntity> 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())));
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
// Spigot start
|
|
public class Spigot extends Entity.Spigot {
|
|
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
|
|
+ @Deprecated // Paper
|
|
@Override
|
|
public void sendMessage(@NotNull net.md_5.bungee.api.chat.BaseComponent component) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
|
|
+ @Deprecated // Paper
|
|
@Override
|
|
public void sendMessage(@NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
*
|
|
* @param position the screen position
|
|
* @param component the components to send
|
|
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent component) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
*
|
|
* @param position the screen position
|
|
* @param components the components to send
|
|
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
* @param position the screen position
|
|
* @param sender the sender of the message
|
|
* @param component the components to send
|
|
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent component) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
* @param position the screen position
|
|
* @param sender the sender of the message
|
|
* @param components the components to send
|
|
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
|
|
diff --git a/src/main/java/org/bukkit/entity/minecart/CommandMinecart.java b/src/main/java/org/bukkit/entity/minecart/CommandMinecart.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/minecart/CommandMinecart.java
|
|
+++ b/src/main/java/org/bukkit/entity/minecart/CommandMinecart.java
|
|
@@ -0,0 +0,0 @@ public interface CommandMinecart extends Minecart {
|
|
* same as setting it to "@".
|
|
*
|
|
* @param name New name for this CommandMinecart.
|
|
+ * @deprecated in favour of {@link #customName(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setName(@Nullable String name);
|
|
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/event/block/SignChangeEvent.java b/src/main/java/org/bukkit/event/block/SignChangeEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/block/SignChangeEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/block/SignChangeEvent.java
|
|
@@ -0,0 +0,0 @@ public class SignChangeEvent extends BlockEvent implements Cancellable {
|
|
private static final HandlerList handlers = new HandlerList();
|
|
private boolean cancel = false;
|
|
private final Player player;
|
|
- private final String[] lines;
|
|
+ // Paper start
|
|
+ private final java.util.List<net.kyori.adventure.text.Component> adventure$lines;
|
|
|
|
+ public SignChangeEvent(@NotNull final Block theBlock, @NotNull final Player player, @NotNull final java.util.List<net.kyori.adventure.text.Component> adventure$lines) {
|
|
+ super(theBlock);
|
|
+ this.player = player;
|
|
+ this.adventure$lines = adventure$lines;
|
|
+ }
|
|
+
|
|
+ @Deprecated // Paper end
|
|
public SignChangeEvent(@NotNull final Block theBlock, @NotNull final Player thePlayer, @NotNull final String[] theLines) {
|
|
super(theBlock);
|
|
this.player = thePlayer;
|
|
- this.lines = theLines;
|
|
+ // Paper start
|
|
+ this.adventure$lines = new java.util.ArrayList<>();
|
|
+ for (String theLine : theLines) {
|
|
+ this.adventure$lines.add(org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(theLine));
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public class SignChangeEvent extends BlockEvent implements Cancellable {
|
|
return player;
|
|
}
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets all of the lines of text from the sign involved in this event.
|
|
+ *
|
|
+ * @return the String array for the sign's lines new text
|
|
+ */
|
|
+ public @NotNull java.util.List<net.kyori.adventure.text.Component> lines() {
|
|
+ return this.adventure$lines;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets a single line of text from the sign involved in this event.
|
|
+ *
|
|
+ * @param index index of the line to get
|
|
+ * @return the String containing the line of text associated with the
|
|
+ * provided index
|
|
+ * @throws IndexOutOfBoundsException thrown when the provided index is {@literal > 3
|
|
+ * or < 0}
|
|
+ */
|
|
+ public @Nullable net.kyori.adventure.text.Component line(int index) throws IndexOutOfBoundsException {
|
|
+ return this.adventure$lines.get(index);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets a single line for the sign involved in this event
|
|
+ *
|
|
+ * @param index index of the line to set
|
|
+ * @param line text to set
|
|
+ * @throws IndexOutOfBoundsException thrown when the provided index is {@literal > 3
|
|
+ * or < 0}
|
|
+ */
|
|
+ public void line(int index, @Nullable net.kyori.adventure.text.Component line) throws IndexOutOfBoundsException {
|
|
+ this.adventure$lines.set(index, line);
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Gets all of the lines of text from the sign involved in this event.
|
|
*
|
|
* @return the String array for the sign's lines new text
|
|
+ * @deprecated in favour of {@link #lines()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public String[] getLines() {
|
|
- return lines;
|
|
+ return adventure$lines.stream().map(org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer()::serialize).toArray(String[]::new); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public class SignChangeEvent extends BlockEvent implements Cancellable {
|
|
* provided index
|
|
* @throws IndexOutOfBoundsException thrown when the provided index is {@literal > 3
|
|
* or < 0}
|
|
+ * @deprecated in favour of {@link #line(int)}
|
|
*/
|
|
@Nullable
|
|
+ @Deprecated // Paper
|
|
public String getLine(int index) throws IndexOutOfBoundsException {
|
|
- return lines[index];
|
|
+ return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.adventure$lines.get(index)); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public class SignChangeEvent extends BlockEvent implements Cancellable {
|
|
* @param line text to set
|
|
* @throws IndexOutOfBoundsException thrown when the provided index is {@literal > 3
|
|
* or < 0}
|
|
+ * @deprecated in favour of {@link #line(int, net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setLine(int index, @Nullable String line) throws IndexOutOfBoundsException {
|
|
- lines[index] = line;
|
|
+ adventure$lines.set(index, line != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(line) : null); // Paper
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
public class PlayerDeathEvent extends EntityDeathEvent {
|
|
private int newExp = 0;
|
|
private String deathMessage = "";
|
|
+ private net.kyori.adventure.text.Component adventure$deathMessage; // Paper
|
|
private int newLevel = 0;
|
|
private int newTotalExp = 0;
|
|
private boolean keepLevel = false;
|
|
private boolean keepInventory = false;
|
|
+ // Paper start
|
|
+ public PlayerDeathEvent(@NotNull final Player player, @NotNull final List<ItemStack> drops, final int droppedExp, @Nullable final net.kyori.adventure.text.Component adventure$deathMessage) {
|
|
+ this(player, drops, droppedExp, 0, adventure$deathMessage, null);
|
|
+ }
|
|
+
|
|
+ public PlayerDeathEvent(@NotNull final Player player, @NotNull final List<ItemStack> drops, final int droppedExp, final int newExp, @Nullable final net.kyori.adventure.text.Component adventure$deathMessage, @Nullable String deathMessage) {
|
|
+ this(player, drops, droppedExp, newExp, 0, 0, adventure$deathMessage, deathMessage);
|
|
+ }
|
|
|
|
+ public PlayerDeathEvent(@NotNull final Player player, @NotNull final List<ItemStack> drops, final int droppedExp, final int newExp, final int newTotalExp, final int newLevel, @Nullable final net.kyori.adventure.text.Component adventure$deathMessage, @Nullable String deathMessage) {
|
|
+ super(player, drops, droppedExp);
|
|
+ this.newExp = newExp;
|
|
+ this.newTotalExp = newTotalExp;
|
|
+ this.newLevel = newLevel;
|
|
+ this.deathMessage = deathMessage;
|
|
+ this.adventure$deathMessage = adventure$deathMessage;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
+ @Deprecated // Paper
|
|
public PlayerDeathEvent(@NotNull final Player player, @NotNull final List<ItemStack> drops, final int droppedExp, @Nullable final String deathMessage) {
|
|
this(player, drops, droppedExp, 0, deathMessage);
|
|
}
|
|
|
|
+ @Deprecated // Paper
|
|
public PlayerDeathEvent(@NotNull final Player player, @NotNull final List<ItemStack> drops, final int droppedExp, final int newExp, @Nullable final String deathMessage) {
|
|
this(player, drops, droppedExp, newExp, 0, 0, deathMessage);
|
|
}
|
|
|
|
+ @Deprecated // Paper
|
|
public PlayerDeathEvent(@NotNull final Player player, @NotNull final List<ItemStack> drops, final int droppedExp, final int newExp, final int newTotalExp, final int newLevel, @Nullable final String deathMessage) {
|
|
super(player, drops, droppedExp);
|
|
this.newExp = newExp;
|
|
this.newTotalExp = newTotalExp;
|
|
this.newLevel = newLevel;
|
|
this.deathMessage = deathMessage;
|
|
+ this.adventure$deathMessage = deathMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(deathMessage) : net.kyori.adventure.text.Component.empty(); // Paper
|
|
}
|
|
|
|
@NotNull
|
|
@@ -0,0 +0,0 @@ public class PlayerDeathEvent extends EntityDeathEvent {
|
|
return (Player) entity;
|
|
}
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Set the death message that will appear to everyone on the server.
|
|
+ *
|
|
+ * @param deathMessage Message to appear to other players on the server.
|
|
+ */
|
|
+ public void deathMessage(@Nullable net.kyori.adventure.text.Component deathMessage) {
|
|
+ this.deathMessage = null;
|
|
+ this.adventure$deathMessage = deathMessage;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Get the death message that will appear to everyone on the server.
|
|
+ *
|
|
+ * @return Message to appear to other players on the server.
|
|
+ */
|
|
+ public @Nullable net.kyori.adventure.text.Component deathMessage() {
|
|
+ return this.adventure$deathMessage;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Set the death message that will appear to everyone on the server.
|
|
*
|
|
* @param deathMessage Message to appear to other players on the server.
|
|
+ * @deprecated in favour of {@link #deathMessage(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setDeathMessage(@Nullable String deathMessage) {
|
|
this.deathMessage = deathMessage;
|
|
+ this.adventure$deathMessage = deathMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(deathMessage) : net.kyori.adventure.text.Component.empty(); // Paper
|
|
}
|
|
|
|
/**
|
|
* Get the death message that will appear to everyone on the server.
|
|
*
|
|
* @return Message to appear to other players on the server.
|
|
+ * @deprecated in favour of {@link #deathMessage()}
|
|
*/
|
|
@Nullable
|
|
+ @Deprecated // Paper
|
|
public String getDeathMessage() {
|
|
- return deathMessage;
|
|
+ return this.deathMessage != null ? this.deathMessage : (this.adventure$deathMessage != null ? getDeathMessageString(this.adventure$deathMessage) : null); // Paper
|
|
}
|
|
-
|
|
+ // Paper start //TODO: add translation API to drop String deathMessage in favor of just Adventure
|
|
+ private static String getDeathMessageString(net.kyori.adventure.text.Component component) {
|
|
+ return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(component);
|
|
+ }
|
|
+ // Paper end
|
|
/**
|
|
* Gets how much EXP the Player should have at respawn.
|
|
* <p>
|
|
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
|
+++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
|
@@ -0,0 +0,0 @@ public enum InventoryType {
|
|
private final String title;
|
|
private final boolean isCreatable;
|
|
|
|
+ // Paper start
|
|
+ private final net.kyori.adventure.text.Component defaultTitleComponent;
|
|
+
|
|
+ /**
|
|
+ * Gets the inventory's default title.
|
|
+ *
|
|
+ * @return the inventory's default title
|
|
+ */
|
|
+ public @NotNull net.kyori.adventure.text.Component defaultTitle() {
|
|
+ return defaultTitleComponent;
|
|
+ }
|
|
+ // Paper end
|
|
private InventoryType(int defaultSize, /*@NotNull*/ String defaultTitle) {
|
|
this(defaultSize, defaultTitle, true);
|
|
}
|
|
@@ -0,0 +0,0 @@ public enum InventoryType {
|
|
size = defaultSize;
|
|
title = defaultTitle;
|
|
this.isCreatable = isCreatable;
|
|
+ this.defaultTitleComponent = net.kyori.adventure.text.Component.text(defaultTitle); // Paper - Adventure
|
|
}
|
|
|
|
public int getDefaultSize() {
|
|
@@ -0,0 +0,0 @@ public enum InventoryType {
|
|
}
|
|
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public String getDefaultTitle() {
|
|
return title;
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerChatEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerChatEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/player/AsyncPlayerChatEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/player/AsyncPlayerChatEvent.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
* <p>
|
|
* Care should be taken to check {@link #isAsynchronous()} and treat the event
|
|
* appropriately.
|
|
+ *
|
|
+ * @deprecated use {@link io.papermc.paper.event.player.AsyncChatEvent} instead
|
|
*/
|
|
+@Deprecated // Paper
|
|
+@org.bukkit.Warning(value = false, reason = "Don't nag on old event yet") // Paper
|
|
public class AsyncPlayerChatEvent extends PlayerEvent implements Cancellable {
|
|
private static final HandlerList handlers = new HandlerList();
|
|
private boolean cancel = false;
|
|
diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
public class AsyncPlayerPreLoginEvent extends Event {
|
|
private static final HandlerList handlers = new HandlerList();
|
|
private Result result;
|
|
- private String message;
|
|
+ private net.kyori.adventure.text.Component message; // Paper
|
|
private final String name;
|
|
private final InetAddress ipAddress;
|
|
private final UUID uniqueId;
|
|
@@ -0,0 +0,0 @@ public class AsyncPlayerPreLoginEvent extends Event {
|
|
public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId) {
|
|
super(true);
|
|
this.result = Result.ALLOWED;
|
|
- this.message = "";
|
|
+ this.message = net.kyori.adventure.text.Component.empty(); // Paper
|
|
this.name = name;
|
|
this.ipAddress = ipAddress;
|
|
this.uniqueId = uniqueId;
|
|
@@ -0,0 +0,0 @@ public class AsyncPlayerPreLoginEvent extends Event {
|
|
this.result = result == null ? null : Result.valueOf(result.name());
|
|
}
|
|
|
|
+ // Paper start
|
|
/**
|
|
* Gets the current kick message that will be used if getResult() !=
|
|
* Result.ALLOWED
|
|
@@ -0,0 +0,0 @@ public class AsyncPlayerPreLoginEvent extends Event {
|
|
* @return Current kick message
|
|
*/
|
|
@NotNull
|
|
- public String getKickMessage() {
|
|
+ public net.kyori.adventure.text.Component kickMessage() {
|
|
return message;
|
|
}
|
|
|
|
@@ -0,0 +0,0 @@ public class AsyncPlayerPreLoginEvent extends Event {
|
|
*
|
|
* @param message New kick message
|
|
*/
|
|
- public void setKickMessage(@NotNull final String message) {
|
|
+ public void kickMessage(@NotNull final net.kyori.adventure.text.Component message) {
|
|
+ this.message = message;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Disallows the player from logging in, with the given reason
|
|
+ *
|
|
+ * @param result New result for disallowing the player
|
|
+ * @param message Kick message to display to the user
|
|
+ */
|
|
+ public void disallow(@NotNull final Result result, @NotNull final net.kyori.adventure.text.Component message) {
|
|
+ this.result = result;
|
|
this.message = message;
|
|
}
|
|
|
|
+ /**
|
|
+ * Disallows the player from logging in, with the given reason
|
|
+ *
|
|
+ * @param result New result for disallowing the player
|
|
+ * @param message Kick message to display to the user
|
|
+ * @deprecated This method uses a deprecated enum from {@link
|
|
+ * PlayerPreLoginEvent}
|
|
+ * @see #disallow(Result, String)
|
|
+ */
|
|
+ @Deprecated
|
|
+ public void disallow(@NotNull final PlayerPreLoginEvent.Result result, @NotNull final net.kyori.adventure.text.Component message) {
|
|
+ this.result = result == null ? null : Result.valueOf(result.name());
|
|
+ this.message = message;
|
|
+ }
|
|
+ // Paper end
|
|
+ /**
|
|
+ * Gets the current kick message that will be used if getResult() !=
|
|
+ * Result.ALLOWED
|
|
+ *
|
|
+ * @return Current kick message
|
|
+ * @deprecated in favour of {@link #kickMessage()}
|
|
+ */
|
|
+ @NotNull
|
|
+ @Deprecated // Paper
|
|
+ public String getKickMessage() {
|
|
+ return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.message); // Paper
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets the kick message to display if getResult() != Result.ALLOWED
|
|
+ *
|
|
+ * @param message New kick message
|
|
+ * @deprecated in favour of {@link #kickMessage(net.kyori.adventure.text.Component)}
|
|
+ */
|
|
+ @Deprecated // Paper
|
|
+ public void setKickMessage(@NotNull final String message) {
|
|
+ this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
|
|
+ }
|
|
+
|
|
/**
|
|
* Allows the player to log in
|
|
*/
|
|
public void allow() {
|
|
result = Result.ALLOWED;
|
|
- message = "";
|
|
+ message = net.kyori.adventure.text.Component.empty(); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public class AsyncPlayerPreLoginEvent extends Event {
|
|
*
|
|
* @param result New result for disallowing the player
|
|
* @param message Kick message to display to the user
|
|
+ * @deprecated in favour of {@link #disallow(org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result, net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void disallow(@NotNull final Result result, @NotNull final String message) {
|
|
this.result = result;
|
|
- this.message = message;
|
|
+ this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public class AsyncPlayerPreLoginEvent extends Event {
|
|
@Deprecated
|
|
public void disallow(@NotNull final PlayerPreLoginEvent.Result result, @NotNull final String message) {
|
|
this.result = result == null ? null : Result.valueOf(result.name());
|
|
- this.message = message;
|
|
+ this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
|
|
}
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/event/player/PlayerChatEvent.java b/src/main/java/org/bukkit/event/player/PlayerChatEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/player/PlayerChatEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/player/PlayerChatEvent.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
* Listening to this event forces chat to wait for the main thread which
|
|
* causes delays for chat. {@link AsyncPlayerChatEvent} is the encouraged
|
|
* alternative for thread safe implementations.
|
|
+ * @deprecated use {@link io.papermc.paper.event.player.ChatEvent} instead
|
|
*/
|
|
@Deprecated
|
|
@Warning(reason = "Listening to this event forces chat to wait for the main thread, delaying chat messages.")
|
|
diff --git a/src/main/java/org/bukkit/event/player/PlayerEvent.java b/src/main/java/org/bukkit/event/player/PlayerEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/player/PlayerEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/player/PlayerEvent.java
|
|
@@ -0,0 +0,0 @@ public abstract class PlayerEvent extends Event {
|
|
player = who;
|
|
}
|
|
|
|
- PlayerEvent(@NotNull final Player who, boolean async) {
|
|
+ public PlayerEvent(@NotNull final Player who, boolean async) { // Paper - public
|
|
super(async);
|
|
player = who;
|
|
|
|
diff --git a/src/main/java/org/bukkit/event/player/PlayerJoinEvent.java b/src/main/java/org/bukkit/event/player/PlayerJoinEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/player/PlayerJoinEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/player/PlayerJoinEvent.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
*/
|
|
public class PlayerJoinEvent extends PlayerEvent {
|
|
private static final HandlerList handlers = new HandlerList();
|
|
- private String joinMessage;
|
|
+ // Paper start
|
|
+ private net.kyori.adventure.text.Component joinMessage;
|
|
+ public PlayerJoinEvent(@NotNull final Player playerJoined, @Nullable final net.kyori.adventure.text.Component joinMessage) {
|
|
+ super(playerJoined);
|
|
+ this.joinMessage = joinMessage;
|
|
+ }
|
|
|
|
+ @Deprecated // Paper end
|
|
public PlayerJoinEvent(@NotNull final Player playerJoined, @Nullable final String joinMessage) {
|
|
super(playerJoined);
|
|
+ this.joinMessage = joinMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(joinMessage) : null; // Paper end
|
|
+ }
|
|
+
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the join message to send to all online players
|
|
+ *
|
|
+ * @return string join message. Can be null
|
|
+ */
|
|
+ public @Nullable net.kyori.adventure.text.Component joinMessage() {
|
|
+ return this.joinMessage;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets the join message to send to all online players
|
|
+ *
|
|
+ * @param joinMessage join message. If null, no message will be sent
|
|
+ */
|
|
+ public void joinMessage(@Nullable net.kyori.adventure.text.Component joinMessage) {
|
|
this.joinMessage = joinMessage;
|
|
}
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Gets the join message to send to all online players
|
|
*
|
|
* @return string join message. Can be null
|
|
+ * @deprecated in favour of {@link #joinMessage()}
|
|
*/
|
|
@Nullable
|
|
+ @Deprecated // Paper
|
|
public String getJoinMessage() {
|
|
- return joinMessage;
|
|
+ return this.joinMessage == null ? null : org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.joinMessage); // Paper
|
|
}
|
|
|
|
/**
|
|
* Sets the join message to send to all online players
|
|
*
|
|
* @param joinMessage join message. If null, no message will be sent
|
|
+ * @deprecated in favour of {@link #joinMessage(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setJoinMessage(@Nullable String joinMessage) {
|
|
- this.joinMessage = joinMessage;
|
|
+ this.joinMessage = joinMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(joinMessage) : null; // Paper
|
|
}
|
|
|
|
@NotNull
|
|
diff --git a/src/main/java/org/bukkit/event/player/PlayerKickEvent.java b/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
*/
|
|
public class PlayerKickEvent extends PlayerEvent implements Cancellable {
|
|
private static final HandlerList handlers = new HandlerList();
|
|
- private String leaveMessage;
|
|
- private String kickReason;
|
|
+ private net.kyori.adventure.text.Component leaveMessage; // Paper
|
|
+ private net.kyori.adventure.text.Component kickReason; // Paper
|
|
private Boolean cancel;
|
|
|
|
+ @Deprecated // Paper
|
|
public PlayerKickEvent(@NotNull final Player playerKicked, @NotNull final String kickReason, @NotNull final String leaveMessage) {
|
|
+ super(playerKicked);
|
|
+ this.kickReason = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(kickReason); // Paper
|
|
+ this.leaveMessage = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(leaveMessage); // Paper
|
|
+ this.cancel = false;
|
|
+ }
|
|
+ // Paper start
|
|
+ public PlayerKickEvent(@NotNull final Player playerKicked, @NotNull final net.kyori.adventure.text.Component kickReason, @NotNull final net.kyori.adventure.text.Component leaveMessage) {
|
|
super(playerKicked);
|
|
this.kickReason = kickReason;
|
|
this.leaveMessage = leaveMessage;
|
|
this.cancel = false;
|
|
}
|
|
|
|
+ /**
|
|
+ * Gets the leave message send to all online players
|
|
+ *
|
|
+ * @return string kick reason
|
|
+ */
|
|
+ public @NotNull net.kyori.adventure.text.Component leaveMessage() {
|
|
+ return this.leaveMessage;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets the leave message send to all online players
|
|
+ *
|
|
+ * @param leaveMessage leave message
|
|
+ */
|
|
+ public void leaveMessage(@NotNull net.kyori.adventure.text.Component leaveMessage) {
|
|
+ this.leaveMessage = leaveMessage;
|
|
+ }
|
|
+
|
|
/**
|
|
* Gets the reason why the player is getting kicked
|
|
*
|
|
* @return string kick reason
|
|
*/
|
|
+ public @NotNull net.kyori.adventure.text.Component reason() {
|
|
+ return this.kickReason;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets the reason why the player is getting kicked
|
|
+ *
|
|
+ * @param kickReason kick reason
|
|
+ */
|
|
+ public void reason(@NotNull net.kyori.adventure.text.Component kickReason) {
|
|
+ this.kickReason = kickReason;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
+ /**
|
|
+ * Gets the reason why the player is getting kicked
|
|
+ *
|
|
+ * @return string kick reason
|
|
+ * @deprecated in favour of {@link #reason()}
|
|
+ */
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public String getReason() {
|
|
- return kickReason;
|
|
+ return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.kickReason); // Paper
|
|
}
|
|
|
|
/**
|
|
* Gets the leave message send to all online players
|
|
*
|
|
* @return string kick reason
|
|
+ * @deprecated in favour of {@link #leaveMessage()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public String getLeaveMessage() {
|
|
- return leaveMessage;
|
|
+ return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.leaveMessage); // Paper
|
|
}
|
|
|
|
@Override
|
|
@@ -0,0 +0,0 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable {
|
|
* Sets the reason why the player is getting kicked
|
|
*
|
|
* @param kickReason kick reason
|
|
+ * @deprecated in favour of {@link #reason(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setReason(@NotNull String kickReason) {
|
|
- this.kickReason = kickReason;
|
|
+ this.kickReason = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(kickReason); // Paper
|
|
}
|
|
|
|
/**
|
|
* Sets the leave message send to all online players
|
|
*
|
|
* @param leaveMessage leave message
|
|
+ * @deprecated in favour of {@link #leaveMessage(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setLeaveMessage(@NotNull String leaveMessage) {
|
|
- this.leaveMessage = leaveMessage;
|
|
+ this.leaveMessage = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(leaveMessage); // Paper
|
|
}
|
|
|
|
@NotNull
|
|
diff --git a/src/main/java/org/bukkit/event/player/PlayerLocaleChangeEvent.java b/src/main/java/org/bukkit/event/player/PlayerLocaleChangeEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/player/PlayerLocaleChangeEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/player/PlayerLocaleChangeEvent.java
|
|
@@ -0,0 +0,0 @@ public class PlayerLocaleChangeEvent extends PlayerEvent {
|
|
private static final HandlerList handlers = new HandlerList();
|
|
//
|
|
private final String locale;
|
|
+ // Paper start
|
|
+ private final java.util.Locale adventure$locale;
|
|
+ /**
|
|
+ * @see Player#getLocale()
|
|
+ *
|
|
+ * @return the player's new locale
|
|
+ */
|
|
+ public @NotNull java.util.Locale locale() {
|
|
+ return this.adventure$locale;
|
|
+ }
|
|
+ // Paper end
|
|
|
|
public PlayerLocaleChangeEvent(@NotNull Player who, @NotNull String locale) {
|
|
super(who);
|
|
this.locale = locale;
|
|
+ this.adventure$locale = net.kyori.adventure.translation.Translator.parseLocale(locale); // Paper
|
|
}
|
|
|
|
/**
|
|
* @see Player#getLocale()
|
|
*
|
|
* @return the player's new locale
|
|
+ * @deprecated in favour of {@link #locale()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public String getLocale() {
|
|
return locale;
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/event/player/PlayerLoginEvent.java b/src/main/java/org/bukkit/event/player/PlayerLoginEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/player/PlayerLoginEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/player/PlayerLoginEvent.java
|
|
@@ -0,0 +0,0 @@ public class PlayerLoginEvent extends PlayerEvent {
|
|
private final InetAddress address;
|
|
private final String hostname;
|
|
private Result result = Result.ALLOWED;
|
|
- private String message = "";
|
|
+ private net.kyori.adventure.text.Component message = net.kyori.adventure.text.Component.empty();
|
|
private final InetAddress realAddress; // Spigot
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public class PlayerLoginEvent extends PlayerEvent {
|
|
* @param result The result status for this event
|
|
* @param message The message to be displayed if result denies login
|
|
* @param realAddress the actual, unspoofed connecting address
|
|
+ * @deprecated in favour of {@link #PlayerLoginEvent(Player, String, InetAddress, Result, net.kyori.adventure.text.Component, InetAddress)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public PlayerLoginEvent(@NotNull final Player player, @NotNull String hostname, @NotNull final InetAddress address, @NotNull final Result result, @NotNull final String message, @NotNull final InetAddress realAddress) { // Spigot
|
|
this(player, hostname, address, realAddress); // Spigot
|
|
this.result = result;
|
|
+ this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
|
|
+ }
|
|
+
|
|
+ // Paper start
|
|
+ /**
|
|
+ * This constructor pre-configures the event with a result and message
|
|
+ *
|
|
+ * @param player The {@link Player} for this event
|
|
+ * @param hostname The hostname that was used to connect to the server
|
|
+ * @param address The address the player used to connect, provided for
|
|
+ * timing issues
|
|
+ * @param result The result status for this event
|
|
+ * @param message The message to be displayed if result denies login
|
|
+ * @param realAddress the actual, unspoofed connecting address
|
|
+ */
|
|
+ public PlayerLoginEvent(@NotNull final Player player, @NotNull String hostname, @NotNull final InetAddress address, @NotNull final Result result, @NotNull final net.kyori.adventure.text.Component message, @NotNull final InetAddress realAddress) { // Spigot
|
|
+ this(player, hostname, address, realAddress); // Spigot
|
|
+ this.result = result;
|
|
+ this.message = message;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the current kick message that will be used if getResult() !=
|
|
+ * Result.ALLOWED
|
|
+ *
|
|
+ * @return Current kick message
|
|
+ */
|
|
+ public @NotNull net.kyori.adventure.text.Component kickMessage() {
|
|
+ return this.message;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets the kick message to display if getResult() != Result.ALLOWED
|
|
+ *
|
|
+ * @param message New kick message
|
|
+ */
|
|
+ public void kickMessage(@NotNull net.kyori.adventure.text.Component message) {
|
|
this.message = message;
|
|
}
|
|
+ // Paper end
|
|
|
|
// Spigot start
|
|
/**
|
|
@@ -0,0 +0,0 @@ public class PlayerLoginEvent extends PlayerEvent {
|
|
* Result.ALLOWED
|
|
*
|
|
* @return Current kick message
|
|
+ * @deprecated in favour of {@link #kickMessage()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public String getKickMessage() {
|
|
- return message;
|
|
+ return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.message); // Paper
|
|
}
|
|
|
|
/**
|
|
* Sets the kick message to display if getResult() != Result.ALLOWED
|
|
*
|
|
* @param message New kick message
|
|
+ * @deprecated in favour of {@link #kickMessage(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setKickMessage(@NotNull final String message) {
|
|
- this.message = message;
|
|
+ this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public class PlayerLoginEvent extends PlayerEvent {
|
|
*/
|
|
public void allow() {
|
|
result = Result.ALLOWED;
|
|
- message = "";
|
|
+ message = net.kyori.adventure.text.Component.empty(); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public class PlayerLoginEvent extends PlayerEvent {
|
|
*
|
|
* @param result New result for disallowing the player
|
|
* @param message Kick message to display to the user
|
|
+ * @deprecated in favour of {@link #disallow(Result, net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper start
|
|
public void disallow(@NotNull final Result result, @NotNull final String message) {
|
|
+ this.result = result;
|
|
+ this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message);
|
|
+ }
|
|
+ /**
|
|
+ * Disallows the player from logging in, with the given reason
|
|
+ *
|
|
+ * @param result New result for disallowing the player
|
|
+ * @param message Kick message to display to the user
|
|
+ */
|
|
+ public void disallow(@NotNull final Result result, @NotNull final net.kyori.adventure.text.Component message) {
|
|
+ // Paper end
|
|
this.result = result;
|
|
this.message = message;
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
public class PlayerPreLoginEvent extends Event {
|
|
private static final HandlerList handlers = new HandlerList();
|
|
private Result result;
|
|
- private String message;
|
|
+ private net.kyori.adventure.text.Component message; // Paper
|
|
private final String name;
|
|
private final InetAddress ipAddress;
|
|
private final UUID uniqueId;
|
|
@@ -0,0 +0,0 @@ public class PlayerPreLoginEvent extends Event {
|
|
|
|
public PlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId) {
|
|
this.result = Result.ALLOWED;
|
|
- this.message = "";
|
|
+ this.message = net.kyori.adventure.text.Component.empty(); // Paper
|
|
this.name = name;
|
|
this.ipAddress = ipAddress;
|
|
this.uniqueId = uniqueId;
|
|
@@ -0,0 +0,0 @@ public class PlayerPreLoginEvent extends Event {
|
|
this.result = result;
|
|
}
|
|
|
|
+ // Paper start
|
|
/**
|
|
* Gets the current kick message that will be used if getResult() !=
|
|
* Result.ALLOWED
|
|
@@ -0,0 +0,0 @@ public class PlayerPreLoginEvent extends Event {
|
|
* @return Current kick message
|
|
*/
|
|
@NotNull
|
|
- public String getKickMessage() {
|
|
+ public net.kyori.adventure.text.Component kickMessage() {
|
|
return message;
|
|
}
|
|
|
|
@@ -0,0 +0,0 @@ public class PlayerPreLoginEvent extends Event {
|
|
*
|
|
* @param message New kick message
|
|
*/
|
|
- public void setKickMessage(@NotNull final String message) {
|
|
+ public void kickMessage(@NotNull final net.kyori.adventure.text.Component message) {
|
|
this.message = message;
|
|
}
|
|
|
|
+ /**
|
|
+ * Disallows the player from logging in, with the given reason
|
|
+ *
|
|
+ * @param result New result for disallowing the player
|
|
+ * @param message Kick message to display to the user
|
|
+ */
|
|
+ public void disallow(@NotNull final Result result, @NotNull final net.kyori.adventure.text.Component message) {
|
|
+ this.result = result;
|
|
+ this.message = message;
|
|
+ }
|
|
+ // Paper end
|
|
+ /**
|
|
+ * Gets the current kick message that will be used if getResult() !=
|
|
+ * Result.ALLOWED
|
|
+ *
|
|
+ * @return Current kick message
|
|
+ * @deprecated in favour of {@link #kickMessage()}
|
|
+ */
|
|
+ @Deprecated // Paper
|
|
+ @NotNull
|
|
+ public String getKickMessage() {
|
|
+ return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.message); // Paper
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets the kick message to display if getResult() != Result.ALLOWED
|
|
+ *
|
|
+ * @param message New kick message
|
|
+ * @deprecated in favour of {@link #kickMessage(net.kyori.adventure.text.Component)}
|
|
+ */
|
|
+ @Deprecated // Paper
|
|
+ public void setKickMessage(@NotNull final String message) {
|
|
+ this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
|
|
+ }
|
|
+
|
|
/**
|
|
* Allows the player to log in
|
|
*/
|
|
public void allow() {
|
|
result = Result.ALLOWED;
|
|
- message = "";
|
|
+ message = net.kyori.adventure.text.Component.empty(); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public class PlayerPreLoginEvent extends Event {
|
|
*
|
|
* @param result New result for disallowing the player
|
|
* @param message Kick message to display to the user
|
|
+ * @deprecated in favour of {@link #disallow(org.bukkit.event.player.PlayerPreLoginEvent.Result, net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void disallow(@NotNull final Result result, @NotNull final String message) {
|
|
this.result = result;
|
|
- this.message = message;
|
|
+ this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
|
|
}
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java b/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
*/
|
|
public class PlayerQuitEvent extends PlayerEvent {
|
|
private static final HandlerList handlers = new HandlerList();
|
|
- private String quitMessage;
|
|
+ private net.kyori.adventure.text.Component quitMessage; // Paper
|
|
|
|
+ @Deprecated // Paper
|
|
public PlayerQuitEvent(@NotNull final Player who, @Nullable final String quitMessage) {
|
|
super(who);
|
|
+ this.quitMessage = quitMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(quitMessage) : null; // Paper
|
|
+ }
|
|
+ // Paper start
|
|
+ public PlayerQuitEvent(@NotNull final Player who, @Nullable final net.kyori.adventure.text.Component quitMessage) {
|
|
+ super(who);
|
|
+ this.quitMessage = quitMessage;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the quit message to send to all online players
|
|
+ *
|
|
+ * @return string quit message
|
|
+ */
|
|
+ public @Nullable net.kyori.adventure.text.Component quitMessage() {
|
|
+ return quitMessage;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets the quit message to send to all online players
|
|
+ *
|
|
+ * @param quitMessage quit message
|
|
+ */
|
|
+ public void quitMessage(@Nullable net.kyori.adventure.text.Component quitMessage) {
|
|
this.quitMessage = quitMessage;
|
|
}
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Gets the quit message to send to all online players
|
|
*
|
|
* @return string quit message
|
|
+ * @deprecated in favour of {@link #quitMessage()}
|
|
*/
|
|
@Nullable
|
|
+ @Deprecated // Paper
|
|
public String getQuitMessage() {
|
|
- return quitMessage;
|
|
+ return this.quitMessage == null ? null : org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.quitMessage); // Paper
|
|
}
|
|
|
|
/**
|
|
* Sets the quit message to send to all online players
|
|
*
|
|
* @param quitMessage quit message
|
|
+ * @deprecated in favour of {@link #quitMessage(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setQuitMessage(@Nullable String quitMessage) {
|
|
- this.quitMessage = quitMessage;
|
|
+ this.quitMessage = quitMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(quitMessage) : null; // Paper
|
|
}
|
|
|
|
@NotNull
|
|
diff --git a/src/main/java/org/bukkit/event/server/BroadcastMessageEvent.java b/src/main/java/org/bukkit/event/server/BroadcastMessageEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/server/BroadcastMessageEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/server/BroadcastMessageEvent.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
public class BroadcastMessageEvent extends ServerEvent implements Cancellable {
|
|
|
|
private static final HandlerList handlers = new HandlerList();
|
|
- private String message;
|
|
+ private net.kyori.adventure.text.Component message; // Paper
|
|
private final Set<CommandSender> recipients;
|
|
private boolean cancelled = false;
|
|
|
|
@@ -0,0 +0,0 @@ public class BroadcastMessageEvent extends ServerEvent implements Cancellable {
|
|
this(false, message, recipients);
|
|
}
|
|
|
|
+ @Deprecated // Paper
|
|
public BroadcastMessageEvent(boolean isAsync, @NotNull String message, @NotNull Set<CommandSender> recipients) {
|
|
+ // Paper start
|
|
+ super(isAsync);
|
|
+ this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message);
|
|
+ this.recipients = recipients;
|
|
+ }
|
|
+
|
|
+ @Deprecated
|
|
+ public BroadcastMessageEvent(@NotNull net.kyori.adventure.text.Component message, @NotNull Set<CommandSender> recipients) {
|
|
+ this(false, message, recipients);
|
|
+ }
|
|
+
|
|
+ public BroadcastMessageEvent(boolean isAsync, @NotNull net.kyori.adventure.text.Component message, @NotNull Set<CommandSender> recipients) {
|
|
+ // Paper end
|
|
super(isAsync);
|
|
this.message = message;
|
|
this.recipients = recipients;
|
|
}
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Get the broadcast message.
|
|
+ *
|
|
+ * @return Message to broadcast
|
|
+ */
|
|
+ public @NotNull net.kyori.adventure.text.Component message() {
|
|
+ return this.message;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Set the broadcast message.
|
|
+ *
|
|
+ * @param message New message to broadcast
|
|
+ */
|
|
+ public void message(@NotNull net.kyori.adventure.text.Component message) {
|
|
+ this.message = message;
|
|
+ }
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Get the message to broadcast.
|
|
*
|
|
* @return Message to broadcast
|
|
+ * @deprecated in favour of {@link #message()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public String getMessage() {
|
|
- return message;
|
|
+ return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.message); // Paper
|
|
}
|
|
|
|
/**
|
|
* Set the message to broadcast.
|
|
*
|
|
* @param message New message to broadcast
|
|
+ * @deprecated in favour of {@link #message(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setMessage(@NotNull String message) {
|
|
- this.message = message;
|
|
+ this.message = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(message); // Paper
|
|
}
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/event/server/ServerListPingEvent.java b/src/main/java/org/bukkit/event/server/ServerListPingEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/server/ServerListPingEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/server/ServerListPingEvent.java
|
|
@@ -0,0 +0,0 @@ public class ServerListPingEvent extends ServerEvent implements Iterable<Player>
|
|
private static final int MAGIC_PLAYER_COUNT = Integer.MIN_VALUE;
|
|
private static final HandlerList handlers = new HandlerList();
|
|
private final InetAddress address;
|
|
- private String motd;
|
|
+ private net.kyori.adventure.text.Component motd; // Paper
|
|
private final int numPlayers;
|
|
private int maxPlayers;
|
|
|
|
+ @Deprecated // Paper
|
|
public ServerListPingEvent(@NotNull final InetAddress address, @NotNull final String motd, final int numPlayers, final int maxPlayers) {
|
|
super(true);
|
|
Validate.isTrue(numPlayers >= 0, "Cannot have negative number of players online", numPlayers);
|
|
this.address = address;
|
|
- this.motd = motd;
|
|
+ this.motd = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(motd); // Paper
|
|
this.numPlayers = numPlayers;
|
|
this.maxPlayers = maxPlayers;
|
|
}
|
|
@@ -0,0 +0,0 @@ public class ServerListPingEvent extends ServerEvent implements Iterable<Player>
|
|
* @param address the address of the pinger
|
|
* @param motd the message of the day
|
|
* @param maxPlayers the max number of players
|
|
+ * @deprecated in favour of {@link #ServerListPingEvent(java.net.InetAddress, net.kyori.adventure.text.Component, int)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
protected ServerListPingEvent(@NotNull final InetAddress address, @NotNull final String motd, final int maxPlayers) {
|
|
+ super(true);
|
|
+ this.numPlayers = MAGIC_PLAYER_COUNT;
|
|
+ this.address = address;
|
|
+ this.motd = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(motd); // Paper
|
|
+ this.maxPlayers = maxPlayers;
|
|
+ }
|
|
+ // Paper start
|
|
+ public ServerListPingEvent(@NotNull final InetAddress address, @NotNull final net.kyori.adventure.text.Component motd, final int numPlayers, final int maxPlayers) {
|
|
+ super(true);
|
|
+ Validate.isTrue(numPlayers >= 0, "Cannot have negative number of players online", numPlayers);
|
|
+ this.address = address;
|
|
+ this.motd = motd;
|
|
+ this.numPlayers = numPlayers;
|
|
+ this.maxPlayers = maxPlayers;
|
|
+ }
|
|
+ /**
|
|
+ * This constructor is intended for implementations that provide the
|
|
+ * {@link #iterator()} method, thus provided the {@link #getNumPlayers()}
|
|
+ * count.
|
|
+ *
|
|
+ * @param address the address of the pinger
|
|
+ * @param motd the message of the day
|
|
+ * @param maxPlayers the max number of players
|
|
+ */
|
|
+ protected ServerListPingEvent(@NotNull final InetAddress address, @NotNull final net.kyori.adventure.text.Component motd, final int maxPlayers) {
|
|
super(true);
|
|
this.numPlayers = MAGIC_PLAYER_COUNT;
|
|
this.address = address;
|
|
this.motd = motd;
|
|
this.maxPlayers = maxPlayers;
|
|
}
|
|
+ /**
|
|
+ * Get the message of the day message.
|
|
+ *
|
|
+ * @return the message of the day
|
|
+ */
|
|
+ public @NotNull net.kyori.adventure.text.Component motd() {
|
|
+ return motd;
|
|
+ }
|
|
+ /**
|
|
+ * Change the message of the day message.
|
|
+ *
|
|
+ * @param motd the message of the day
|
|
+ */
|
|
+ public void motd(@NotNull net.kyori.adventure.text.Component motd) {
|
|
+ this.motd = motd;
|
|
+ }
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Get the address the ping is coming from.
|
|
@@ -0,0 +0,0 @@ public class ServerListPingEvent extends ServerEvent implements Iterable<Player>
|
|
* Get the message of the day message.
|
|
*
|
|
* @return the message of the day
|
|
+ * @deprecated in favour of {@link #motd()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public String getMotd() {
|
|
- return motd;
|
|
+ return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.motd); // Paper
|
|
}
|
|
|
|
/**
|
|
* Change the message of the day message.
|
|
*
|
|
* @param motd the message of the day
|
|
+ * @deprecated in favour of {@link #motd(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setMotd(@NotNull String motd) {
|
|
- this.motd = motd;
|
|
+ this.motd = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(motd); // Paper
|
|
}
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/inventory/InventoryView.java b/src/main/java/org/bukkit/inventory/InventoryView.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/inventory/InventoryView.java
|
|
+++ b/src/main/java/org/bukkit/inventory/InventoryView.java
|
|
@@ -0,0 +0,0 @@ public abstract class InventoryView {
|
|
return getPlayer().setWindowProperty(prop, value);
|
|
}
|
|
|
|
+ // Paper start
|
|
/**
|
|
* Get the title of this inventory window.
|
|
*
|
|
* @return The title.
|
|
*/
|
|
@NotNull
|
|
+ public /*abstract*/ net.kyori.adventure.text.Component title() {
|
|
+ return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(this.getTitle());
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
+ /**
|
|
+ * Get the title of this inventory window.
|
|
+ *
|
|
+ * @return The title.
|
|
+ * @deprecated in favour of {@link #title()}
|
|
+ */
|
|
+ @Deprecated // Paper
|
|
+ @NotNull
|
|
public abstract String getTitle();
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
|
|
@@ -0,0 +0,0 @@ public interface ItemFactory {
|
|
@Deprecated
|
|
@NotNull
|
|
Material updateMaterial(@NotNull final ItemMeta meta, @NotNull final Material material) throws IllegalArgumentException;
|
|
+
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Creates a hover event for the given item.
|
|
+ *
|
|
+ * @param item The item
|
|
+ * @return A hover event
|
|
+ */
|
|
+ @NotNull
|
|
+ net.kyori.adventure.text.event.HoverEvent<net.kyori.adventure.text.event.HoverEvent.ShowItem> asHoverEvent(final @NotNull ItemStack item, final @NotNull java.util.function.UnaryOperator<net.kyori.adventure.text.event.HoverEvent.ShowItem> op);
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
* use this class to encapsulate Materials for which {@link Material#isItem()}
|
|
* returns false.</b>
|
|
*/
|
|
-public class ItemStack implements Cloneable, ConfigurationSerializable {
|
|
+public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem> { // Paper
|
|
private Material type = Material.AIR;
|
|
private int amount = 0;
|
|
private MaterialData data = null;
|
|
@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable {
|
|
|
|
return true;
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public net.kyori.adventure.text.event.HoverEvent<net.kyori.adventure.text.event.HoverEvent.ShowItem> asHoverEvent(final @NotNull java.util.function.UnaryOperator<net.kyori.adventure.text.event.HoverEvent.ShowItem> op) {
|
|
+ return org.bukkit.Bukkit.getServer().getItemFactory().asHoverEvent(this, op);
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/inventory/meta/BookMeta.java b/src/main/java/org/bukkit/inventory/meta/BookMeta.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/inventory/meta/BookMeta.java
|
|
+++ b/src/main/java/org/bukkit/inventory/meta/BookMeta.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
* Represents a book ({@link Material#WRITABLE_BOOK} or {@link
|
|
* Material#WRITTEN_BOOK}) that can have a title, an author, and pages.
|
|
*/
|
|
-public interface BookMeta extends ItemMeta {
|
|
+public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { // Paper
|
|
|
|
/**
|
|
* Represents the generation (or level of copying) of a written book
|
|
@@ -0,0 +0,0 @@ public interface BookMeta extends ItemMeta {
|
|
*/
|
|
boolean hasPages();
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the title of the book.
|
|
+ * <p>
|
|
+ * Plugins should check that hasTitle() returns true before calling this
|
|
+ * method.
|
|
+ *
|
|
+ * @return the title of the book
|
|
+ */
|
|
+ @Nullable
|
|
+ @Override
|
|
+ net.kyori.adventure.text.Component title();
|
|
+
|
|
+ /**
|
|
+ * Sets the title of the book.
|
|
+ * <p>
|
|
+ * Limited to 32 characters. Removes title when given null.
|
|
+ *
|
|
+ * @param title the title to set
|
|
+ * @return true if the title was successfully set
|
|
+ */
|
|
+ @NotNull
|
|
+ @Override
|
|
+ BookMeta title(@Nullable net.kyori.adventure.text.Component title);
|
|
+
|
|
+ /**
|
|
+ * Gets the author of the book.
|
|
+ * <p>
|
|
+ * Plugins should check that hasAuthor() returns true before calling this
|
|
+ * method.
|
|
+ *
|
|
+ * @return the author of the book
|
|
+ */
|
|
+ @Nullable
|
|
+ @Override
|
|
+ net.kyori.adventure.text.Component author();
|
|
+
|
|
+ /**
|
|
+ * Sets the author of the book. Removes author when given null.
|
|
+ *
|
|
+ * @param author the author to set
|
|
+ */
|
|
+ @NotNull
|
|
+ @Override
|
|
+ BookMeta author(@Nullable net.kyori.adventure.text.Component author);
|
|
+ /**
|
|
+ * Gets the specified page in the book. The page must exist.
|
|
+ * <p>
|
|
+ * Pages are 1-indexed.
|
|
+ *
|
|
+ * @param page the page number to get, in range [1, getPageCount()]
|
|
+ * @return the page from the book
|
|
+ */
|
|
+ @NotNull net.kyori.adventure.text.Component page(int page);
|
|
+
|
|
+ /**
|
|
+ * Sets the specified page in the book. Pages of the book must be
|
|
+ * contiguous.
|
|
+ * <p>
|
|
+ * The data can be up to 256 characters in length, additional characters
|
|
+ * are truncated.
|
|
+ * <p>
|
|
+ * Pages are 1-indexed.
|
|
+ *
|
|
+ * @param page the page number to set, in range [1, getPageCount()]
|
|
+ * @param data the data to set for that page
|
|
+ */
|
|
+ void page(int page, @NotNull net.kyori.adventure.text.Component data);
|
|
+
|
|
+ /**
|
|
+ * Adds new pages to the end of the book. Up to a maximum of 50 pages with
|
|
+ * 256 characters per page.
|
|
+ *
|
|
+ * @param pages A list of strings, each being a page
|
|
+ */
|
|
+ void addPages(@NotNull net.kyori.adventure.text.Component... pages);
|
|
+
|
|
+ interface BookMetaBuilder extends Builder {
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ BookMetaBuilder title(@Nullable net.kyori.adventure.text.Component title);
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ BookMetaBuilder author(@Nullable net.kyori.adventure.text.Component author);
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ BookMetaBuilder addPage(@NotNull net.kyori.adventure.text.Component page);
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ BookMetaBuilder pages(@NotNull net.kyori.adventure.text.Component... pages);
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ BookMetaBuilder pages(@NotNull java.util.Collection<net.kyori.adventure.text.Component> pages);
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ BookMeta build();
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Gets the specified page in the book. The given page must exist.
|
|
* <p>
|
|
@@ -0,0 +0,0 @@ public interface BookMeta extends ItemMeta {
|
|
*
|
|
* @param page the page number to get, in range [1, getPageCount()]
|
|
* @return the page from the book
|
|
+ * @deprecated in favour of {@link #page(int)}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
String getPage(int page);
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface BookMeta extends ItemMeta {
|
|
*
|
|
* @param page the page number to set, in range [1, getPageCount()]
|
|
* @param data the data to set for that page
|
|
+ * @deprecated in favour of {@link #page(int, net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
void setPage(int page, @NotNull String data);
|
|
|
|
/**
|
|
* Gets all the pages in the book.
|
|
*
|
|
* @return list of all the pages in the book
|
|
+ * @deprecated in favour of {@link #pages()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
List<String> getPages();
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface BookMeta extends ItemMeta {
|
|
* pages. Maximum 100 pages with 256 characters per page.
|
|
*
|
|
* @param pages A list of pages to set the book to use
|
|
+ * @deprecated in favour of {@link #pages(List)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
void setPages(@NotNull List<String> pages);
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface BookMeta extends ItemMeta {
|
|
* pages. Maximum 50 pages with 256 characters per page.
|
|
*
|
|
* @param pages A list of strings, each being a page
|
|
+ * @deprecated in favour of {@link #pages(net.kyori.adventure.text.Component...)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
void setPages(@NotNull String... pages);
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface BookMeta extends ItemMeta {
|
|
* 256 characters per page.
|
|
*
|
|
* @param pages A list of strings, each being a page
|
|
+ * @deprecated in favour of {@link #addPages(net.kyori.adventure.text.Component...)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
void addPage(@NotNull String... pages);
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface BookMeta extends ItemMeta {
|
|
*
|
|
* @param page the page number to get
|
|
* @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.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface BookMeta extends ItemMeta {
|
|
*
|
|
* @param page the page number to set
|
|
* @param data the data to set for that page
|
|
+ * @deprecated in favour of {@link #page(int, net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setPage(int page, @Nullable BaseComponent... data) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface BookMeta extends ItemMeta {
|
|
* Gets all the pages in the book.
|
|
*
|
|
* @return list of all the pages in the book
|
|
+ * @deprecated in favour of {@link #pages()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
public List<BaseComponent[]> getPages() {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface BookMeta extends ItemMeta {
|
|
* pages. Maximum 50 pages with 256 characters per page.
|
|
*
|
|
* @param pages A list of pages to set the book to use
|
|
+ * @deprecated in favour of {@link #pages(java.util.List)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setPages(@NotNull List<BaseComponent[]> pages) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface BookMeta extends ItemMeta {
|
|
* pages. Maximum 50 pages with 256 characters per page.
|
|
*
|
|
* @param pages A list of component arrays, each being a page
|
|
+ * @deprecated in favour of {@link #pages(net.kyori.adventure.text.Component...)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setPages(@NotNull BaseComponent[]... pages) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
@@ -0,0 +0,0 @@ public interface BookMeta extends ItemMeta {
|
|
* with 256 characters per page.
|
|
*
|
|
* @param pages A list of component arrays, each being a page
|
|
+ * @deprecated in favour of {@link #addPages(net.kyori.adventure.text.Component...)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void addPage(@NotNull BaseComponent[]... pages) {
|
|
throw new UnsupportedOperationException("Not supported yet.");
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
|
|
+++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
|
|
@@ -0,0 +0,0 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
|
|
*/
|
|
boolean hasDisplayName();
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the display name.
|
|
+ *
|
|
+ * <p>Plugins should check that {@link #hasDisplayName()} returns <code>true</code> before calling this method.</p>
|
|
+ *
|
|
+ * @return the display name
|
|
+ */
|
|
+ @Nullable net.kyori.adventure.text.Component displayName();
|
|
+
|
|
+ /**
|
|
+ * Sets the display name.
|
|
+ *
|
|
+ * @param displayName the display name to set
|
|
+ */
|
|
+ void displayName(final @Nullable net.kyori.adventure.text.Component displayName);
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Gets the display name that is set.
|
|
* <p>
|
|
@@ -0,0 +0,0 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
|
|
* before calling this method.
|
|
*
|
|
* @return the display name that is set
|
|
+ * @deprecated in favour of {@link #displayName()}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
@NotNull
|
|
String getDisplayName();
|
|
|
|
@@ -0,0 +0,0 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
|
|
* Sets the display name.
|
|
*
|
|
* @param name the name to set
|
|
+ * @deprecated in favour of {@link #displayName(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
void setDisplayName(@Nullable String name);
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
|
|
*/
|
|
boolean hasLore();
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the lore.
|
|
+ *
|
|
+ * <p>Plugins should check that {@link #hasLore()} returns <code>true</code> before calling this method.</p>
|
|
+ *
|
|
+ * @return the display name
|
|
+ */
|
|
+ @Nullable List<net.kyori.adventure.text.Component> lore();
|
|
+
|
|
+ /**
|
|
+ * Sets the lore.
|
|
+ *
|
|
+ * @param lore the lore to set
|
|
+ */
|
|
+ void lore(final @Nullable List<net.kyori.adventure.text.Component> lore);
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Gets the lore that is set.
|
|
* <p>
|
|
@@ -0,0 +0,0 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
|
|
* calling this method.
|
|
*
|
|
* @return a list of lore that is set
|
|
+ * @deprecated in favour of {@link #lore()}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
@Nullable
|
|
List<String> getLore();
|
|
|
|
@@ -0,0 +0,0 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
|
|
* Removes lore when given null.
|
|
*
|
|
* @param lore the lore that will be set
|
|
+ * @deprecated in favour of {@link #lore(List)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
void setLore(@Nullable List<String> lore);
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/map/MapCursor.java b/src/main/java/org/bukkit/map/MapCursor.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/map/MapCursor.java
|
|
+++ b/src/main/java/org/bukkit/map/MapCursor.java
|
|
@@ -0,0 +0,0 @@ public final class MapCursor {
|
|
private byte x, y;
|
|
private byte direction, type;
|
|
private boolean visible;
|
|
- private String caption;
|
|
+ private net.kyori.adventure.text.Component caption; // Paper
|
|
|
|
/**
|
|
* Initialize the map cursor.
|
|
@@ -0,0 +0,0 @@ public final class MapCursor {
|
|
*/
|
|
@Deprecated
|
|
public MapCursor(byte x, byte y, byte direction, byte type, boolean visible) {
|
|
- this(x, y, direction, type, visible, null);
|
|
+ this(x, y, direction, type, visible, (String) null); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public final class MapCursor {
|
|
* @param visible Whether the cursor is visible by default.
|
|
*/
|
|
public MapCursor(byte x, byte y, byte direction, @NotNull Type type, boolean visible) {
|
|
- this(x, y, direction, type, visible, null);
|
|
+ this(x, y, direction, type, visible, (String) null); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public final class MapCursor {
|
|
* @param type The type (color/style) of the map cursor.
|
|
* @param visible Whether the cursor is visible by default.
|
|
* @param caption cursor caption
|
|
- * @deprecated Magic value
|
|
+ * @deprecated Magic value. Use {@link #MapCursor(byte, byte, byte, byte, boolean, net.kyori.adventure.text.Component)}
|
|
*/
|
|
@Deprecated
|
|
public MapCursor(byte x, byte y, byte direction, byte type, boolean visible, @Nullable String caption) {
|
|
@@ -0,0 +0,0 @@ public final class MapCursor {
|
|
setDirection(direction);
|
|
setRawType(type);
|
|
this.visible = visible;
|
|
- this.caption = caption;
|
|
+ this.caption = caption == null ? null : org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(caption); // Paper
|
|
}
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Initialize the map cursor.
|
|
+ *
|
|
+ * @param x The x coordinate, from -128 to 127.
|
|
+ * @param y The y coordinate, from -128 to 127.
|
|
+ * @param direction The facing of the cursor, from 0 to 15.
|
|
+ * @param type The type (color/style) of the map cursor.
|
|
+ * @param visible Whether the cursor is visible by default.
|
|
+ * @param caption cursor caption
|
|
+ * @deprecated Magic value
|
|
+ */
|
|
+ @Deprecated
|
|
+ public MapCursor(byte x, byte y, byte direction, byte type, boolean visible, @Nullable net.kyori.adventure.text.Component caption) {
|
|
+ this.x = x; this.y = y; this.visible = visible; this.caption = caption;
|
|
+ setDirection(direction);
|
|
+ setRawType(type);
|
|
+ }
|
|
+ /**
|
|
+ * Initialize the map cursor.
|
|
+ *
|
|
+ * @param x The x coordinate, from -128 to 127.
|
|
+ * @param y The y coordinate, from -128 to 127.
|
|
+ * @param direction The facing of the cursor, from 0 to 15.
|
|
+ * @param type The type (color/style) of the map cursor.
|
|
+ * @param visible Whether the cursor is visible by default.
|
|
+ * @param caption cursor caption
|
|
+ */
|
|
+ public MapCursor(byte x, byte y, byte direction, @NotNull Type type, boolean visible, @Nullable net.kyori.adventure.text.Component caption) {
|
|
+ this.x = x; this.y = y; this.visible = visible; this.caption = caption;
|
|
+ setDirection(direction);
|
|
+ setType(type);
|
|
+ }
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Initialize the map cursor.
|
|
@@ -0,0 +0,0 @@ public final class MapCursor {
|
|
setDirection(direction);
|
|
setType(type);
|
|
this.visible = visible;
|
|
- this.caption = caption;
|
|
+ this.caption = caption == null ? null : org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(caption); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public final class MapCursor {
|
|
this.visible = visible;
|
|
}
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the caption on this cursor.
|
|
+ *
|
|
+ * @return caption
|
|
+ */
|
|
+ public @Nullable net.kyori.adventure.text.Component caption() {
|
|
+ return this.caption;
|
|
+ }
|
|
+ /**
|
|
+ * Sets the caption on this cursor.
|
|
+ *
|
|
+ * @param caption new caption
|
|
+ */
|
|
+ public void caption(@Nullable net.kyori.adventure.text.Component caption) {
|
|
+ this.caption = caption;
|
|
+ }
|
|
+ // Paper end
|
|
/**
|
|
* Gets the caption on this cursor.
|
|
*
|
|
* @return caption
|
|
+ * @deprecated in favour of {@link #caption()}
|
|
*/
|
|
@Nullable
|
|
+ @Deprecated // Paper
|
|
public String getCaption() {
|
|
- return caption;
|
|
+ return this.caption == null ? null : org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.caption); // Paper
|
|
}
|
|
|
|
/**
|
|
* Sets the caption on this cursor.
|
|
*
|
|
* @param caption new caption
|
|
+ * @deprecated in favour of {@link #caption(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
public void setCaption(@Nullable String caption) {
|
|
- this.caption = caption;
|
|
+ this.caption = caption == null ? null : org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(caption); // Paper
|
|
}
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/map/MapCursorCollection.java b/src/main/java/org/bukkit/map/MapCursorCollection.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/map/MapCursorCollection.java
|
|
+++ b/src/main/java/org/bukkit/map/MapCursorCollection.java
|
|
@@ -0,0 +0,0 @@ public final class MapCursorCollection {
|
|
public MapCursor addCursor(int x, int y, byte direction, byte type, boolean visible, @Nullable String caption) {
|
|
return addCursor(new MapCursor((byte) x, (byte) y, direction, type, visible, caption));
|
|
}
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Add a cursor to the collection.
|
|
+ *
|
|
+ * @param x The x coordinate, from -128 to 127.
|
|
+ * @param y The y coordinate, from -128 to 127.
|
|
+ * @param direction The facing of the cursor, from 0 to 15.
|
|
+ * @param type The type (color/style) of the map cursor.
|
|
+ * @param visible Whether the cursor is visible.
|
|
+ * @param caption banner caption
|
|
+ * @return The newly added MapCursor.
|
|
+ * @deprecated Magic value
|
|
+ */
|
|
+ @Deprecated
|
|
+ public @NotNull MapCursor addCursor(int x, int y, byte direction, byte type, boolean visible, @Nullable net.kyori.adventure.text.Component caption) {
|
|
+ return addCursor(new MapCursor((byte) x, (byte) y, direction, type, visible, caption));
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/scoreboard/Objective.java b/src/main/java/org/bukkit/scoreboard/Objective.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/scoreboard/Objective.java
|
|
+++ b/src/main/java/org/bukkit/scoreboard/Objective.java
|
|
@@ -0,0 +0,0 @@ public interface Objective {
|
|
*/
|
|
@NotNull
|
|
String getName() throws IllegalStateException;
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the name displayed to players for this objective
|
|
+ *
|
|
+ * @return this objective's display name
|
|
+ * @throws IllegalStateException if this objective has been unregistered
|
|
+ */
|
|
+ @NotNull net.kyori.adventure.text.Component displayName() throws IllegalStateException;
|
|
+ /**
|
|
+ * Sets the name displayed to players for this objective.
|
|
+ *
|
|
+ * @param displayName Display name to set
|
|
+ * @throws IllegalStateException if this objective has been unregistered
|
|
+ * @throws IllegalArgumentException if displayName is null
|
|
+ * @throws IllegalArgumentException if displayName is longer than 128
|
|
+ * characters.
|
|
+ */
|
|
+ void displayName(@Nullable net.kyori.adventure.text.Component displayName) throws IllegalStateException, IllegalArgumentException;
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Gets the name displayed to players for this objective
|
|
*
|
|
* @return this objective's display name
|
|
* @throws IllegalStateException if this objective has been unregistered
|
|
+ * @deprecated in favour of {@link #displayName()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
String getDisplayName() throws IllegalStateException;
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Objective {
|
|
* @throws IllegalArgumentException if displayName is null
|
|
* @throws IllegalArgumentException if displayName is longer than 128
|
|
* characters.
|
|
+ * @deprecated in favour of {@link #displayName(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
void setDisplayName(@NotNull String displayName) throws IllegalStateException, IllegalArgumentException;
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/scoreboard/Scoreboard.java b/src/main/java/org/bukkit/scoreboard/Scoreboard.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/scoreboard/Scoreboard.java
|
|
+++ b/src/main/java/org/bukkit/scoreboard/Scoreboard.java
|
|
@@ -0,0 +0,0 @@ public interface Scoreboard {
|
|
@Deprecated
|
|
@NotNull
|
|
Objective registerNewObjective(@NotNull String name, @NotNull String criteria) throws IllegalArgumentException;
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Registers an Objective on this Scoreboard
|
|
+ *
|
|
+ * @param name Name of the Objective
|
|
+ * @param criteria Criteria for the Objective
|
|
+ * @param displayName Name displayed to players for the Objective.
|
|
+ * @return The registered Objective
|
|
+ * @throws IllegalArgumentException if name is null
|
|
+ * @throws IllegalArgumentException if name is longer than 16
|
|
+ * characters.
|
|
+ * @throws IllegalArgumentException if criteria is null
|
|
+ * @throws IllegalArgumentException if displayName is null
|
|
+ * @throws IllegalArgumentException if displayName is longer than 128
|
|
+ * characters.
|
|
+ * @throws IllegalArgumentException if an objective by that name already
|
|
+ * exists
|
|
+ */
|
|
+ @NotNull
|
|
+ Objective registerNewObjective(@NotNull String name, @NotNull String criteria, @Nullable net.kyori.adventure.text.Component displayName) throws IllegalArgumentException;
|
|
+ /**
|
|
+ * Registers an Objective on this Scoreboard
|
|
+ *
|
|
+ * @param name Name of the Objective
|
|
+ * @param criteria Criteria for the Objective
|
|
+ * @param displayName Name displayed to players for the Objective.
|
|
+ * @param renderType Manner of rendering the Objective
|
|
+ * @return The registered Objective
|
|
+ * @throws IllegalArgumentException if name is null
|
|
+ * @throws IllegalArgumentException if name is longer than 16
|
|
+ * characters.
|
|
+ * @throws IllegalArgumentException if criteria is null
|
|
+ * @throws IllegalArgumentException if displayName is null
|
|
+ * @throws IllegalArgumentException if displayName is longer than 128
|
|
+ * characters.
|
|
+ * @throws IllegalArgumentException if renderType is null
|
|
+ * @throws IllegalArgumentException if an objective by that name already
|
|
+ * exists
|
|
+ */
|
|
+ @NotNull
|
|
+ Objective registerNewObjective(@NotNull String name, @NotNull String criteria, @Nullable net.kyori.adventure.text.Component displayName, @NotNull RenderType renderType) throws IllegalArgumentException;
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Registers an Objective on this Scoreboard
|
|
@@ -0,0 +0,0 @@ public interface Scoreboard {
|
|
* characters.
|
|
* @throws IllegalArgumentException if an objective by that name already
|
|
* exists
|
|
+ * @deprecated in favour of {@link #registerNewObjective(String, String, net.kyori.adventure.text.Component)}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
Objective registerNewObjective(@NotNull String name, @NotNull String criteria, @NotNull String displayName) throws IllegalArgumentException;
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Scoreboard {
|
|
* @throws IllegalArgumentException if renderType is null
|
|
* @throws IllegalArgumentException if an objective by that name already
|
|
* exists
|
|
+ * @deprecated in favour of {@link #registerNewObjective(String, String, net.kyori.adventure.text.Component, RenderType)}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
Objective registerNewObjective(@NotNull String name, @NotNull String criteria, @NotNull String displayName, @NotNull RenderType renderType) throws IllegalArgumentException;
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/scoreboard/Team.java b/src/main/java/org/bukkit/scoreboard/Team.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/scoreboard/Team.java
|
|
+++ b/src/main/java/org/bukkit/scoreboard/Team.java
|
|
@@ -0,0 +0,0 @@ public interface Team {
|
|
*/
|
|
@NotNull
|
|
String getName() throws IllegalStateException;
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Gets the name displayed to entries for this team
|
|
+ *
|
|
+ * @return Team display name
|
|
+ * @throws IllegalStateException if this team has been unregistered
|
|
+ */
|
|
+ @NotNull net.kyori.adventure.text.Component displayName() throws IllegalStateException;
|
|
+
|
|
+ /**
|
|
+ * Sets the name displayed to entries for this team
|
|
+ *
|
|
+ * @param displayName New display name
|
|
+ * @throws IllegalArgumentException if displayName is longer than 128
|
|
+ * characters.
|
|
+ * @throws IllegalStateException if this team has been unregistered
|
|
+ */
|
|
+ void displayName(@Nullable net.kyori.adventure.text.Component displayName) throws IllegalStateException, IllegalArgumentException;
|
|
+
|
|
+ /**
|
|
+ * Gets the prefix prepended to the display of entries on this team.
|
|
+ *
|
|
+ * @return Team prefix
|
|
+ * @throws IllegalStateException if this team has been unregistered
|
|
+ */
|
|
+ @NotNull net.kyori.adventure.text.Component prefix() throws IllegalStateException;
|
|
+
|
|
+ /**
|
|
+ * Sets the prefix prepended to the display of entries on this team.
|
|
+ *
|
|
+ * @param prefix New prefix
|
|
+ * @throws IllegalArgumentException if prefix is null
|
|
+ * @throws IllegalArgumentException if prefix is longer than 64
|
|
+ * characters
|
|
+ * @throws IllegalStateException if this team has been unregistered
|
|
+ */
|
|
+ void prefix(@Nullable net.kyori.adventure.text.Component prefix) throws IllegalStateException, IllegalArgumentException;
|
|
+
|
|
+ /**
|
|
+ * Gets the suffix appended to the display of entries on this team.
|
|
+ *
|
|
+ * @return the team's current suffix
|
|
+ * @throws IllegalStateException if this team has been unregistered
|
|
+ */
|
|
+ @NotNull net.kyori.adventure.text.Component suffix() throws IllegalStateException;
|
|
+
|
|
+ /**
|
|
+ * Sets the suffix appended to the display of entries on this team.
|
|
+ *
|
|
+ * @param suffix the new suffix for this team.
|
|
+ * @throws IllegalArgumentException if suffix is null
|
|
+ * @throws IllegalArgumentException if suffix is longer than 64
|
|
+ * characters
|
|
+ * @throws IllegalStateException if this team has been unregistered
|
|
+ */
|
|
+ void suffix(@Nullable net.kyori.adventure.text.Component suffix) throws IllegalStateException, IllegalArgumentException;
|
|
+
|
|
+ /**
|
|
+ * Gets the color of the team.
|
|
+ * <br>
|
|
+ * This only sets the team outline, other occurrences of colors such as in
|
|
+ * names are handled by prefixes / suffixes.
|
|
+ *
|
|
+ * @return team color, defaults to {@link ChatColor#RESET}
|
|
+ * @throws IllegalStateException if this team has been unregistered
|
|
+ */
|
|
+ @NotNull net.kyori.adventure.text.format.TextColor color() throws IllegalStateException;
|
|
+
|
|
+ /**
|
|
+ * Sets the color of the team.
|
|
+ * <br>
|
|
+ * This only sets the team outline, other occurrences of colors such as in
|
|
+ * names are handled by prefixes / suffixes.
|
|
+ *
|
|
+ * @param color new color, must be non-null. Use {@link ChatColor#RESET} for
|
|
+ * no color
|
|
+ */
|
|
+ void color(@Nullable net.kyori.adventure.text.format.NamedTextColor color);
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Gets the name displayed to entries for this team
|
|
*
|
|
* @return Team display name
|
|
* @throws IllegalStateException if this team has been unregistered
|
|
+ * @deprecated in favour of {@link #displayName()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
String getDisplayName() throws IllegalStateException;
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Team {
|
|
* @throws IllegalArgumentException if displayName is longer than 128
|
|
* characters.
|
|
* @throws IllegalStateException if this team has been unregistered
|
|
+ * @deprecated in favour of {@link #displayName(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
void setDisplayName(@NotNull String displayName) throws IllegalStateException, IllegalArgumentException;
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Team {
|
|
*
|
|
* @return Team prefix
|
|
* @throws IllegalStateException if this team has been unregistered
|
|
+ * @deprecated in favour of {@link #prefix()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
String getPrefix() throws IllegalStateException;
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Team {
|
|
* @throws IllegalArgumentException if prefix is longer than 64
|
|
* characters
|
|
* @throws IllegalStateException if this team has been unregistered
|
|
+ * @deprecated in favour of {@link #prefix(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
void setPrefix(@NotNull String prefix) throws IllegalStateException, IllegalArgumentException;
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Team {
|
|
*
|
|
* @return the team's current suffix
|
|
* @throws IllegalStateException if this team has been unregistered
|
|
+ * @deprecated in favour of {@link #suffix()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
String getSuffix() throws IllegalStateException;
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Team {
|
|
* @throws IllegalArgumentException if suffix is longer than 64
|
|
* characters
|
|
* @throws IllegalStateException if this team has been unregistered
|
|
+ * @deprecated in favour of {@link #suffix(net.kyori.adventure.text.Component)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
void setSuffix(@NotNull String suffix) throws IllegalStateException, IllegalArgumentException;
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Team {
|
|
*
|
|
* @return team color, defaults to {@link ChatColor#RESET}
|
|
* @throws IllegalStateException if this team has been unregistered
|
|
+ * @deprecated in favour of {@link #color()}
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated // Paper
|
|
ChatColor getColor() throws IllegalStateException;
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Team {
|
|
*
|
|
* @param color new color, must be non-null. Use {@link ChatColor#RESET} for
|
|
* no color
|
|
+ * @deprecated in favour of {@link #color(net.kyori.adventure.text.format.NamedTextColor)}
|
|
*/
|
|
+ @Deprecated // Paper
|
|
void setColor(@NotNull ChatColor color);
|
|
|
|
/**
|