mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-03 06:40:19 +08:00
Added PlayerLoomPatternSelectEvent
This commit is contained in:
parent
00972e80d1
commit
c7667378e7
@ -0,0 +1,89 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||||
|
Date: Wed, 25 Nov 2020 16:33:42 -0800
|
||||||
|
Subject: [PATCH] Added PlayerLoomPatternSelectEvent
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/io/papermc/paper/event/player/PlayerLoomPatternSelectEvent.java b/src/main/java/io/papermc/paper/event/player/PlayerLoomPatternSelectEvent.java
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000000000000000000000000000000..8cb05709f7cb5dee993ff6fea1626c41b90a7d8b
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/main/java/io/papermc/paper/event/player/PlayerLoomPatternSelectEvent.java
|
||||||
|
@@ -0,0 +1,77 @@
|
||||||
|
+package io.papermc.paper.event.player;
|
||||||
|
+
|
||||||
|
+import org.bukkit.block.banner.PatternType;
|
||||||
|
+import org.bukkit.entity.Player;
|
||||||
|
+import org.bukkit.event.Cancellable;
|
||||||
|
+import org.bukkit.event.HandlerList;
|
||||||
|
+import org.bukkit.event.player.PlayerEvent;
|
||||||
|
+import org.bukkit.inventory.LoomInventory;
|
||||||
|
+import org.jetbrains.annotations.NotNull;
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * Called when a player selects a banner patten in a loom inventory.
|
||||||
|
+ */
|
||||||
|
+public class PlayerLoomPatternSelectEvent extends PlayerEvent implements Cancellable {
|
||||||
|
+
|
||||||
|
+ private static final HandlerList HANDLER_LIST = new HandlerList();
|
||||||
|
+
|
||||||
|
+ private boolean cancelled;
|
||||||
|
+ private final LoomInventory loomInventory;
|
||||||
|
+ private PatternType patternType;
|
||||||
|
+
|
||||||
|
+ public PlayerLoomPatternSelectEvent(@NotNull Player player, @NotNull LoomInventory loomInventory, @NotNull PatternType patternType) {
|
||||||
|
+ super(player);
|
||||||
|
+ this.loomInventory = loomInventory;
|
||||||
|
+ this.patternType = patternType;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Gets the loom inventory involved.
|
||||||
|
+ *
|
||||||
|
+ * @return the loom inventory
|
||||||
|
+ */
|
||||||
|
+ @NotNull
|
||||||
|
+ public LoomInventory getLoomInventory() {
|
||||||
|
+ return loomInventory;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Gets the pattern type selected.
|
||||||
|
+ *
|
||||||
|
+ * @return the pattern type
|
||||||
|
+ */
|
||||||
|
+ @NotNull
|
||||||
|
+ public PatternType getPatternType() {
|
||||||
|
+ return patternType;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Sets the pattern type selected.
|
||||||
|
+ *
|
||||||
|
+ * @param patternType the pattern type
|
||||||
|
+ */
|
||||||
|
+ public void setPatternType(@NotNull PatternType patternType) {
|
||||||
|
+ this.patternType = patternType;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public boolean isCancelled() {
|
||||||
|
+ return cancelled;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void setCancelled(boolean cancel) {
|
||||||
|
+ this.cancelled = cancel;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @NotNull
|
||||||
|
+ @Override
|
||||||
|
+ public HandlerList getHandlers() {
|
||||||
|
+ return HANDLER_LIST;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @NotNull
|
||||||
|
+ public static HandlerList getHandlerList() {
|
||||||
|
+ return HANDLER_LIST;
|
||||||
|
+ }
|
||||||
|
+}
|
@ -0,0 +1,63 @@
|
|||||||
|
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;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user