This commit is contained in:
BillyGalbreath
2021-06-16 17:17:33 -05:00
parent 359d49f4f4
commit 82ef35225f
85 changed files with 2625 additions and 489 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Allow leashing villagers
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 4063bceb87da208db76da2a820e5338ba1b5119b..f4c9e6184f39dea9ea1fda98333734773858d0f8 100644
index f605b87f8d0ea0f3646ab856e8fbf12a25c24594..0cbc90a8c1277a0f35e6636ca73b134b22544db3 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -47,6 +47,7 @@ import net.minecraft.world.entity.decoration.HangingEntity;
@@ -16,7 +16,7 @@ index 4063bceb87da208db76da2a820e5338ba1b5119b..f4c9e6184f39dea9ea1fda9833373477
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.vehicle.Boat;
import net.minecraft.world.item.ArmorItem;
@@ -1207,6 +1208,7 @@ public abstract class Mob extends LivingEntity {
@@ -1209,6 +1210,7 @@ public abstract class Mob extends LivingEntity {
if (!this.isAlive()) {
return InteractionResult.PASS;
} else if (this.getLeashHolder() == player) {
@@ -49,7 +49,7 @@ index 897dcb4eb6e5530fb612e16551eb9e4f457985f5..20cb368076017e6dfc28ef4c2af778c0
@Override
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 11576b86368479c319691b58ad47f1f1e1479c68..a17f61874a8999973d7368cf729676dfa9da5569 100644
index 05fc739b8dfe2ec74a2b070f5cdcd945f5b04b1a..f879faf7ebe01697ab36247dacdd46d4b4fbb77e 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -95,6 +95,13 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -59,7 +59,7 @@ index 11576b86368479c319691b58ad47f1f1e1479c68..a17f61874a8999973d7368cf729676df
+ // Purpur start
+ @Override
+ public boolean canBeLeashed(Player player) {
+ return level.purpurConfig.villagerTraderCanBeLeashed && !this.isLeashed();
+ return level.purpurConfig.wanderingTraderCanBeLeashed && !this.isLeashed();
+ }
+ // Purpur end
+
@@ -67,28 +67,35 @@ index 11576b86368479c319691b58ad47f1f1e1479c68..a17f61874a8999973d7368cf729676df
@Override
public AgeableMob getBreedOffspring(ServerLevel world, AgeableMob entity) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 3be920c0fd4b406668cc18fbbb2dec6a7f0c2ab2..b6b362befd94e4cca156296058019c8a26c7b2f4 100644
index a53f827843407ae4c8c6252796af66da41683caa..ab902dc191c7bb0d90e7f3e6b045a017c8b50577 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -319,17 +319,21 @@ public class PurpurWorldConfig {
public int villagerBrainTicks = 1;
@@ -718,6 +718,7 @@ public class PurpurWorldConfig {
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
+ public boolean villagerCanBeLeashed = false;
public boolean villagerFarmingBypassMobGriefing = false;
public boolean villagerFollowEmeraldBlock = false;
+ public boolean villagerCanBeLeashed = false;
private void villagerSettings() {
villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks);
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -725,6 +726,7 @@ public class PurpurWorldConfig {
villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
+ villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerFarmingBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerFarmingBypassMobGriefing);
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
+ villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
}
+ public boolean villagerTraderCanBeLeashed = false;
public boolean villagerTraderFollowEmeraldBlock = false;
private void villagerTraderSettings() {
+ villagerTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", villagerTraderCanBeLeashed);
villagerTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", villagerTraderFollowEmeraldBlock);
public boolean vindicatorRidable = false;
@@ -737,10 +739,12 @@ public class PurpurWorldConfig {
public boolean wanderingTraderRidable = false;
public boolean wanderingTraderRidableInWater = false;
public boolean wanderingTraderFollowEmeraldBlock = false;
+ public boolean wanderingTraderCanBeLeashed = false;
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
+ wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
}
public boolean witchRidable = false;