A Minecraft plugin that adds a playable piano to the game would allow players to interact with a piano in the game world.
This piano would function just like a real-life piano, allowing players to play individual notes or full melodies using their real keyboard with Desktop app connection.
The plugin would add a new level of creativity and musical expression to the game, allowing players to showcase their musical talents and compose their own tunes.
Additionally, the piano could be used as a decorative item in the game world, adding a new element of realism and immersion to the game.
Overall, this plugin would be a fun and unique addition to Minecraft, providing players with a new way to interact with the game world and express themselves.
When you've got problems with connection try to change `plugin.websocket.server-ip` or `plugin.websocket.port`
Check if you need to create new port in the server hosting panel and then set in to `plugin.websocket.port`
When your server use proxy use Proxy IP to `plugin.websocket.server-ip`
When you server IP has port ignore port. Example:
Wrong: `craftplayer.com:22225`
Correct: `craftplayer.com`
When you are running server locally set value to `localhost` to `plugin.websocket.server-ip`
When above solutions does not help set IP that you use in Minecraft server lists to `plugin.websocket.server-ip`
Code (YAML):
# # <PluginConfig> # # piano.models-limit # Limit of pianos that could be spawn on the server # # piano.piano-range # Piano became interactive when player distance to piano is lower or equal that `piano-range` # # # sounds.namespace # Name of the folder that sounds are save in resourcepack # # # sounds.sound-category # Define sound category from minecraft settings that sound will play in. # Allowed categories [AMBIENT, BLOCKS, HOSTILE, MASTER, MUSIC, NEUTRAL, RECORDS, VOICE, WEATHER] # # </PluginConfig> # # plugin.resourcepack.url # If you need to replace default resourcepack with your custom one # set this to link of you resourcepack # ! after plugin update make sure your custom resourcepack is compatible ! # # # plugin.resourcepack.download-on-join # Downloads resourcepack when player joins to server # # # plugin.websocket.run # When false websocket will not run # # # plugin.saving-frequency # Determinate how frequent data is saved to files, value in minutes # # # plugin.language # If you want add your language open `languages` folder copy `en.yml` call it as you want \n" + # "set `language` property to your file name and /reload server # # # plugin.websocket.port # Set port for websocket # ! Make sure that port is open # ! When you have server on hosting, generate new port on the hosting panel # # # # plugin.websocket.server-ip # Set own IP for websocket, by default plugin use IP of your server # ! When you are using proxy set here proxy IP # ! When you are running plugin locally on your PC, set 'localhost' # ! When default IP not works try use IP that you are using in minecraft server list # # plugin:
version: 1.2.3
resourcepack:
url: https://download.mc-packs.net/pack/5fb90b8870c925ec73f6debc7b7dfb18ec565ebc.zip
download-on-join: false
websocket:
run: true
port: 443
server-ip: localhost
saving-frequency: 5
language: en
piano:
models-limit: 10
piano-range: 3.0
skins:
value-1:
name: none custom-model-id: 0
material: AIR
value-2:
name: upright piano
custom-model-id: 167087
material: LEATHER_HORSE_ARMOR
value-3:
name: grand piano
custom-model-id: 167085
material: LEATHER_HORSE_ARMOR
value-4:
name: electric piano
custom-model-id: 167084
material: LEATHER_HORSE_ARMOR
value-5:
name: grand piano closed
custom-model-id: 167086
material: LEATHER_HORSE_ARMOR
sounds:
value-1:
name: Default
namespace: minecraft
sound-category: VOICE
Code (YAML):
commands: # /piano piano:
children: - lang
- colors
- update
- resourcepack
permissions: - jw-piano.commands.piano
description: base plugin commands, /piano opens piano list
usage: /piano
# /piano lang <language> lang:
permissions: - lang
arguments:
- language:
type: text
description: select language
options: - cs
- de
- en
- es
- fr
- it
- ko
- pl
- pt
- ru
- tr
- zh
description: Changes plugin languages, changes will be applied after server reload. Change be use both be player or console
usage: /piano lang <language
>
# colors colors:
children: - page
description: command used for internal color picker system, just ignore it
# page page:
arguments:
- color:
type: text
# /piano update update:
permissions: - update
description: download plugin latest version, can be trigger both by player or console
usage: /piano update
# /piano resourcepack link link:
description: sending to player resourcepack link
usage: /piano resourcepack link
Code (YAML):
permissions:
# ======================================== jw-piano ================================= jw-piano.*:
description: full access
# ======================================== jw-piano.piano =========================== jw-piano.piano.*:
description: full access
# ======================================== jw-piano.piano.keyboard ================== jw-piano.piano.keyboard.*:
description: full access
jw-piano.piano.keyboard.use:
description: player click on the piano keys
# ======================================== jw-piano.piano.bench ===================== jw-piano.piano.bench.*:
description: full access
jw-piano.piano.bench.use:
description: player sit on the bench
# ======================================== jw-piano.piano.pedal ===================== jw-piano.piano.pedal.*:
description: full access
jw-piano.piano.pedal.use:
description: player can push sustain pedal with 'f' press
# ======================================== jw-piano.commands ======================== jw-piano.commands.*:
description: full access
jw-piano.commands.piano:
description: player can open piano list gui
jw-piano.commands.lang:
description: Allow player to change plugin language
jw-piano.commands.update:
description: players with this permission can update plugin
# ======================================== jw-piano.gui ============================= jw-piano.gui.*:
description: full access
# ======================================== jw-piano.gui.midi-player ================= jw-piano.gui.midi-player.*:
description: full access
jw-piano.gui.midi-player.speed:
description: player can change speed of midi player
jw-piano.gui.midi-player.player-type:
description: MIDI player type
jw-piano.gui.midi-player.next-song:
description: player can play next song
jw-piano.gui.midi-player.previous-song:
description: player can play previous song
jw-piano.gui.midi-player.play-stop:
description: player can play or stop midi player
jw-piano.gui.midi-player.select-song:
description: player can add song to MIDI player
jw-piano.gui.midi-player.remove-song:
description: player can remove song from MIDI player
# ======================================== jw-piano.gui.bench ======================= jw-piano.gui.bench.*:
description: full access
jw-piano.gui.bench.move:
description: player can move bench around
# ======================================== jw-piano.gui.bench.settings ============== jw-piano.gui.bench.settings.*:
description: full access
jw-piano.gui.bench.settings.active:
description: player can disable bench
# ======================================== jw-piano.gui.piano ======================= jw-piano.gui.piano.*:
description: full access
jw-piano.gui.piano.generate-token:
description: player can generate token for desktop app
jw-piano.gui.piano.volume:
description: player can teleport to piano
jw-piano.gui.piano.rename:
description: player can rename piano
jw-piano.gui.piano.teleport:
description: player can teleport to piano
jw-piano.gui.piano.skin:
description: player can change piano skin
jw-piano.gui.piano.effect:
description: player can change piano particle effect
jw-piano.gui.piano.sound:
description: player can change piano sound
jw-piano.gui.piano.clear:
description: player can refresh piano model
# ======================================== jw-piano.gui.piano.settings ============== jw-piano.gui.piano.settings.*:
description: full access
jw-piano.gui.piano.settings.keyboard-pressing-active:
description: player can enable/disable clicking at the piano keys
jw-piano.gui.piano.settings.pedal-pressing-active:
description: player can enable/disable pushing sustain pedal after 'f' press
jw-piano.gui.piano.settings.desktop-app-active:
description: piano will receiving data from desktop-app
jw-piano.gui.piano.settings.pianist-active:
description: pianist will appear and start playing
# ======================================== jw-piano.gui.piano-list ================== jw-piano.gui.piano-list.*:
description: full access
jw-piano.gui.piano-list.create:
description: player can create piano
jw-piano.gui.piano-list.remove:
description: player can remove piano