Move CraftBukkit per-file patches
By: Initial <noreply+automated@papermc.io>
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
--- a/net/minecraft/world/effect/HealOrHarmMobEffect.java
|
||||
+++ b/net/minecraft/world/effect/HealOrHarmMobEffect.java
|
||||
@@ -17,7 +17,7 @@
|
||||
@Override
|
||||
public boolean applyEffectTick(WorldServer worldserver, EntityLiving entityliving, int i) {
|
||||
if (this.isHarm == entityliving.isInvertedHealAndHarm()) {
|
||||
- entityliving.heal((float) Math.max(4 << i, 0));
|
||||
+ entityliving.heal((float) Math.max(4 << i, 0), org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.MAGIC); // CraftBukkit
|
||||
} else {
|
||||
entityliving.hurtServer(worldserver, entityliving.damageSources().magic(), (float) (6 << i));
|
||||
}
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
if (this.isHarm == entityliving.isInvertedHealAndHarm()) {
|
||||
j = (int) (d0 * (double) (4 << i) + 0.5D);
|
||||
- entityliving.heal((float) j);
|
||||
+ entityliving.heal((float) j, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.MAGIC); // CraftBukkit
|
||||
} else {
|
||||
j = (int) (d0 * (double) (6 << i) + 0.5D);
|
||||
if (entity == null) {
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/world/effect/HungerMobEffect.java
|
||||
+++ b/net/minecraft/world/effect/HungerMobEffect.java
|
||||
@@ -13,7 +13,7 @@
|
||||
@Override
|
||||
public boolean applyEffectTick(WorldServer worldserver, EntityLiving entityliving, int i) {
|
||||
if (entityliving instanceof EntityHuman entityhuman) {
|
||||
- entityhuman.causeFoodExhaustion(0.005F * (float) (i + 1));
|
||||
+ entityhuman.causeFoodExhaustion(0.005F * (float) (i + 1), org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason.HUNGER_EFFECT); // CraftBukkit - EntityExhaustionEvent
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -0,0 +1,15 @@
|
||||
--- a/net/minecraft/world/effect/InfestedMobEffect.java
|
||||
+++ b/net/minecraft/world/effect/InfestedMobEffect.java
|
||||
@@ -48,7 +48,11 @@
|
||||
|
||||
entitysilverfish.moveTo(d0, d1, d2, worldserver.getRandom().nextFloat() * 360.0F, 0.0F);
|
||||
entitysilverfish.setDeltaMovement(new Vec3D(vector3f));
|
||||
- worldserver.addFreshEntity(entitysilverfish);
|
||||
+ // CraftBukkit start
|
||||
+ if (!worldserver.addFreshEntity(entitysilverfish, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.POTION_EFFECT)) {
|
||||
+ return;
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
entitysilverfish.playSound(SoundEffects.SILVERFISH_HURT);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
--- a/net/minecraft/world/effect/MobEffectUtil.java
|
||||
+++ b/net/minecraft/world/effect/MobEffectUtil.java
|
||||
@@ -50,13 +50,19 @@
|
||||
}
|
||||
|
||||
public static List<EntityPlayer> addEffectToPlayersAround(WorldServer worldserver, @Nullable Entity entity, Vec3D vec3d, double d0, MobEffect mobeffect, int i) {
|
||||
+ // CraftBukkit start
|
||||
+ return addEffectToPlayersAround(worldserver, entity, vec3d, d0, mobeffect, i, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.UNKNOWN);
|
||||
+ }
|
||||
+
|
||||
+ public static List<EntityPlayer> addEffectToPlayersAround(WorldServer worldserver, @Nullable Entity entity, Vec3D vec3d, double d0, MobEffect mobeffect, int i, org.bukkit.event.entity.EntityPotionEffectEvent.Cause cause) {
|
||||
+ // CraftBukkit end
|
||||
Holder<MobEffectList> holder = mobeffect.getEffect();
|
||||
List<EntityPlayer> list = worldserver.getPlayers((entityplayer) -> {
|
||||
return entityplayer.gameMode.isSurvival() && (entity == null || !entity.isAlliedTo((Entity) entityplayer)) && vec3d.closerThan(entityplayer.position(), d0) && (!entityplayer.hasEffect(holder) || entityplayer.getEffect(holder).getAmplifier() < mobeffect.getAmplifier() || entityplayer.getEffect(holder).endsWithin(i - 1));
|
||||
});
|
||||
|
||||
list.forEach((entityplayer) -> {
|
||||
- entityplayer.addEffect(new MobEffect(mobeffect), entity);
|
||||
+ entityplayer.addEffect(new MobEffect(mobeffect), entity, cause); // CraftBukkit
|
||||
});
|
||||
return list;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/world/effect/OozingMobEffect.java
|
||||
+++ b/net/minecraft/world/effect/OozingMobEffect.java
|
||||
@@ -52,7 +52,7 @@
|
||||
if (entityslime != null) {
|
||||
entityslime.setSize(2, true);
|
||||
entityslime.moveTo(d0, d1, d2, world.getRandom().nextFloat() * 360.0F, 0.0F);
|
||||
- world.addFreshEntity(entityslime);
|
||||
+ world.addFreshEntity(entityslime, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.POTION_EFFECT); // CraftBukkit
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/world/effect/PoisonMobEffect.java
|
||||
+++ b/net/minecraft/world/effect/PoisonMobEffect.java
|
||||
@@ -14,7 +14,7 @@
|
||||
@Override
|
||||
public boolean applyEffectTick(WorldServer worldserver, EntityLiving entityliving, int i) {
|
||||
if (entityliving.getHealth() > 1.0F) {
|
||||
- entityliving.hurtServer(worldserver, entityliving.damageSources().magic(), 1.0F);
|
||||
+ entityliving.hurtServer(worldserver, entityliving.damageSources().poison(), 1.0F); // CraftBukkit - DamageSource.MAGIC -> CraftEventFactory.POISON
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/world/effect/RegenerationMobEffect.java
|
||||
+++ b/net/minecraft/world/effect/RegenerationMobEffect.java
|
||||
@@ -12,7 +12,7 @@
|
||||
@Override
|
||||
public boolean applyEffectTick(WorldServer worldserver, EntityLiving entityliving, int i) {
|
||||
if (entityliving.getHealth() < entityliving.getMaxHealth()) {
|
||||
- entityliving.heal(1.0F);
|
||||
+ entityliving.heal(1.0F, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.MAGIC_REGEN); // CraftBukkit
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -0,0 +1,31 @@
|
||||
--- a/net/minecraft/world/effect/SaturationMobEffect.java
|
||||
+++ b/net/minecraft/world/effect/SaturationMobEffect.java
|
||||
@@ -4,6 +4,11 @@
|
||||
import net.minecraft.world.entity.EntityLiving;
|
||||
import net.minecraft.world.entity.player.EntityHuman;
|
||||
|
||||
+// CraftBukkit start
|
||||
+import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||
+import org.bukkit.craftbukkit.event.CraftEventFactory;
|
||||
+// CraftBukkit end
|
||||
+
|
||||
class SaturationMobEffect extends InstantMobEffect {
|
||||
|
||||
protected SaturationMobEffect(MobEffectInfo mobeffectinfo, int i) {
|
||||
@@ -13,7 +18,15 @@
|
||||
@Override
|
||||
public boolean applyEffectTick(WorldServer worldserver, EntityLiving entityliving, int i) {
|
||||
if (entityliving instanceof EntityHuman entityhuman) {
|
||||
- entityhuman.getFoodData().eat(i + 1, 1.0F);
|
||||
+ // CraftBukkit start
|
||||
+ int oldFoodLevel = entityhuman.getFoodData().foodLevel;
|
||||
+ org.bukkit.event.entity.FoodLevelChangeEvent event = CraftEventFactory.callFoodLevelChangeEvent(entityhuman, i + 1 + oldFoodLevel);
|
||||
+ if (!event.isCancelled()) {
|
||||
+ entityhuman.getFoodData().eat(event.getFoodLevel() - oldFoodLevel, 1.0F);
|
||||
+ }
|
||||
+
|
||||
+ ((CraftPlayer) entityhuman.getBukkitEntity()).sendHealthUpdate();
|
||||
+ // CraftBukkit end
|
||||
}
|
||||
|
||||
return true;
|
||||
Reference in New Issue
Block a user