net.minecraft.world.entity.monster.warden
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/world/entity/monster/warden/AngerManagement.java
|
||||
+++ b/net/minecraft/world/entity/monster/warden/AngerManagement.java
|
||||
@@ -146,7 +_,7 @@
|
||||
|
||||
public int increaseAnger(Entity entity, int offset) {
|
||||
boolean flag = !this.angerBySuspect.containsKey(entity);
|
||||
- int i = this.angerBySuspect.computeInt(entity, (entity1, integer) -> Math.min(150, (integer == null ? 0 : integer) + offset));
|
||||
+ int i = this.angerBySuspect.computeInt(entity, (entity1, integer) -> Math.min(150, (integer == null ? 0 : integer) + offset)); // Paper - diff on change (Warden#increaseAngerAt WardenAngerChangeEvent)
|
||||
if (flag) {
|
||||
int i1 = this.angerByUuid.removeInt(entity.getUUID());
|
||||
i += i1;
|
||||
@@ -0,0 +1,27 @@
|
||||
--- a/net/minecraft/world/entity/monster/warden/Warden.java
|
||||
+++ b/net/minecraft/world/entity/monster/warden/Warden.java
|
||||
@@ -407,7 +_,7 @@
|
||||
|
||||
public static void applyDarknessAround(ServerLevel level, Vec3 pos, @Nullable Entity source, int radius) {
|
||||
MobEffectInstance mobEffectInstance = new MobEffectInstance(MobEffects.DARKNESS, 260, 0, false, false);
|
||||
- MobEffectUtil.addEffectToPlayersAround(level, source, pos, radius, mobEffectInstance, 200);
|
||||
+ MobEffectUtil.addEffectToPlayersAround(level, source, pos, radius, mobEffectInstance, 200, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.WARDEN); // CraftBukkit - Add EntityPotionEffectEvent.Cause
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -469,6 +_,15 @@
|
||||
@VisibleForTesting
|
||||
public void increaseAngerAt(@Nullable Entity entity, int offset, boolean playListeningSound) {
|
||||
if (!this.isNoAi() && this.canTargetEntity(entity)) {
|
||||
+ // Paper start - Add WardenAngerChangeEvent
|
||||
+ int activeAnger = this.angerManagement.getActiveAnger(entity);
|
||||
+ io.papermc.paper.event.entity.WardenAngerChangeEvent event = new io.papermc.paper.event.entity.WardenAngerChangeEvent((org.bukkit.entity.Warden) this.getBukkitEntity(), entity.getBukkitEntity(), activeAnger, Math.min(150, activeAnger + offset));
|
||||
+ this.level().getCraftServer().getPluginManager().callEvent(event);
|
||||
+ if (event.isCancelled()) {
|
||||
+ return;
|
||||
+ }
|
||||
+ offset = event.getNewAnger() - activeAnger;
|
||||
+ // Paper end - Add WardenAngerChangeEvent
|
||||
WardenAi.setDigCooldown(this);
|
||||
boolean flag = !(this.getTarget() instanceof Player);
|
||||
int i = this.angerManagement.increaseAnger(entity, offset);
|
||||
Reference in New Issue
Block a user