mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 08:57:44 +01:00
Config to disable Enderman teleport on projectile hit
This commit is contained in:
@@ -1,38 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Encode42 <me@encode42.dev>
|
|
||||||
Date: Mon, 19 Jul 2021 19:28:17 -0400
|
|
||||||
Subject: [PATCH] Config to disable Enderman teleport on projectile hit
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
|
|
||||||
index efeb8a214c3e0ab6cb28a6f6e0d6417916ed670f..327686f0c47894259532a15e98d69d332a6d483a 100644
|
|
||||||
--- a/net/minecraft/world/entity/monster/EnderMan.java
|
|
||||||
+++ b/net/minecraft/world/entity/monster/EnderMan.java
|
|
||||||
@@ -424,6 +424,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
|
||||||
} else {
|
|
||||||
flag1 = flag && this.hurtWithCleanWater(world, source, (ThrownPotion) source.getDirectEntity(), amount);
|
|
||||||
|
|
||||||
+ if (!flag1 && world.purpurConfig.endermanIgnoreProjectiles) return super.hurtServer(world, source, amount); // Purpur
|
|
||||||
if (this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.INDIRECT)) { // Paper - EndermanEscapeEvent
|
|
||||||
for (int i = 0; i < 64; ++i) {
|
|
||||||
if (this.teleport()) {
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
index 363fba258c19fddb45b6bca459007def8c0da981..7463320f50e863b6b8c5ba6127527b2b1fff72f6 100644
|
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
@@ -1464,6 +1464,7 @@ public class PurpurWorldConfig {
|
|
||||||
public boolean endermanAggroEndermites = true;
|
|
||||||
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
|
|
||||||
public boolean endermanDisableStareAggro = false;
|
|
||||||
+ public boolean endermanIgnoreProjectiles = false;
|
|
||||||
private void endermanSettings() {
|
|
||||||
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
|
|
||||||
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
|
|
||||||
@@ -1486,6 +1487,7 @@ public class PurpurWorldConfig {
|
|
||||||
endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites);
|
|
||||||
endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned);
|
|
||||||
endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro);
|
|
||||||
+ endermanIgnoreProjectiles = getBoolean("mobs.enderman.ignore-projectiles", endermanIgnoreProjectiles);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean endermiteRidable = false;
|
|
||||||
@@ -26,6 +26,14 @@
|
|||||||
} else {
|
} else {
|
||||||
boolean flag = damageSource.getDirectEntity() instanceof ThrownPotion;
|
boolean flag = damageSource.getDirectEntity() instanceof ThrownPotion;
|
||||||
if (!damageSource.is(DamageTypeTags.IS_PROJECTILE) && !flag) {
|
if (!damageSource.is(DamageTypeTags.IS_PROJECTILE) && !flag) {
|
||||||
|
@@ -397,6 +_,7 @@
|
||||||
|
} else {
|
||||||
|
boolean flag1 = flag && this.hurtWithCleanWater(level, damageSource, (ThrownPotion)damageSource.getDirectEntity(), amount);
|
||||||
|
|
||||||
|
+ if (!flag1 && level.purpurConfig.endermanIgnoreProjectiles) return super.hurtServer(level, damageSource, amount); // Purpur - Config to disable Enderman teleport on projectile hit
|
||||||
|
if (this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.INDIRECT)) { // Paper - EndermanEscapeEvent
|
||||||
|
for (int i = 0; i < 64; i++) {
|
||||||
|
if (this.teleport()) {
|
||||||
@@ -440,7 +_,7 @@
|
@@ -440,7 +_,7 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1463,6 +1463,7 @@ public class PurpurWorldConfig {
|
|||||||
public boolean endermanAggroEndermites = true;
|
public boolean endermanAggroEndermites = true;
|
||||||
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
|
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
|
||||||
public boolean endermanDisableStareAggro = false;
|
public boolean endermanDisableStareAggro = false;
|
||||||
|
public boolean endermanIgnoreProjectiles = false;
|
||||||
private void endermanSettings() {
|
private void endermanSettings() {
|
||||||
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
|
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
|
||||||
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
|
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
|
||||||
@@ -1485,6 +1486,7 @@ public class PurpurWorldConfig {
|
|||||||
endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites);
|
endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites);
|
||||||
endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned);
|
endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned);
|
||||||
endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro);
|
endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro);
|
||||||
|
endermanIgnoreProjectiles = getBoolean("mobs.enderman.ignore-projectiles", endermanIgnoreProjectiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean endermiteRidable = false;
|
public boolean endermiteRidable = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user