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 CraftBukkit Changes: 6b8cd9a7 SPIGOT-6207: forcibly drop the items of a converted zombie villager
64 lines
3.2 KiB
Diff
64 lines
3.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Wed, 25 Nov 2020 16:33:27 -0800
|
|
Subject: [PATCH] Added PlayerLoomPatternSelectEvent
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/inventory/ContainerLoom.java b/src/main/java/net/minecraft/world/inventory/ContainerLoom.java
|
|
index 7980930cc712e37a788f894bf2d2ee2b1cfc1196..5e5367710d43fc421806bda31cd611a9cb5869f3 100644
|
|
--- a/src/main/java/net/minecraft/world/inventory/ContainerLoom.java
|
|
+++ b/src/main/java/net/minecraft/world/inventory/ContainerLoom.java
|
|
@@ -22,6 +22,7 @@ import org.bukkit.craftbukkit.inventory.CraftInventoryLoom;
|
|
import org.bukkit.craftbukkit.inventory.CraftInventoryView;
|
|
import org.bukkit.entity.Player;
|
|
// CraftBukkit end
|
|
+import io.papermc.paper.event.player.PlayerLoomPatternSelectEvent; // Paper
|
|
|
|
public class ContainerLoom extends Container {
|
|
|
|
@@ -41,7 +42,7 @@ public class ContainerLoom extends Container {
|
|
}
|
|
// CraftBukkit end
|
|
private final ContainerAccess containerAccess;
|
|
- private final ContainerProperty d;
|
|
+ private final ContainerProperty d; public final ContainerProperty getSelectedBannerPattern() { return this.d; }; // Paper - OBFHELPER
|
|
private Runnable e;
|
|
private final Slot f;
|
|
private final Slot g;
|
|
@@ -160,7 +161,22 @@ public class ContainerLoom extends Container {
|
|
@Override
|
|
public boolean a(EntityHuman entityhuman, int i) {
|
|
if (i > 0 && i <= EnumBannerPatternType.R) {
|
|
- this.d.set(i);
|
|
+ // Paper start
|
|
+ int enumBannerPatternTypeOrdinal = i;
|
|
+ PlayerLoomPatternSelectEvent event = new PlayerLoomPatternSelectEvent((Player) entityhuman.getBukkitEntity(), ((CraftInventoryLoom) getBukkitView().getTopInventory()), org.bukkit.block.banner.PatternType.getByIdentifier(EnumBannerPatternType.values()[i].getIdentifier()));
|
|
+ if (!event.callEvent()) {
|
|
+ ((Player) entityhuman.getBukkitEntity()).updateInventory();
|
|
+ return false;
|
|
+ }
|
|
+ for (EnumBannerPatternType nms : EnumBannerPatternType.values()) {
|
|
+ if (event.getPatternType().getIdentifier().equals(nms.getIdentifier())) {
|
|
+ enumBannerPatternTypeOrdinal = nms.ordinal();
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ ((Player) entityhuman.getBukkitEntity()).updateInventory();
|
|
+ this.getSelectedBannerPattern().set(enumBannerPatternTypeOrdinal);
|
|
+ // Paper end
|
|
this.j();
|
|
return true;
|
|
} else {
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/entity/EnumBannerPatternType.java b/src/main/java/net/minecraft/world/level/block/entity/EnumBannerPatternType.java
|
|
index 988e52c675dbb5ef368c8dbb5fb6d4229eb30174..9bc27e727d11d4ac9055a0bc02d8a2ef606ff9c4 100644
|
|
--- a/src/main/java/net/minecraft/world/level/block/entity/EnumBannerPatternType.java
|
|
+++ b/src/main/java/net/minecraft/world/level/block/entity/EnumBannerPatternType.java
|
|
@@ -33,6 +33,7 @@ public enum EnumBannerPatternType {
|
|
this.T = flag;
|
|
}
|
|
|
|
+ public String getIdentifier() { return this.b(); } // Paper - OBFHELPER
|
|
public String b() {
|
|
return this.V;
|
|
}
|