mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
Add config for villager trading
This commit is contained in:
@@ -1,69 +0,0 @@
|
||||
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/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||
index e33a29c486d50c5f22888bcb1979830143c8b06d..0bca1eeaa0f35d702dad41758c72bb3c9ab35220 100644
|
||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -377,6 +377,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
|
||||
if (level().purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur - Ridables
|
||||
+ if (this.level().purpurConfig.villagerAllowTrading) // Purpur - Add config for villager trading
|
||||
this.startTrading(player);
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
index 455390bd5350282d1a6c9b25e9cdbd4a620b136c..2cfd9c9194edda92185adecca80c5cd140e26c9f 100644
|
||||
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
@@ -165,8 +165,10 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||
return tryRide(player, hand, InteractionResult.CONSUME); // Purpur - Ridables
|
||||
}
|
||||
if (level().purpurConfig.wanderingTraderRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur - Ridables
|
||||
+ if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur - Add config for villager trading
|
||||
this.setTradingPlayer(player);
|
||||
this.openTradingScreen(player, this.getDisplayName(), 1);
|
||||
+ } // Purpur - Add config for villager trading
|
||||
}
|
||||
|
||||
return InteractionResult.SUCCESS;
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 59156b6d2b8107a2031bc56387f002a6ef404022..913c3e0c66d005380782af7e7a3358ed5ef45afc 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -2238,6 +2238,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);
|
||||
@@ -2258,6 +2259,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;
|
||||
@@ -2291,6 +2293,7 @@ public class PurpurWorldConfig {
|
||||
public double wanderingTraderTemptRange = 10.0D;
|
||||
public boolean wanderingTraderCanBeLeashed = 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);
|
||||
@@ -2306,6 +2309,7 @@ public class PurpurWorldConfig {
|
||||
wanderingTraderTemptRange = getDouble("mobs.wandering_trader.attributes.tempt_range", wanderingTraderTemptRange);
|
||||
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
|
||||
wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater);
|
||||
+ wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading);
|
||||
}
|
||||
|
||||
public boolean wardenRidable = false;
|
||||
@@ -30,7 +30,7 @@ index dbd5629ff0bc97177e872630bc39c608d009297f..5cba0608e24d2f5a687921e0c6b68827
|
||||
/* Drop global time updates
|
||||
if (this.tickCount % 20 == 0) {
|
||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||
index 7f136e044a243814372beef1400d3b6a148d2cbf..5e730cdde960603d5fa0fa7d1b70ec56c4fa8145 100644
|
||||
index 53a7c465e64920f46ee46d9c71fc595dbfb24021..4daa8dfa6d9e13ffb88ad0c5d4f18f24ee408225 100644
|
||||
--- a/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -217,6 +217,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||
@@ -3969,7 +3969,7 @@ index e855ebc5be2cef3b96e2c01a8c1d388e433c0d52..4e799981f04cd17a34f043dda82869ad
|
||||
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
|
||||
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false));
|
||||
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
|
||||
index 129479cedda20e77719f4f7237ec5b9acc5b00c8..a58a0d5d3872a57c8c5e464bd0f6d2fd7a054990 100644
|
||||
index 4a4d01abfbbdd4ab4bf89ce990ec287ca03dbc29..09910d526cdf3484474463ee4ea1ca8501280e45 100644
|
||||
--- a/net/minecraft/world/entity/monster/Ravager.java
|
||||
+++ b/net/minecraft/world/entity/monster/Ravager.java
|
||||
@@ -66,14 +66,39 @@ public class Ravager extends Raider {
|
||||
@@ -4936,7 +4936,7 @@ index 9f476e587d7df797129e49738f101cccca7e10b7..f968e5c99bdb23b268bc34ea1ba5d54a
|
||||
&& this.level() == entity.level()
|
||||
&& EntitySelector.NO_CREATIVE_OR_SPECTATOR.test(entity)
|
||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||
index f292db5aa6df2c2039432a4f09e43bf2b8b11e87..2c195e6aabc10d6c8f06fdcb3d9b361d1feeecc2 100644
|
||||
index 7b514b40070946f93156599349311c654ad6c9c4..286ca9a05db4823a277c150d1b18592e64c70aca 100644
|
||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -200,6 +200,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -4996,11 +4996,11 @@ index f292db5aa6df2c2039432a4f09e43bf2b8b11e87..2c195e6aabc10d6c8f06fdcb3d9b361d
|
||||
|
||||
+ if (level().purpurConfig.villagerRidable && itemInHand.isEmpty()) return tryRide(player, hand); // Purpur - Ridables
|
||||
+
|
||||
if (this.level().purpurConfig.villagerAllowTrading) // Purpur - Add config for villager trading
|
||||
this.startTrading(player);
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
index 47c1ad2ef30d464abb3c804260f0fd7cde193ba5..c6b3894fe085c2b565651ab3ae2f1acbb6bacea4 100644
|
||||
index 99947e9877b79c0d419e1639c2b1379fc1504c6a..7e4d14d30eb3f06c0c7426e09084355ab4f3857d 100644
|
||||
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
@@ -76,6 +76,23 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||
@@ -5027,18 +5027,17 @@ index 47c1ad2ef30d464abb3c804260f0fd7cde193ba5..c6b3894fe085c2b565651ab3ae2f1acb
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
@@ -137,9 +154,9 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||
@@ -137,8 +154,9 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||
|
||||
if (!this.level().isClientSide) {
|
||||
if (this.getOffers().isEmpty()) {
|
||||
- return InteractionResult.CONSUME;
|
||||
+ return tryRide(player, hand, InteractionResult.CONSUME); // Purpur - Ridables
|
||||
}
|
||||
-
|
||||
+ if (level().purpurConfig.wanderingTraderRidable && itemInHand.isEmpty()) return tryRide(player, hand); // Purpur - Ridables
|
||||
|
||||
if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur - Add config for villager trading
|
||||
this.setTradingPlayer(player);
|
||||
this.openTradingScreen(player, this.getDisplayName(), 1);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
|
||||
index 6e84f57c90c0747403c4679bc920f9a9aa83594f..fa258b6a1795d18a053843e93349dbf9aadf7e77 100644
|
||||
--- a/net/minecraft/world/entity/player/Player.java
|
||||
|
||||
@@ -135,7 +135,7 @@ index 6b99afb4f237b5d6def98f3e03492975b795bc95..234e9d4aca14bc2a2e138918be143051
|
||||
brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list);
|
||||
} else {
|
||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||
index 4b5b04a5e65c4ab5e00564f88df5a938f9ca1811..8f6e530d5ae170765440c451d82b113345de7c74 100644
|
||||
index 9f756a6505ab185f7dd1cb671891f2095251ce0e..09290db1fd3ca65b08862c6cfe3c9d21a77adc4f 100644
|
||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -265,7 +265,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -147,7 +147,7 @@ index 4b5b04a5e65c4ab5e00564f88df5a938f9ca1811..8f6e530d5ae170765440c451d82b1133
|
||||
ImmutableSet.of(Pair.of(MemoryModuleType.JOB_SITE, MemoryStatus.VALUE_PRESENT))
|
||||
);
|
||||
}
|
||||
@@ -917,7 +917,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -918,7 +918,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
|
||||
public boolean hasFarmSeeds() {
|
||||
|
||||
@@ -14,6 +14,14 @@
|
||||
@Override
|
||||
public Brain<Villager> getBrain() {
|
||||
return (Brain<Villager>)super.getBrain();
|
||||
@@ -365,6 +_,7 @@
|
||||
return InteractionResult.CONSUME;
|
||||
}
|
||||
|
||||
+ if (this.level().purpurConfig.villagerAllowTrading) // Purpur - Add config for villager trading
|
||||
this.startTrading(player);
|
||||
}
|
||||
|
||||
@@ -707,7 +_,7 @@
|
||||
|
||||
@Override
|
||||
|
||||
@@ -14,3 +14,14 @@
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
@@ -133,8 +_,10 @@
|
||||
return InteractionResult.CONSUME;
|
||||
}
|
||||
|
||||
+ if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur - Add config for villager trading
|
||||
this.setTradingPlayer(player);
|
||||
this.openTradingScreen(player, this.getDisplayName(), 1);
|
||||
+ } // Purpur - Add config for villager trading
|
||||
}
|
||||
|
||||
return InteractionResult.SUCCESS;
|
||||
|
||||
@@ -2230,6 +2230,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);
|
||||
@@ -2250,6 +2251,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;
|
||||
@@ -2283,6 +2285,7 @@ public class PurpurWorldConfig {
|
||||
public double wanderingTraderTemptRange = 10.0D;
|
||||
public boolean wanderingTraderCanBeLeashed = 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);
|
||||
@@ -2298,6 +2301,7 @@ public class PurpurWorldConfig {
|
||||
wanderingTraderTemptRange = getDouble("mobs.wandering_trader.attributes.tempt_range", wanderingTraderTemptRange);
|
||||
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
|
||||
wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater);
|
||||
wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading);
|
||||
}
|
||||
|
||||
public boolean wardenRidable = false;
|
||||
|
||||
Reference in New Issue
Block a user