Files
KaiijuMC/patches/server/0012-Toggle-void-trading.patch
2023-06-05 03:09:10 +03:00

39 lines
2.4 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Sofiane H. Djerbi" <46628754+kugge@users.noreply.github.com>
Date: Sun, 23 Apr 2023 15:34:30 +0300
Subject: [PATCH] Toggle void trading
Don't close trading windows when the villager is unloaded.
You should set chunk-unloads to 0s in paper config file to enable void
trading. Or use Kaiivoid plugin.
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
index 1bedca8a975bb836083d592bb666824259fb6b66..c1f7d3abf3862249c37836bded15d104699f95cf 100644
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
@@ -147,8 +147,10 @@ public class KaiijuWorldConfig {
}
public boolean shulkerBoxDropContentsWhenDestroyed = true;
+ public boolean fixVoidTrading = true;
private void gameplaySettings() {
shulkerBoxDropContentsWhenDestroyed = getBoolean("gameplay.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
+ fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
}
}
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index c9cfbde14bfde9fa24835ff29b7aa802c2fd1c87..9ad16476bedc9ac3d44cd3fbecbf9cf326d6f1be 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2825,7 +2825,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot Start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
// Paper start
- if (entity.getBukkitEntity() instanceof org.bukkit.inventory.Merchant merchant && merchant.getTrader() != null) {
+ if (entity.level.kaiijuConfig.fixVoidTrading && entity.getBukkitEntity() instanceof org.bukkit.inventory.Merchant merchant && merchant.getTrader() != null) { // Kaiiju
merchant.getTrader().closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED);
}
// Paper end