[ci-skip] More attributes work

This commit is contained in:
BillyGalbreath
2020-12-23 09:47:27 -06:00
parent 19ec1c311f
commit 7ad2c5d503
24 changed files with 432 additions and 676 deletions

View File

@@ -4,18 +4,6 @@ Date: Sun, 12 May 2019 00:43:12 -0500
Subject: [PATCH] Giants AI settings
diff --git a/src/main/java/net/minecraft/server/AttributeMapBase.java b/src/main/java/net/minecraft/server/AttributeMapBase.java
index c57e23e16b79017fe6dc084d634226cfdac772b5..92aa104dc51efa833eac289198bb9ee7dbacd66b 100644
--- a/src/main/java/net/minecraft/server/AttributeMapBase.java
+++ b/src/main/java/net/minecraft/server/AttributeMapBase.java
@@ -41,6 +41,7 @@ public class AttributeMapBase {
}).collect(Collectors.toList());
}
+ @Nullable public AttributeModifiable getAttribute(AttributeBase attributebase) { return a(attributebase); } // Purpur - OBFHELPER
@Nullable
public AttributeModifiable a(AttributeBase attributebase) {
return (AttributeModifiable) this.b.computeIfAbsent(attributebase, (attributebase1) -> {
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index d93db1049ef9421f6b3edd0dc52a421c4d1b51c2..0502ba688d3d16f15fea1ddda1f7d0bcbe59d701 100644
--- a/src/main/java/net/minecraft/server/Entity.java
@@ -30,10 +18,10 @@ index d93db1049ef9421f6b3edd0dc52a421c4d1b51c2..0502ba688d3d16f15fea1ddda1f7d0bc
public float I;
protected final Random random;
diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java
index 9f4f56c47ecd4b35ebf33ca0bf9a040074ababf2..cf899bb6a5bd9d913ea90facdd5f3cc0dda1e9d2 100644
index 9f4f56c47ecd4b35ebf33ca0bf9a040074ababf2..565c938d879940d8e12fe320ea8524d2cf679c1f 100644
--- a/src/main/java/net/minecraft/server/EntityGiantZombie.java
+++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java
@@ -4,9 +4,69 @@ public class EntityGiantZombie extends EntityMonster {
@@ -4,9 +4,66 @@ public class EntityGiantZombie extends EntityMonster {
public EntityGiantZombie(EntityTypes<? extends EntityGiantZombie> entitytypes, World world) {
super(entitytypes, world);
@@ -65,13 +53,10 @@ index 9f4f56c47ecd4b35ebf33ca0bf9a040074ababf2..cf899bb6a5bd9d913ea90facdd5f3cc0
+ }
+
+ @Override
+ protected void initAttributes(World world) {
+ if (world != null) {
+ getAttributeMap().getAttribute(GenericAttributes.MAX_HEALTH).setValue(world.purpurConfig.giantMaxHealth);
+ getAttributeMap().getAttribute(GenericAttributes.MOVEMENT_SPEED).setValue(world.purpurConfig.giantMovementSpeed);
+ getAttributeMap().getAttribute(GenericAttributes.ATTACK_DAMAGE).setValue(world.purpurConfig.giantAttackDamage);
+ setHealth(getMaxHealth());
+ }
+ protected void initAttributes() {
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.giantMaxHealth);
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(this.world.purpurConfig.giantMovementSpeed);
+ this.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE).setValue(this.world.purpurConfig.giantAttackDamage);
+ }
+
+ @Override
@@ -104,7 +89,7 @@ index 9f4f56c47ecd4b35ebf33ca0bf9a040074ababf2..cf899bb6a5bd9d913ea90facdd5f3cc0
@Override
protected float b(EntityPose entitypose, EntitySize entitysize) {
return 10.440001F;
@@ -18,6 +78,6 @@ public class EntityGiantZombie extends EntityMonster {
@@ -18,6 +75,6 @@ public class EntityGiantZombie extends EntityMonster {
@Override
public float a(BlockPosition blockposition, IWorldReader iworldreader) {
@@ -113,7 +98,7 @@ index 9f4f56c47ecd4b35ebf33ca0bf9a040074ababf2..cf899bb6a5bd9d913ea90facdd5f3cc0
}
}
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 7b32a1fb79dcae355a8d95f3a8aa4284ec5d10db..b281ca841b2b7b51add3409318e2b92deb51eeda 100644
index 7b32a1fb79dcae355a8d95f3a8aa4284ec5d10db..fba53ad6792236f0282279283570ffbd6d666f19 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -948,6 +948,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -132,25 +117,28 @@ index 7b32a1fb79dcae355a8d95f3a8aa4284ec5d10db..b281ca841b2b7b51add3409318e2b92d
protected void b(DifficultyDamageScaler difficultydamagescaler) {
float f = difficultydamagescaler.d();
@@ -1096,10 +1098,12 @@ public abstract class EntityInsentient extends EntityLiving {
} else {
this.setLeftHanded(false);
}
-
+ initAttributes(world.getMinecraftWorld()); // Purpur
return groupdataentity;
}
+ protected void initAttributes(World world) {} // Purpur
+
public boolean er() {
return false;
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 4bbfb21d13c7e2f3ffcaaa31bd9ceee3755aa7cc..9af491260a586d322796f8419d6aa1fffae10140 100644
index 4bbfb21d13c7e2f3ffcaaa31bd9ceee3755aa7cc..1fa5edd4dfbbe5cc68856a32b01a0c8ea83e3f6f 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2171,7 +2171,7 @@ public abstract class EntityLiving extends Entity {
@@ -165,6 +165,7 @@ public abstract class EntityLiving extends Entity {
this.activeItem = ItemStack.b;
this.by = Optional.empty();
this.attributeMap = new AttributeMapBase(AttributeDefaults.a(entitytypes));
+ this.initAttributes(); // Purpur
this.craftAttributes = new CraftAttributeMap(attributeMap); // CraftBukkit
// CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor
this.datawatcher.set(EntityLiving.HEALTH, (float) this.getAttributeInstance(GenericAttributes.MAX_HEALTH).getValue());
@@ -180,6 +181,8 @@ public abstract class EntityLiving extends Entity {
this.bg = this.a(new Dynamic(dynamicopsnbt, dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), dynamicopsnbt.emptyMap()))));
}
+ protected void initAttributes() {} // Purpur
+
public BehaviorController<?> getBehaviorController() {
return this.bg;
}
@@ -2171,7 +2174,7 @@ public abstract class EntityLiving extends Entity {
this.enderTeleportTo(vec3d.x, vec3d.y, vec3d.z);
}

View File

@@ -5,22 +5,19 @@ Subject: [PATCH] Illusioners AI settings
diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
index 50442b3a498d1bab4270e69952a79f5182153ece..a9dcf6875efda502d174c74bd17026a5c8f0fdcb 100644
index 50442b3a498d1bab4270e69952a79f5182153ece..c57bf5091430709778dc21d70c8a32819c9d6639 100644
--- a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
+++ b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
@@ -19,6 +19,18 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan
@@ -19,6 +19,15 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan
}
+ // Purpur start
+ @Override
+ protected void initAttributes(World world) {
+ if (world != null) {
+ getAttributeMap().getAttribute(GenericAttributes.MOVEMENT_SPEED).setValue(world.purpurConfig.illusionerMovementSpeed);
+ getAttributeMap().getAttribute(GenericAttributes.FOLLOW_RANGE).setValue(world.purpurConfig.illusionerFollowRange);
+ getAttributeMap().getAttribute(GenericAttributes.MAX_HEALTH).setValue(world.purpurConfig.illusionerMaxHealth);
+ setHealth(getMaxHealth());
+ }
+ protected void initAttributes() {
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(this.world.purpurConfig.illusionerMovementSpeed);
+ this.getAttributeInstance(GenericAttributes.FOLLOW_RANGE).setValue(this.world.purpurConfig.illusionerFollowRange);
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.illusionerMaxHealth);
+ }
+ // Purpur end
+

View File

@@ -5,20 +5,18 @@ Subject: [PATCH] Chickens can retaliate
diff --git a/src/main/java/net/minecraft/server/EntityChicken.java b/src/main/java/net/minecraft/server/EntityChicken.java
index 182469fd39cb23633a3225cf1a64ab6b291e4cdf..11a612fa390cb0acf37fb84c5d5b6ea926dabad3 100644
index 182469fd39cb23633a3225cf1a64ab6b291e4cdf..8fb5d5c75e79a81ab46af3fbb96ebc41804113c4 100644
--- a/src/main/java/net/minecraft/server/EntityChicken.java
+++ b/src/main/java/net/minecraft/server/EntityChicken.java
@@ -17,16 +17,35 @@ public class EntityChicken extends EntityAnimal {
@@ -17,16 +17,33 @@ public class EntityChicken extends EntityAnimal {
this.a(PathType.WATER, 0.0F);
}
+ // Purpur start
+ @Override
+ protected void initAttributes(World world) {
+ if (world != null) {
+ if (world.purpurConfig.chickenRetaliate) {
+ this.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE).setValue(2.0D);
+ }
+ protected void initAttributes() {
+ if (world.purpurConfig.chickenRetaliate) {
+ this.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE).setValue(2.0D);
+ }
+ }
+ // Purpur end
@@ -45,7 +43,7 @@ index 182469fd39cb23633a3225cf1a64ab6b291e4cdf..11a612fa390cb0acf37fb84c5d5b6ea9
}
@Override
@@ -35,7 +54,7 @@ public class EntityChicken extends EntityAnimal {
@@ -35,7 +52,7 @@ public class EntityChicken extends EntityAnimal {
}
public static AttributeProvider.Builder eK() {

View File

@@ -110,7 +110,7 @@ index 42e6761c8b18b79ffd3f4d5e853ea87a2c153c23..cfb009c811bd2908d38da1b0007cb7aa
public EntityCow createChild(WorldServer worldserver, EntityAgeable entityageable) {
return (EntityCow) EntityTypes.COW.a((World) worldserver);
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 9af491260a586d322796f8419d6aa1fffae10140..594e2735cd58a0a19446369b34ba8282f2af2130 100644
index 1fa5edd4dfbbe5cc68856a32b01a0c8ea83e3f6f..f7bdd5f2a35c0abc018732d7fd920b162cb0a2d1 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -80,7 +80,7 @@ public abstract class EntityLiving extends Entity {

View File

@@ -22,7 +22,7 @@ index 2291135eaef64c403183724cb6e413cd7e472672..bc61aaff65a7dc1e7534452b285953b8
super(i, j, k);
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 594e2735cd58a0a19446369b34ba8282f2af2130..b9af6b392d4c7e83263d763eb86e77a407ca5ebf 100644
index f7bdd5f2a35c0abc018732d7fd920b162cb0a2d1..15518abcc1ec5f9a56d1992c852d180c9937fc69 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -98,9 +98,9 @@ public abstract class EntityLiving extends Entity {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Disable loot drops on death by cramming
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index b9af6b392d4c7e83263d763eb86e77a407ca5ebf..9373b7123eb4f108a96638c3814d50a47426a049 100644
index 15518abcc1ec5f9a56d1992c852d180c9937fc69..39342dd0bb7d79167310d61b629718b150595614 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -1490,8 +1490,10 @@ public abstract class EntityLiving extends Entity {
@@ -1493,8 +1493,10 @@ public abstract class EntityLiving extends Entity {
this.dropInventory(); // CraftBukkit - from below
if (this.cW() && this.world.getGameRules().getBoolean(GameRules.DO_MOB_LOOT)) {

View File

@@ -17,10 +17,10 @@ index bcd70f3d871ef8ef957fde3bb86c5ae29dce3d2f..01cb91589912e1d3e4b1edf9cdc8fabf
public void f(double d0, double d1, double d2) {
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 9373b7123eb4f108a96638c3814d50a47426a049..d774548cf872296384b1fd6317cedbd9a73f87d0 100644
index 39342dd0bb7d79167310d61b629718b150595614..7bffafb7b2b6124b8ca1400e99fa5973e96793f2 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2489,7 +2489,7 @@ public abstract class EntityLiving extends Entity {
@@ -2492,7 +2492,7 @@ public abstract class EntityLiving extends Entity {
}
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Entities pick up loot bypass mob-griefing gamerule
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index b281ca841b2b7b51add3409318e2b92deb51eeda..23d5d1f0a5c7eb5ed04ccf1724354fe8162e75cf 100644
index fba53ad6792236f0282279283570ffbd6d666f19..815dd2b5ab90fd95da72bf6a3b742e0ff9fd1670 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -544,7 +544,7 @@ public abstract class EntityInsentient extends EntityLiving {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow leashing villagers
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 23d5d1f0a5c7eb5ed04ccf1724354fe8162e75cf..23eb697f3dc115405c42f625a00f7d802adfa962 100644
index 815dd2b5ab90fd95da72bf6a3b742e0ff9fd1670..d818f46046f0580bd453f99bc7ddeb339f8f106e 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -1147,6 +1147,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -1145,6 +1145,7 @@ public abstract class EntityInsentient extends EntityLiving {
if (!this.isAlive()) {
return EnumInteractionResult.PASS;
} else if (this.getLeashHolder() == entityhuman) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Dispenser curse of binding protection
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 23eb697f3dc115405c42f625a00f7d802adfa962..7a40f0864677e54c3a0eca6dcb9a115864edfbbd 100644
index d818f46046f0580bd453f99bc7ddeb339f8f106e..64ed97cdbddfb2b823e87392639f1d063016541a 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -994,6 +994,13 @@ public abstract class EntityInsentient extends EntityLiving {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement elytra settings
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index d774548cf872296384b1fd6317cedbd9a73f87d0..92095d28bfdcf309585b5684be3b880591b7d18c 100644
index 7bffafb7b2b6124b8ca1400e99fa5973e96793f2..93512ebabf8ab4626dea50d7a3e80fa3333a1e91 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2848,7 +2848,16 @@ public abstract class EntityLiving extends Entity {
@@ -2851,7 +2851,16 @@ public abstract class EntityLiving extends Entity {
if (itemstack.getItem() == Items.ELYTRA && ItemElytra.d(itemstack)) {
flag = true;
if (!this.world.isClientSide && (this.be + 1) % 20 == 0) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Entity lifespan
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 7a40f0864677e54c3a0eca6dcb9a115864edfbbd..1d5d87e61946c674f61541455cf54018bfca1ecb 100644
index 64ed97cdbddfb2b823e87392639f1d063016541a..9c7d2d312549548003f2b6c534cc7a68e3946a84 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -53,7 +53,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -82,7 +82,7 @@ index 7a40f0864677e54c3a0eca6dcb9a115864edfbbd..1d5d87e61946c674f61541455cf54018
}
@Override
@@ -1544,7 +1576,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -1542,7 +1574,7 @@ public abstract class EntityInsentient extends EntityLiving {
this.a((EntityLiving) this, entity);
this.z(entity);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 92095d28bfdcf309585b5684be3b880591b7d18c..e2635413da43f4afc412c0443ab99bc3aaa0ca33 100644
index 93512ebabf8ab4626dea50d7a3e80fa3333a1e91..ef1c5fc24c2ffd2939e9fc10eb15ef96d5f0a3ca 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -277,6 +277,7 @@ public abstract class EntityLiving extends Entity {
@@ -280,6 +280,7 @@ public abstract class EntityLiving extends Entity {
double d1 = this.world.getWorldBorder().getDamageAmount();
if (d1 > 0.0D) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Totems work in inventory
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index e2635413da43f4afc412c0443ab99bc3aaa0ca33..e37f37412b6bc24fa7a64823c30bd697731294d9 100644
index ef1c5fc24c2ffd2939e9fc10eb15ef96d5f0a3ca..64580ce8dc1d0be61615a47c2fb3a6b0fecc93e6 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -1324,6 +1324,19 @@ public abstract class EntityLiving extends Entity {
@@ -1327,6 +1327,19 @@ public abstract class EntityLiving extends Entity {
}
}

View File

@@ -717,7 +717,7 @@ index 776f3d25a6eeb5e97667dd06c062d1045d1afa81..2e1f2dec17e7761b6534f29bbec813d1
return EntitySpider.eK().a(GenericAttributes.MAX_HEALTH, 12.0D);
}
diff --git a/src/main/java/net/minecraft/server/EntityChicken.java b/src/main/java/net/minecraft/server/EntityChicken.java
index 11a612fa390cb0acf37fb84c5d5b6ea926dabad3..a16ecd7edcd0ed081fff254d1f1429b32a4dcfb3 100644
index 8fb5d5c75e79a81ab46af3fbb96ebc41804113c4..ee59a9f272a9caebec8f2329e1e4b22ddd27a0f9 100644
--- a/src/main/java/net/minecraft/server/EntityChicken.java
+++ b/src/main/java/net/minecraft/server/EntityChicken.java
@@ -18,6 +18,16 @@ public class EntityChicken extends EntityAnimal {
@@ -735,9 +735,9 @@ index 11a612fa390cb0acf37fb84c5d5b6ea926dabad3..a16ecd7edcd0ed081fff254d1f1429b3
+ }
+
@Override
protected void initAttributes(World world) {
if (world != null) {
@@ -31,6 +41,7 @@ public class EntityChicken extends EntityAnimal {
protected void initAttributes() {
if (world.purpurConfig.chickenRetaliate) {
@@ -29,6 +39,7 @@ public class EntityChicken extends EntityAnimal {
@Override
protected void initPathfinder() {
this.goalSelector.a(0, new PathfinderGoalFloat(this));
@@ -745,7 +745,7 @@ index 11a612fa390cb0acf37fb84c5d5b6ea926dabad3..a16ecd7edcd0ed081fff254d1f1429b3
//this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.4D)); // Purpur - moved down
this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D));
this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.0D, false, EntityChicken.bv));
@@ -41,6 +52,7 @@ public class EntityChicken extends EntityAnimal {
@@ -39,6 +50,7 @@ public class EntityChicken extends EntityAnimal {
// Purpur start
if (world.purpurConfig.chickenRetaliate) {
this.goalSelector.a(1, new PathfinderGoalMeleeAttack(this, 1.0D, false));
@@ -1770,7 +1770,7 @@ index a67611c4f9271c116a795ee598412f25396fee88..216506a7b1f97b776ecd4e24f5b2afaf
if (this.j-- <= 0) {
this.j += this.i.getRandom().nextInt(5) + 2;
diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java
index cf899bb6a5bd9d913ea90facdd5f3cc0dda1e9d2..93fcf801aa7a34ba8b4b72d87c2e093cbcef97b8 100644
index 565c938d879940d8e12fe320ea8524d2cf679c1f..5e99767f45f7ba7db80f5b51810689e059b5cef5 100644
--- a/src/main/java/net/minecraft/server/EntityGiantZombie.java
+++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java
@@ -11,16 +11,28 @@ public class EntityGiantZombie extends EntityMonster {
@@ -2163,7 +2163,7 @@ index 96662fce02193496b4d91578d355932493d8e31e..9963cef9298eb6d3e2ee6a24d9b1998e
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
index a9dcf6875efda502d174c74bd17026a5c8f0fdcb..44c006bb10f36aff90cb07516d40a1b0d9bd24f5 100644
index c57bf5091430709778dc21d70c8a32819c9d6639..b0a5c36d1132e2558a1fefbd9f8dd26448400086 100644
--- a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
+++ b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
@@ -20,6 +20,16 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan
@@ -2181,9 +2181,9 @@ index a9dcf6875efda502d174c74bd17026a5c8f0fdcb..44c006bb10f36aff90cb07516d40a1b0
+ }
+
@Override
protected void initAttributes(World world) {
if (world != null) {
@@ -35,6 +45,7 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan
protected void initAttributes() {
this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(this.world.purpurConfig.illusionerMovementSpeed);
@@ -32,6 +42,7 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan
protected void initPathfinder() {
super.initPathfinder();
this.goalSelector.a(0, new PathfinderGoalFloat(this));
@@ -2191,7 +2191,7 @@ index a9dcf6875efda502d174c74bd17026a5c8f0fdcb..44c006bb10f36aff90cb07516d40a1b0
this.goalSelector.a(1, new EntityIllagerWizard.b());
this.goalSelector.a(4, new EntityIllagerIllusioner.b());
this.goalSelector.a(5, new EntityIllagerIllusioner.a());
@@ -42,6 +53,7 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan
@@ -39,6 +50,7 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan
this.goalSelector.a(8, new PathfinderGoalRandomStroll(this, 0.6D));
this.goalSelector.a(9, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 3.0F, 1.0F));
this.goalSelector.a(10, new PathfinderGoalLookAtPlayer(this, EntityInsentient.class, 8.0F));
@@ -2200,7 +2200,7 @@ index a9dcf6875efda502d174c74bd17026a5c8f0fdcb..44c006bb10f36aff90cb07516d40a1b0
this.targetSelector.a(2, (new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)).a(300));
this.targetSelector.a(3, (new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false)).a(300));
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 1d5d87e61946c674f61541455cf54018bfca1ecb..80589799ab08228d9e49afdf4570fa781092e5c5 100644
index 9c7d2d312549548003f2b6c534cc7a68e3946a84..ace2bb69fcde9af2a1691a25ae945bfe44ce117b 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -29,7 +29,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -2256,7 +2256,7 @@ index 1d5d87e61946c674f61541455cf54018bfca1ecb..80589799ab08228d9e49afdf4570fa78
public void v(float f) {
this.aR = f;
}
@@ -1250,7 +1253,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -1248,7 +1251,7 @@ public abstract class EntityInsentient extends EntityLiving {
protected void a(EntityHuman entityhuman, EntityInsentient entityinsentient) {}
protected EnumInteractionResult b(EntityHuman entityhuman, EnumHand enumhand) {
@@ -2265,7 +2265,7 @@ index 1d5d87e61946c674f61541455cf54018bfca1ecb..80589799ab08228d9e49afdf4570fa78
}
public boolean ev() {
@@ -1622,4 +1625,54 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -1620,4 +1623,54 @@ public abstract class EntityInsentient extends EntityLiving {
this.world.getServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), UnleashReason.UNKNOWN)); // CraftBukkit
this.unleash(true, false);
}
@@ -2372,10 +2372,10 @@ index bdff2368836dca230a6622a205d5772834afc6ee..9ee03b233b71d1b4b85a9a5e1f0ea9fe
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 e37f37412b6bc24fa7a64823c30bd697731294d9..84e37e38026e1fd5ec626c7c8b81972cd5ed2ea4 100644
index 64580ce8dc1d0be61615a47c2fb3a6b0fecc93e6..418744b166571973a02dd6a31f0cc08376980076 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -459,7 +459,7 @@ public abstract class EntityLiving extends Entity {
@@ -462,7 +462,7 @@ public abstract class EntityLiving extends Entity {
@Override
public boolean bt() {
@@ -2384,7 +2384,7 @@ index e37f37412b6bc24fa7a64823c30bd697731294d9..84e37e38026e1fd5ec626c7c8b81972c
}
protected void cU() {
@@ -2191,7 +2191,7 @@ public abstract class EntityLiving extends Entity {
@@ -2194,7 +2194,7 @@ public abstract class EntityLiving extends Entity {
return 0.42F * this.getBlockJumpFactor();
}
@@ -2393,7 +2393,7 @@ index e37f37412b6bc24fa7a64823c30bd697731294d9..84e37e38026e1fd5ec626c7c8b81972c
float f = this.dJ();
if (this.hasEffect(MobEffects.JUMP)) {
@@ -2440,10 +2440,12 @@ public abstract class EntityLiving extends Entity {
@@ -2443,10 +2443,12 @@ public abstract class EntityLiving extends Entity {
return this.onGround ? this.dN() * (0.21600002F / (f * f * f)) : this.aE;
}
@@ -2406,7 +2406,7 @@ index e37f37412b6bc24fa7a64823c30bd697731294d9..84e37e38026e1fd5ec626c7c8b81972c
public void q(float f) {
this.bu = f;
}
@@ -2843,6 +2845,20 @@ public abstract class EntityLiving extends Entity {
@@ -2846,6 +2848,20 @@ public abstract class EntityLiving extends Entity {
}
}
// Purpur end

View File

@@ -6,24 +6,22 @@ Subject: [PATCH] Customizable wither health and healing
Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often.
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
index f68cf834aa65cc4bbb1eb9901586395d41770955..e8cc3af606f4874b6f32369f7f211f480670868b 100644
index f68cf834aa65cc4bbb1eb9901586395d41770955..71b6fc480617f040029b2201f24d05affeb90b70 100644
--- a/src/main/java/net/minecraft/server/EntityWither.java
+++ b/src/main/java/net/minecraft/server/EntityWither.java
@@ -145,6 +145,13 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -145,6 +145,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
skull.setPositionRaw(headX, headY, headZ);
world.addEntity(skull);
}
+
+ public void initAttributes(World world) {
+ if (world != null) {
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(world.purpurConfig.witherMaxHealth);
+ //setHealth(getMaxHealth()); // do NOT do this for wither! health grows when first spawned
+ }
+ @Override
+ public void initAttributes() {
+ this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(world.purpurConfig.witherMaxHealth);
+ }
// Purpur end
@Override
@@ -348,7 +355,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -348,7 +353,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
this.setInvul(i);
if (this.ticksLived % 10 == 0) {
@@ -32,7 +30,7 @@ index f68cf834aa65cc4bbb1eb9901586395d41770955..e8cc3af606f4874b6f32369f7f211f48
}
} else {
@@ -457,8 +464,10 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -457,8 +462,10 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
}
}
@@ -45,14 +43,6 @@ index f68cf834aa65cc4bbb1eb9901586395d41770955..e8cc3af606f4874b6f32369f7f211f48
}
//this.bossBattle.setProgress(this.getHealth() / this.getMaxHealth()); // Paper - Moved down
@@ -473,6 +482,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
public void beginSpawnSequence() {
this.setInvul(220);
this.setHealth(this.getMaxHealth() / 3.0F);
+ initAttributes(this.world); // Purpur - building the wither with soul_sand + wither_skeleton_skulls does not call prepare, so we need to call this manually
}
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 1025b5daef29da23f1a80c1c0a1ef0eeee18384e..0f2e0e779198765a7dfa2d4c56b8b2ff8fb08f96 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java

View File

@@ -62,11 +62,11 @@ index 05929d5c539a738e6b6e8d32d9b0f843a665f4f6..a6ce4ca27c9670655a8f66bfc624f126
public MinecraftKey eU() {
diff --git a/src/main/java/net/minecraft/server/EntityChicken.java b/src/main/java/net/minecraft/server/EntityChicken.java
index a16ecd7edcd0ed081fff254d1f1429b32a4dcfb3..26f7833496ceaf5c6f67ac7fb276e1f82e51de07 100644
index ee59a9f272a9caebec8f2329e1e4b22ddd27a0f9..2e1dc047459889aea85a79eaa04e8fe1a80e5b9e 100644
--- a/src/main/java/net/minecraft/server/EntityChicken.java
+++ b/src/main/java/net/minecraft/server/EntityChicken.java
@@ -36,6 +36,11 @@ public class EntityChicken extends EntityAnimal {
}
@@ -34,6 +34,11 @@ public class EntityChicken extends EntityAnimal {
this.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE).setValue(2.0D);
}
}
+

View File

@@ -52,10 +52,10 @@ index d53bbe31694c2d88939332691cdf145c46099e22..bc558c54c9e74e2158a5835173e6068c
switch (this.getType()) {
case OAK:
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 80589799ab08228d9e49afdf4570fa781092e5c5..2fef6967323145049a45d8cc44d50c788fb3e8be 100644
index ace2bb69fcde9af2a1691a25ae945bfe44ce117b..2169de3c4118fca7048f9939a9570939cd287a34 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -1368,7 +1368,13 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -1366,7 +1366,13 @@ public abstract class EntityInsentient extends EntityLiving {
this.by = null;
if (!this.world.isClientSide && flag1) {
this.forceDrops = true; // CraftBukkit
@@ -70,7 +70,7 @@ index 80589799ab08228d9e49afdf4570fa781092e5c5..2fef6967323145049a45d8cc44d50c78
this.forceDrops = false; // CraftBukkit
}
@@ -1444,7 +1450,13 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -1442,7 +1448,13 @@ public abstract class EntityInsentient extends EntityLiving {
}
if (this.ticksLived > 100) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Changeable Mob Left Handed Chance
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 2fef6967323145049a45d8cc44d50c788fb3e8be..e2d7c20e66b5a6c3d6037ee3e15d1ce676c29c97 100644
index 2169de3c4118fca7048f9939a9570939cd287a34..04b1c82da8c5a76c302a988a68fd9fbfd93310c2 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -1135,7 +1135,7 @@ public abstract class EntityInsentient extends EntityLiving {

View File

@@ -7,10 +7,10 @@ Configurable chance to spawn a wolf that is rabid.
Rabid wolves attack all players, mobs, and animals.
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 84e37e38026e1fd5ec626c7c8b81972cd5ed2ea4..32cc85bdef9594df2d23b1c469d0314ce414a06a 100644
index 418744b166571973a02dd6a31f0cc08376980076..ac14c0455cc92ea9f6af1d5451062ecab9980c69 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2091,6 +2091,7 @@ public abstract class EntityLiving extends Entity {
@@ -2094,6 +2094,7 @@ public abstract class EntityLiving extends Entity {
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Phantom flames on swoop
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
index 889e388cf13ba0a385ee88a3acd0b813c0776dee..d6509eef1dc26beafc752c8518eabfeccb02653b 100644
index 25345d8d585735af407787f2c26fe92674721239..087a91fedc49aaf6e74b81b90494849c4932c956 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -184,6 +184,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
@@ -181,6 +181,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
this.world.addParticle(Particles.MYCELIUM, this.locX() - (double) f2, this.locY() + (double) f4, this.locZ() - (double) f3, 0.0D, 0.0D, 0.0D);
}
@@ -17,10 +17,10 @@ index 889e388cf13ba0a385ee88a3acd0b813c0776dee..d6509eef1dc26beafc752c8518eabfec
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 0db403f19e0131a8a49d28bc7bd3534b2b76c3b7..66aaa47a5221cc025ca142b0cef70b3eb311bf4c 100644
index 86a0ffb62e044a41a5e869b5594bf37dca018491..21319c01a5b7f470ec722cb3259b15299c3b27a7 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1127,6 +1127,7 @@ public class PurpurWorldConfig {
@@ -1134,6 +1134,7 @@ public class PurpurWorldConfig {
public int phantomBurnInLight = 0;
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
@@ -28,7 +28,7 @@ index 0db403f19e0131a8a49d28bc7bd3534b2b76c3b7..66aaa47a5221cc025ca142b0cef70b3e
public double phantomMaxHealth = 20.0D;
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
@@ -1152,6 +1153,7 @@ public class PurpurWorldConfig {
@@ -1159,6 +1160,7 @@ public class PurpurWorldConfig {
phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight);
phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight);
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);

View File

@@ -17,7 +17,7 @@ index 9e5e6de52efabe9126f6c47acb35fa1dc461ff4f..487b281cf53d3482853d56ee1e90a329
return iblockaccess.getType(blockposition1).isOccluding(iblockaccess, blockposition1);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 66aaa47a5221cc025ca142b0cef70b3eb311bf4c..480e3a30d42bfd0cc0344762361fc3523f148799 100644
index 21319c01a5b7f470ec722cb3259b15299c3b27a7..d1f920930f538b8227adf7e6a7af4bd32ff2da9b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -370,6 +370,11 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Striders give saddle back
diff --git a/src/main/java/net/minecraft/server/EntityStrider.java b/src/main/java/net/minecraft/server/EntityStrider.java
index 1bb33c4169902cf6eb323f79a5d98a1df5726d96..96485d6f4db6b618413abc23199bdb9cefbda721 100644
index a0bb64bea373c678c519e3fae8f808fd36e1ee4f..11911b10ddc6e2a681f2eda313a6e7c68674a1ac 100644
--- a/src/main/java/net/minecraft/server/EntityStrider.java
+++ b/src/main/java/net/minecraft/server/EntityStrider.java
@@ -379,6 +379,18 @@ public class EntityStrider extends EntityAnimal implements ISteerable, ISaddleab
@@ -376,6 +376,18 @@ public class EntityStrider extends EntityAnimal implements ISteerable, ISaddleab
if (!flag && this.hasSaddle() && !this.isVehicle() && !entityhuman.eq()) {
if (!this.world.isClientSide) {
@@ -28,10 +28,10 @@ index 1bb33c4169902cf6eb323f79a5d98a1df5726d96..96485d6f4db6b618413abc23199bdb9c
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 480e3a30d42bfd0cc0344762361fc3523f148799..57702bdf36efeb19b01fa88a0de62b875e2e2400 100644
index d1f920930f538b8227adf7e6a7af4bd32ff2da9b..ac35991fce2a325e6eba66babb4867a295ae2fd1 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1480,11 +1480,13 @@ public class PurpurWorldConfig {
@@ -1487,11 +1487,13 @@ public class PurpurWorldConfig {
public boolean striderRidable = false;
public boolean striderRidableInWater = false;
public int striderBreedingTicks = 6000;