mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-02 04:56:50 +01:00
ea0b63992c
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 4727d326 Don't let Sign extend SignSide, mark API as experimental 9b29bdcc PR-845: Add preliminary support for multi sided signs CraftBukkit Changes: b346a5f6d PR-1170: Add preliminary support for multi sided signs 86c816189 Update SQLite version d9324b4bc Fix addition of custom smithing trim / transform recipes Spigot Changes: 7d7b241e Rebuild patches
85 lines
3.5 KiB
Diff
85 lines
3.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Fri, 9 Dec 2022 01:47:23 -0800
|
|
Subject: [PATCH] fix Instruments
|
|
|
|
properly handle Player#playNote
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
index ff223f33c3fa712ed2c775836412cfed3624137a..53f2c187d6a16ba5566d74619bfaf058c684c0b7 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -777,62 +777,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
public void playNote(Location loc, Instrument instrument, Note note) {
|
|
if (this.getHandle().connection == null) return;
|
|
|
|
- String instrumentName = null;
|
|
- switch (instrument.ordinal()) {
|
|
- case 0:
|
|
- instrumentName = "harp";
|
|
- break;
|
|
- case 1:
|
|
- instrumentName = "basedrum";
|
|
- break;
|
|
- case 2:
|
|
- instrumentName = "snare";
|
|
- break;
|
|
- case 3:
|
|
- instrumentName = "hat";
|
|
- break;
|
|
- case 4:
|
|
- instrumentName = "bass";
|
|
- break;
|
|
- case 5:
|
|
- instrumentName = "flute";
|
|
- break;
|
|
- case 6:
|
|
- instrumentName = "bell";
|
|
- break;
|
|
- case 7:
|
|
- instrumentName = "guitar";
|
|
- break;
|
|
- case 8:
|
|
- instrumentName = "chime";
|
|
- break;
|
|
- case 9:
|
|
- instrumentName = "xylophone";
|
|
- break;
|
|
- case 10:
|
|
- instrumentName = "iron_xylophone";
|
|
- break;
|
|
- case 11:
|
|
- instrumentName = "cow_bell";
|
|
- break;
|
|
- case 12:
|
|
- instrumentName = "didgeridoo";
|
|
- break;
|
|
- case 13:
|
|
- instrumentName = "bit";
|
|
- break;
|
|
- case 14:
|
|
- instrumentName = "banjo";
|
|
- break;
|
|
- case 15:
|
|
- instrumentName = "pling";
|
|
- break;
|
|
- case 16:
|
|
- instrumentName = "xylophone";
|
|
- break;
|
|
+ // Paper start - fix all this (modeled off of NoteBlock)
|
|
+ net.minecraft.world.level.block.state.properties.NoteBlockInstrument nms = CraftBlockData.toNMS(instrument, net.minecraft.world.level.block.state.properties.NoteBlockInstrument.class);
|
|
+ float f;
|
|
+ if (nms.isTunable()) {
|
|
+ f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
|
|
+ } else {
|
|
+ f = 1.0f;
|
|
}
|
|
- float f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
|
|
- this.getHandle().connection.send(new ClientboundSoundPacket(BuiltInRegistries.SOUND_EVENT.wrapAsHolder(CraftSound.getSoundEffect("block.note_block." + instrumentName)), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
|
|
+ if (!nms.hasCustomSound()) {
|
|
+ this.getHandle().connection.send(new ClientboundSoundPacket(nms.getSoundEvent(), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
|
|
@Override
|