mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-29 03:32:46 +01:00
094bb03a37
- Lots of itemstack cloning removed. Only clone if the item is actually moved - Return true when a plugin cancels inventory move item event instead of false, as false causes pulls to cycle through all items. However, pushes do not exhibit the same behavior, so this is not something plugins could of been relying on. - Add option (Default on) to cooldown hoppers when they fail to move an item due to full inventory - Skip subsequent InventoryMoveItemEvents if a plugin does not use the item after first event fire for an iteration
46 lines
2.5 KiB
Diff
46 lines
2.5 KiB
Diff
From 960bf7841f506ecc2d545186199d23b6852ee8db Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Tue, 20 Dec 2016 15:26:27 -0500
|
|
Subject: [PATCH] Configurable Cartographer Treasure Maps
|
|
|
|
Allow configuring for cartographers to return the same map location
|
|
|
|
Also allow turning off treasure maps all together as they can eat up Map ID's
|
|
which are limited in quantity.
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
index 513c4b020..631aa6eb9 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -393,4 +393,14 @@ public class PaperWorldConfig {
|
|
Bukkit.getLogger().warning("Spawn Egg and Armor Stand NBT filtering disabled, this is a potential security risk");
|
|
}
|
|
}
|
|
+
|
|
+ public boolean enableTreasureMaps = true;
|
|
+ public boolean treasureMapsAlreadyDiscovered = false;
|
|
+ private void treasureMapsAlreadyDiscovered() {
|
|
+ enableTreasureMaps = getBoolean("enable-treasure-maps", true);
|
|
+ treasureMapsAlreadyDiscovered = getBoolean("treasure-maps-return-already-discovered", false);
|
|
+ if (treasureMapsAlreadyDiscovered) {
|
|
+ log("Treasure Maps will return already discovered locations");
|
|
+ }
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
|
|
index 09b466fcb..df009e190 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityVillager.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
|
|
@@ -767,7 +767,8 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant {
|
|
public void a(IMerchant imerchant, MerchantRecipeList merchantrecipelist, Random random) {
|
|
int i = this.a.a(random);
|
|
World world = imerchant.u_();
|
|
- BlockPosition blockposition = world.a(this.b, imerchant.v_(), true);
|
|
+ if (!world.paperConfig.enableTreasureMaps) return; //Paper
|
|
+ BlockPosition blockposition = world.a(this.b, imerchant.v_(), world.paperConfig.treasureMapsAlreadyDiscovered); // Paper - pass false to return first structure, regardless of if its been discovered. true returns only undiscovered.
|
|
|
|
if (blockposition != null) {
|
|
ItemStack itemstack = ItemWorldMap.a(world, (double) blockposition.getX(), (double) blockposition.getZ(), (byte) 2, true, true);
|
|
--
|
|
2.16.1
|
|
|