mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Various Enderman AI configuration options (#190)
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Encode42 <me@encode42.dev>
|
||||
Date: Tue, 9 Mar 2021 16:10:39 -0500
|
||||
Subject: [PATCH] Config for Enderman to aggro spawned Endermites
|
||||
|
||||
By default, Enderman do not attack Endermites unless spawned by an Ender Pearl.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
|
||||
index b884addf2ce6f1ef7394658078deb2e75370654f..6c60253fee2098889292837033396f0dcd75c4b7 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
|
||||
@@ -16,7 +16,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable {
|
||||
private static final DataWatcherObject<Boolean> bo = DataWatcher.a(EntityEnderman.class, DataWatcherRegistry.i);
|
||||
private static final DataWatcherObject<Boolean> bp = DataWatcher.a(EntityEnderman.class, DataWatcherRegistry.i);
|
||||
private static final Predicate<EntityLiving> bq = (entityliving) -> {
|
||||
- return entityliving instanceof EntityEndermite && ((EntityEndermite) entityliving).isPlayerSpawned();
|
||||
+ return entityliving instanceof EntityEndermite && (((EntityEndermite) entityliving).isPlayerSpawned() || entityliving.world.purpurConfig.endermanAggroSpawnedEndermites); // Purpur
|
||||
};
|
||||
private int br = Integer.MIN_VALUE;
|
||||
private int bs;
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 839b76e406d9374c1b3aff7adee82acaa7d89dc9..28814c8b5ecab56fca113e741305ac5dc4f49e8c 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -821,6 +821,7 @@ public class PurpurWorldConfig {
|
||||
public boolean endermanDespawnEvenWithBlock = false;
|
||||
public double endermanMaxHealth = 40.0D;
|
||||
public boolean endermanTakeDamageFromWater = true;
|
||||
+ public boolean endermanAggroSpawnedEndermites = false;
|
||||
private void endermanSettings() {
|
||||
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
|
||||
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
|
||||
@@ -834,6 +835,7 @@ public class PurpurWorldConfig {
|
||||
}
|
||||
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
|
||||
endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater);
|
||||
+ endermanAggroSpawnedEndermites = getBoolean("mobs.enderman.aggressive-towards-spawned-endermites", endermanAggroSpawnedEndermites);
|
||||
}
|
||||
|
||||
public boolean endermiteRidable = false;
|
||||
@@ -0,0 +1,43 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Encode42 <me@encode42.dev>
|
||||
Date: Tue, 9 Mar 2021 16:16:01 -0500
|
||||
Subject: [PATCH] Config to ignore Dragon Head wearers and stare aggro
|
||||
|
||||
Prevents Enderman from becoming aggresive towards players that are wearing a Dragon Head.
|
||||
Adds functionality to a useless item!
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
|
||||
index 6c60253fee2098889292837033396f0dcd75c4b7..df4d5ed5957658ee9ca083ac79b38a1202fe7015 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
|
||||
@@ -197,7 +197,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable {
|
||||
// Paper end
|
||||
ItemStack itemstack = (ItemStack) entityhuman.inventory.armor.get(3);
|
||||
|
||||
- if (itemstack.getItem() == Blocks.CARVED_PUMPKIN.getItem()) {
|
||||
+ if (world.purpurConfig.endermanDisableStareAggro || itemstack.getItem() == Blocks.CARVED_PUMPKIN.getItem() || (world.purpurConfig.endermanIgnorePlayerDragonHead && itemstack.getItem() == Items.DRAGON_HEAD)) { // Purpur
|
||||
return false;
|
||||
} else {
|
||||
Vec3D vec3d = entityhuman.f(1.0F).d();
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 28814c8b5ecab56fca113e741305ac5dc4f49e8c..45c5b7b9e7b207e25d80c008a87b06b91e81668b 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -822,6 +822,8 @@ public class PurpurWorldConfig {
|
||||
public double endermanMaxHealth = 40.0D;
|
||||
public boolean endermanTakeDamageFromWater = true;
|
||||
public boolean endermanAggroSpawnedEndermites = false;
|
||||
+ public boolean endermanIgnorePlayerDragonHead = false;
|
||||
+ public boolean endermanDisableStareAggro = false;
|
||||
private void endermanSettings() {
|
||||
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
|
||||
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
|
||||
@@ -836,6 +838,8 @@ public class PurpurWorldConfig {
|
||||
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
|
||||
endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater);
|
||||
endermanAggroSpawnedEndermites = getBoolean("mobs.enderman.aggressive-towards-spawned-endermites", endermanAggroSpawnedEndermites);
|
||||
+ endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead);
|
||||
+ endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro);
|
||||
}
|
||||
|
||||
public boolean endermiteRidable = false;
|
||||
Reference in New Issue
Block a user