From c2253055a01b7ede01cc56186a5f29f99b8effbf Mon Sep 17 00:00:00 2001 From: amy <144570677+amyavi@users.noreply.github.com> Date: Sun, 29 Mar 2026 16:03:31 -0300 Subject: [PATCH] fix: allow playing long songs This is actually an unsigned short, not a short. See https://noteblock.world/song/b91BWfUTnH for an example --- .../java/land/chipmunk/chipmunkmod/song/NBSConverter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/land/chipmunk/chipmunkmod/song/NBSConverter.java b/src/main/java/land/chipmunk/chipmunkmod/song/NBSConverter.java index 960f5f6..bb5913b 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/song/NBSConverter.java +++ b/src/main/java/land/chipmunk/chipmunkmod/song/NBSConverter.java @@ -78,9 +78,9 @@ public class NBSConverter { } final ArrayList nbsNotes = new ArrayList<>(); - short tick = -1; + int tick = -1; while (true) { - final int tickJumps = buffer.getShort(); + final int tickJumps = Short.toUnsignedInt(buffer.getShort()); if (tickJumps == 0) break; tick += tickJumps; @@ -231,6 +231,7 @@ public class NBSConverter { String sound = Util.sanitizeName(path, Identifier::isAllowedInIdentifier) .replaceFirst("\\.ogg$", "") .replaceFirst("^minecraft/", "") + .replaceFirst("\\d+$", "") .replace('/', '.'); // if there's no path, it's probably a note block sound