mirror of
https://github.com/SparklyPower/SparklyPaper.git
synced 2025-12-28 19:39:06 +00:00
365
patches/server/0003-Vanish-Extensions.patch
Normal file
365
patches/server/0003-Vanish-Extensions.patch
Normal 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);
|
||||
Reference in New Issue
Block a user