Fix up secret anvil controls a bit more

This commit is contained in:
William Blake Galbreath
2020-06-15 01:47:41 -05:00
parent dd192ddd62
commit 5c7ae7738c

View File

@@ -1,15 +1,15 @@
From ce8a02f259fb4f0a02d036c03f84af8fe2334399 Mon Sep 17 00:00:00 2001
From 43aa8b97055c288e41c3c0a0924b99752559c53a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sun, 19 Apr 2020 00:17:56 -0500
Subject: [PATCH] More anvil controls
---
.../net/minecraft/server/ContainerAnvil.java | 25 ++++++++++++++++---
.../inventory/CraftInventoryAnvil.java | 22 ++++++++++++++++
2 files changed, 43 insertions(+), 4 deletions(-)
.../net/minecraft/server/ContainerAnvil.java | 31 +++++++++++++++++--
.../inventory/CraftInventoryAnvil.java | 24 +++++++++++++-
2 files changed, 51 insertions(+), 4 deletions(-)
diff --git a/src/main/java/net/minecraft/server/ContainerAnvil.java b/src/main/java/net/minecraft/server/ContainerAnvil.java
index 286b930ddb..c34f1e02cb 100644
index 286b930ddb..d418c04414 100644
--- a/src/main/java/net/minecraft/server/ContainerAnvil.java
+++ b/src/main/java/net/minecraft/server/ContainerAnvil.java
@@ -8,6 +8,7 @@ import org.apache.logging.log4j.Logger;
@@ -76,15 +76,22 @@ index 286b930ddb..c34f1e02cb 100644
++i;
}
}
@@ -310,12 +321,18 @@ public class ContainerAnvil extends Container {
k2 = d(k2);
}
- itemstack1.setRepairCost(k2);
+ if (!bypassCost) itemstack1.setRepairCost(k2); // Purpur
EnchantmentManager.a(map, itemstack1);
@@ -295,6 +306,13 @@ public class ContainerAnvil extends Container {
this.levelCost.set(maximumRepairCost - 1); // CraftBukkit
}
+ // Purpur start
+ if (bypassCost && levelCost.get() >= maximumRepairCost) {
+ itemstack.getOrCreateTagAndSet("Purpur.realCost", NBTTagInt.a(levelCost.get()));
+ levelCost.set(maximumRepairCost - 1);
+ }
+ // Purpur end
+
if (this.levelCost.get() >= maximumRepairCost && !this.player.abilities.canInstantlyBuild) { // CraftBukkit
itemstack1 = ItemStack.a;
}
@@ -316,6 +334,12 @@ public class ContainerAnvil extends Container {
org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareAnvilEvent(getBukkitView(), itemstack1); // CraftBukkit
this.c();
+ // Purpur start
@@ -96,10 +103,27 @@ index 286b930ddb..c34f1e02cb 100644
}
}
@@ -349,6 +373,7 @@ public class ContainerAnvil extends Container {
itemstack = itemstack1.cloneItemStack();
if (i == 2) {
+ if (net.pl3x.purpur.event.inventory.AnvilTakeResultEvent.getHandlerList().getRegisteredListeners().length > 0) new net.pl3x.purpur.event.inventory.AnvilTakeResultEvent(entityhuman.getBukkitEntity(), getBukkitView(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack)).callEvent(); // Purpur
if (!this.a(itemstack1, 3, 39, true)) {
return ItemStack.a;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryAnvil.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryAnvil.java
index 9374c27061..db5e4f2bd1 100644
index 9374c27061..d45f356be3 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryAnvil.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryAnvil.java
@@ -9,7 +9,7 @@ import org.bukkit.inventory.AnvilInventory;
public class CraftInventoryAnvil extends CraftResultInventory implements AnvilInventory {
private final Location location;
- private final ContainerAnvil container;
+ public final ContainerAnvil container; // Purpur - private -> public
public CraftInventoryAnvil(Location location, IInventory inventory, IInventory resultInventory, ContainerAnvil container) {
super(inventory, resultInventory);
@@ -47,4 +47,26 @@ public class CraftInventoryAnvil extends CraftResultInventory implements AnvilIn
Preconditions.checkArgument(levels >= 0, "Maximum repair cost must be positive (or 0)");
container.maximumRepairCost = levels;
@@ -128,5 +152,5 @@ index 9374c27061..db5e4f2bd1 100644
+ // Purpur end
}
--
2.24.0
2.26.2