mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 17:07:43 +01:00
Upstream has released updates that appears to apply and compile correctly Paper Changes: b75eeca0 Boost light task priority to ensure it doesnt hold up chunk loads 3d2bc848 Ensure VillagerTrades doesn't load async - fixes #3495 e470f1ef Add more information to Timing Reports f4a47db6 Improve Thread Pool usage to allow single threads for single cpu servers a4fe910f Fix sounds when using worldedit regen command 70ad51a8 Updated Upstream (Bukkit/CraftBukkit) d7cfa4fa Improve legacy format serialization more
103 lines
5.0 KiB
Diff
103 lines
5.0 KiB
Diff
From d445f4a7df0a26d7805584ac4d5939b178a30062 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 ed88e208d0..fcfb4abdc2 100644
|
|
--- a/src/main/java/net/minecraft/server/ContainerGrindstone.java
|
|
+++ b/src/main/java/net/minecraft/server/ContainerGrindstone.java
|
|
@@ -57,12 +57,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();
|
|
}
|
|
});
|
|
@@ -106,6 +118,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 8c3bbef666..d5e0578b25 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 5318a8e327..9c60855d66 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.24.0
|
|
|