mirror of
https://github.com/PaperMC/Paper.git
synced 2024-10-29 23:09:33 +01:00
9147456fc9
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: ab8ace685 SPIGOT-7236: Bone meal doesn't increase use statistic 7dcb59b8e Avoid switch on material in previous commit Spigot Changes: 19641c75 SPIGOT-7235: World.Spigot#strikeLightningEffect doesn't do anything
49 lines
2.8 KiB
Diff
49 lines
2.8 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/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java
|
|
index b7f3dc81ecac0d814203028a9213f304bcc19574..8dc626e7e37161901f660116814ea4f6f2920510 100644
|
|
--- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java
|
|
+++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java
|
|
@@ -173,8 +173,35 @@ public class LoomMenu extends AbstractContainerMenu {
|
|
@Override
|
|
public boolean clickMenuButton(net.minecraft.world.entity.player.Player player, int id) {
|
|
if (id >= 0 && id < this.selectablePatterns.size()) {
|
|
- this.selectedBannerPatternIndex.set(id);
|
|
- this.setupResultSlot((Holder) this.selectablePatterns.get(id));
|
|
+ // Paper start
|
|
+ int selectablePatternIndex = id;
|
|
+ io.papermc.paper.event.player.PlayerLoomPatternSelectEvent event = new io.papermc.paper.event.player.PlayerLoomPatternSelectEvent((Player) player.getBukkitEntity(), ((CraftInventoryLoom) getBukkitView().getTopInventory()), org.bukkit.block.banner.PatternType.getByIdentifier(this.selectablePatterns.get(selectablePatternIndex).value().getHashname()));
|
|
+ if (!event.callEvent()) {
|
|
+ ((Player) player.getBukkitEntity()).updateInventory();
|
|
+ return false;
|
|
+ }
|
|
+ Holder<BannerPattern> selectedPattern = null;
|
|
+ for (int i = 0; i < this.selectablePatterns.size(); i++) {
|
|
+ final Holder<BannerPattern> holder = this.selectablePatterns.get(i);
|
|
+ if (event.getPatternType().getIdentifier().equals(holder.value().getHashname())) {
|
|
+ selectablePatternIndex = i;
|
|
+ selectedPattern = holder;
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ if (selectedPattern == null) {
|
|
+ for (BannerPattern pattern : BuiltInRegistries.BANNER_PATTERN) {
|
|
+ if (event.getPatternType().getIdentifier().equals(pattern.getHashname())) {
|
|
+ selectedPattern = BuiltInRegistries.BANNER_PATTERN.getHolder(BuiltInRegistries.BANNER_PATTERN.getId(pattern)).orElseThrow();
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ selectablePatternIndex = -1;
|
|
+ }
|
|
+ ((Player) player.getBukkitEntity()).updateInventory();
|
|
+ this.selectedBannerPatternIndex.set(selectablePatternIndex);
|
|
+ this.setupResultSlot(java.util.Objects.requireNonNull(selectedPattern, "selectedPattern was null, this is unexpected"));
|
|
+ // Paper end
|
|
return true;
|
|
} else {
|
|
return false;
|