geforkt von Mirrors/Paper
e886d8118e
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
64 Zeilen
3.1 KiB
Diff
64 Zeilen
3.1 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/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;
|
|
}
|