More CommandBlock API (#5746)
This commit is contained in:
parent
3b2b835240
commit
425edfa5d7
4 changed files with 260 additions and 0 deletions
|
@ -1103,6 +1103,49 @@ index dd0fef9155077ce6df7bdadc9e4152008f700a3b..92e8b0b1ccebdc2646337114793ea9f3
|
|||
/**
|
||||
* Returns a list of entities within a bounding box centered around a
|
||||
* Location.
|
||||
diff --git a/src/main/java/org/bukkit/block/CommandBlock.java b/src/main/java/org/bukkit/block/CommandBlock.java
|
||||
index 372c0bd5a4d7800a11c24c95e39fe376a96232bf..73dce588d1f7a5048300073bf8c2b14d6da1e857 100644
|
||||
--- a/src/main/java/org/bukkit/block/CommandBlock.java
|
||||
+++ b/src/main/java/org/bukkit/block/CommandBlock.java
|
||||
@@ -33,7 +33,9 @@ public interface CommandBlock extends TileState {
|
||||
* by default is "@".
|
||||
*
|
||||
* @return Name of this CommandBlock.
|
||||
+ * @deprecated in favour of {@link #name()}
|
||||
*/
|
||||
+ @Deprecated // Paper
|
||||
@NotNull
|
||||
public String getName();
|
||||
|
||||
@@ -43,6 +45,28 @@ public interface CommandBlock extends TileState {
|
||||
* same as setting it to "@".
|
||||
*
|
||||
* @param name New name for this CommandBlock.
|
||||
+ * @deprecated in favour of {@link #name(net.kyori.adventure.text.Component)}
|
||||
*/
|
||||
+ @Deprecated // Paper
|
||||
public void setName(@Nullable String name);
|
||||
+
|
||||
+ // Paper start
|
||||
+ /**
|
||||
+ * Gets the name of this CommandBlock. The name is used with commands
|
||||
+ * that this CommandBlock executes. This name will never be null, and
|
||||
+ * by default is a {@link net.kyori.adventure.text.TextComponent} containing {@code @}.
|
||||
+ *
|
||||
+ * @return Name of this CommandBlock.
|
||||
+ */
|
||||
+ public @NotNull net.kyori.adventure.text.Component name();
|
||||
+
|
||||
+ /**
|
||||
+ * Sets the name of this CommandBlock. The name is used with commands
|
||||
+ * that this CommandBlock executes. Setting the name to null is the
|
||||
+ * same as setting it to a {@link net.kyori.adventure.text.TextComponent} containing {@code @}.
|
||||
+ *
|
||||
+ * @param name New name for this CommandBlock.
|
||||
+ */
|
||||
+ public void name(@Nullable net.kyori.adventure.text.Component name);
|
||||
+ // Paper end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/block/Sign.java b/src/main/java/org/bukkit/block/Sign.java
|
||||
index ab6b0ec328e94bf65a0dafd0403e5ee3b870296c..c8d37184d8e882a4084a1bfef85faa330588600b 100644
|
||||
--- a/src/main/java/org/bukkit/block/Sign.java
|
||||
|
|
96
patches/api/0333-More-CommandBlock-API.patch
Normal file
96
patches/api/0333-More-CommandBlock-API.patch
Normal file
|
@ -0,0 +1,96 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||
Date: Fri, 28 May 2021 21:47:39 -0700
|
||||
Subject: [PATCH] More CommandBlock API
|
||||
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/command/CommandBlockHolder.java b/src/main/java/io/papermc/paper/command/CommandBlockHolder.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..09e57f495e3cbf3c6f434d12ab34830862faeb88
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/command/CommandBlockHolder.java
|
||||
@@ -0,0 +1,58 @@
|
||||
+package io.papermc.paper.command;
|
||||
+
|
||||
+import net.kyori.adventure.text.Component;
|
||||
+import org.jetbrains.annotations.NotNull;
|
||||
+import org.jetbrains.annotations.Nullable;
|
||||
+
|
||||
+public interface CommandBlockHolder {
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the command that this CommandBlock will run when powered.
|
||||
+ * This will never return null. If the CommandBlock does not have a
|
||||
+ * command, an empty String will be returned instead.
|
||||
+ *
|
||||
+ * @return Command that this CommandBlock will run when activated.
|
||||
+ */
|
||||
+ @NotNull
|
||||
+ String getCommand();
|
||||
+
|
||||
+ /**
|
||||
+ * Sets the command that this CommandBlock will run when powered.
|
||||
+ * Setting the command to null is the same as setting it to an empty
|
||||
+ * String.
|
||||
+ *
|
||||
+ * @param command Command that this CommandBlock will run when activated.
|
||||
+ */
|
||||
+ void setCommand(@Nullable String command);
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the last output from this command block.
|
||||
+ *
|
||||
+ * @return the last output
|
||||
+ */
|
||||
+ @NotNull
|
||||
+ Component lastOutput();
|
||||
+
|
||||
+ /**
|
||||
+ * Sets the last output from this command block.
|
||||
+ *
|
||||
+ * @param lastOutput the last output
|
||||
+ */
|
||||
+ void lastOutput(@Nullable Component lastOutput);
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the success count from this command block.
|
||||
+ * @see <a href="https://minecraft.fandom.com/wiki/Command_Block#Success_count">Command_Block#Success_count</a>
|
||||
+ *
|
||||
+ * @return the success count
|
||||
+ */
|
||||
+ int getSuccessCount();
|
||||
+
|
||||
+ /**
|
||||
+ * Sets the success count from this command block.
|
||||
+ * @see <a href="https://minecraft.fandom.com/wiki/Command_Block#Success_count">Command_Block#Success_count</a>
|
||||
+ *
|
||||
+ * @param successCount the success count
|
||||
+ */
|
||||
+ void setSuccessCount(int successCount);
|
||||
+}
|
||||
diff --git a/src/main/java/org/bukkit/block/CommandBlock.java b/src/main/java/org/bukkit/block/CommandBlock.java
|
||||
index 73dce588d1f7a5048300073bf8c2b14d6da1e857..d63da691fb8cfa04bb699adb2eb55278e8b76200 100644
|
||||
--- a/src/main/java/org/bukkit/block/CommandBlock.java
|
||||
+++ b/src/main/java/org/bukkit/block/CommandBlock.java
|
||||
@@ -6,7 +6,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
/**
|
||||
* Represents a captured state of a command block.
|
||||
*/
|
||||
-public interface CommandBlock extends TileState {
|
||||
+public interface CommandBlock extends TileState, io.papermc.paper.command.CommandBlockHolder { // Paper
|
||||
|
||||
/**
|
||||
* Gets the command that this CommandBlock will run when powered.
|
||||
diff --git a/src/main/java/org/bukkit/entity/minecart/CommandMinecart.java b/src/main/java/org/bukkit/entity/minecart/CommandMinecart.java
|
||||
index 91cab8b13d5bba34007f124838b32a1df58c5ac7..6a6021ad3a0e6aaf51f5144fa126e81bada9cfcf 100644
|
||||
--- a/src/main/java/org/bukkit/entity/minecart/CommandMinecart.java
|
||||
+++ b/src/main/java/org/bukkit/entity/minecart/CommandMinecart.java
|
||||
@@ -4,7 +4,7 @@ import org.bukkit.entity.Minecart;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
-public interface CommandMinecart extends Minecart {
|
||||
+public interface CommandMinecart extends Minecart, io.papermc.paper.command.CommandBlockHolder { // Paper
|
||||
|
||||
/**
|
||||
* Gets the command that this CommandMinecart will run when activated.
|
Loading…
Add table
Add a link
Reference in a new issue