Updated README

This commit is contained in:
Harry Zhou 2022-07-04 21:31:17 -05:00
parent 9b4b3f8bd5
commit b56d31d368

View file

@ -1,53 +1,100 @@
# SongPlayer
A Fabric mod for Minecraft that plays noteblocks. The current version is for Minecraft 1.18.x.
# How to use
You can grab the jar from releases.
A Fabric mod for Minecraft that plays songs with noteblocks.
The current version is for Minecraft 1.19.x.
# How to install
You can grab the mod jar from releases section.
This mod requires fabric api.
# Adding songs
You can put midis in the .minecraft/songs folder.
You can put midis or NoteBlockStudio files in the `.minecraft/songs` folder.
SongPlayer supports any valid midi and all versions of NBS files.
# Using the client
To get started, add some midis or nbs files to your songs folder, and use `$play <filename>` in an open area.
If you have provided it a valid midi or nbs file, it will try to set your gamemode to creative, place the required noteblocks for the song, try to switch you to survival, then start playing.
# Commands
All the commands are case insensitive.
## $help
Lists commands
### $help
Lists all SongPlayer commands
## $help \<command>
### $help \<command>
Explains a command and shows the command usage.
## $play \<file name>
Plays a particular midi from the .minecraft/songs folder.
### $play \<filename or url>
Plays a particular midi from the .minecraft/songs folder, or, if a url is specified, downloads the song at that url and tries to play it.
## $playurl \<url>
Plays a midi from a particular url. The url should be a direct download link to a midi.
If there is a song already playing, the new song will be added to the queue.
## $stop
Stops playing/building
### $stop
Stops playing/building and clears the queue.
## $goto \<mm:ss>
### $skip
Skips the current song and goes to the next one in the queue.
### $goto \<mm:ss>
Goes to a specific time in the song.
## $loop
### $loop
Toggles song looping.
## $current
Gets the current song that is playing.
### $status
*aliases: `$current`*
Gets the status of the current song that is playing.
### $queue
*aliases: `$showqueue`*
Shows all the songs in the queue.
### $songs
*aliases: `$list`*
## $songs
Lists the songs in your .minecraft/songs folder.
## $setCreativeCommand \<command>
By default, the client uses /gmc to go into creative mode. However, /gmc does not work on all servers. If the creative command is different, set it with this command. For example, if the server uses vanilla commands, do `$setCreativeCommand /gamemode creative`.
### $setCreativeCommand \<command>
*aliases: `$sc`*
## $setSurvivalCommand \<command>
By default, the client uses /gms to go into survival mode. However, /gms does not work on all servers. If the survival command is different, set it with this command. For example, if the server uses vanilla commands, do `$setSurvivalCommand /gamemode survival`.
By default, the client uses /gmc to go into creative mode.
However, /gmc does not work on all servers.
If the creative command is different, set it with this command.
For example, if the server uses vanilla commands, do `$setCreativeCommand /gamemode creative`.
### $setSurvivalCommand \<command>
*aliases: `$ss`*
By default, the client uses /gms to go into survival mode.
However, /gms does not work on all servers.
If the survival command is different, set it with this command.
For example, if the server uses vanilla commands, do `$setSurvivalCommand /gamemode survival`.
### $useVanillaCommands
*aliases: `$essentials`, `$useEssentials`, `$essentialsCommands`*
Switch to using Essentials gamemode commands.
Equivalent to `$setCreativeCommand /gmc` and `$setSurvivalCommand /gms`
### $useVanillaCommands
*$aliases: `$vanilla`, `$useVanilla`, `$vanillaCommands`*
Switch to using vanilla gamemode commands.
Equivalent to `$setCreativeCommand /gamemode creative` and `$setSurvivalCommand /gamemode survival`
### $toggleFakePlayer
*aliases: `$fakePlayer`, `$fp`*
## $toggleFakePlayer
Toggles whether a fake player will show up to represent your true position while playing a song. When playing a song, since it automatically enables freecam, your true position will be different from your apparent position. The fake player will show where you actually are. By default, this is disabled.
### $testSong
A command I used used for testing during development.
It plays every single noteblock sound possible in order.
However, there are 400 possible noteblocks but the max stage size is 300, so that last 100 notes aren't played.
# Mechanism
SongPlayer places noteblocks with nbt and instrument data already in them, so the noteblocks do not need to be individually tuned. Ayunami2000 has previously done a proof-of-concept of this method.