This commit is contained in:
Blast-MC
2023-12-15 20:21:25 -05:00
parent 127dae4f19
commit 88ca112d35
30 changed files with 185 additions and 1597 deletions

View File

@@ -4,11 +4,11 @@ Date: Sat, 19 Jun 2021 16:30:39 -0400
Subject: [PATCH] Add SoundEvent
diff --git a/src/main/java/gg/projecteden/parchment/event/sound/ParchmentSoundEvent.java b/src/main/java/gg/projecteden/parchment/event/sound/ParchmentSoundEvent.java
diff --git a/src/main/java/gg/projecteden/gg/parchment/event/sound/ParchmentSoundEvent.java b/src/main/java/gg/projecteden/gg/parchment/event/sound/ParchmentSoundEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..44245b61f64e4e2eb21ac4f5e540aa9a583bfcfe
--- /dev/null
+++ b/src/main/java/gg/projecteden/parchment/event/sound/ParchmentSoundEvent.java
+++ b/src/main/java/gg/projecteden/gg/parchment/event/sound/ParchmentSoundEvent.java
@@ -0,0 +1,28 @@
+package gg.projecteden.parchment.event.sound;
+
@@ -39,10 +39,10 @@ index 0000000000000000000000000000000000000000..44245b61f64e4e2eb21ac4f5e540aa9a
+ }
+}
diff --git a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java
index db54a9c32578defa02fa58dc694c96684a4885ac..6c2477f066f887557e89456994a49ddaf1f8aa27 100644
index 99871023c54e387c6ef72a4307d945047aee87fe..4ce043faf03caf8858a86876b9125e274eb75c43 100644
--- a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java
+++ b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java
@@ -339,6 +339,40 @@ public final class PaperAdventure {
@@ -344,6 +344,41 @@ public final class PaperAdventure {
return asVanilla(source);
}
@@ -79,22 +79,23 @@ index db54a9c32578defa02fa58dc694c96684a4885ac..6c2477f066f887557e89456994a49dda
+ return Key.key(key.getNamespace(), key.getPath());
+ }
+ // Parchment end
+
+
public static Packet<?> asSoundPacket(final Sound sound, final double x, final double y, final double z, final long seed, @Nullable BiConsumer<Packet<?>, Float> packetConsumer) {
final ResourceLocation name = asVanilla(sound.name());
final Optional<SoundEvent> soundEvent = BuiltInRegistries.SOUND_EVENT.getOptional(name);
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 584a768f2ce1c98a1de7749060c47f21721f9055..c900dcd24fbbabf2bfc0e42015478b8af61c6b9d 100644
index b78a9628a88f2a495ef6de74446a02a14d41a1f6..abd5300282563a804290eb2e9333e59a0e8ac708 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1787,12 +1787,46 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1811,12 +1811,46 @@ public class ServerLevel extends Level implements WorldGenLevel {
@Override
public void playSeededSound(@Nullable Player except, double x, double y, double z, Holder<SoundEvent> sound, SoundSource category, float volume, float pitch, long seed) {
- this.server.getPlayerList().broadcast(except, x, y, z, (double) ((SoundEvent) sound.value()).getRange(volume), this.dimension(), new ClientboundSoundPacket(sound, category, x, y, z, volume, pitch, seed));
public void playSeededSound(@Nullable Player source, double x, double y, double z, Holder<SoundEvent> sound, SoundSource category, float volume, float pitch, long seed) {
- this.server.getPlayerList().broadcast(source, x, y, z, (double) ((SoundEvent) sound.value()).getRange(volume), this.dimension(), new ClientboundSoundPacket(sound, category, x, y, z, volume, pitch, seed));
+ // Parchment start - sound event
+ CraftEventFactory.playSoundEvent(new gg.projecteden.parchment.event.sound.SoundEvent(
+ except == null ? null : except.getBukkitEntity(),
+ source == null ? null : source.getBukkitEntity(),
+ net.kyori.adventure.sound.Sound.sound()
+ .type(sound.unwrap().<net.kyori.adventure.key.Key>map(
+ key -> io.papermc.paper.adventure.PaperAdventure.asAdventure(key.location()),
@@ -113,11 +114,11 @@ index 584a768f2ce1c98a1de7749060c47f21721f9055..c900dcd24fbbabf2bfc0e42015478b8a
}
@Override
public void playSeededSound(@Nullable Player except, Entity entity, Holder<SoundEvent> sound, SoundSource category, float volume, float pitch, long seed) {
- this.server.getPlayerList().broadcast(except, entity.getX(), entity.getY(), entity.getZ(), (double) ((SoundEvent) sound.value()).getRange(volume), this.dimension(), new ClientboundSoundEntityPacket(sound, category, entity, volume, pitch, seed));
public void playSeededSound(@Nullable Player source, Entity entity, Holder<SoundEvent> sound, SoundSource category, float volume, float pitch, long seed) {
- this.server.getPlayerList().broadcast(source, entity.getX(), entity.getY(), entity.getZ(), (double) ((SoundEvent) sound.value()).getRange(volume), this.dimension(), new ClientboundSoundEntityPacket(sound, category, entity, volume, pitch, seed));
+ // Parchment start - sound event
+ CraftEventFactory.playSoundEvent(new gg.projecteden.parchment.event.sound.SoundEvent(
+ except == null ? null : except.getBukkitEntity(),
+ source == null ? null : source.getBukkitEntity(),
+ net.kyori.adventure.sound.Sound.sound()
+ .type(sound.unwrap().<net.kyori.adventure.key.Key>map(
+ key -> io.papermc.paper.adventure.PaperAdventure.asAdventure(key.location()),
@@ -137,10 +138,10 @@ index 584a768f2ce1c98a1de7749060c47f21721f9055..c900dcd24fbbabf2bfc0e42015478b8a
@Override
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index f71a4a8307fb092d33545e12d253e0b80c884168..50dc222a2ebd08fe6ef2d45a6b16801a096f8681 100644
index 8efbbd379244e3ed54d4aba199037cc20ccd096a..823bc659f7421c3752e4cf1333e1568e1308464d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2336,7 +2336,20 @@ public class ServerPlayer extends Player {
@@ -2435,7 +2435,20 @@ public class ServerPlayer extends Player {
@Override
public void playNotifySound(SoundEvent event, SoundSource category, float volume, float pitch) {
@@ -163,10 +164,10 @@ index f71a4a8307fb092d33545e12d253e0b80c884168..50dc222a2ebd08fe6ef2d45a6b16801a
@Override
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 33abcf12b4426572b74ca4c813e4392c823494bc..f1627a528d703b87225573c400bdee8288254e36 100644
index a35638a92479b90afa89cf201fc45b49c9e767f3..70aa55d04875338b92d29faba18aee08a926e518 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -970,7 +970,7 @@ public abstract class PlayerList {
@@ -968,7 +968,7 @@ public abstract class PlayerList {
BlockState data = worldserver1.getBlockState(blockposition);
worldserver1.setBlock(blockposition, data.setValue(net.minecraft.world.level.block.RespawnAnchorBlock.CHARGE, data.getValue(net.minecraft.world.level.block.RespawnAnchorBlock.CHARGE) - 1), 3);
}
@@ -176,10 +177,10 @@ index 33abcf12b4426572b74ca4c813e4392c823494bc..f1627a528d703b87225573c400bdee82
}
// Added from changeDimension
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 481c3e321cfc0f20bb1c4c6942b8bdbd23c06339..2a9b0ba338f3bc8f3750deb6b93bd2099c867f28 100644
index 7f3466340891b4409d1399ebeb2ca865d77841cd..f459202c3a79128df936be4a1a2cd51bbc9143b8 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -1924,7 +1924,21 @@ public abstract class Player extends LivingEntity {
@@ -1839,7 +1839,21 @@ public abstract class Player extends LivingEntity {
private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) {
fromEntity.level().playSound(fromEntity, x, y, z, soundEffect, soundCategory, volume, pitch); // This will not send the effect to the entity himself
if (fromEntity instanceof ServerPlayer) {
@@ -216,10 +217,10 @@ index eaa2943b667967f93f28d9d794d702fdaeb670ec..df03f4867742cd194db260dfb81398b1
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 5dc160b743534665c6b3efb10b10f7c36e2da5ab..7f0c6e9d8ffb1126ac8dbf8c8c8c8888b5f2506c 100644
index f5a5ae30dfba21d5cf3990c046cfe41547e8a87a..dfd54e3f9016635c986afdb613c94be9bec91237 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -2166,4 +2166,42 @@ public class CraftEventFactory {
@@ -2177,4 +2177,42 @@ public class CraftEventFactory {
return event;
}
// Paper end - add EntityFertilizeEggEvent