9
0
mirror of https://github.com/SparklyPower/SparklyPaper.git synced 2025-12-28 19:39:06 +00:00

Merge pull request #2 from santosbpd/ver/1.18.2

Vanish extensions
This commit is contained in:
MrPowerGamerBR
2022-04-08 18:46:16 -03:00
committed by GitHub

View File

@@ -0,0 +1,365 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Breno Santos <git@breno.ooo>
Date: Wed, 30 Mar 2022 17:09:22 -0400
Subject: [PATCH] Vanish-Extensions
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 6ce27675103d4b691216c6b701b6ceb821af528f..3f761acf0b7056232c76a73c7d111cc003f3f111 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -84,6 +84,7 @@ import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.ai.village.poi.PoiManager;
import net.minecraft.world.entity.boss.EnderDragonPart;
+import net.minecraft.world.entity.projectile.Projectile; // SparklyPaper
import net.minecraft.world.level.ChunkPos;
import net.minecraft.world.level.GameRules;
import net.minecraft.world.level.chunk.ChunkAccess;
@@ -2340,6 +2341,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
flag = false;
}
// CraftBukkit end
+
+ // SparklyPaper start
+ if (this.entity instanceof Projectile projectile) {
+ if (projectile.getOwner() instanceof ServerPlayer shooter) {
+ if (!player.getBukkitEntity().canSee(shooter.getBukkitEntity())) {
+ flag = false;
+ }
+ }
+ }
+ // SparklyPaper end
+
if (flag) {
if (this.seenBy.add(player.connection)) {
this.serverEntity.addPairing(player);
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
index 53d0024daf6963ac4dab575666b0d6a74a39a958..c17e554fa59975adac8a1d2e4b1c9c0d0348f693 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
@@ -567,6 +567,8 @@ public abstract class AbstractArrow extends Projectile {
@Override
public void playerTouch(Player player) {
if (!this.level.isClientSide && (this.inGround || this.isNoPhysics()) && this.shakeTime <= 0) {
+ if (!canPickup(player)) return; // SparklyPaper
+
// CraftBukkit start
ItemStack itemstack = this.getPickupItem();
if (this.pickup == Pickup.ALLOWED && !itemstack.isEmpty() && player.getInventory().canHold(itemstack) > 0) {
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index ccaa97956e40c6a79371d813719f65687991ec5b..5846b901779c51ac4f24cb6998cdeeb38d258640 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -9,6 +9,10 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientboundAddEntityPacket;
import net.minecraft.server.level.ServerLevel;
+// SparklyPaper start
+import net.minecraft.server.level.ServerPlayer;
+import net.minecraft.sounds.SoundEvent;
+// SparklyPaper end
import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
@@ -234,6 +238,21 @@ public abstract class Projectile extends Entity {
}
}
+ // SparklyPaper start
+ @Override
+ public void playSound(SoundEvent sound, float volume, float pitch) {
+ ServerPlayer entityplayer = this.cachedOwner instanceof ServerPlayer player ? player : null;
+ this.level.playSound(entityplayer, this.getX(), this.getY(), this.getZ(), sound, this.getSoundSource(), volume, pitch);
+ }
+
+ protected boolean canPickup(Player player) {
+ if (player instanceof ServerPlayer serverplayer && this.tracker != null) {
+ return this.tracker.seenBy.contains(serverplayer.connection);
+ }
+ return true;
+ }
+ // SparklyPaper end
+
protected void updateRotation() {
Vec3 vec3d = this.getDeltaMovement();
double d0 = vec3d.horizontalDistance();
diff --git a/src/main/java/net/minecraft/world/item/BowItem.java b/src/main/java/net/minecraft/world/item/BowItem.java
index 08d597db1a5345a343777a01427655e6bf2c926b..43268e461446458649c146debbd23693ed26db09 100644
--- a/src/main/java/net/minecraft/world/item/BowItem.java
+++ b/src/main/java/net/minecraft/world/item/BowItem.java
@@ -1,6 +1,8 @@
package net.minecraft.world.item;
import java.util.function.Predicate;
+
+import net.minecraft.server.level.ServerPlayer; // SparklyPaper
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.stats.Stats;
@@ -92,7 +94,10 @@ public class BowItem extends ProjectileWeaponItem implements Vanishable {
// CraftBukkit end
}
- world.playSound((Player) null, entityhuman.getX(), entityhuman.getY(), entityhuman.getZ(), SoundEvents.ARROW_SHOOT, SoundSource.PLAYERS, 1.0F, 1.0F / (world.getRandom().nextFloat() * 0.4F + 1.2F) + f * 0.5F);
+ // SparklyPaper start
+ ServerPlayer shooter = entityhuman instanceof ServerPlayer serverplayer ? serverplayer : null;
+ world.playSound(shooter, entityhuman.getX(), entityhuman.getY(), entityhuman.getZ(), SoundEvents.ARROW_SHOOT, SoundSource.PLAYERS, 1.0F, 1.0F / (world.getRandom().nextFloat() * 0.4F + 1.2F) + f * 0.5F);
+ // SparklyPaper end
if (!flag1 && !entityhuman.getAbilities().instabuild) {
itemstack1.shrink(1);
if (itemstack1.isEmpty()) {
diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java
index c0c211c7227f4ce5d1e0e433419425e6bb13046f..20986be1c9f1fe1993f343600c832c9a6cd40952 100644
--- a/src/main/java/net/minecraft/world/item/CrossbowItem.java
+++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java
@@ -101,7 +101,10 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
CrossbowItem.setCharged(stack, true);
SoundSource soundcategory = user instanceof Player ? SoundSource.PLAYERS : SoundSource.HOSTILE;
- world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.CROSSBOW_LOADING_END, soundcategory, 1.0F, 1.0F / (world.getRandom().nextFloat() * 0.5F + 1.0F) + 0.2F);
+ // SparklyPaper start
+ ServerPlayer shooter = user instanceof ServerPlayer serverplayer ? serverplayer : null;
+ world.playSound(shooter, user.getX(), user.getY(), user.getZ(), SoundEvents.CROSSBOW_LOADING_END, soundcategory, 1.0F, 1.0F / (world.getRandom().nextFloat() * 0.5F + 1.0F) + 0.2F);
+ // SparklyPaper end
}
}
@@ -276,7 +279,11 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
}
}
// CraftBukkit end
- world.playSound((Player) null, shooter.getX(), shooter.getY(), shooter.getZ(), SoundEvents.CROSSBOW_SHOOT, SoundSource.PLAYERS, 1.0F, soundPitch);
+
+ // SparklyPaper start
+ ServerPlayer servershooter = (shooter instanceof ServerPlayer serverplayer) ? serverplayer : null;
+ world.playSound(servershooter, shooter.getX(), shooter.getY(), shooter.getZ(), SoundEvents.CROSSBOW_SHOOT, SoundSource.PLAYERS, 1.0F, soundPitch);
+ // SparklyPaper end
}
}
@@ -354,6 +361,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
SoundEvent soundeffect = this.getStartSound(j);
SoundEvent soundeffect1 = j == 0 ? SoundEvents.CROSSBOW_LOADING_MIDDLE : null;
float f = (float) (stack.getUseDuration() - remainingUseTicks) / (float) CrossbowItem.getChargeDuration(stack);
+ ServerPlayer shooter = (user instanceof ServerPlayer serverplayer) ? serverplayer : null; // SparklyPaper
if (f < 0.2F) {
this.startSoundPlayed = false;
@@ -362,12 +370,12 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
if (f >= 0.2F && !this.startSoundPlayed) {
this.startSoundPlayed = true;
- world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), soundeffect, SoundSource.PLAYERS, 0.5F, 1.0F);
+ world.playSound(shooter, user.getX(), user.getY(), user.getZ(), soundeffect, SoundSource.PLAYERS, 0.5F, 1.0F); // SparklyPaper
}
if (f >= 0.5F && soundeffect1 != null && !this.midLoadSoundPlayed) {
this.midLoadSoundPlayed = true;
- world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), soundeffect1, SoundSource.PLAYERS, 0.5F, 1.0F);
+ world.playSound(shooter, user.getX(), user.getY(), user.getZ(), soundeffect1, SoundSource.PLAYERS, 0.5F, 1.0F); // SparklyPaper
}
}
diff --git a/src/main/java/net/minecraft/world/item/EggItem.java b/src/main/java/net/minecraft/world/item/EggItem.java
index 58cb992c5defec2f092755cbde661ff10f38bf9d..41db96663de508c67f6843f1c2217b727dce65dd 100644
--- a/src/main/java/net/minecraft/world/item/EggItem.java
+++ b/src/main/java/net/minecraft/world/item/EggItem.java
@@ -1,5 +1,6 @@
package net.minecraft.world.item;
+import net.minecraft.server.level.ServerPlayer; // SparklyPaper
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.stats.Stats;
@@ -18,6 +19,7 @@ public class EggItem extends Item {
@Override
public InteractionResultHolder<ItemStack> use(Level world, Player user, InteractionHand hand) {
ItemStack itemstack = user.getItemInHand(hand);
+ ServerPlayer thrower = user instanceof ServerPlayer serverplayer ? serverplayer : null; // SparklyPaper
// world.playSound((EntityHuman) null, entityhuman.getX(), entityhuman.getY(), entityhuman.getZ(), SoundEffects.EGG_THROW, SoundCategory.PLAYERS, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); // CraftBukkit - moved down
if (!world.isClientSide) {
@@ -34,7 +36,7 @@ public class EggItem extends Item {
((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory();
}
- world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), net.minecraft.sounds.SoundEvents.EGG_THROW, net.minecraft.sounds.SoundSource.PLAYERS, 0.5F, 0.4F / (net.minecraft.world.entity.Entity.SHARED_RANDOM.nextFloat() * 0.4F + 0.8F));
+ world.playSound(thrower, user.getX(), user.getY(), user.getZ(), net.minecraft.sounds.SoundEvents.EGG_THROW, net.minecraft.sounds.SoundSource.PLAYERS, 0.5F, 0.4F / (net.minecraft.world.entity.Entity.SHARED_RANDOM.nextFloat() * 0.4F + 0.8F)); // SparklyPaper
user.awardStat(Stats.ITEM_USED.get(this));
} else {
if (user instanceof net.minecraft.server.level.ServerPlayer) {
@@ -44,7 +46,7 @@ public class EggItem extends Item {
}
// Paper end
}
- world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.EGG_THROW, SoundSource.PLAYERS, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F));
+ world.playSound(thrower, user.getX(), user.getY(), user.getZ(), SoundEvents.EGG_THROW, SoundSource.PLAYERS, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); // SparklyPaper
/* // Paper start - moved up
user.awardStat(Stats.ITEM_USED.get(this));
diff --git a/src/main/java/net/minecraft/world/item/EnderEyeItem.java b/src/main/java/net/minecraft/world/item/EnderEyeItem.java
index c624a2cb0f4c9d7e12387ece574c1f9f74528b0c..623917563b789c035e754046554afaa21b959624 100644
--- a/src/main/java/net/minecraft/world/item/EnderEyeItem.java
+++ b/src/main/java/net/minecraft/world/item/EnderEyeItem.java
@@ -114,7 +114,10 @@ public class EnderEyeItem extends Item {
CriteriaTriggers.USED_ENDER_EYE.trigger((ServerPlayer) user, blockposition);
}
- world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.ENDER_EYE_LAUNCH, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F));
+ // SparklyPaper start
+ ServerPlayer thrower = user instanceof ServerPlayer serverplayer ? serverplayer : null;
+ world.playSound(thrower, user.getX(), user.getY(), user.getZ(), SoundEvents.ENDER_EYE_LAUNCH, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F));
+ // SparklyPaper end
world.levelEvent((Player) null, 1003, user.blockPosition(), 0);
if (!user.getAbilities().instabuild) {
itemstack.shrink(1);
diff --git a/src/main/java/net/minecraft/world/item/EnderpearlItem.java b/src/main/java/net/minecraft/world/item/EnderpearlItem.java
index 749ab72edc0d2e9c6f1161415ab8d59d3d6ca976..9fc54fb6b97a3f413506de0c8bd9e3650000fd4d 100644
--- a/src/main/java/net/minecraft/world/item/EnderpearlItem.java
+++ b/src/main/java/net/minecraft/world/item/EnderpearlItem.java
@@ -1,5 +1,6 @@
package net.minecraft.world.item;
+import net.minecraft.server.level.ServerPlayer; // SparklyPaper
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.stats.Stats;
@@ -34,7 +35,10 @@ public class EnderpearlItem extends Item {
((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory();
}
- world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.ENDER_PEARL_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (net.minecraft.world.entity.Entity.SHARED_RANDOM.nextFloat() * 0.4F + 0.8F));
+ // SparklyPaper start
+ ServerPlayer thrower = user instanceof ServerPlayer serverplayer ? serverplayer : null;
+ world.playSound(thrower, user.getX(), user.getY(), user.getZ(), SoundEvents.ENDER_PEARL_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (net.minecraft.world.entity.Entity.SHARED_RANDOM.nextFloat() * 0.4F + 0.8F));
+ // SparklyPaper end
user.awardStat(Stats.ITEM_USED.get(this));
user.getCooldowns().addCooldown(this, 20);
} else {
diff --git a/src/main/java/net/minecraft/world/item/FishingRodItem.java b/src/main/java/net/minecraft/world/item/FishingRodItem.java
index 7a4ae2d69f530182f44a31eebd1c2e44ada5e44b..ecf8bdb2b8760049e30ebe35e6d43d85dd39bac8 100644
--- a/src/main/java/net/minecraft/world/item/FishingRodItem.java
+++ b/src/main/java/net/minecraft/world/item/FishingRodItem.java
@@ -1,5 +1,6 @@
package net.minecraft.world.item;
+import net.minecraft.server.level.ServerPlayer; // SparklyPaper
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.stats.Stats;
@@ -22,6 +23,7 @@ public class FishingRodItem extends Item implements Vanishable {
@Override
public InteractionResultHolder<ItemStack> use(Level world, Player user, InteractionHand hand) {
+ ServerPlayer angler = user instanceof ServerPlayer serverplayer ? serverplayer : null; // SparklyPaper
ItemStack itemstack = user.getItemInHand(hand);
int i;
@@ -33,7 +35,7 @@ public class FishingRodItem extends Item implements Vanishable {
});
}
- world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.FISHING_BOBBER_RETRIEVE, SoundSource.NEUTRAL, 1.0F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F));
+ world.playSound(angler, user.getX(), user.getY(), user.getZ(), SoundEvents.FISHING_BOBBER_RETRIEVE, SoundSource.NEUTRAL, 1.0F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); // SparklyPaper
world.gameEvent(user, GameEvent.FISHING_ROD_REEL_IN, (Entity) user);
} else {
// world.playSound((EntityHuman) null, entityhuman.getX(), entityhuman.getY(), entityhuman.getZ(), SoundEffects.FISHING_BOBBER_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F));
@@ -50,7 +52,7 @@ public class FishingRodItem extends Item implements Vanishable {
user.fishing = null;
return InteractionResultHolder.pass(itemstack);
}
- world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.FISHING_BOBBER_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F));
+ world.playSound(angler, user.getX(), user.getY(), user.getZ(), SoundEvents.FISHING_BOBBER_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); // SparklyPaper
world.addFreshEntity(entityfishinghook);
// CraftBukkit end
}
diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java
index 998758be827efbcb7693ed36ab1dffc0ef0369bf..5ea01e9d85c9ed490c902d20c902546bab8b6e90 100644
--- a/src/main/java/net/minecraft/world/item/TridentItem.java
+++ b/src/main/java/net/minecraft/world/item/TridentItem.java
@@ -4,6 +4,7 @@ import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.ImmutableMultimap.Builder;
import com.google.common.collect.Multimap;
import net.minecraft.core.BlockPos;
+import net.minecraft.server.level.ServerPlayer; // SparklyPaper
import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
@@ -61,6 +62,7 @@ public class TridentItem extends Item implements Vanishable {
public void releaseUsing(ItemStack stack, Level world, LivingEntity user, int remainingUseTicks) {
if (user instanceof Player) {
Player entityhuman = (Player) user;
+ ServerPlayer thrower = user instanceof ServerPlayer serverplayer ? serverplayer : null; // SparklyPaper
int j = this.getUseDuration(stack) - remainingUseTicks;
if (j >= 10) {
@@ -96,7 +98,7 @@ public class TridentItem extends Item implements Vanishable {
entitythrowntrident.tridentItem = stack.copy(); // SPIGOT-4511 update since damage call moved
// CraftBukkit end
- world.playSound((Player) null, (Entity) entitythrowntrident, SoundEvents.TRIDENT_THROW, SoundSource.PLAYERS, 1.0F, 1.0F);
+ world.playSound(thrower, (Entity) entitythrowntrident, SoundEvents.TRIDENT_THROW, SoundSource.PLAYERS, 1.0F, 1.0F); // SparklyPaper
if (!entityhuman.getAbilities().instabuild) {
entityhuman.getInventory().removeItem(stack);
}
@@ -144,7 +146,7 @@ public class TridentItem extends Item implements Vanishable {
soundeffect = SoundEvents.TRIDENT_RIPTIDE_1;
}
- world.playSound((Player) null, (Entity) entityhuman, soundeffect, SoundSource.PLAYERS, 1.0F, 1.0F);
+ world.playSound(thrower, (Entity) entityhuman, soundeffect, SoundSource.PLAYERS, 1.0F, 1.0F); // SparklyPaper
}
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 160c0f37aa3aaf7598f852acf9bd444f79444c97..e2179c94b08edfb578c31111689ee3cda0193487 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -27,12 +27,14 @@ import net.minecraft.core.SectionPos;
import net.minecraft.core.particles.ParticleOptions;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.protocol.Packet;
+import net.minecraft.network.protocol.game.*; // SparklyPaper
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MCUtil;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ChunkHolder;
import net.minecraft.server.level.ServerLevel;
+import net.minecraft.server.level.ServerPlayer; // SparklyPaper
import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth;
@@ -82,11 +84,7 @@ import net.minecraft.world.scores.Scoreboard;
// CraftBukkit start
import java.util.HashMap;
import java.util.Map;
-import net.minecraft.network.protocol.game.ClientboundSetBorderCenterPacket;
-import net.minecraft.network.protocol.game.ClientboundSetBorderLerpSizePacket;
-import net.minecraft.network.protocol.game.ClientboundSetBorderSizePacket;
-import net.minecraft.network.protocol.game.ClientboundSetBorderWarningDelayPacket;
-import net.minecraft.network.protocol.game.ClientboundSetBorderWarningDistancePacket;
+
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.CraftServer;
@@ -849,6 +847,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
return !this.dimensionType().hasFixedTime() && !this.isDay();
}
+ // SparklyPaper start
+ public void playSound(@Nullable ServerPlayer player, double x, double y, double z, SoundEvent sound, SoundSource category, float volume, float pitch) {
+ Packet<?> packet = new ClientboundSoundPacket(sound, category, x, y, z, volume, pitch);
+ if (player != null) player.connection.send(packet);
+ MinecraftServer.getServer().getPlayerList().broadcast(player, x, y, z, volume > 1.0F ? (double) (16.0F * volume) : 16.0D, this.dimension(), packet);
+ }
+
+ public void playSound(@Nullable ServerPlayer player, Entity entity, SoundEvent sound, SoundSource category, float volume, float pitch) {
+ playSound(player, entity.getX(), entity.getY(), entity.getZ(), sound, category, volume, pitch);
+ }
+ // SparklyPaper end
+
@Override
public void playSound(@Nullable Player player, BlockPos pos, SoundEvent sound, SoundSource category, float volume, float pitch) {
this.playSound(player, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, sound, category, volume, pitch);