mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
Allow leashing villagers
This commit is contained in:
committed by
granny
parent
6075c3496c
commit
b12c969bc5
@@ -1,88 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
||||||
Date: Thu, 3 Oct 2019 18:08:03 -0500
|
|
||||||
Subject: [PATCH] Allow leashing villagers
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
|
||||||
index fe5e8009d16fe9292312e37538b02b92b9fea9ed..7b017806dde98a33b64223f098cc63c286dac02b 100644
|
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
|
||||||
@@ -3115,6 +3115,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
|
||||||
if (this.isAlive() && this instanceof Leashable leashable) {
|
|
||||||
if (leashable.getLeashHolder() == player) {
|
|
||||||
if (!this.level().isClientSide()) {
|
|
||||||
+ if (hand == InteractionHand.OFF_HAND && (level().purpurConfig.villagerCanBeLeashed || level().purpurConfig.wanderingTraderCanBeLeashed) && this instanceof net.minecraft.world.entity.npc.AbstractVillager) return InteractionResult.CONSUME; // Purpur - Allow leashing villagers
|
|
||||||
// CraftBukkit start - fire PlayerUnleashEntityEvent
|
|
||||||
// Paper start - Expand EntityUnleashEvent
|
|
||||||
org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.hasInfiniteMaterials());
|
|
||||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
|
||||||
index 129833b7ecd644e4180fadca15015276961725c6..f89c82db6333dc64ac57e225f5522943eb959f46 100644
|
|
||||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
|
||||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
|
||||||
@@ -187,6 +187,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
|
||||||
this.getAttribute(Attributes.TEMPT_RANGE).setBaseValue(this.level().purpurConfig.villagerTemptRange); // Purpur - Villagers follow emerald blocks
|
|
||||||
}
|
|
||||||
// Purpur end - Configurable entity base attributes
|
|
||||||
+ // Purpur start - Allow leashing villagers
|
|
||||||
+ @Override
|
|
||||||
+ public boolean canBeLeashed() {
|
|
||||||
+ return level().purpurConfig.villagerCanBeLeashed;
|
|
||||||
+ }
|
|
||||||
+ // Purpur end - Allow leashing villagers
|
|
||||||
@Override
|
|
||||||
public Brain<Villager> getBrain() {
|
|
||||||
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
|
|
||||||
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
|
|
||||||
index c307aa1153d6a17ee8624453fc9303ac5749b6ef..0066e413d1fa92ecd5573c00195aa2f1412e665e 100644
|
|
||||||
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
|
|
||||||
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
|
|
||||||
@@ -101,6 +101,12 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
|
||||||
return Mob.createMobAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.TEMPT_RANGE, 10.0D);
|
|
||||||
}
|
|
||||||
// Purpur end - Villagers follow emerald blocks
|
|
||||||
+ // Purpur start - Allow leashing villagers
|
|
||||||
+ @Override
|
|
||||||
+ public boolean canBeLeashed() {
|
|
||||||
+ return level().purpurConfig.wanderingTraderCanBeLeashed;
|
|
||||||
+ }
|
|
||||||
+ // Purpur end - Allow leashing villagers
|
|
||||||
@Override
|
|
||||||
protected void registerGoals() {
|
|
||||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
index b81790ec5a7e4b73fbef52229844506b072dfa0d..1b96a84a1c81c075aa5f7308b89d396a4578be33 100644
|
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
@@ -1590,6 +1590,7 @@ public class PurpurWorldConfig {
|
|
||||||
public double villagerScale = 1.0D;
|
|
||||||
public boolean villagerFollowEmeraldBlock = false;
|
|
||||||
public double villagerTemptRange = 10.0D;
|
|
||||||
+ public boolean villagerCanBeLeashed = false;
|
|
||||||
private void villagerSettings() {
|
|
||||||
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
|
|
||||||
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
|
|
||||||
@@ -1603,6 +1604,7 @@ public class PurpurWorldConfig {
|
|
||||||
villagerScale = Mth.clamp(getDouble("mobs.villager.attributes.scale", villagerScale), 0.0625D, 16.0D);
|
|
||||||
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
|
|
||||||
villagerTemptRange = getDouble("mobs.villager.attributes.tempt_range", villagerTemptRange);
|
|
||||||
+ villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean vindicatorRidable = false;
|
|
||||||
@@ -1630,6 +1632,7 @@ public class PurpurWorldConfig {
|
|
||||||
public double wanderingTraderScale = 1.0D;
|
|
||||||
public boolean wanderingTraderFollowEmeraldBlock = false;
|
|
||||||
public double wanderingTraderTemptRange = 10.0D;
|
|
||||||
+ public boolean wanderingTraderCanBeLeashed = false;
|
|
||||||
private void wanderingTraderSettings() {
|
|
||||||
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
|
|
||||||
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
|
|
||||||
@@ -1643,6 +1646,7 @@ public class PurpurWorldConfig {
|
|
||||||
wanderingTraderScale = Mth.clamp(getDouble("mobs.wandering_trader.attributes.scale", wanderingTraderScale), 0.0625D, 16.0D);
|
|
||||||
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
|
|
||||||
wanderingTraderTemptRange = getDouble("mobs.wandering_trader.attributes.tempt_range", wanderingTraderTemptRange);
|
|
||||||
+ wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean wardenRidable = false;
|
|
||||||
@@ -75,10 +75,10 @@ index b083228bb3dc87794c6f177ad99832daf6925a39..bf863cfae63a50636c3fcc8fcf9761f1
|
|||||||
if ((target instanceof Bucketable && target instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
|
if ((target instanceof Bucketable && target instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
|
||||||
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
|
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index 4575ea1d17bf22790d742a9d73aa88ded665809d..7797dd4d87ea29585d93461126a0d781ed7daec5 100644
|
index eef36c568050b790908787a2d423db6f7b8cf313..10fd7f0274d1a6a954f01244f6e1e356bd190211 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -3129,6 +3129,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -3130,6 +3130,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
this.passengers = ImmutableList.copyOf(list);
|
this.passengers = ImmutableList.copyOf(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ index 4575ea1d17bf22790d742a9d73aa88ded665809d..7797dd4d87ea29585d93461126a0d781
|
|||||||
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
|
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3170,6 +3177,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -3171,6 +3178,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -107,7 +107,7 @@ index 4575ea1d17bf22790d742a9d73aa88ded665809d..7797dd4d87ea29585d93461126a0d781
|
|||||||
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
|
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
|
||||||
this.passengers = ImmutableList.of();
|
this.passengers = ImmutableList.of();
|
||||||
} else {
|
} else {
|
||||||
@@ -5084,4 +5099,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -5085,4 +5100,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
return ((ServerLevel) this.level).isPositionEntityTicking(this.blockPosition());
|
return ((ServerLevel) this.level).isPositionEntityTicking(this.blockPosition());
|
||||||
}
|
}
|
||||||
// Paper end - Expose entity id counter
|
// Paper end - Expose entity id counter
|
||||||
@@ -3134,7 +3134,7 @@ index 2e32567fca7a2a4cd87bc078a6eeb30e3ffabfce..4873a3d8dd9c160ecdbda594ee546c35
|
|||||||
public boolean doHurtTarget(ServerLevel level, Entity source) {
|
public boolean doHurtTarget(ServerLevel level, Entity source) {
|
||||||
if (super.doHurtTarget(level, source)) {
|
if (super.doHurtTarget(level, source)) {
|
||||||
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
|
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
|
||||||
index 2b3e1fcf4ec73f5be1804c77ffd74f27c2dc2eaf..cae4c797cf72920b9fd8e79d95d51367b5f7b87b 100644
|
index 177849ae6613b42fbc2ee515b8ae93f1c13c07a6..c4399f1ad3a6c1a35abb28bc76ac0b0508b98209 100644
|
||||||
--- a/net/minecraft/world/entity/monster/Creeper.java
|
--- a/net/minecraft/world/entity/monster/Creeper.java
|
||||||
+++ b/net/minecraft/world/entity/monster/Creeper.java
|
+++ b/net/minecraft/world/entity/monster/Creeper.java
|
||||||
@@ -50,21 +50,98 @@ public class Creeper extends Monster {
|
@@ -50,21 +50,98 @@ public class Creeper extends Monster {
|
||||||
@@ -3332,7 +3332,7 @@ index 4585b7c867685f8419c4d2b5b90af5946d337f90..c6eeaf7b460408acfdf89d988b47b08e
|
|||||||
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
|
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
|
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
index 4b5ffd278e0e9d47100e5452949e8d757bbfece4..7330a73c4ed3065a999a984864087f60d091bd3b 100644
|
index 22a078c9b94516c8a5170a1387d7b941b91c3f1d..1f1e86dcdc6ded664a4562c0a3de45162c4fd6ac 100644
|
||||||
--- a/net/minecraft/world/entity/monster/EnderMan.java
|
--- a/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
+++ b/net/minecraft/world/entity/monster/EnderMan.java
|
+++ b/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
@@ -90,9 +90,27 @@ public class EnderMan extends Monster implements NeutralMob {
|
@@ -90,9 +90,27 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||||
@@ -4928,12 +4928,12 @@ index 9f476e587d7df797129e49738f101cccca7e10b7..f968e5c99bdb23b268bc34ea1ba5d54a
|
|||||||
&& this.level() == entity.level()
|
&& this.level() == entity.level()
|
||||||
&& EntitySelector.NO_CREATIVE_OR_SPECTATOR.test(entity)
|
&& 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
|
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||||
index 2b83262e4a13eae86df82913ce4f3121e3631a43..fbb12688470ac4dea129ee171c9fc001bdc8812b 100644
|
index 167493ab38bc7ea77335371c2adf9df86aedace5..975680c50e999fe6d4694f04d49baabf88bf8d8d 100644
|
||||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||||
@@ -193,6 +193,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -200,6 +200,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
this.setVillagerData(this.getVillagerData().setType(villagerType).setProfession(VillagerProfession.NONE));
|
|
||||||
}
|
}
|
||||||
|
// Purpur end - Allow leashing villagers
|
||||||
|
|
||||||
+ // Purpur start - Ridables
|
+ // Purpur start - Ridables
|
||||||
+ @Override
|
+ @Override
|
||||||
@@ -4960,7 +4960,7 @@ index 2b83262e4a13eae86df82913ce4f3121e3631a43..fbb12688470ac4dea129ee171c9fc001
|
|||||||
@Override
|
@Override
|
||||||
public Brain<Villager> getBrain() {
|
public Brain<Villager> getBrain() {
|
||||||
return (Brain<Villager>)super.getBrain();
|
return (Brain<Villager>)super.getBrain();
|
||||||
@@ -293,7 +315,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -300,7 +322,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
// Paper end - EAR 2
|
// Paper end - EAR 2
|
||||||
ProfilerFiller profilerFiller = Profiler.get();
|
ProfilerFiller profilerFiller = Profiler.get();
|
||||||
profilerFiller.push("villagerBrain");
|
profilerFiller.push("villagerBrain");
|
||||||
@@ -4969,7 +4969,7 @@ index 2b83262e4a13eae86df82913ce4f3121e3631a43..fbb12688470ac4dea129ee171c9fc001
|
|||||||
profilerFiller.pop();
|
profilerFiller.pop();
|
||||||
if (this.assignProfessionWhenSpawned) {
|
if (this.assignProfessionWhenSpawned) {
|
||||||
this.assignProfessionWhenSpawned = false;
|
this.assignProfessionWhenSpawned = false;
|
||||||
@@ -349,7 +371,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -356,7 +378,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
return super.mobInteract(player, hand);
|
return super.mobInteract(player, hand);
|
||||||
} else if (this.isBaby()) {
|
} else if (this.isBaby()) {
|
||||||
this.setUnhappy();
|
this.setUnhappy();
|
||||||
@@ -4978,7 +4978,7 @@ index 2b83262e4a13eae86df82913ce4f3121e3631a43..fbb12688470ac4dea129ee171c9fc001
|
|||||||
} else {
|
} else {
|
||||||
if (!this.level().isClientSide) {
|
if (!this.level().isClientSide) {
|
||||||
boolean isEmpty = this.getOffers().isEmpty();
|
boolean isEmpty = this.getOffers().isEmpty();
|
||||||
@@ -362,9 +384,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -369,9 +391,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isEmpty) {
|
if (isEmpty) {
|
||||||
@@ -4992,14 +4992,14 @@ index 2b83262e4a13eae86df82913ce4f3121e3631a43..fbb12688470ac4dea129ee171c9fc001
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
|
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
index 6655d06e2011e20e7346dfe57527795269094d8a..6c14537c8376bd392524aefde8dfe76b159c3655 100644
|
index 47c1ad2ef30d464abb3c804260f0fd7cde193ba5..c6b3894fe085c2b565651ab3ae2f1acbb6bacea4 100644
|
||||||
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
|
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
|
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
@@ -69,6 +69,23 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
@@ -76,6 +76,23 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||||
super(entityType, level);
|
|
||||||
}
|
}
|
||||||
|
// Purpur end - Allow leashing villagers
|
||||||
|
|
||||||
+ // Purpur - start
|
+ // Purpur - start - Ridables
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isRidable() {
|
+ public boolean isRidable() {
|
||||||
+ return level().purpurConfig.wanderingTraderRidable;
|
+ return level().purpurConfig.wanderingTraderRidable;
|
||||||
@@ -5019,7 +5019,7 @@ index 6655d06e2011e20e7346dfe57527795269094d8a..6c14537c8376bd392524aefde8dfe76b
|
|||||||
@Override
|
@Override
|
||||||
protected void registerGoals() {
|
protected void registerGoals() {
|
||||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||||
@@ -130,9 +147,9 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
@@ -137,9 +154,9 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||||
|
|
||||||
if (!this.level().isClientSide) {
|
if (!this.level().isClientSide) {
|
||||||
if (this.getOffers().isEmpty()) {
|
if (this.getOffers().isEmpty()) {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ index 666455fff2b391b637cf1c07091e88100c5e1308..a53d662e2c78b002320956b9c7e39ccb
|
|||||||
protected ParticleOptions getInkParticle() {
|
protected ParticleOptions getInkParticle() {
|
||||||
return ParticleTypes.GLOW_SQUID_INK;
|
return ParticleTypes.GLOW_SQUID_INK;
|
||||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||||
index 67c99e33642964a1756d48e029e00f2676f07fbb..0f866a6d75afbd2238e49e56a2a2fbc6edb0168c 100644
|
index b8f38aefd15fda2ff4326c0ea1a06af4189edc60..3a8285490998dc39d6f175b88ad8cb1369b3a7ea 100644
|
||||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -311,6 +311,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -311,6 +311,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
@@ -145,7 +145,7 @@ index 6a19086e272363701260801f3c6db9b5c91b8ef5..434e1fabf2e360a8f5f4eefed96e3883
|
|||||||
public ItemStack getBucketItemStack() {
|
public ItemStack getBucketItemStack() {
|
||||||
return new ItemStack(Items.COD_BUCKET);
|
return new ItemStack(Items.COD_BUCKET);
|
||||||
diff --git a/net/minecraft/world/entity/animal/Cow.java b/net/minecraft/world/entity/animal/Cow.java
|
diff --git a/net/minecraft/world/entity/animal/Cow.java b/net/minecraft/world/entity/animal/Cow.java
|
||||||
index b2bf4276952fa1c984bf0571b041be4141fbdf3a..ad59d1f1e505148b88c0d242a5d92f7c4d8f4ce8 100644
|
index 656babc0c8810a85eb9f78ced1f3ad9551fdc286..d2a4bfa5334f7361067e4adac36ba5a4a4fa6ad8 100644
|
||||||
--- a/net/minecraft/world/entity/animal/Cow.java
|
--- a/net/minecraft/world/entity/animal/Cow.java
|
||||||
+++ b/net/minecraft/world/entity/animal/Cow.java
|
+++ b/net/minecraft/world/entity/animal/Cow.java
|
||||||
@@ -55,6 +55,14 @@ public class Cow extends Animal {
|
@@ -55,6 +55,14 @@ public class Cow extends Animal {
|
||||||
@@ -221,7 +221,7 @@ index 654f5855e1b69f05205e6a132d79ac94b929eeb4..d195e8658fd5a4045c95ff1e921bfeeb
|
|||||||
protected void registerGoals() {
|
protected void registerGoals() {
|
||||||
if (level().purpurConfig.ironGolemCanSwim) this.goalSelector.addGoal(0, new net.minecraft.world.entity.ai.goal.FloatGoal(this)); // Purpur - Ridables
|
if (level().purpurConfig.ironGolemCanSwim) this.goalSelector.addGoal(0, new net.minecraft.world.entity.ai.goal.FloatGoal(this)); // Purpur - Ridables
|
||||||
diff --git a/net/minecraft/world/entity/animal/MushroomCow.java b/net/minecraft/world/entity/animal/MushroomCow.java
|
diff --git a/net/minecraft/world/entity/animal/MushroomCow.java b/net/minecraft/world/entity/animal/MushroomCow.java
|
||||||
index 696b0eb93f8c8fe30f4c2cabadc50de730f93c22..0afc7aefbeb22ead66d59b3fd67630af0bce2df1 100644
|
index 1292146341022483f78a9128ef9d7a88089274a0..990723c31aa1040a4e45b9857a18d86287ef91b4 100644
|
||||||
--- a/net/minecraft/world/entity/animal/MushroomCow.java
|
--- a/net/minecraft/world/entity/animal/MushroomCow.java
|
||||||
+++ b/net/minecraft/world/entity/animal/MushroomCow.java
|
+++ b/net/minecraft/world/entity/animal/MushroomCow.java
|
||||||
@@ -72,6 +72,13 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
|
@@ -72,6 +72,13 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
|
||||||
@@ -310,7 +310,7 @@ index 0cd22002a1af6075be4818a4b351ee716f228cb2..0d78ebe27928006f11e9b49380d6a759
|
|||||||
@Override
|
@Override
|
||||||
public SpawnGroupData finalizeSpawn(
|
public SpawnGroupData finalizeSpawn(
|
||||||
diff --git a/net/minecraft/world/entity/animal/Pig.java b/net/minecraft/world/entity/animal/Pig.java
|
diff --git a/net/minecraft/world/entity/animal/Pig.java b/net/minecraft/world/entity/animal/Pig.java
|
||||||
index 70c60499a440aa4ac8bbc14d5fa440d9c51e2d82..650d6a2eaa1c106f8618a36dbd780d15eecd6230 100644
|
index 55628e4299c2d85cabddcad38fc1e40a851d64aa..7df848bd9c4cf98fbd431a8cae16a2df86ec5e2b 100644
|
||||||
--- a/net/minecraft/world/entity/animal/Pig.java
|
--- a/net/minecraft/world/entity/animal/Pig.java
|
||||||
+++ b/net/minecraft/world/entity/animal/Pig.java
|
+++ b/net/minecraft/world/entity/animal/Pig.java
|
||||||
@@ -73,6 +73,14 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
|
@@ -73,6 +73,14 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
|
||||||
@@ -422,7 +422,7 @@ index c27bb9e8a4a5e8fdc8ae28dae820385966b8b44c..b66440f5cfbd714c6d2f5b7f66b4e755
|
|||||||
protected void registerGoals() {
|
protected void registerGoals() {
|
||||||
this.eatBlockGoal = new EatBlockGoal(this);
|
this.eatBlockGoal = new EatBlockGoal(this);
|
||||||
diff --git a/net/minecraft/world/entity/animal/SnowGolem.java b/net/minecraft/world/entity/animal/SnowGolem.java
|
diff --git a/net/minecraft/world/entity/animal/SnowGolem.java b/net/minecraft/world/entity/animal/SnowGolem.java
|
||||||
index 320035fd5e7120d58cb7d4432b8e85d92a243d8b..ee6911c35c0d73ead01000becc2ee68492cc92ca 100644
|
index 7bd5d82a11dda36389913925406a8a2c8e86abf6..d52082d991f6a2ce9d6909610785643d10b8cdbe 100644
|
||||||
--- a/net/minecraft/world/entity/animal/SnowGolem.java
|
--- a/net/minecraft/world/entity/animal/SnowGolem.java
|
||||||
+++ b/net/minecraft/world/entity/animal/SnowGolem.java
|
+++ b/net/minecraft/world/entity/animal/SnowGolem.java
|
||||||
@@ -66,6 +66,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
@@ -66,6 +66,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||||
@@ -876,7 +876,7 @@ index 151c2435810798708544f9cf20bcf77f5e384962..a5ff61a3697e2299c96288b6f8d7c6f2
|
|||||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||||
super.defineSynchedData(builder);
|
super.defineSynchedData(builder);
|
||||||
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||||
index e2b2a091a5aa7de47cea512ed1dbb80d8b3ca202..9a6fb5b63f412f013924033744f4c3faa96e519c 100644
|
index ca9cca5b1eb8549e99d7a594cb96945594678dd4..0099257b813745dd96a77933550369ec91b34b0f 100644
|
||||||
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||||
@@ -163,6 +163,13 @@ public class EnderDragon extends Mob implements Enemy {
|
@@ -163,6 +163,13 @@ public class EnderDragon extends Mob implements Enemy {
|
||||||
@@ -987,7 +987,7 @@ index 4873a3d8dd9c160ecdbda594ee546c35ec03a1e7..64eecd8d1acd318743800c1daa77cd97
|
|||||||
public boolean doHurtTarget(ServerLevel level, Entity source) {
|
public boolean doHurtTarget(ServerLevel level, Entity source) {
|
||||||
if (super.doHurtTarget(level, source)) {
|
if (super.doHurtTarget(level, source)) {
|
||||||
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
|
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
|
||||||
index cae4c797cf72920b9fd8e79d95d51367b5f7b87b..38240849c3d3509b0120fbb1736354577dede90c 100644
|
index c4399f1ad3a6c1a35abb28bc76ac0b0508b98209..6a49156b09c5518085d38cafde9b41a732b560b0 100644
|
||||||
--- a/net/minecraft/world/entity/monster/Creeper.java
|
--- a/net/minecraft/world/entity/monster/Creeper.java
|
||||||
+++ b/net/minecraft/world/entity/monster/Creeper.java
|
+++ b/net/minecraft/world/entity/monster/Creeper.java
|
||||||
@@ -130,6 +130,14 @@ public class Creeper extends Monster {
|
@@ -130,6 +130,14 @@ public class Creeper extends Monster {
|
||||||
@@ -1049,7 +1049,7 @@ index c6eeaf7b460408acfdf89d988b47b08eab7df4c5..148ae4bca77874545a2a05fb7f29f9ac
|
|||||||
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
|
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
|
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
index 7330a73c4ed3065a999a984864087f60d091bd3b..a9b116e41490829c7ae5e317784ecbb154309cab 100644
|
index 1f1e86dcdc6ded664a4562c0a3de45162c4fd6ac..d20ac3dcb2324a9df0f290cb118f3522c7999d70 100644
|
||||||
--- a/net/minecraft/world/entity/monster/EnderMan.java
|
--- a/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
+++ b/net/minecraft/world/entity/monster/EnderMan.java
|
+++ b/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
@@ -107,6 +107,14 @@ public class EnderMan extends Monster implements NeutralMob {
|
@@ -107,6 +107,14 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||||
@@ -1748,10 +1748,10 @@ index 97241682311797faa93927e0477a7646ce53b2c8..eb82252cd87797927e153974b9280b5e
|
|||||||
return Monster.createMonsterAttributes()
|
return Monster.createMonsterAttributes()
|
||||||
.add(Attributes.MAX_HEALTH, 50.0)
|
.add(Attributes.MAX_HEALTH, 50.0)
|
||||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||||
index fbb12688470ac4dea129ee171c9fc001bdc8812b..85a6a38fb954915c7bf6290a40b0ab48818d08c8 100644
|
index 975680c50e999fe6d4694f04d49baabf88bf8d8d..557140401074dec60cf862a29570b2f0a5de64a1 100644
|
||||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||||
@@ -215,6 +215,14 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -222,6 +222,14 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
}
|
}
|
||||||
// Purpur end - Ridables
|
// Purpur end - Ridables
|
||||||
|
|
||||||
@@ -1767,10 +1767,10 @@ index fbb12688470ac4dea129ee171c9fc001bdc8812b..85a6a38fb954915c7bf6290a40b0ab48
|
|||||||
public Brain<Villager> getBrain() {
|
public Brain<Villager> getBrain() {
|
||||||
return (Brain<Villager>)super.getBrain();
|
return (Brain<Villager>)super.getBrain();
|
||||||
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
|
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
index 6c14537c8376bd392524aefde8dfe76b159c3655..470f8052af13b24d7cf6cfde19557219e32f4324 100644
|
index c6b3894fe085c2b565651ab3ae2f1acbb6bacea4..31449094c6395857289dd56482e8b3902bac2b63 100644
|
||||||
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
|
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
|
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
@@ -86,6 +86,13 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
@@ -93,6 +93,13 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||||
}
|
}
|
||||||
// Purpur end - Ridables
|
// Purpur end - Ridables
|
||||||
|
|
||||||
|
|||||||
@@ -44,10 +44,10 @@ index a71d16d968bb90fd7aca6f01a3dd56df4f9a7ce6..b4e79cac5611942240ce85120f7bbee3
|
|||||||
@Override
|
@Override
|
||||||
public CraftMerchant getCraftMerchant() {
|
public CraftMerchant getCraftMerchant() {
|
||||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||||
index 85a6a38fb954915c7bf6290a40b0ab48818d08c8..0f4a8845250a0e59611006b8f3fe370c02c87542 100644
|
index 557140401074dec60cf862a29570b2f0a5de64a1..c30fc25536277b487030effafecebf43390934cf 100644
|
||||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||||
@@ -212,6 +212,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -219,6 +219,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
@Override
|
@Override
|
||||||
protected void registerGoals() {
|
protected void registerGoals() {
|
||||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
||||||
@@ -55,7 +55,7 @@ index 85a6a38fb954915c7bf6290a40b0ab48818d08c8..0f4a8845250a0e59611006b8f3fe370c
|
|||||||
}
|
}
|
||||||
// Purpur end - Ridables
|
// Purpur end - Ridables
|
||||||
|
|
||||||
@@ -220,6 +221,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -227,6 +228,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
public void initAttributes() {
|
public void initAttributes() {
|
||||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.villagerMaxHealth);
|
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.villagerMaxHealth);
|
||||||
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.villagerScale);
|
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.villagerScale);
|
||||||
@@ -63,7 +63,7 @@ index 85a6a38fb954915c7bf6290a40b0ab48818d08c8..0f4a8845250a0e59611006b8f3fe370c
|
|||||||
}
|
}
|
||||||
// Purpur end - Configurable entity base attributes
|
// Purpur end - Configurable entity base attributes
|
||||||
|
|
||||||
@@ -288,7 +290,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -295,7 +297,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AttributeSupplier.Builder createAttributes() {
|
public static AttributeSupplier.Builder createAttributes() {
|
||||||
@@ -73,10 +73,10 @@ index 85a6a38fb954915c7bf6290a40b0ab48818d08c8..0f4a8845250a0e59611006b8f3fe370c
|
|||||||
|
|
||||||
public boolean assignProfessionWhenSpawned() {
|
public boolean assignProfessionWhenSpawned() {
|
||||||
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
|
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
index 470f8052af13b24d7cf6cfde19557219e32f4324..8fb572cd5699021769a994312b5b31392314ab1e 100644
|
index 31449094c6395857289dd56482e8b3902bac2b63..cef51ce86dcbc5ec01bfcbcb487325b55779be52 100644
|
||||||
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
|
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
|
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
@@ -90,9 +90,16 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
@@ -97,9 +97,16 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||||
@Override
|
@Override
|
||||||
public void initAttributes() {
|
public void initAttributes() {
|
||||||
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.wanderingTraderMaxHealth);
|
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.wanderingTraderMaxHealth);
|
||||||
@@ -93,7 +93,7 @@ index 470f8052af13b24d7cf6cfde19557219e32f4324..8fb572cd5699021769a994312b5b3139
|
|||||||
@Override
|
@Override
|
||||||
protected void registerGoals() {
|
protected void registerGoals() {
|
||||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||||
@@ -127,6 +134,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
@@ -134,6 +141,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||||
this.goalSelector.addGoal(1, new PanicGoal(this, 0.5));
|
this.goalSelector.addGoal(1, new PanicGoal(this, 0.5));
|
||||||
this.goalSelector.addGoal(1, new LookAtTradingPlayerGoal(this));
|
this.goalSelector.addGoal(1, new LookAtTradingPlayerGoal(this));
|
||||||
this.goalSelector.addGoal(2, new WanderingTrader.WanderToPositionGoal(this, 2.0, 0.35));
|
this.goalSelector.addGoal(2, new WanderingTrader.WanderToPositionGoal(this, 2.0, 0.35));
|
||||||
|
|||||||
@@ -17,6 +17,14 @@
|
|||||||
public boolean noPhysics;
|
public boolean noPhysics;
|
||||||
private boolean wasOnFire;
|
private boolean wasOnFire;
|
||||||
public final RandomSource random = SHARED_RANDOM; // Paper - Share random for entities to make them more random
|
public final RandomSource random = SHARED_RANDOM; // Paper - Share random for entities to make them more random
|
||||||
|
@@ -2922,6 +_,7 @@
|
||||||
|
if (this.isAlive() && this instanceof Leashable leashable) {
|
||||||
|
if (leashable.getLeashHolder() == player) {
|
||||||
|
if (!this.level().isClientSide()) {
|
||||||
|
+ if (hand == InteractionHand.OFF_HAND && (level().purpurConfig.villagerCanBeLeashed || level().purpurConfig.wanderingTraderCanBeLeashed) && this instanceof net.minecraft.world.entity.npc.AbstractVillager) return InteractionResult.CONSUME; // Purpur - Allow leashing villagers
|
||||||
|
// CraftBukkit start - fire PlayerUnleashEntityEvent
|
||||||
|
// Paper start - Expand EntityUnleashEvent
|
||||||
|
org.bukkit.event.player.PlayerUnleashEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.hasInfiniteMaterials());
|
||||||
@@ -4885,7 +_,7 @@
|
@@ -4885,7 +_,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||||
|
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||||
|
@@ -193,6 +_,13 @@
|
||||||
|
this.setVillagerData(this.getVillagerData().setType(villagerType).setProfession(VillagerProfession.NONE));
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Purpur start - Allow leashing villagers
|
||||||
|
+ @Override
|
||||||
|
+ public boolean canBeLeashed() {
|
||||||
|
+ return level().purpurConfig.villagerCanBeLeashed;
|
||||||
|
+ }
|
||||||
|
+ // Purpur end - Allow leashing villagers
|
||||||
|
+
|
||||||
|
@Override
|
||||||
|
public Brain<Villager> getBrain() {
|
||||||
|
return (Brain<Villager>)super.getBrain();
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
|
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
|
@@ -69,6 +_,13 @@
|
||||||
|
super(entityType, level);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Purpur start - Allow leashing villagers
|
||||||
|
+ @Override
|
||||||
|
+ public boolean canBeLeashed() {
|
||||||
|
+ return level().purpurConfig.wanderingTraderCanBeLeashed;
|
||||||
|
+ }
|
||||||
|
+ // Purpur end - Allow leashing villagers
|
||||||
|
+
|
||||||
|
@Override
|
||||||
|
protected void registerGoals() {
|
||||||
|
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||||
@@ -1578,6 +1578,7 @@ public class PurpurWorldConfig {
|
|||||||
public double villagerScale = 1.0D;
|
public double villagerScale = 1.0D;
|
||||||
public boolean villagerFollowEmeraldBlock = false;
|
public boolean villagerFollowEmeraldBlock = false;
|
||||||
public double villagerTemptRange = 10.0D;
|
public double villagerTemptRange = 10.0D;
|
||||||
|
public boolean villagerCanBeLeashed = false;
|
||||||
private void villagerSettings() {
|
private void villagerSettings() {
|
||||||
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
|
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
|
||||||
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
|
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
|
||||||
@@ -1591,6 +1592,7 @@ public class PurpurWorldConfig {
|
|||||||
villagerScale = Mth.clamp(getDouble("mobs.villager.attributes.scale", villagerScale), 0.0625D, 16.0D);
|
villagerScale = Mth.clamp(getDouble("mobs.villager.attributes.scale", villagerScale), 0.0625D, 16.0D);
|
||||||
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
|
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
|
||||||
villagerTemptRange = getDouble("mobs.villager.attributes.tempt_range", villagerTemptRange);
|
villagerTemptRange = getDouble("mobs.villager.attributes.tempt_range", villagerTemptRange);
|
||||||
|
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean vindicatorRidable = false;
|
public boolean vindicatorRidable = false;
|
||||||
@@ -1620,6 +1622,7 @@ public class PurpurWorldConfig {
|
|||||||
public double wanderingTraderScale = 1.0D;
|
public double wanderingTraderScale = 1.0D;
|
||||||
public boolean wanderingTraderFollowEmeraldBlock = false;
|
public boolean wanderingTraderFollowEmeraldBlock = false;
|
||||||
public double wanderingTraderTemptRange = 10.0D;
|
public double wanderingTraderTemptRange = 10.0D;
|
||||||
|
public boolean wanderingTraderCanBeLeashed = false;
|
||||||
private void wanderingTraderSettings() {
|
private void wanderingTraderSettings() {
|
||||||
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
|
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
|
||||||
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
|
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
|
||||||
@@ -1633,6 +1636,7 @@ public class PurpurWorldConfig {
|
|||||||
wanderingTraderScale = Mth.clamp(getDouble("mobs.wandering_trader.attributes.scale", wanderingTraderScale), 0.0625D, 16.0D);
|
wanderingTraderScale = Mth.clamp(getDouble("mobs.wandering_trader.attributes.scale", wanderingTraderScale), 0.0625D, 16.0D);
|
||||||
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
|
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
|
||||||
wanderingTraderTemptRange = getDouble("mobs.wandering_trader.attributes.tempt_range", wanderingTraderTemptRange);
|
wanderingTraderTemptRange = getDouble("mobs.wandering_trader.attributes.tempt_range", wanderingTraderTemptRange);
|
||||||
|
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean wardenRidable = false;
|
public boolean wardenRidable = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user