From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Wed, 25 Nov 2020 16:33:27 -0800 Subject: [PATCH] Added PlayerLoomPatternSelectEvent diff --git a/src/main/java/net/minecraft/server/ContainerLoom.java b/src/main/java/net/minecraft/server/ContainerLoom.java index 1fe21ca13a1eecb64cb2d3f4f18993e181d26ae2..f8f380d9ccf3a9672ec66290bae3ca9ecf7f606a 100644 --- a/src/main/java/net/minecraft/server/ContainerLoom.java +++ b/src/main/java/net/minecraft/server/ContainerLoom.java @@ -6,6 +6,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 { @@ -25,7 +26,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; @@ -144,7 +145,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/server/EnumBannerPatternType.java b/src/main/java/net/minecraft/server/EnumBannerPatternType.java index 22488b533c09f7a9d8a50414d368b62d21c29b1f..775e74effbf8a900951f63ab3ee8d5d055902e35 100644 --- a/src/main/java/net/minecraft/server/EnumBannerPatternType.java +++ b/src/main/java/net/minecraft/server/EnumBannerPatternType.java @@ -30,6 +30,7 @@ public enum EnumBannerPatternType { this.T = flag; } + public String getIdentifier() { return this.b(); } // Paper - OBFHELPER public String b() { return this.V; }