Update to Minecraft 1.19.4

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2023-03-15 03:30:00 +11:00
parent 90a887a912
commit 40076782ed
227 changed files with 2788 additions and 1621 deletions

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/projectile/EntityEgg.java
+++ b/net/minecraft/world/entity/projectile/EntityEgg.java
@@ -12,6 +12,15 @@
@@ -11,6 +11,15 @@
import net.minecraft.world.phys.MovingObjectPosition;
import net.minecraft.world.phys.MovingObjectPositionEntity;
@@ -16,7 +16,7 @@
public class EntityEgg extends EntityProjectileThrowable {
public EntityEgg(EntityTypes<? extends EntityEgg> entitytypes, World world) {
@@ -48,22 +57,42 @@
@@ -47,22 +56,42 @@
protected void onHit(MovingObjectPosition movingobjectposition) {
super.onHit(movingobjectposition);
if (!this.level.isClientSide) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/projectile/EntityEnderPearl.java
+++ b/net/minecraft/world/entity/projectile/EntityEnderPearl.java
@@ -17,6 +17,13 @@
@@ -16,6 +16,13 @@
import net.minecraft.world.phys.MovingObjectPosition;
import net.minecraft.world.phys.MovingObjectPositionEntity;
@@ -14,10 +14,10 @@
public class EntityEnderPearl extends EntityProjectileThrowable {
public EntityEnderPearl(EntityTypes<? extends EntityEnderPearl> entitytypes, World world) {
@@ -53,23 +60,36 @@
@@ -52,23 +59,36 @@
EntityPlayer entityplayer = (EntityPlayer) entity;
if (entityplayer.connection.getConnection().isConnected() && entityplayer.level == this.level && !entityplayer.isSleeping()) {
if (entityplayer.connection.isAcceptingMessages() && entityplayer.level == this.level && !entityplayer.isSleeping()) {
- if (this.random.nextFloat() < 0.05F && this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING)) {
- EntityEndermite entityendermite = (EntityEndermite) EntityTypes.ENDERMITE.create(this.level);
+ // CraftBukkit start - Fire PlayerTeleportEvent
@@ -29,7 +29,7 @@
+ PlayerTeleportEvent teleEvent = new PlayerTeleportEvent(player, player.getLocation(), location, PlayerTeleportEvent.TeleportCause.ENDER_PEARL);
+ Bukkit.getPluginManager().callEvent(teleEvent);
+
+ if (!teleEvent.isCancelled() && !entityplayer.connection.isDisconnected()) {
+ if (!teleEvent.isCancelled() && !entityplayer.connection.isAcceptingMessages()) {
+ if (this.random.nextFloat() < 0.05F && this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING)) {
+ EntityEndermite entityendermite = (EntityEndermite) EntityTypes.ENDERMITE.create(this.level);
+
@@ -54,17 +54,17 @@
+ entityplayer.connection.teleport(teleEvent.getTo());
+ entity.resetFallDistance();
+ CraftEventFactory.entityDamage = this;
+ entity.hurt(DamageSource.FALL, 5.0F);
+ entity.hurt(this.damageSources().fall(), 5.0F);
+ CraftEventFactory.entityDamage = null;
}
-
- entity.resetFallDistance();
- entity.hurt(DamageSource.FALL, 5.0F);
- entity.hurt(this.damageSources().fall(), 5.0F);
+ // CraftBukkit end
}
} else if (entity != null) {
entity.teleportTo(this.getX(), this.getY(), this.getZ());
@@ -98,7 +118,7 @@
@@ -97,7 +117,7 @@
public Entity changeDimension(WorldServer worldserver) {
Entity entity = this.getOwner();

View File

@@ -1,11 +1,11 @@
--- a/net/minecraft/world/entity/projectile/EntityEvokerFangs.java
+++ b/net/minecraft/world/entity/projectile/EntityEvokerFangs.java
@@ -128,7 +128,9 @@
@@ -129,7 +129,9 @@
if (entityliving.isAlive() && !entityliving.isInvulnerable() && entityliving != entityliving1) {
if (entityliving1 == null) {
+ org.bukkit.craftbukkit.event.CraftEventFactory.entityDamage = this; // CraftBukkit
entityliving.hurt(DamageSource.MAGIC, 6.0F);
entityliving.hurt(this.damageSources().magic(), 6.0F);
+ org.bukkit.craftbukkit.event.CraftEventFactory.entityDamage = null; // CraftBukkit
} else {
if (entityliving1.isAlliedTo((Entity) entityliving)) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/projectile/EntityFireworks.java
+++ b/net/minecraft/world/entity/projectile/EntityFireworks.java
@@ -29,6 +29,8 @@
@@ -28,6 +28,8 @@
import net.minecraft.world.phys.MovingObjectPositionEntity;
import net.minecraft.world.phys.Vec3D;
@@ -9,7 +9,7 @@
public class EntityFireworks extends IProjectile implements ItemSupplier {
public static final DataWatcherObject<ItemStack> DATA_ID_FIREWORKS_ITEM = DataWatcher.defineId(EntityFireworks.class, DataWatcherRegistry.ITEM_STACK);
@@ -144,7 +146,7 @@
@@ -143,7 +145,7 @@
MovingObjectPosition movingobjectposition = ProjectileHelper.getHitResult(this, this::canHitEntity);
if (!this.noPhysics) {
@@ -18,7 +18,7 @@
this.hasImpulse = true;
}
@@ -159,7 +161,11 @@
@@ -158,7 +160,11 @@
}
if (!this.level.isClientSide && this.life > this.lifetime) {
@@ -31,7 +31,7 @@
}
}
@@ -175,7 +181,11 @@
@@ -174,7 +180,11 @@
protected void onHitEntity(MovingObjectPositionEntity movingobjectpositionentity) {
super.onHitEntity(movingobjectpositionentity);
if (!this.level.isClientSide) {
@@ -44,7 +44,7 @@
}
}
@@ -185,7 +195,11 @@
@@ -184,7 +194,11 @@
this.level.getBlockState(blockposition).entityInside(this.level, blockposition, this);
if (!this.level.isClientSide() && this.hasExplosion()) {
@@ -57,22 +57,22 @@
}
super.onHitBlock(movingobjectpositionblock);
@@ -211,7 +225,9 @@
@@ -210,7 +224,9 @@
if (f > 0.0F) {
if (this.attachedToEntity != null) {
+ CraftEventFactory.entityDamage = this; // CraftBukkit
this.attachedToEntity.hurt(DamageSource.fireworks(this, this.getOwner()), 5.0F + (float) (nbttaglist.size() * 2));
this.attachedToEntity.hurt(this.damageSources().fireworks(this, this.getOwner()), 5.0F + (float) (nbttaglist.size() * 2));
+ CraftEventFactory.entityDamage = null; // CraftBukkit
}
double d0 = 5.0D;
@@ -238,7 +254,9 @@
@@ -237,7 +253,9 @@
if (flag) {
float f1 = f * (float) Math.sqrt((5.0D - (double) this.distanceTo(entityliving)) / 5.0D);
+ CraftEventFactory.entityDamage = this; // CraftBukkit
entityliving.hurt(DamageSource.fireworks(this, this.getOwner()), f1);
entityliving.hurt(this.damageSources().fireworks(this, this.getOwner()), f1);
+ CraftEventFactory.entityDamage = null; // CraftBukkit
}
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/projectile/EntityLargeFireball.java
+++ b/net/minecraft/world/entity/projectile/EntityLargeFireball.java
@@ -10,17 +10,21 @@
@@ -9,17 +9,21 @@
import net.minecraft.world.phys.MovingObjectPosition;
import net.minecraft.world.phys.MovingObjectPositionEntity;
@@ -22,7 +22,7 @@
}
@Override
@@ -29,7 +33,15 @@
@@ -28,7 +32,15 @@
if (!this.level.isClientSide) {
boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING);
@@ -39,7 +39,7 @@
this.discard();
}
@@ -60,7 +72,8 @@
@@ -59,7 +71,8 @@
public void readAdditionalSaveData(NBTTagCompound nbttagcompound) {
super.readAdditionalSaveData(nbttagcompound);
if (nbttagcompound.contains("ExplosionPower", 99)) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/projectile/EntityLlamaSpit.java
+++ b/net/minecraft/world/entity/projectile/EntityLlamaSpit.java
@@ -33,7 +33,7 @@
@@ -32,7 +32,7 @@
Vec3D vec3d = this.getDeltaMovement();
MovingObjectPosition movingobjectposition = ProjectileHelper.getHitResult(this, this::canHitEntity);

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/projectile/EntityPotion.java
+++ b/net/minecraft/world/entity/projectile/EntityPotion.java
@@ -32,6 +32,16 @@
@@ -31,6 +31,16 @@
import net.minecraft.world.phys.MovingObjectPositionBlock;
import net.minecraft.world.phys.MovingObjectPositionEntity;
@@ -17,7 +17,7 @@
public class EntityPotion extends EntityProjectileThrowable implements ItemSupplier {
public static final double SPLASH_RANGE = 4.0D;
@@ -100,7 +110,7 @@
@@ -99,7 +109,7 @@
if (flag) {
this.applyWater();
@@ -26,7 +26,7 @@
if (this.isLingering()) {
this.makeAreaOfEffectCloud(itemstack, potionregistry);
} else {
@@ -149,6 +159,7 @@
@@ -148,6 +158,7 @@
private void applySplash(List<MobEffect> list, @Nullable Entity entity) {
AxisAlignedBB axisalignedbb = this.getBoundingBox().inflate(4.0D, 2.0D, 4.0D);
List<EntityLiving> list1 = this.level.getEntitiesOfClass(EntityLiving.class, axisalignedbb);
@@ -34,8 +34,8 @@
if (!list1.isEmpty()) {
Entity entity1 = this.getEffectSource();
@@ -167,21 +178,47 @@
d1 = 1.0D;
@@ -168,24 +179,50 @@
d1 = 1.0D - Math.sqrt(d0) / 4.0D;
}
- Iterator iterator1 = list.iterator();
@@ -76,7 +76,10 @@
+ if (mobeffectlist.isInstantenous()) {
+ mobeffectlist.applyInstantenousEffect(this, this.getOwner(), entityliving, mobeffect.getAmplifier(), d1);
+ } else {
+ int i = (int) (d1 * (double) mobeffect.getDuration() + 0.5D);
+ int i = mobeffect.mapDuration((j) -> {
+ return (int) (d1 * (double) j + 0.5D);
+ });
+ MobEffect mobeffect1 = new MobEffect(mobeffectlist, i, mobeffect.getAmplifier(), mobeffect.isAmbient(), mobeffect.isVisible());
- while (iterator1.hasNext()) {
- MobEffect mobeffect = (MobEffect) iterator1.next();
@@ -85,18 +88,21 @@
- if (mobeffectlist.isInstantenous()) {
- mobeffectlist.applyInstantenousEffect(this, this.getOwner(), entityliving, mobeffect.getAmplifier(), d1);
- } else {
- int i = (int) (d1 * (double) mobeffect.getDuration() + 0.5D);
- int i = mobeffect.mapDuration((j) -> {
- return (int) (d1 * (double) j + 0.5D);
- });
- MobEffect mobeffect1 = new MobEffect(mobeffectlist, i, mobeffect.getAmplifier(), mobeffect.isAmbient(), mobeffect.isVisible());
-
- if (i > 20) {
- entityliving.addEffect(new MobEffect(mobeffectlist, i, mobeffect.getAmplifier(), mobeffect.isAmbient(), mobeffect.isVisible()), entity1);
- if (!mobeffect1.endsWithin(20)) {
- entityliving.addEffect(mobeffect1, entity1);
- }
- }
+ if (i > 20) {
+ entityliving.addEffect(new MobEffect(mobeffectlist, i, mobeffect.getAmplifier(), mobeffect.isAmbient(), mobeffect.isVisible()), entity1, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.POTION_SPLASH); // CraftBukkit
+ if (!mobeffect1.endsWithin(20)) {
+ entityliving.addEffect(mobeffect1, entity1, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.POTION_SPLASH); // CraftBukkit
}
}
}
@@ -217,7 +254,14 @@
@@ -221,7 +258,14 @@
entityareaeffectcloud.setFixedColor(nbttagcompound.getInt("CustomPotionColor"));
}
@@ -112,7 +118,7 @@
}
public boolean isLingering() {
@@ -228,13 +272,25 @@
@@ -232,13 +276,25 @@
IBlockData iblockdata = this.level.getBlockState(blockposition);
if (iblockdata.is(TagsBlock.FIRE)) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/projectile/EntityShulkerBullet.java
+++ b/net/minecraft/world/entity/projectile/EntityShulkerBullet.java
@@ -59,8 +59,21 @@
@@ -60,8 +60,21 @@
this.finalTarget = entity;
this.currentMoveDirection = EnumDirection.UP;
this.selectNextMoveDirection(enumdirection_enumaxis);
@@ -22,7 +22,7 @@
@Override
public SoundCategory getSoundSource() {
return SoundCategory.HOSTILE;
@@ -224,7 +237,7 @@
@@ -225,7 +238,7 @@
MovingObjectPosition movingobjectposition = ProjectileHelper.getHitResult(this, this::canHitEntity);
if (movingobjectposition.getType() != MovingObjectPosition.EnumMovingObjectType.MISS) {
@@ -31,16 +31,16 @@
}
}
@@ -291,7 +304,7 @@
if (flag) {
this.doEnchantDamageEffects(entityliving, entity);
@@ -294,7 +307,7 @@
if (entity instanceof EntityLiving) {
- ((EntityLiving) entity).addEffect(new MobEffect(MobEffects.LEVITATION, 200), (Entity) MoreObjects.firstNonNull(entity1, this));
+ ((EntityLiving) entity).addEffect(new MobEffect(MobEffects.LEVITATION, 200), (Entity) MoreObjects.firstNonNull(entity1, this), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK); // CraftBukkit
EntityLiving entityliving1 = (EntityLiving) entity;
- entityliving1.addEffect(new MobEffect(MobEffects.LEVITATION, 200), (Entity) MoreObjects.firstNonNull(entity1, this));
+ entityliving1.addEffect(new MobEffect(MobEffects.LEVITATION, 200), (Entity) MoreObjects.firstNonNull(entity1, this), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK); // CraftBukkit
}
}
@@ -317,6 +330,11 @@
@@ -325,6 +338,11 @@
@Override
public boolean hurt(DamageSource damagesource, float f) {

View File

@@ -34,7 +34,7 @@
+ entity.setSecondsOnFire(event.getDuration(), false);
+ }
+ // CraftBukkit end
if (!entity.hurt(DamageSource.fireball(this, entity1), 5.0F)) {
if (!entity.hurt(this.damageSources().fireball(this, entity1), 5.0F)) {
entity.setRemainingFireTicks(i);
} else if (entity1 instanceof EntityLiving) {
@@ -51,10 +65,10 @@

View File

@@ -26,16 +26,16 @@
public int getColor() {
return (Integer) this.entityData.get(EntityTippedArrow.ID_EFFECT_COLOR);
}
@@ -210,7 +229,7 @@
while (iterator.hasNext()) {
@@ -212,7 +231,7 @@
mobeffect = (MobEffect) iterator.next();
- entityliving.addEffect(new MobEffect(mobeffect.getEffect(), Math.max(mobeffect.getDuration() / 8, 1), mobeffect.getAmplifier(), mobeffect.isAmbient(), mobeffect.isVisible()), entity);
+ entityliving.addEffect(new MobEffect(mobeffect.getEffect(), Math.max(mobeffect.getDuration() / 8, 1), mobeffect.getAmplifier(), mobeffect.isAmbient(), mobeffect.isVisible()), entity, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ARROW); // CraftBukkit
entityliving.addEffect(new MobEffect(mobeffect.getEffect(), Math.max(mobeffect.mapDuration((i) -> {
return i / 8;
- }), 1), mobeffect.getAmplifier(), mobeffect.isAmbient(), mobeffect.isVisible()), entity);
+ }), 1), mobeffect.getAmplifier(), mobeffect.isAmbient(), mobeffect.isVisible()), entity, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ARROW); // CraftBukkit
}
if (!this.effects.isEmpty()) {
@@ -218,7 +237,7 @@
@@ -220,7 +239,7 @@
while (iterator.hasNext()) {
mobeffect = (MobEffect) iterator.next();

View File

@@ -18,16 +18,16 @@
}
}
} else {
@@ -80,7 +82,7 @@
@@ -81,7 +83,7 @@
}
if (b0 > 0) {
- ((EntityLiving) entity).addEffect(new MobEffect(MobEffects.WITHER, 20 * b0, 1), this.getEffectSource());
+ ((EntityLiving) entity).addEffect(new MobEffect(MobEffects.WITHER, 20 * b0, 1), this.getEffectSource(), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK); // CraftBukkit
- entityliving.addEffect(new MobEffect(MobEffects.WITHER, 20 * b0, 1), this.getEffectSource());
+ entityliving.addEffect(new MobEffect(MobEffects.WITHER, 20 * b0, 1), this.getEffectSource(), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK); // CraftBukkit
}
}
@@ -91,7 +93,15 @@
@@ -92,7 +94,15 @@
protected void onHit(MovingObjectPosition movingobjectposition) {
super.onHit(movingobjectposition);
if (!this.level.isClientSide) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/projectile/IProjectile.java
+++ b/net/minecraft/world/entity/projectile/IProjectile.java
@@ -23,6 +23,10 @@
@@ -24,6 +24,10 @@
import net.minecraft.world.phys.MovingObjectPositionEntity;
import net.minecraft.world.phys.Vec3D;
@@ -8,10 +8,10 @@
+import org.bukkit.projectiles.ProjectileSource;
+// CraftBukkit end
+
public abstract class IProjectile extends Entity {
public abstract class IProjectile extends Entity implements TraceableEntity {
@Nullable
@@ -32,6 +36,10 @@
@@ -33,6 +37,10 @@
private boolean leftOwner;
private boolean hasBeenShot;
@@ -22,7 +22,7 @@
IProjectile(EntityTypes<? extends IProjectile> entitytypes, World world) {
super(entitytypes, world);
}
@@ -41,6 +49,7 @@
@@ -42,6 +50,7 @@
this.ownerUUID = entity.getUUID();
this.cachedOwner = entity;
}
@@ -30,7 +30,7 @@
}
@@ -144,6 +153,16 @@
@@ -146,6 +155,16 @@
this.setDeltaMovement(this.getDeltaMovement().add(vec3d.x, entity.isOnGround() ? 0.0D : vec3d.y, vec3d.z));
}
@@ -47,7 +47,7 @@
protected void onHit(MovingObjectPosition movingobjectposition) {
MovingObjectPosition.EnumMovingObjectType movingobjectposition_enummovingobjecttype = movingobjectposition.getType();
@@ -164,6 +183,11 @@
@@ -166,6 +185,11 @@
protected void onHitEntity(MovingObjectPositionEntity movingobjectpositionentity) {}
protected void onHitBlock(MovingObjectPositionBlock movingobjectpositionblock) {