mirror of
https://github.com/PaperMC/Paper.git
synced 2024-08-31 17:20:11 +02:00
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 9115281f SPIGOT-6832: Improve Player#getPing docs CraftBukkit Changes: fd3478bc7 #967: Store last lava contact location for events Spigot Changes: dbf49382 Rebuild patches 58cb9d26 #113: Use simulationDistance for entity activation range base
76 lines
4.0 KiB
Diff
76 lines
4.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Zach Brown <zach.brown@destroystokyo.com>
|
|
Date: Tue, 1 Mar 2016 13:24:16 -0600
|
|
Subject: [PATCH] Allow nerfed mobs to jump and take water damage
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
index 5896b4e4646d722db5622a424fa26f42d3f8d9ff..0a6e98ca5534430540044a32c280e5680ac9a28f 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -122,4 +122,9 @@ public class PaperWorldConfig {
|
|
fishingMaxTicks = getInt("fishing-time-range.MaximumTicks", 600);
|
|
log("Fishing time ranges are between " + fishingMinTicks +" and " + fishingMaxTicks + " ticks");
|
|
}
|
|
+
|
|
+ public boolean nerfedMobsShouldJump;
|
|
+ private void nerfedMobsShouldJump() {
|
|
+ nerfedMobsShouldJump = getBoolean("spawner-nerfed-mobs-should-jump", false);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
|
index 3eb1f5e422002a48651a24d0e70884bf54de717e..3efdf887ec70aa2d3486a1ddfc8e5e1c1e27829a 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
|
@@ -1259,6 +1259,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
|
|
return this.isInWater() || this.isInRain();
|
|
}
|
|
|
|
+ @Deprecated public final boolean isInWaterOrRainOrBubble() { return isInWaterRainOrBubble(); } // Paper - OBFHELPER
|
|
public boolean isInWaterRainOrBubble() {
|
|
return this.isInWater() || this.isInRain() || this.isInBubbleColumn();
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
|
index f286fcc2958a02c1e480b8fcf5d049bf0de27131..9cc9c11f2ef5aa386711a0ebc70b6a2d8e5c5b97 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
|
@@ -105,6 +105,7 @@ public abstract class Mob extends LivingEntity {
|
|
private final BodyRotationControl bodyRotationControl;
|
|
protected PathNavigation navigation;
|
|
public GoalSelector goalSelector;
|
|
+ @Nullable public net.minecraft.world.entity.ai.goal.FloatGoal goalFloat; // Paper
|
|
public GoalSelector targetSelector;
|
|
@Nullable
|
|
private LivingEntity target;
|
|
@@ -802,7 +803,17 @@ public abstract class Mob extends LivingEntity {
|
|
@Override
|
|
protected final void serverAiStep() {
|
|
++this.noActionTime;
|
|
- if (!this.aware) return; // CraftBukkit
|
|
+ if (!this.aware) { // Paper start - Allow nerfed mobs to jump, float and take water damage
|
|
+ if (goalFloat != null) {
|
|
+ if (goalFloat.canUse()) goalFloat.tick();
|
|
+ this.getJumpControl().tick();
|
|
+ }
|
|
+ if ((this instanceof net.minecraft.world.entity.monster.Blaze || this instanceof net.minecraft.world.entity.monster.EnderMan) && isInWaterRainOrBubble()) {
|
|
+ hurt(DamageSource.DROWN, 1.0F);
|
|
+ }
|
|
+ return;
|
|
+ }
|
|
+ // Paper end
|
|
this.level.getProfiler().push("sensing");
|
|
this.sensing.tick();
|
|
this.level.getProfiler().pop();
|
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/FloatGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/FloatGoal.java
|
|
index 01950951ea06e43bedeeede489a112e577617829..0e86eb2595cf9fbf24f789e0e9b4f05929d3164c 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/ai/goal/FloatGoal.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/FloatGoal.java
|
|
@@ -9,6 +9,7 @@ public class FloatGoal extends Goal {
|
|
|
|
public FloatGoal(Mob mob) {
|
|
this.mob = mob;
|
|
+ if (mob.getCommandSenderWorld().paperConfig.nerfedMobsShouldJump) mob.goalFloat = this; // Paper
|
|
this.setFlags(EnumSet.of(Goal.Flag.JUMP));
|
|
mob.getNavigation().setCanFloat(true);
|
|
}
|