The ultimate NBS player and manipulator plugin.
⚠️ Warning! This is currently indev. Soon, I will make an actions system with builds available for download.
This is a plugin, which allows you to play and manipulate NBS (Note Block Song) files.
If you know about the plugin NoteBlockMusicPlayer, then this is a more advanced version, with more features.
This plugin includes:
- An NBS player (global, regional and personal)
- An NBS editor (for quick edits, for making entire songs, use OpenNBS.)
- A flexible API
- Skript support (coming soon)
In NBUltimate, we have 3 player types. The priority is like this:
Regional -> Global -> Personal
Global | Regional | Personal | |
---|---|---|---|
Who is listening to the songs? | All players, regardless of their location. | All players in a specific region of the regional player. | To a single player. |
How many song players can there be? | 1 song player for the entire server | 1 song player per region | 1 song player per player. |
Can the players autoplay from a playlist? | No | Yes | No |
You may create your own custom music players by creating a custom player class.
Make sure to change the getPlayers()
method to your method of getting players.
For example, if you are using a regions plugin, you can get all players in a region and return that.
import cc.cerial.nbultimate.noteblock.BaseSongPlayer;
import cc.cerial.nbultimate.noteblock.NBCallback;
import net.raphimc.noteblocklib.player.SongPlayer;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import java.util.Set;
public class YourClass extends BaseSongPlayer {
private NBCallback callback;
public YourClass(Song<?, ?, ?> song, NBCallback callback) {
super(song, callback);
this.callback = callback;
getPlayers();
}
@Override
public Set<Player> getPlayers() {
// These are the players which the song will get played for.
// Obviously, you can change this however you like, but make sure to
// make your list an unmodifiable set.
return Set.copyOf(Bukkit.getOnlinePlayers());
}
}
Builds are available in this repo's GitHub Actions. Here are steps to retrieve the latest build:
-
Click on the Package button, it should download a zip file named Package.zip.
-
When the zip has been download, make sure to get the jar starting with NBUltimate (NOT original-NBUltimate).
-
Put that jar into your server, and restart your server. RELOADING VIA /RELOAD OR PLUGMAN IS NOT SUPPORTED!
Support Discord: https://discord.gg/8EX7SfMdGG