Files
Purpur/patches/server/0134-Add-config-for-villager-trading.patch
2024-06-14 15:26:46 -07:00

70 lines
4.6 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ben Kerllenevich <ben@omega24.dev>
Date: Thu, 18 Mar 2021 07:23:27 -0400
Subject: [PATCH] Add config for villager trading
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 80f6a5a6553d752857ccd53815a9341c5e7502e8..d9e8d7d7ba3775131b871a619d997a29dc959594 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -350,6 +350,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
if (level().purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
+ if (this.level().purpurConfig.villagerAllowTrading) // Purpur
this.startTrading(player);
}
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index 5951e0f583b5ab8a5b13dca6d8fcb537be4be73f..07204c4d56d0a33bd596a255f3281dd6a29233ae 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -150,8 +150,10 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
return tryRide(player, hand, InteractionResult.CONSUME); // Purpur
}
if (level().purpurConfig.wanderingTraderRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
+ if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur
this.setTradingPlayer(player);
this.openTradingScreen(player, this.getDisplayName(), 1);
+ } // Purpur
}
return InteractionResult.sidedSuccess(this.level().isClientSide);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a983ef20da54ddb7cd9206c923e4ea3d810e5cac..0c027631ece28a48c373ba453b5caa0fc64c6b9b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2130,6 +2130,7 @@ public class PurpurWorldConfig {
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
public boolean villagerTakeDamageFromWater = false;
+ public boolean villagerAllowTrading = true;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2147,6 +2148,7 @@ public class PurpurWorldConfig {
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
+ villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading);
}
public boolean vindicatorRidable = false;
@@ -2175,6 +2177,7 @@ public class PurpurWorldConfig {
public double wanderingTraderMaxHealth = 20.0D;
public boolean wanderingTraderFollowEmeraldBlock = false;
public boolean wanderingTraderTakeDamageFromWater = false;
+ public boolean wanderingTraderAllowTrading = true;
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2187,6 +2190,7 @@ public class PurpurWorldConfig {
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater);
+ wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading);
}
public boolean wardenRidable = false;