From 8b64125842abf4d046b55837b7fade96fb2da678 Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Thu, 16 Jun 2022 16:09:02 -0300 Subject: [PATCH] Update to 1.19 --- build.gradle.kts | 6 +- gradle.properties | 6 +- patches/api/0001-More-note-block-events.patch | 4 +- ...fork-who-dis-Rebrand-to-SparklyPaper.patch | 18 +- .../server/0002-More-note-block-events.patch | 17 +- patches/server/0003-Vanish-Extensions.patch | 365 ------------------ 6 files changed, 25 insertions(+), 391 deletions(-) delete mode 100644 patches/server/0003-Vanish-Extensions.patch diff --git a/build.gradle.kts b/build.gradle.kts index 5fe3658..1dfc246 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,8 +3,8 @@ import io.papermc.paperweight.util.constants.* plugins { java `maven-publish` - id("com.github.johnrengelman.shadow") version "7.1.0" apply false - id("io.papermc.paperweight.patcher") version "1.3.4" + id("com.github.johnrengelman.shadow") version "7.1.2" apply false + id("io.papermc.paperweight.patcher") version "1.3.7" } repositories { @@ -15,7 +15,7 @@ repositories { } dependencies { - remapper("net.fabricmc:tiny-remapper:0.7.0:fat") + remapper("net.fabricmc:tiny-remapper:0.8.1:fat") decompiler("net.minecraftforge:forgeflower:1.5.498.22") paperclip("io.papermc:paperclip:3.0.2") } diff --git a/gradle.properties b/gradle.properties index 9567b6a..8081188 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ group=net.sparklypower.sparklypaper -version=1.18.2-R0.1-SNAPSHOT +version=1.19-R0.1-SNAPSHOT -mcVersion=1.18.2 -paperRef=4d83ed0ae112f4b704f7447d4f738be7878997e3 +mcVersion=1.19 +paperRef=2dcfb2b11fb0ef9807d01c81e891d90b74ba4750 org.gradle.caching=true org.gradle.parallel=true diff --git a/patches/api/0001-More-note-block-events.patch b/patches/api/0001-More-note-block-events.patch index 17c6dad..984dd88 100644 --- a/patches/api/0001-More-note-block-events.patch +++ b/patches/api/0001-More-note-block-events.patch @@ -56,13 +56,13 @@ index 0000000000000000000000000000000000000000..2a22bb7c80884bde59cafaff2b50f99d +} diff --git a/src/main/java/ml/beancraft/haricot/event/block/NoteBlockUpdateEvent.java b/src/main/java/ml/beancraft/haricot/event/block/NoteBlockUpdateEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..c1d8b37cb43d09244014963eb73f64e816d2b1cb +index 0000000000000000000000000000000000000000..747a850b8604adfec67893910b776634e04d2497 --- /dev/null +++ b/src/main/java/ml/beancraft/haricot/event/block/NoteBlockUpdateEvent.java @@ -0,0 +1,80 @@ +package ml.beancraft.haricot.event.block; + -+import org.apache.commons.lang.Validate; ++import org.apache.commons.lang3.Validate; +import org.bukkit.block.Block; +import org.bukkit.block.data.type.NoteBlock; +import org.bukkit.event.Cancellable; diff --git a/patches/server/0001-new-fork-who-dis-Rebrand-to-SparklyPaper.patch b/patches/server/0001-new-fork-who-dis-Rebrand-to-SparklyPaper.patch index 6611cbd..3e2a9a4 100644 --- a/patches/server/0001-new-fork-who-dis-Rebrand-to-SparklyPaper.patch +++ b/patches/server/0001-new-fork-who-dis-Rebrand-to-SparklyPaper.patch @@ -5,10 +5,10 @@ Subject: [PATCH] new fork who dis - Rebrand to SparklyPaper diff --git a/build.gradle.kts b/build.gradle.kts -index 028f6a1795ceb99d1760c73b0980238677b4b8bc..0216a5f72b5f3dec6cbebad9f400ac4211bc2c91 100644 +index 68b8f275f9c9e77a949ca29749a05b469bcdb910..2c9b86a203c9d01d4e8da370a7c5d56482acc1c2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -18,8 +18,12 @@ repositories { +@@ -9,8 +9,12 @@ plugins { } dependencies { @@ -16,14 +16,14 @@ index 028f6a1795ceb99d1760c73b0980238677b4b8bc..0216a5f72b5f3dec6cbebad9f400ac42 - implementation(project(":paper-mojangapi")) + // SparklyPaper start + implementation(project(":sparklypaper-api")) -+ implementation("io.papermc.paper:paper-mojangapi:1.18.2-R0.1-SNAPSHOT") { ++ implementation("io.papermc.paper:paper-mojangapi:1.19-R0.1-SNAPSHOT") { + exclude("io.papermc.paper", "paper-api") + } + // SparklyPaper end // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -68,7 +72,7 @@ tasks.jar { +@@ -64,7 +68,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -32,7 +32,7 @@ index 028f6a1795ceb99d1760c73b0980238677b4b8bc..0216a5f72b5f3dec6cbebad9f400ac42 "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -156,7 +160,7 @@ fun TaskContainer.registerRunTask( +@@ -152,7 +156,7 @@ fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { @@ -42,10 +42,10 @@ index 028f6a1795ceb99d1760c73b0980238677b4b8bc..0216a5f72b5f3dec6cbebad9f400ac42 standardInput = System.`in` workingDir = rootProject.layout.projectDirectory diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index eab93e1e3712c0a01cac187bf5944818c813d665..2c24ffd1be2187e1e6fae45122b704515d36777f 100644 +index 32dc0cd20a4dd8fc02be1f7ba3d727db826dbe5d..bdf17294ea47d353570b1f34ac532c0dc6a54722 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1709,7 +1709,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop -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 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 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);