mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Fix up secret anvil controls a bit more
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user