928bcc8d3a
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: 09943450 Update SnakeYAML version 5515734f SPIGOT-7162: Incorrect description for Entity#getVehicle javadoc 6f82b381 PR-788: Add getHand() to all relevant events CraftBukkit Changes: aaf484f6f SPIGOT-7163: CraftMerchantRecipe doesn't copy demand and specialPrice from BukkitMerchantRecipe 5329dd6fd PR-1107: Add getHand() to all relevant events 93061706e SPIGOT-7045: Ocelots never spawn with babies with spawn reason OCELOT_BABY
101 Zeilen
4.6 KiB
Diff
101 Zeilen
4.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Thu, 23 Sep 2021 10:40:09 -0700
|
|
Subject: [PATCH] More CommandBlock API
|
|
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/commands/PaperCommandBlockHolder.java b/src/main/java/io/papermc/paper/commands/PaperCommandBlockHolder.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..0b42306f17bf8850a13a51067c2d19e7583187e5
|
|
--- /dev/null
|
|
+++ b/src/main/java/io/papermc/paper/commands/PaperCommandBlockHolder.java
|
|
@@ -0,0 +1,33 @@
|
|
+package io.papermc.paper.commands;
|
|
+
|
|
+import io.papermc.paper.adventure.PaperAdventure;
|
|
+import io.papermc.paper.command.CommandBlockHolder;
|
|
+import net.kyori.adventure.text.Component;
|
|
+import net.minecraft.world.level.BaseCommandBlock;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+import org.jetbrains.annotations.Nullable;
|
|
+
|
|
+public interface PaperCommandBlockHolder extends CommandBlockHolder {
|
|
+
|
|
+ BaseCommandBlock getCommandBlockHandle();
|
|
+
|
|
+ @Override
|
|
+ default @NotNull Component lastOutput() {
|
|
+ return PaperAdventure.asAdventure(getCommandBlockHandle().getLastOutput());
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ default void lastOutput(@Nullable Component lastOutput) {
|
|
+ getCommandBlockHandle().setLastOutput(PaperAdventure.asVanilla(lastOutput));
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ default int getSuccessCount() {
|
|
+ return getCommandBlockHandle().getSuccessCount();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ default void setSuccessCount(int successCount) {
|
|
+ getCommandBlockHandle().setSuccessCount(successCount);
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftCommandBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftCommandBlock.java
|
|
index c4ea6760f489e6171f9e6e170160b932597f842f..245a9b062a0033a39fd42f3ff94350192570aec4 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftCommandBlock.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftCommandBlock.java
|
|
@@ -5,7 +5,7 @@ import org.bukkit.World;
|
|
import org.bukkit.block.CommandBlock;
|
|
import org.bukkit.craftbukkit.util.CraftChatMessage;
|
|
|
|
-public class CraftCommandBlock extends CraftBlockEntityState<CommandBlockEntity> implements CommandBlock {
|
|
+public class CraftCommandBlock extends CraftBlockEntityState<CommandBlockEntity> implements CommandBlock, io.papermc.paper.commands.PaperCommandBlockHolder {
|
|
|
|
public CraftCommandBlock(World world, CommandBlockEntity tileEntity) {
|
|
super(world, tileEntity);
|
|
@@ -41,5 +41,10 @@ public class CraftCommandBlock extends CraftBlockEntityState<CommandBlockEntity>
|
|
public void name(net.kyori.adventure.text.Component name) {
|
|
getSnapshot().getCommandBlock().setName(name == null ? net.minecraft.network.chat.Component.literal("@") : io.papermc.paper.adventure.PaperAdventure.asVanilla(name));
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public net.minecraft.world.level.BaseCommandBlock getCommandBlockHandle() {
|
|
+ return getSnapshot().getCommandBlock();
|
|
+ }
|
|
// Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartCommand.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartCommand.java
|
|
index f9863e138994f6c7a7975a852f106faa96d52315..b709a1d909c189f60d0c3aa97b4b96623e7c1db0 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartCommand.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartCommand.java
|
|
@@ -14,7 +14,7 @@ import org.bukkit.permissions.PermissionAttachment;
|
|
import org.bukkit.permissions.PermissionAttachmentInfo;
|
|
import org.bukkit.plugin.Plugin;
|
|
|
|
-public class CraftMinecartCommand extends CraftMinecart implements CommandMinecart {
|
|
+public class CraftMinecartCommand extends CraftMinecart implements CommandMinecart, io.papermc.paper.commands.PaperCommandBlockHolder {
|
|
private final PermissibleBase perm = new PermissibleBase(this);
|
|
|
|
public CraftMinecartCommand(CraftServer server, MinecartCommandBlock entity) {
|
|
@@ -70,6 +70,17 @@ public class CraftMinecartCommand extends CraftMinecart implements CommandMineca
|
|
public net.kyori.adventure.text.@org.jetbrains.annotations.NotNull Component name() {
|
|
return io.papermc.paper.adventure.PaperAdventure.asAdventure(this.getHandle().getCommandBlock().getName());
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public net.minecraft.world.level.BaseCommandBlock getCommandBlockHandle() {
|
|
+ return getHandle().getCommandBlock();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void lastOutput(net.kyori.adventure.text.Component lastOutput) {
|
|
+ io.papermc.paper.commands.PaperCommandBlockHolder.super.lastOutput(lastOutput);
|
|
+ getCommandBlockHandle().onUpdated();
|
|
+ }
|
|
// Paper end
|
|
|
|
@Override
|