mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 17:07:43 +01:00
more ridables stuff
This commit is contained in:
@@ -287,7 +287,7 @@ index 920f4c7671..7fec83387a 100644
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java
|
||||
index d6baddb9d3..a4b1255add 100644
|
||||
index d6baddb9d3..db15c65ce6 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityCow.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityCow.java
|
||||
@@ -11,9 +11,22 @@ public class EntityCow extends EntityAnimal {
|
||||
@@ -326,7 +326,7 @@ index d6baddb9d3..a4b1255add 100644
|
||||
|
||||
if (event.isCancelled()) {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return super.b(entityhuman, enumhand);
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -353,7 +353,7 @@ index d6baddb9d3..a4b1255add 100644
|
||||
EntityMushroomCow mooshroom = EntityTypes.MOOSHROOM.create(world);
|
||||
if (mooshroom == null) {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return super.b(entityhuman, enumhand);
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
}
|
||||
if (itemstack.getItem() == Blocks.BROWN_MUSHROOM.getItem()) {
|
||||
mooshroom.setVariant(EntityMushroomCow.Type.BROWN);
|
||||
@@ -362,11 +362,11 @@ index d6baddb9d3..a4b1255add 100644
|
||||
}
|
||||
if (CraftEventFactory.callEntityTransformEvent(this, mooshroom, org.bukkit.event.entity.EntityTransformEvent.TransformReason.INFECTION).isCancelled()) {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return super.b(entityhuman, enumhand);
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
}
|
||||
if (!new com.destroystokyo.paper.event.entity.EntityTransformedEvent(this.getBukkitEntity(), mooshroom.getBukkitEntity(), com.destroystokyo.paper.event.entity.EntityTransformedEvent.TransformedReason.INFECTED).callEvent()) {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return super.b(entityhuman, enumhand);
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
}
|
||||
this.world.addEntity(mooshroom);
|
||||
this.die();
|
||||
@@ -652,7 +652,7 @@ index 0cbdccf4c5..19a21ff98d 100644
|
||||
+ protected void eW() { if (world.purpurConfig.zombieHorseCanSwim) goalSelector.a(0, new PathfinderGoalFloat(this)); } // Purpur
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
index 8def5fbfb4..a64de2248b 100644
|
||||
index 8def5fbfb4..fe6ff77935 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
@@ -67,8 +67,8 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
@@ -666,7 +666,22 @@ index 8def5fbfb4..a64de2248b 100644
|
||||
this.bp = new ControllerJump(this);
|
||||
this.c = this.r();
|
||||
this.navigation = this.b(world);
|
||||
@@ -532,6 +532,7 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
@@ -520,18 +520,22 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
return super.do_();
|
||||
}
|
||||
|
||||
+ public void setForwardSpeed(float speed) { this.q(speed); } // Purpur - OBFHELPER
|
||||
public void q(float f) {
|
||||
this.ba = f;
|
||||
}
|
||||
|
||||
+ public void setVerticalSpeed(float speed) { this.r(speed); } // Purpur - OBFHELPER
|
||||
public void r(float f) {
|
||||
this.aZ = f;
|
||||
}
|
||||
|
||||
+ public void setStrafeSpeed(float speed) { this.s(speed); } // Purpur - OBFHELPER
|
||||
public void s(float f) {
|
||||
this.aY = f;
|
||||
}
|
||||
|
||||
@@ -674,7 +689,7 @@ index 8def5fbfb4..a64de2248b 100644
|
||||
@Override
|
||||
public void n(float f) {
|
||||
super.n(f);
|
||||
@@ -1200,7 +1201,7 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
@@ -1200,7 +1204,7 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
protected void a(EntityHuman entityhuman, EntityInsentient entityinsentient) {}
|
||||
|
||||
protected EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) {
|
||||
@@ -683,7 +698,7 @@ index 8def5fbfb4..a64de2248b 100644
|
||||
}
|
||||
|
||||
public boolean ew() {
|
||||
@@ -1559,4 +1560,42 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
@@ -1559,4 +1563,42 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
this.world.getServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), UnleashReason.UNKNOWN)); // CraftBukkit
|
||||
this.unleash(true, false);
|
||||
}
|
||||
@@ -726,6 +741,57 @@ index 8def5fbfb4..a64de2248b 100644
|
||||
+ }
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java
|
||||
index ab0731c2a0..2da50ef495 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityIronGolem.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityIronGolem.java
|
||||
@@ -22,9 +22,22 @@ public class EntityIronGolem extends EntityGolem implements IEntityAngerable {
|
||||
this.G = 1.0F;
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return world.purpurConfig.ironGolemRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isRidableInWater() {
|
||||
+ return world.purpurConfig.ironGolemRidableInWater;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
@Override
|
||||
protected void initPathfinder() {
|
||||
if (world.purpurConfig.ironGolemCanSwim) this.goalSelector.a(0, new PathfinderGoalFloat(this)); // Purpur
|
||||
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
this.goalSelector.a(1, new PathfinderGoalMeleeAttack(this, 1.0D, true));
|
||||
this.goalSelector.a(2, new PathfinderGoalMoveTowardsTarget(this, 0.9D, 32.0F));
|
||||
this.goalSelector.a(2, new PathfinderGoalStrollVillage(this, 0.6D, false));
|
||||
@@ -32,6 +45,7 @@ public class EntityIronGolem extends EntityGolem implements IEntityAngerable {
|
||||
this.goalSelector.a(5, new PathfinderGoalOfferFlower(this));
|
||||
this.goalSelector.a(7, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F));
|
||||
this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this));
|
||||
+ this.targetSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
this.targetSelector.a(1, new PathfinderGoalDefendVillage(this));
|
||||
this.targetSelector.a(2, new PathfinderGoalHurtByTarget(this, new Class[0]));
|
||||
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, 10, true, false, this::b));
|
||||
@@ -201,13 +215,13 @@ public class EntityIronGolem extends EntityGolem implements IEntityAngerable {
|
||||
Item item = itemstack.getItem();
|
||||
|
||||
if (item != Items.IRON_INGOT) {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
} else {
|
||||
float f = this.getHealth();
|
||||
|
||||
this.heal(25.0F);
|
||||
if (this.getHealth() == f) {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
} else {
|
||||
float f1 = 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F;
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
index cb9fdfd114..22b13896d0 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
@@ -749,10 +815,10 @@ index cb9fdfd114..22b13896d0 100644
|
||||
|
||||
if (this.hasEffect(MobEffects.JUMP)) {
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
|
||||
index cf31920850..e8a87e6bed 100644
|
||||
index cf31920850..15efaffe24 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLlama.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
|
||||
@@ -18,6 +18,28 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
|
||||
@@ -18,7 +18,46 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
|
||||
|
||||
public EntityLlama(EntityTypes<? extends EntityLlama> entitytypes, World world) {
|
||||
super(entitytypes, world);
|
||||
@@ -778,9 +844,322 @@ index cf31920850..e8a87e6bed 100644
|
||||
+ }
|
||||
+ };
|
||||
+ // Purpur end
|
||||
+ }
|
||||
+
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return world.purpurConfig.llamaRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isRidableInWater() {
|
||||
+ return world.purpurConfig.llamaRidableInWater;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean hasSaddle() {
|
||||
+ return super.hasSaddle() || (isTamed() && getColor() != null);
|
||||
}
|
||||
+ // Purpur end
|
||||
|
||||
public void setStrength(int i) {
|
||||
this.datawatcher.set(EntityLlama.bE, Math.max(1, Math.min(5, i)));
|
||||
@@ -64,6 +103,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
|
||||
@Override
|
||||
protected void initPathfinder() {
|
||||
this.goalSelector.a(0, new PathfinderGoalFloat(this));
|
||||
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHorseHasRider(this)); // Purpur
|
||||
this.goalSelector.a(1, new PathfinderGoalTame(this, 1.2D));
|
||||
this.goalSelector.a(2, new PathfinderGoalLlamaFollow(this, 2.0999999046325684D));
|
||||
this.goalSelector.a(3, new PathfinderGoalArrowAttack(this, 1.25D, 40, 20.0F));
|
||||
@@ -73,6 +113,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
|
||||
this.goalSelector.a(6, new PathfinderGoalRandomStrollLand(this, 0.7D));
|
||||
this.goalSelector.a(7, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F));
|
||||
this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this));
|
||||
+ this.targetSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHorseHasRider(this)); // Purpur
|
||||
this.targetSelector.a(1, new EntityLlama.c(this));
|
||||
this.targetSelector.a(2, new EntityLlama.a(this));
|
||||
}
|
||||
@@ -310,7 +351,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
|
||||
}
|
||||
|
||||
@Nullable
|
||||
- public EnumColor fz() {
|
||||
+ public EnumColor fz() { return getColor(); } public EnumColor getColor() { // Purpur - OBFHELPER
|
||||
int i = (Integer) this.datawatcher.get(EntityLlama.bF);
|
||||
|
||||
return i == -1 ? null : EnumColor.fromColorIndex(i);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLlamaTrader.java b/src/main/java/net/minecraft/server/EntityLlamaTrader.java
|
||||
index 11008c4323..de8ce2fd39 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLlamaTrader.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLlamaTrader.java
|
||||
@@ -11,6 +11,23 @@ public class EntityLlamaTrader extends EntityLlama {
|
||||
super(entitytypes, world);
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return world.purpurConfig.llamaTraderRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isRidableInWater() {
|
||||
+ return world.purpurConfig.llamaTraderRidableInWater;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean hasSaddle() {
|
||||
+ return super.hasSaddle() || isTamed();
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
@Override
|
||||
protected EntityLlama fA() {
|
||||
return (EntityLlama) EntityTypes.TRADER_LLAMA.a(this.world);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java
|
||||
index ecbdc65ec5..a36e7d182f 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityMushroomCow.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java
|
||||
@@ -20,6 +20,18 @@ public class EntityMushroomCow extends EntityCow implements IShearable {
|
||||
super(entitytypes, world);
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return world.purpurConfig.mooshroomRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isRidableInWater() {
|
||||
+ return world.purpurConfig.mooshroomRidableInWater;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
@Override
|
||||
public float a(BlockPosition blockposition, IWorldReader iworldreader) {
|
||||
return iworldreader.getType(blockposition.down()).a(Blocks.MYCELIUM) ? 10.0F : iworldreader.y(blockposition) - 0.5F;
|
||||
@@ -81,7 +93,7 @@ public class EntityMushroomCow extends EntityCow implements IShearable {
|
||||
} else if (itemstack.getItem() == Items.SHEARS && this.canShear()) {
|
||||
// CraftBukkit start
|
||||
if (!CraftEventFactory.handlePlayerShearEntityEvent(entityhuman, this, itemstack, enumhand)) {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
}
|
||||
// CraftBukkit end
|
||||
this.shear(SoundCategory.PLAYERS);
|
||||
@@ -101,7 +113,7 @@ public class EntityMushroomCow extends EntityCow implements IShearable {
|
||||
Optional<Pair<MobEffectList, Integer>> optional = this.l(itemstack);
|
||||
|
||||
if (!optional.isPresent()) {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
}
|
||||
|
||||
Pair<MobEffectList, Integer> pair = (Pair) optional.get();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java
|
||||
index 9c1f019f91..366acbfd91 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityOcelot.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityOcelot.java
|
||||
@@ -16,6 +16,18 @@ public class EntityOcelot extends EntityAnimal {
|
||||
this.eM();
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return world.purpurConfig.ocelotRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isRidableInWater() {
|
||||
+ return world.purpurConfig.ocelotRidableInWater;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
private boolean isTrusting() {
|
||||
return (Boolean) this.datawatcher.get(EntityOcelot.bw);
|
||||
}
|
||||
@@ -47,12 +59,14 @@ public class EntityOcelot extends EntityAnimal {
|
||||
protected void initPathfinder() {
|
||||
this.by = new EntityOcelot.b(this, 0.6D, EntityOcelot.bv, true);
|
||||
this.goalSelector.a(1, new PathfinderGoalFloat(this));
|
||||
+ this.goalSelector.a(1, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
this.goalSelector.a(3, this.by);
|
||||
this.goalSelector.a(7, new PathfinderGoalLeapAtTarget(this, 0.3F));
|
||||
this.goalSelector.a(8, new PathfinderGoalOcelotAttack(this));
|
||||
this.goalSelector.a(9, new PathfinderGoalBreed(this, 0.8D));
|
||||
this.goalSelector.a(10, new PathfinderGoalRandomStrollLand(this, 0.8D, 1.0000001E-5F));
|
||||
this.goalSelector.a(11, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 10.0F));
|
||||
+ this.targetSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget<>(this, EntityChicken.class, false));
|
||||
this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget<>(this, EntityTurtle.class, 10, false, false, EntityTurtle.bv));
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPanda.java b/src/main/java/net/minecraft/server/EntityPanda.java
|
||||
index 42df0d74ee..271e82ce17 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPanda.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPanda.java
|
||||
@@ -46,6 +46,27 @@ public class EntityPanda extends EntityAnimal {
|
||||
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return world.purpurConfig.pandaRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isRidableInWater() {
|
||||
+ return world.purpurConfig.pandaRidableInWater;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onMount(EntityHuman entityhuman) {
|
||||
+ super.onMount(entityhuman);
|
||||
+ this.setForwardSpeed(0.0F);
|
||||
+ this.setScared(false);
|
||||
+ this.setEating(false);
|
||||
+ this.setLayingOnBack(false);
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
@Override
|
||||
public boolean e(ItemStack itemstack) {
|
||||
EnumItemSlot enumitemslot = EntityInsentient.j(itemstack);
|
||||
@@ -69,6 +90,7 @@ public class EntityPanda extends EntityAnimal {
|
||||
return this.w(8);
|
||||
}
|
||||
|
||||
+ public void setScared(boolean scared) { this.t(scared); } // Purpur - OBFHELPER
|
||||
public void t(boolean flag) {
|
||||
this.d(8, flag);
|
||||
}
|
||||
@@ -77,6 +99,7 @@ public class EntityPanda extends EntityAnimal {
|
||||
return this.w(16);
|
||||
}
|
||||
|
||||
+ public void setLayingOnBack(boolean layingOnBack) { this.u(layingOnBack); } // Purpur - OBFHELPER
|
||||
public void u(boolean flag) {
|
||||
this.d(16, flag);
|
||||
}
|
||||
@@ -85,6 +108,7 @@ public class EntityPanda extends EntityAnimal {
|
||||
return (Integer) this.datawatcher.get(EntityPanda.by) > 0;
|
||||
}
|
||||
|
||||
+ public void setEating(boolean eating) { this.v(eating); } // Purpur - OBFHELPER
|
||||
public void v(boolean flag) {
|
||||
this.datawatcher.set(EntityPanda.by, flag ? 1 : 0);
|
||||
}
|
||||
@@ -201,6 +225,7 @@ public class EntityPanda extends EntityAnimal {
|
||||
@Override
|
||||
protected void initPathfinder() {
|
||||
this.goalSelector.a(0, new PathfinderGoalFloat(this));
|
||||
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
this.goalSelector.a(2, new EntityPanda.i(this, 2.0D));
|
||||
this.goalSelector.a(2, new EntityPanda.d(this, 1.0D));
|
||||
this.goalSelector.a(3, new EntityPanda.b(this, 1.2000000476837158D, true));
|
||||
@@ -216,6 +241,7 @@ public class EntityPanda extends EntityAnimal {
|
||||
this.goalSelector.a(12, new EntityPanda.j(this));
|
||||
this.goalSelector.a(13, new PathfinderGoalFollowParent(this, 1.25D));
|
||||
this.goalSelector.a(14, new PathfinderGoalRandomStrollLand(this, 1.0D));
|
||||
+ this.targetSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
this.targetSelector.a(1, (new EntityPanda.e(this, new Class[0])).a(new Class[0]));
|
||||
}
|
||||
|
||||
@@ -537,7 +563,7 @@ public class EntityPanda extends EntityAnimal {
|
||||
ItemStack itemstack = entityhuman.b(enumhand);
|
||||
|
||||
if (this.fg()) {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
} else if (this.eO()) {
|
||||
this.u(false);
|
||||
return EnumInteractionResult.a(this.world.isClientSide);
|
||||
@@ -554,7 +580,7 @@ public class EntityPanda extends EntityAnimal {
|
||||
this.g(entityhuman);
|
||||
} else {
|
||||
if (this.world.isClientSide || this.eN() || this.isInWater()) {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
}
|
||||
|
||||
this.fu();
|
||||
@@ -571,7 +597,7 @@ public class EntityPanda extends EntityAnimal {
|
||||
|
||||
return EnumInteractionResult.SUCCESS;
|
||||
} else {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
}
|
||||
}
|
||||
|
||||
@@ -684,6 +710,7 @@ public class EntityPanda extends EntityAnimal {
|
||||
|
||||
public f(EntityPanda entitypanda) {
|
||||
this.a = entitypanda;
|
||||
+ this.a(EnumSet.of(PathfinderGoal.Type.MOVE)); // Purpur - lay on back
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -847,6 +874,7 @@ public class EntityPanda extends EntityAnimal {
|
||||
|
||||
public l(EntityPanda entitypanda) {
|
||||
this.a = entitypanda;
|
||||
+ this.a(EnumSet.of(PathfinderGoal.Type.MOVE)); // Purpur - sneeze
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -976,7 +1004,7 @@ public class EntityPanda extends EntityAnimal {
|
||||
}
|
||||
}
|
||||
|
||||
- static class h extends ControllerMove {
|
||||
+ static class h extends net.pl3x.purpur.controller.ControllerMoveWASD { // Purpur
|
||||
|
||||
private final EntityPanda i;
|
||||
|
||||
@@ -986,9 +1014,9 @@ public class EntityPanda extends EntityAnimal {
|
||||
}
|
||||
|
||||
@Override
|
||||
- public void a() {
|
||||
+ public void tick() { // Purpur
|
||||
if (this.i.fi()) {
|
||||
- super.a();
|
||||
+ super.tick(); // Purpur
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java
|
||||
index cf2df391a9..9bd4cdf138 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPig.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPig.java
|
||||
@@ -19,9 +19,22 @@ public class EntityPig extends EntityAnimal implements ISteerable, ISaddleable {
|
||||
this.saddleStorage = new SaddleStorage(this.datawatcher, EntityPig.bw, EntityPig.bv);
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return world.purpurConfig.pigRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isRidableInWater() {
|
||||
+ return world.purpurConfig.pigRidableInWater;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
@Override
|
||||
protected void initPathfinder() {
|
||||
this.goalSelector.a(0, new PathfinderGoalFloat(this));
|
||||
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.25D));
|
||||
this.goalSelector.a(3, new PathfinderGoalBreed(this, 1.0D));
|
||||
this.goalSelector.a(4, new PathfinderGoalTempt(this, 1.2D, RecipeItemStack.a(Items.CARROT_ON_A_STICK), false));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java
|
||||
index 1be0f943b0..8a8e745846 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityRabbit.java
|
||||
@@ -794,6 +1173,43 @@ index 1be0f943b0..8a8e745846 100644
|
||||
super.jump();
|
||||
double d0 = this.moveController.c();
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java
|
||||
index a5532e49e7..adfed0997f 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySheep.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySheep.java
|
||||
@@ -17,7 +17,7 @@ import org.bukkit.inventory.InventoryView;
|
||||
public class EntitySheep extends EntityAnimal implements IShearable {
|
||||
|
||||
private static final DataWatcherObject<Byte> bv = DataWatcher.a(EntitySheep.class, DataWatcherRegistry.a);
|
||||
- private static final Map<EnumColor, IMaterial> bw = (Map) SystemUtils.a(Maps.newEnumMap(EnumColor.class), (enummap) -> { // CraftBukkit - decompile error
|
||||
+ private static final Map<EnumColor, IMaterial> bw = SystemUtils.a(Maps.newEnumMap(EnumColor.class), (enummap) -> { // CraftBukkit - decompile error // Purpur - decompile error
|
||||
enummap.put(EnumColor.WHITE, Blocks.WHITE_WOOL);
|
||||
enummap.put(EnumColor.ORANGE, Blocks.ORANGE_WOOL);
|
||||
enummap.put(EnumColor.MAGENTA, Blocks.MAGENTA_WOOL);
|
||||
@@ -56,10 +56,23 @@ public class EntitySheep extends EntityAnimal implements IShearable {
|
||||
super(entitytypes, world);
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return world.purpurConfig.sheepRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isRidableInWater() {
|
||||
+ return world.purpurConfig.sheepRidableInWater;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
@Override
|
||||
protected void initPathfinder() {
|
||||
this.bz = new PathfinderGoalEatTile(this);
|
||||
this.goalSelector.a(0, new PathfinderGoalFloat(this));
|
||||
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.25D));
|
||||
this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D));
|
||||
this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.1D, RecipeItemStack.a(Items.WHEAT), false));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
|
||||
index a4642cc739..ecf2059b00 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySlime.java
|
||||
@@ -807,6 +1223,105 @@ index a4642cc739..ecf2059b00 100644
|
||||
Vec3D vec3d = this.getMot();
|
||||
|
||||
this.setMot(vec3d.x, (double) this.dI(), vec3d.z);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
|
||||
index dfe615814d..a9c44967b2 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
|
||||
@@ -13,13 +13,27 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
public EntitySnowman(EntityTypes<? extends EntitySnowman> entitytypes, World world) {
|
||||
super(entitytypes, world);
|
||||
}
|
||||
+
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return world.purpurConfig.snowGolemRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isRidableInWater() {
|
||||
+ return world.purpurConfig.snowGolemRidableInWater;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
|
||||
@Override
|
||||
protected void initPathfinder() {
|
||||
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
this.goalSelector.a(1, new PathfinderGoalArrowAttack(this, 1.25D, 20, 10.0F));
|
||||
this.goalSelector.a(2, new PathfinderGoalRandomStrollLand(this, 1.0D, 1.0000001E-5F));
|
||||
this.goalSelector.a(3, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F));
|
||||
this.goalSelector.a(4, new PathfinderGoalRandomLookaround(this));
|
||||
+ this.targetSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget<>(this, EntityInsentient.class, 10, true, false, (entityliving) -> {
|
||||
return entityliving instanceof IMonster;
|
||||
}));
|
||||
@@ -71,6 +85,8 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (hasRider() && !world.purpurConfig.snowGolemLeaveTrailWhenRidden) return; // Purpur - don't leave snow trail when being ridden
|
||||
+
|
||||
IBlockData iblockdata = Blocks.SNOW.getBlockData();
|
||||
|
||||
for (int l = 0; l < 4; ++l) {
|
||||
@@ -113,7 +129,7 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
if (itemstack.getItem() == Items.SHEARS && this.canShear()) {
|
||||
// CraftBukkit start
|
||||
if (!CraftEventFactory.handlePlayerShearEntityEvent(entityhuman, this, itemstack, enumhand)) {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
}
|
||||
// CraftBukkit end
|
||||
this.shear(SoundCategory.PLAYERS);
|
||||
@@ -141,7 +157,7 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
return EnumInteractionResult.SUCCESS;
|
||||
// Purpur end
|
||||
} else {
|
||||
- return EnumInteractionResult.PASS;
|
||||
+ return tryRide(entityhuman, enumhand); // Purpur
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityStrider.java b/src/main/java/net/minecraft/server/EntityStrider.java
|
||||
index c123e9fe97..4cb4f60fd4 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityStrider.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityStrider.java
|
||||
@@ -28,6 +28,18 @@ public class EntityStrider extends EntityAnimal implements ISteerable, ISaddleab
|
||||
this.a(PathType.DAMAGE_FIRE, 0.0F);
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return world.purpurConfig.striderRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isRidableInWater() {
|
||||
+ return world.purpurConfig.striderRidableInWater;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
public static boolean c(EntityTypes<EntityStrider> entitytypes, GeneratorAccess generatoraccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) {
|
||||
BlockPosition.MutableBlockPosition blockposition_mutableblockposition = blockposition.i();
|
||||
|
||||
@@ -89,6 +101,7 @@ public class EntityStrider extends EntityAnimal implements ISteerable, ISaddleab
|
||||
@Override
|
||||
protected void initPathfinder() {
|
||||
this.bC = new PathfinderGoalPanic(this, 1.65D);
|
||||
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
this.goalSelector.a(1, this.bC);
|
||||
this.goalSelector.a(3, new PathfinderGoalBreed(this, 1.0D));
|
||||
this.bB = new PathfinderGoalTempt(this, 1.4D, false, EntityStrider.bw);
|
||||
@@ -380,7 +393,7 @@ public class EntityStrider extends EntityAnimal implements ISteerable, ISaddleab
|
||||
if (!enuminteractionresult.a()) {
|
||||
ItemStack itemstack = entityhuman.b(enumhand);
|
||||
|
||||
- return itemstack.getItem() == Items.SADDLE ? itemstack.a(entityhuman, (EntityLiving) this, enumhand) : EnumInteractionResult.PASS;
|
||||
+ return itemstack.getItem() == Items.SADDLE ? itemstack.a(entityhuman, (EntityLiving) this, enumhand) : tryRide(entityhuman, enumhand); // Purpur
|
||||
} else {
|
||||
if (flag && !this.isSilent()) {
|
||||
this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_STRIDER_EAT, this.getSoundCategory(), 1.0F, 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityTameableAnimal.java b/src/main/java/net/minecraft/server/EntityTameableAnimal.java
|
||||
index 9b0d937f06..0b0cca4e35 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityTameableAnimal.java
|
||||
@@ -819,6 +1334,59 @@ index 9b0d937f06..0b0cca4e35 100644
|
||||
public boolean j(EntityLiving entityliving) {
|
||||
return entityliving == this.getOwner();
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
index 86de40d15b..903940feb6 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
@@ -75,8 +75,19 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
||||
}
|
||||
|
||||
// Purpur start
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return world.purpurConfig.villagerRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isRidableInWater() {
|
||||
+ return world.purpurConfig.villagerRidableInWater;
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void initPathfinder() {
|
||||
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
if (world.purpurConfig.villagerFollowEmeraldBlock) this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.0D, false, TEMPT_ITEMS));
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityVillagerTrader.java b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
|
||||
index 9985afb124..2f59c1c91a 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityVillagerTrader.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
|
||||
@@ -23,6 +23,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
|
||||
@Override
|
||||
protected void initPathfinder() {
|
||||
this.goalSelector.a(0, new PathfinderGoalFloat(this));
|
||||
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur
|
||||
this.goalSelector.a(0, new PathfinderGoalUseItem<>(this, PotionUtil.a(new ItemStack(Items.POTION), Potions.INVISIBILITY), SoundEffects.ENTITY_WANDERING_TRADER_DISAPPEARED, (entityvillagertrader) -> {
|
||||
return !this.world.isDay() && !entityvillagertrader.isInvisible();
|
||||
}));
|
||||
@@ -48,6 +49,16 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
|
||||
}
|
||||
|
||||
// Purpur - start
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return world.purpurConfig.villagerTraderRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isRidableInWater() {
|
||||
+ return world.purpurConfig.villagerTraderRidableInWater;
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
public boolean a(EntityHuman entityhuman) {
|
||||
return world.purpurConfig.villagerTraderCanBeLeashed && !this.isLeashed();
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||
index 494d36085e..9cde3693c5 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||
@@ -837,7 +1405,7 @@ index 494d36085e..9cde3693c5 100644
|
||||
|
||||
public static String serverModName = "Purpur";
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 2f5bc77e03..9d6894a24c 100644
|
||||
index 2f5bc77e03..94fa8ea180 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -266,22 +266,34 @@ public class PurpurWorldConfig {
|
||||
@@ -912,22 +1480,86 @@ index 2f5bc77e03..9d6894a24c 100644
|
||||
public boolean huskJockeyOnlyBaby = true;
|
||||
public double huskJockeyChance = 0.05D;
|
||||
public boolean huskJockeyTryExistingChickens = true;
|
||||
@@ -360,6 +386,11 @@ public class PurpurWorldConfig {
|
||||
@@ -355,11 +381,55 @@ public class PurpurWorldConfig {
|
||||
illusionerFollowRange = getDouble("mobs.illusioner.follow-range", illusionerFollowRange);
|
||||
}
|
||||
|
||||
+ public boolean ironGolemRidable = false;
|
||||
+ public boolean ironGolemRidableInWater = false;
|
||||
public boolean ironGolemCanSwim = false;
|
||||
private void ironGolemSettings() {
|
||||
+ ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
|
||||
+ ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
|
||||
ironGolemCanSwim = getBoolean("mobs.iron_golem.can-swim", ironGolemCanSwim);
|
||||
}
|
||||
|
||||
+ public boolean llamaRidable = false;
|
||||
+ public boolean llamaRidableInWater = false;
|
||||
+ private void llamaSettings() {
|
||||
+ llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
|
||||
+ llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
|
||||
+ }
|
||||
+
|
||||
+ public boolean llamaTraderRidable = false;
|
||||
+ public boolean llamaTraderRidableInWater = false;
|
||||
+ private void llamaTraderSettings() {
|
||||
+ llamaTraderRidable = getBoolean("mobs.trader_llama.ridable", llamaTraderRidable);
|
||||
+ llamaTraderRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", llamaTraderRidableInWater);
|
||||
+ }
|
||||
+
|
||||
+ public boolean mooshroomRidable = false;
|
||||
+ public boolean mooshroomRidableInWater = false;
|
||||
+ private void mooshroomSettings() {
|
||||
+ mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
|
||||
+ mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
|
||||
+ }
|
||||
+
|
||||
+ public boolean muleRidableInWater = false;
|
||||
+ private void muleSettings() {
|
||||
+ muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
|
||||
+ }
|
||||
+
|
||||
+ public boolean ocelotRidable = false;
|
||||
+ public boolean ocelotRidableInWater = false;
|
||||
+ private void ocelotSettings() {
|
||||
+ ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
|
||||
+ ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
|
||||
+ }
|
||||
+
|
||||
+ public boolean pandaRidable = false;
|
||||
+ public boolean pandaRidableInWater = false;
|
||||
+ private void pandaSettings() {
|
||||
+ pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
|
||||
+ pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
|
||||
+ }
|
||||
+
|
||||
public double phantomAttackedByCrystalRadius = 0.0D;
|
||||
public float phantomAttackedByCrystalDamage = 1.0F;
|
||||
public double phantomOrbitCrystalRadius = 0.0D;
|
||||
@@ -413,6 +444,13 @@ public class PurpurWorldConfig {
|
||||
@@ -393,8 +463,12 @@ public class PurpurWorldConfig {
|
||||
phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt);
|
||||
}
|
||||
|
||||
+ public boolean pigRidable = false;
|
||||
+ public boolean pigRidableInWater = false;
|
||||
public boolean pigGiveSaddleBack = false;
|
||||
private void pigSettings() {
|
||||
+ pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
|
||||
+ pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
|
||||
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
|
||||
}
|
||||
|
||||
@@ -413,13 +487,42 @@ public class PurpurWorldConfig {
|
||||
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
|
||||
}
|
||||
|
||||
+ public boolean sheepRidable = false;
|
||||
+ public boolean sheepRidableInWater = false;
|
||||
+ private void sheepSettings() {
|
||||
+ sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
|
||||
+ sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
|
||||
+ }
|
||||
+
|
||||
+ public boolean skeletonHorseCanSwim = false;
|
||||
+ public boolean skeletonHorseRidableInWater = true;
|
||||
+ private void skeletonHorseSettings() {
|
||||
@@ -935,10 +1567,55 @@ index 2f5bc77e03..9d6894a24c 100644
|
||||
+ skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater);
|
||||
+ }
|
||||
+
|
||||
+ public boolean snowGolemRidable = false;
|
||||
+ public boolean snowGolemRidableInWater = false;
|
||||
+ public boolean snowGolemLeaveTrailWhenRidden = false;
|
||||
public boolean snowGolemDropsPumpkin = false;
|
||||
public boolean snowGolemPutPumpkinBack = false;
|
||||
private void snowGolemSettings() {
|
||||
@@ -460,8 +498,12 @@ public class PurpurWorldConfig {
|
||||
+ snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
|
||||
+ snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
|
||||
+ snowGolemLeaveTrailWhenRidden = getBoolean("mobs.snow_golem.leave-trail-when-ridden", snowGolemLeaveTrailWhenRidden);
|
||||
snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin);
|
||||
snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack);
|
||||
}
|
||||
|
||||
+ public boolean striderRidable = false;
|
||||
+ public boolean striderRidableInWater = false;
|
||||
+ private void striderSettings() {
|
||||
+ striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
|
||||
+ striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
|
||||
+ }
|
||||
+
|
||||
+ public boolean villagerRidable = false;
|
||||
+ public boolean villagerRidableInWater = false;
|
||||
public int villagerBrainTicks = 1;
|
||||
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
|
||||
public boolean villagerCanBeLeashed = false;
|
||||
@@ -428,6 +531,8 @@ public class PurpurWorldConfig {
|
||||
public int villagerSpawnIronGolemRadius = 0;
|
||||
public int villagerSpawnIronGolemLimit = 0;
|
||||
private void villagerSettings() {
|
||||
+ villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
|
||||
+ villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
|
||||
villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks);
|
||||
villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
|
||||
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
|
||||
@@ -437,9 +542,13 @@ public class PurpurWorldConfig {
|
||||
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);
|
||||
}
|
||||
|
||||
+ public boolean villagerTraderRidable = false;
|
||||
+ public boolean villagerTraderRidableInWater = false;
|
||||
public boolean villagerTraderCanBeLeashed = false;
|
||||
public boolean villagerTraderFollowEmeraldBlock = false;
|
||||
private void villagerTraderSettings() {
|
||||
+ villagerTraderRidable = getBoolean("mobs.wandering_trader.ridable", villagerTraderRidable);
|
||||
+ villagerTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", villagerTraderRidableInWater);
|
||||
villagerTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", villagerTraderCanBeLeashed);
|
||||
villagerTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", villagerTraderFollowEmeraldBlock);
|
||||
}
|
||||
@@ -460,8 +569,12 @@ public class PurpurWorldConfig {
|
||||
zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user