geforkt von Mirrors/Paper
Make enableTreasureMaps
apply to shipwreck loot generation
Fixes #3480 Previously it only controlled whether villagers could trade treasure maps. Now it should apply to loot generated in treasure maps. We don't unregister treasure maps from the loot table, since this option is per-world and the table is global. Instead I just replaced the implementation with a NOP.
Dieser Commit ist enthalten in:
Ursprung
36e82720c5
Commit
913467791a
@ -27,6 +27,26 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/LootItemFunctionExplorationMap.java b/src/main/java/net/minecraft/server/LootItemFunctionExplorationMap.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/LootItemFunctionExplorationMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/LootItemFunctionExplorationMap.java
|
||||
@@ -0,0 +0,0 @@ public class LootItemFunctionExplorationMap extends LootItemFunctionConditional
|
||||
|
||||
if (blockposition != null) {
|
||||
WorldServer worldserver = loottableinfo.c();
|
||||
+ // Paper start
|
||||
+ if (!worldserver.paperConfig.enableTreasureMaps) {
|
||||
+ /*
|
||||
+ * NOTE: I fear users will just get a plain map as their "treasure"
|
||||
+ * This is preferable to disrespecting the config.
|
||||
+ */
|
||||
+ return itemstack;
|
||||
+ }
|
||||
+ // Paper end
|
||||
BlockPosition blockposition1 = worldserver.a(this.d, blockposition, this.g, this.h);
|
||||
|
||||
if (blockposition1 != null) {
|
||||
diff --git a/src/main/java/net/minecraft/server/VillagerTrades.java b/src/main/java/net/minecraft/server/VillagerTrades.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/VillagerTrades.java
|
||||
|
@ -428,6 +428,19 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
this.b();
|
||||
this.g.set(false);
|
||||
}));
|
||||
diff --git a/src/main/java/net/minecraft/server/LootItemFunctionExplorationMap.java b/src/main/java/net/minecraft/server/LootItemFunctionExplorationMap.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/LootItemFunctionExplorationMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/LootItemFunctionExplorationMap.java
|
||||
@@ -0,0 +0,0 @@ public class LootItemFunctionExplorationMap extends LootItemFunctionConditional
|
||||
}
|
||||
|
||||
public void a(JsonObject jsonobject, LootItemFunctionExplorationMap lootitemfunctionexplorationmap, JsonSerializationContext jsonserializationcontext) {
|
||||
- super.a(jsonobject, (LootItemFunctionConditional) lootitemfunctionexplorationmap, jsonserializationcontext);
|
||||
+ super.a(jsonobject, lootitemfunctionexplorationmap, jsonserializationcontext); // Paper - decompile fix
|
||||
if (!lootitemfunctionexplorationmap.d.equals("Buried_Treasure")) {
|
||||
jsonobject.add("destination", jsonserializationcontext.serialize(lootitemfunctionexplorationmap.d));
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/LootSelectorEntry.java b/src/main/java/net/minecraft/server/LootSelectorEntry.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/LootSelectorEntry.java
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren