Nota
Port of the NoteBlock API for fabric, play .nbs files as noteblock sounds. This port is not complete replica, some features are missing or unfinished. You can find original spigot plugin here. This library can be used server-side only or in singleplayer.
Example
Development
Adding to your project
To use Nota in your project add the Modrinth repository to your build file and a mod dependency. Replace the VERSION_TAG
with the latest version, for example 0.1.0+1.19
repositories {
maven {
url "https://api.modrinth.com/maven"
content { includeGroup "maven.modrinth" }
}
}
dependencies {
modImplementation include("maven.modrinth:nota:VERSION_TAG")
}
How to get .nbs
- Download .nbs files, you can simply download a few songs here.
- Convert .midi to .nbs with Note Block Studio.
- Create a song in Note Block Studio and export it as .nbs file.
Playing songs
Song in .nbs format have to be loaded before you can use it.
Song song = NBSDecoder.parse(new File("path/to/song.nbs"));
Song song2 = NBSDecoder.parse(new File("path/to/another/song.nbs"));
Playlist playlist = new Playlist(song, song2,...);
SongPlayer types
There are 3 types of SongPlayer:
- RadioSongPlayer
- PositionSongPlayer
- EntitySongPlayer
RadioSongPlayer
Plays song for all added players no matter where they are.
Song song; // Preloaded song
RadioSongPlayer rsp = new RadioSongPlayer(song); // Create RadioSongPlayer.
rsp.setId(new Identifier("example:radio")); // Set unique identifier, not necessary
rsp.addPlayer(player); // Add player to SongPlayer so they will hear the song.
rsp.setPlaying(true); // Start RadioSongPlayer playback
PositionSongPlayer
Plays song for all added players in specified range from specified point.
Song song; // Preloaded song
PositionSongPlayer psp = new PositionSongPlayer(song); // Create PositionSongPlayer.
psp.setId(new Identifier("example:position")); // Set unique identifier, not necessary
psp.setBlockPos(pos); // Set location where the song will be playing
psp.setDistance(16); // Set distance from target location in which players will hear the SongPlayer, default: 16
psp.addPlayer(player); // Add player to SongPlayer so they will hear the song.
psp.setPlaying(true); // Start PositionSongPlayer playback
EntitySongPlayer
Plays song for all added players in specified range from specified entity.
Song song; // Preloaded song
EntitySongPlayer esp = new EntitySongPlayer(song); // Create EntitySongPlayer.
esp.setId(new Identifier("example:entity")); // Set unique identifier, not necessary
esp.setEntity(entity); // Set entity which position will be used
esp.setDistance(16); // Set distance from target location in which players will hear the SongPlayer, default: 16
esp.addPlayer(player); // Add player to SongPlayer so they will hear the song.
esp.setPlaying(true); // Start EntitySongPlayer playback
External resources
Project members
PinkGoosik
Owner
Technical information
License
LGPL-3.0-only
Client side
unsupported
Server side
required
Project ID