feat: add config to allow infinite trade
This commit is contained in:
+37
@@ -0,0 +1,37 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Helvetica Volubi <suisuroru@blue-millennium.fun>
|
||||||
|
Date: Mon, 7 Jul 2025 16:30:54 +0800
|
||||||
|
Subject: [PATCH] Add config to allow infinite trade
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/net/minecraft/world/item/trading/Merchant.java b/net/minecraft/world/item/trading/Merchant.java
|
||||||
|
index 6e2fa442ddcd4ef3c4fe789b9ebac9dd409c9de7..0410d4f1405cda79eb5a5aef6f19888d3df1d1e3 100644
|
||||||
|
--- a/net/minecraft/world/item/trading/Merchant.java
|
||||||
|
+++ b/net/minecraft/world/item/trading/Merchant.java
|
||||||
|
@@ -42,7 +42,12 @@ public interface Merchant {
|
||||||
|
new SimpleMenuProvider((containerId, inventory, player1) -> new MerchantMenu(containerId, inventory, this), displayName)
|
||||||
|
);
|
||||||
|
if (optionalInt.isPresent()) {
|
||||||
|
- MerchantOffers offers = this.getOffers();
|
||||||
|
+ // Lophine start - infinite trade
|
||||||
|
+ MerchantOffers offers = this.getOffers().copy();
|
||||||
|
+ for (MerchantOffer merchantOffer : offers) {
|
||||||
|
+ merchantOffer.maxUses = 16384;
|
||||||
|
+ }
|
||||||
|
+ // Lophine end - infinite trade
|
||||||
|
if (!offers.isEmpty()) {
|
||||||
|
player.sendMerchantOffers(optionalInt.getAsInt(), offers, level, this.getVillagerXp(), this.showProgressBar(), this.canRestock());
|
||||||
|
}
|
||||||
|
diff --git a/net/minecraft/world/item/trading/MerchantOffer.java b/net/minecraft/world/item/trading/MerchantOffer.java
|
||||||
|
index 64c99df8ff305fa28c75dc03fc5ef8c61634ad84..21ec77d5167cfdf05043ea474165148fb2b0c2d9 100644
|
||||||
|
--- a/net/minecraft/world/item/trading/MerchantOffer.java
|
||||||
|
+++ b/net/minecraft/world/item/trading/MerchantOffer.java
|
||||||
|
@@ -196,7 +196,7 @@ public class MerchantOffer {
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOutOfStock() {
|
||||||
|
- return this.uses >= this.maxUses;
|
||||||
|
+ return (this.uses >= this.maxUses && !fun.bm.lophine.config.modules.misc.VillagerConfig.villagerInfiniteTrade); // Lophine - infinite trade
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setToOutOfStock() {
|
||||||
+1
-1
@@ -37,7 +37,7 @@ index 5a1c21b05545a03fbb00cf734605049870d3eecb..2ade5ce23cdab08b1746e2cbe99bfe1d
|
|||||||
if (count > i) {
|
if (count > i) {
|
||||||
source.sendFailure(Component.translatable("commands.give.failed.toomanyitems", i, itemStack.getDisplayName()));
|
source.sendFailure(Component.translatable("commands.give.failed.toomanyitems", i, itemStack.getDisplayName()));
|
||||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
index 513cbbf227c5037ee77055473e8815eb05496679..5af3293a532124c2a0e8797efb729de750f33628 100644
|
index e87d6a5e0fe2789ab2518a2b3558e7c0c2320feb..347e5e1c773f7c4566825204d2d71aa3ec20333c 100644
|
||||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -3064,7 +3064,7 @@ public class ServerGamePacketListenerImpl
|
@@ -3064,7 +3064,7 @@ public class ServerGamePacketListenerImpl
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package fun.bm.lophine.config.modules.misc;
|
||||||
|
|
||||||
|
import me.earthme.luminol.config.EnumConfigCategory;
|
||||||
|
import me.earthme.luminol.config.IConfigModule;
|
||||||
|
import me.earthme.luminol.config.flags.ConfigInfo;
|
||||||
|
|
||||||
|
public class VillagerConfig implements IConfigModule {
|
||||||
|
@ConfigInfo(baseName = "villager-infinite-trade", comments =
|
||||||
|
"""
|
||||||
|
Allow villager infinite trade (limit of 16384 times)
|
||||||
|
---- we won't edit saved data, only edit in send data to client.""")
|
||||||
|
public static boolean villagerInfiniteTrade = false;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumConfigCategory getCategory() {
|
||||||
|
return EnumConfigCategory.MISC;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getBaseName() {
|
||||||
|
return "villager-config";
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user