9
0
mirror of https://github.com/SparklyPower/SparklyPaper.git synced 2026-01-04 15:41:34 +00:00

Update to 1.19

This commit is contained in:
MrPowerGamerBR
2022-06-16 16:09:02 -03:00
parent 53692f6ee6
commit 8b64125842
6 changed files with 25 additions and 391 deletions

View File

@@ -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")
}

View File

@@ -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

View File

@@ -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;

View File

@@ -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<JavaExec> = register<JavaExec>(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<TickTa
@@ -1654,7 +1654,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {
@@ -55,10 +55,10 @@ index eab93e1e3712c0a01cac187bf5944818c813d665..2c24ffd1be2187e1e6fae45122b70451
public SystemReport fillSystemReport(SystemReport details) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 1a1f5c8f9a049d65043f12374fe694068f7d08cf..e110dd95d39a1b7f5860b58170c789c64ea559f4 100644
index f1e5ccfbcd08a73ac3aba9a1cb7b414faef81f9e..cb30dcaa774970510a362a80bbea4c4fcd5f8de4 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -254,7 +254,7 @@ import javax.annotation.Nullable; // Paper
@@ -243,7 +243,7 @@ import javax.annotation.Nullable; // Paper
import javax.annotation.Nonnull; // Paper
public final class CraftServer implements Server {

View File

@@ -6,12 +6,12 @@ Subject: [PATCH] More note block events
From Haricot, thanks Kezz! https://github.com/kezz/Haricot/blob/dffbe897cd6db773c06cfad6304e20b54c7aa980/patches/server/0005-More-note-block-events.patch
diff --git a/src/main/java/net/minecraft/world/level/block/NoteBlock.java b/src/main/java/net/minecraft/world/level/block/NoteBlock.java
index 0e106bcc1f882877a5e444a2621466c6e4696d42..ca11f7a9f7f79e3050f351bb433dbf31f0738393 100644
index c14eb4f7decdbcd6176d3bff95d595a947d4ec95..4e45e2d7c262d7f3746ce0d1c9675fe0c75b7972 100644
--- a/src/main/java/net/minecraft/world/level/block/NoteBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/NoteBlock.java
@@ -20,6 +20,12 @@ import net.minecraft.world.level.block.state.properties.EnumProperty;
import net.minecraft.world.level.block.state.properties.IntegerProperty;
@@ -23,6 +23,12 @@ import net.minecraft.world.level.block.state.properties.IntegerProperty;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import net.minecraft.world.level.gameevent.GameEvent;
import net.minecraft.world.phys.BlockHitResult;
+// Haricot start
+import ml.beancraft.haricot.event.block.NoteBlockPlaceEvent;
@@ -22,7 +22,7 @@ index 0e106bcc1f882877a5e444a2621466c6e4696d42..ca11f7a9f7f79e3050f351bb433dbf31
public class NoteBlock extends Block {
@@ -34,12 +40,32 @@ public class NoteBlock extends Block {
@@ -37,12 +43,32 @@ public class NoteBlock extends Block {
@Override
public BlockState getStateForPlacement(BlockPlaceContext ctx) {
@@ -57,7 +57,7 @@ index 0e106bcc1f882877a5e444a2621466c6e4696d42..ca11f7a9f7f79e3050f351bb433dbf31
}
@Override
@@ -52,7 +78,22 @@ public class NoteBlock extends Block {
@@ -55,7 +81,22 @@ public class NoteBlock extends Block {
state = world.getBlockState(pos); // CraftBukkit - SPIGOT-5617: update in case changed in event
}
@@ -81,13 +81,13 @@ index 0e106bcc1f882877a5e444a2621466c6e4696d42..ca11f7a9f7f79e3050f351bb433dbf31
}
}
@@ -73,10 +114,23 @@ public class NoteBlock extends Block {
@@ -80,10 +121,22 @@ public class NoteBlock extends Block {
if (world.isClientSide) {
return InteractionResult.SUCCESS;
} else {
- state = (BlockState) state.cycle(NoteBlock.NOTE);
- world.setBlock(pos, state, 3);
- this.playNote(world, pos, state); // CraftBukkit
- this.playNote(player, world, pos, state); // CraftBukkit
- player.awardStat(Stats.TUNE_NOTEBLOCK);
+ // Haricot start - note block api
+ NoteBlockUpdateEvent event = new NoteBlockUpdateEvent(new CraftBlock(world, pos), new CraftNote(state),
@@ -101,11 +101,10 @@ index 0e106bcc1f882877a5e444a2621466c6e4696d42..ca11f7a9f7f79e3050f351bb433dbf31
+ .setValue(POWERED, event.getNewData().isPowered());
+
+ world.setBlock(pos, newData, 3);
+ this.playNote(world, pos, state); // CraftBukkit
+ this.playNote(player, world, pos, state); // CraftBukkit
+ player.awardStat(Stats.TUNE_NOTEBLOCK);
+ }
+ // Haricot end
+
return InteractionResult.CONSUME;
}
}

View File

@@ -1,365 +0,0 @@
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);