mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 17:37:42 +01:00
Upstream has released updates that appears to apply and compile correctly Paper Changes: 70df8f27 Add PrepareGrindstoneEvent 24b2f54b Fix Player skulls for offline mode servers ce270e14 Updated Upstream (Bukkit/CraftBukkit/Spigot) c4ada0e1 Fix many chunk loading issues 37b244b5 Fix not running level updates for light if no pre/post task e6142995 Add and implement PlayerRecipeBookClickEvent (#3351) 9bb4e930 Fix piston dupe patch creating ghost blocks (#3603)
103 lines
5.0 KiB
Diff
103 lines
5.0 KiB
Diff
From 5de138cbdf306a02f264c50f32f22c6864d001f1 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
Date: Thu, 1 Aug 2019 19:15:12 -0500
|
|
Subject: [PATCH] Add blacklist option for grindstone
|
|
|
|
---
|
|
.../minecraft/server/ContainerGrindstone.java | 17 +++++++++++++++++
|
|
.../java/net/minecraft/server/ItemStack.java | 6 ++++++
|
|
.../java/net/pl3x/purpur/PurpurWorldConfig.java | 12 ++++++++++++
|
|
3 files changed, 35 insertions(+)
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ContainerGrindstone.java b/src/main/java/net/minecraft/server/ContainerGrindstone.java
|
|
index 83cb0cd64..2a849d0ec 100644
|
|
--- a/src/main/java/net/minecraft/server/ContainerGrindstone.java
|
|
+++ b/src/main/java/net/minecraft/server/ContainerGrindstone.java
|
|
@@ -61,12 +61,24 @@ public class ContainerGrindstone extends Container {
|
|
this.a(new Slot(this.craftInventory, 0, 49, 19) {
|
|
@Override
|
|
public boolean isAllowed(ItemStack itemstack) {
|
|
+ // Purpur start
|
|
+ if (containeraccess.getWorld().purpurConfig.grindstoneBlacklistDisallowPlacement && containeraccess.getWorld().purpurConfig.grindstoneBlacklist.contains(itemstack.getId())) {
|
|
+ getBukkitView().getTopInventory().getViewers().forEach(viewer -> ((Player) viewer).updateInventory());
|
|
+ return false;
|
|
+ }
|
|
+ // Purpur end
|
|
return itemstack.e() || itemstack.getItem() == Items.ENCHANTED_BOOK || itemstack.hasEnchantments();
|
|
}
|
|
});
|
|
this.a(new Slot(this.craftInventory, 1, 49, 40) {
|
|
@Override
|
|
public boolean isAllowed(ItemStack itemstack) {
|
|
+ // Purpur start
|
|
+ if (containeraccess.getWorld().purpurConfig.grindstoneBlacklistDisallowPlacement && containeraccess.getWorld().purpurConfig.grindstoneBlacklist.contains(itemstack.getId())) {
|
|
+ getBukkitView().getTopInventory().getViewers().forEach(viewer -> ((Player) viewer).updateInventory());
|
|
+ return false;
|
|
+ }
|
|
+ // Purpur end
|
|
return itemstack.e() || itemstack.getItem() == Items.ENCHANTED_BOOK || itemstack.hasEnchantments();
|
|
}
|
|
});
|
|
@@ -110,6 +122,11 @@ public class ContainerGrindstone extends Container {
|
|
}
|
|
|
|
private int e(ItemStack itemstack) {
|
|
+ // Purpur start
|
|
+ if (containeraccess.getWorld().purpurConfig.grindstoneBlacklistReturnsZeroExp && containeraccess.getWorld().purpurConfig.grindstoneBlacklist.contains(itemstack.getId())) {
|
|
+ return 0;
|
|
+ }
|
|
+ // Purpur end
|
|
int j = 0;
|
|
Map<Enchantment, Integer> map = EnchantmentManager.a(itemstack);
|
|
Iterator iterator = map.entrySet().iterator();
|
|
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
|
index 8c3bbef66..d5e0578b2 100644
|
|
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
|
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
|
@@ -542,6 +542,12 @@ public final class ItemStack {
|
|
return !this.e() ? this.doMaterialsMatch(itemstack) : !itemstack.isEmpty() && this.getItem() == itemstack.getItem();
|
|
}
|
|
|
|
+ // Purpur start
|
|
+ public String getId() {
|
|
+ return IRegistry.ITEM.getKey(getItem()).toString();
|
|
+ }
|
|
+ // Purpur end
|
|
+
|
|
public String j() {
|
|
return this.getItem().f(this);
|
|
}
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
index 5318a8e32..9c60855d6 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -8,6 +8,7 @@ import net.minecraft.server.MinecraftKey;
|
|
import org.bukkit.configuration.ConfigurationSection;
|
|
import org.spigotmc.SpigotWorldConfig;
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
@@ -103,6 +104,17 @@ public class PurpurWorldConfig {
|
|
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
|
|
}
|
|
|
|
+ public List<String> grindstoneBlacklist = new ArrayList<>();
|
|
+ public boolean grindstoneBlacklistDisallowPlacement = true;
|
|
+ public boolean grindstoneBlacklistReturnsZeroExp = true;
|
|
+ private void grindstoneBlacklist() {
|
|
+ List<String> blacklist = getList("blocks.grindstone.blacklist.blacklisted-items", grindstoneBlacklist);
|
|
+ grindstoneBlacklistDisallowPlacement = getBoolean("blocks.grindstone.blacklist.disallow-placement", grindstoneBlacklistDisallowPlacement);
|
|
+ grindstoneBlacklistReturnsZeroExp = getBoolean("blocks.grindstone.blacklist.returns-zero-exp", grindstoneBlacklistReturnsZeroExp);
|
|
+ grindstoneBlacklist.clear();
|
|
+ grindstoneBlacklist.addAll(blacklist);
|
|
+ }
|
|
+
|
|
public boolean signAllowColors = false;
|
|
public boolean signRightClickEdit = false;
|
|
private void signSettings() {
|
|
--
|
|
2.26.2
|
|
|