这是一款为 Minecraft 添加可演奏钢琴的插件。玩家可以在游戏世界中与钢琴交互,通过 Desktop app connection 使用真实键盘演奏单音或完整旋律,同时也能将钢琴作为装饰物摆放,增强创造力、音乐表现力与沉浸感。
#Generated template for Oraxen, It only contains models from pianopack
#Remember to refresh config when pianopack got updated
#Note that when you change LEATHER_HORSE_ARMOR to other material functionalities as Colored keys, Pianos, will not work
bench :
displayname
: bench
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/bench
custom_model_data
: 167072
flyingnote :
displayname
: flyingnote
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/flyingnote
custom_model_data
: 167073
icon :
displayname
: icon
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/icons/icon
custom_model_data
: 167074
piano-black-key :
displayname
: piano black key
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/key/piano_black_key
custom_model_data
: 167075
piano-black-key-down :
displayname
: piano black key down
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/key/piano_black_key_down
custom_model_data
: 167076
piano-key :
displayname
: piano key
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/key/piano_key
custom_model_data
: 167077
piano-key-down :
displayname
: piano key down
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/key/piano_key_down
custom_model_data
: 167078
piano-pedal :
displayname
: piano pedal
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/pedal/piano_pedal
custom_model_data
: 167079
piano-pedal-down :
displayname
: piano pedal down
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/pedal/piano_pedal_down
custom_model_data
: 167080
pianist-body :
displayname
: pianist body
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/pianist/pianist_body
custom_model_data
: 167081
pianist-hands :
displayname
: pianist hands
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/pianist/pianist_hands
custom_model_data
: 167082
pianist-head :
displayname
: pianist head
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/pianist/pianist_head
custom_model_data
: 167083
electric-piano :
displayname
: electric piano
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/piano/electric_piano
custom_model_data
: 167084
grand-piano :
displayname
: grand piano
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/piano/grand_piano
custom_model_data
: 167085
grand-piano-close :
displayname
: grand piano close
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/piano/grand_piano_close
custom_model_data
: 167086
up-right-piano-close :
displayname
: up right piano close
material
: LEATHER_HORSE_ARMOR
excludeFromInventory
: true
Pack :
generate_model
: false
model
: item/jw/piano/up_right_piano_close
custom_model_data
: 167087
note_a :
texture
: icons/notes/a
ascent
: 2
height
: 2
code
: 4096
note_aSharp :
texture
: icons/notes/a_sharp
ascent
: 2
height
: 2
code
: 4097
note_b :
texture
: icons/notes/b
ascent
: 2
height
: 2
code
: 4098
note_c :
texture
: icons/notes/c
ascent
: 2
height
: 2
code
: 4099
note_cSharp :
texture
: icons/notes/c_sharp
ascent
: 2
height
: 2
code
: 4100
note_d :
texture
: icons/notes/d
ascent
: 2
height
: 2
code
: 4101
note_dSharp :
texture
: icons/notes/d_sharp
ascent
: 2
height
: 2
code
: 4102
note_e :
texture
: icons/notes/e
ascent
: 2
height
: 2
code
: 4103
note_f :
texture
: icons/notes/f
ascent
: 2
height
: 2
code
: 4104
note_fSharp :
texture
: icons/notes/f_sharp
ascent
: 2
height
: 2
code
: 4105
note_g :
texture
: icons/notes/g
ascent
: 2
height
: 2
code
: 4112
note_gSharp :
texture
: icons/notes/g_sharp
ascent
: 2
height
: 2
code
: 4113pianopack 更新后,请记得刷新配置LEATHER_HORSE_ARMOR 改成其他材质,Colored keys、Pianos 等功能将无法正常工作JW_Piano 提供了用于操作钢琴行为的编程 API。
JW_Piano.jar 作为 soft dependency 添加到你的插件中public
void creatingPiano
( Player player
)
{
Optional
< Piano
> optional
= PianoApi.
create
( player.
getLocation
(
) ,
"new piano"
)
;
if
( optional.
isEmpty
(
)
)
{
Bukkit.
getConsoleSender
(
) .
sendMessage
(
"Unable to create piano ;<"
)
;
return
;
}
Piano piano
= optional.
get
(
)
;
} public
void addSkin
( Piano piano
)
{
int customModelId
=
100
;
String name
=
"custom skin"
;
ItemStack itemStack
=
new ItemStack
( Material.
STICK
)
;
PianoSkin customSkin
=
new PianoSkin
( customModelId, name, itemStack
)
;
piano.
getSkinManager
(
) .
register
( customSkin
)
;
piano.
getSkinManager
(
) .
setCurrent
( customSkin
)
;
} public
void addNewEffect
( Piano piano
)
{
EffectInvoker customEffect
=
new CustomEffect
(
)
;
piano.
getEffectManager
(
) .
register
( customEffect
)
;
piano.
getEffectManager
(
) .
setCurrent
( customEffect
)
;
}
public
class CustomEffect
implements EffectInvoker
{
@Override
public
String getName
(
)
{
return
"custom"
;
}
@Override
public
void onNote
( PianoKey pianoKey, Location location,
int noteIndex,
int velocity,
Color color
)
{
Bukkit.
getConsoleSender
(
) .
sendMessage
( color
+
"Note: "
+ noteIndex
+
" Volume:"
+ velocity
)
;
location.
getWorld
(
) .
spawnParticle
( Particle.
NOTE , location,
1
)
;
}
@Override
public
void onDestroy
(
)
{
Bukkit.
getConsoleSender
(
) .
sendMessage
( getName
(
)
+
"Destroyed"
)
;
}
@Override
public
void onCreate
(
)
{
Bukkit.
getConsoleSender
(
) .
sendMessage
( getName
(
)
+
"Created"
)
;
}
@Override
public
void refresh
(
)
{
Bukkit.
getConsoleSender
(
) .
sendMessage
( getName
(
)
+
"Refreshed"
)
;
}
}
} config.yml > plugin.websocket.server-ipplugin.websocket.server-ip 或 plugin.websocket.portplugin.websocket.portplugin.websocket.server-ipcraftplayer.com:22225craftplayer.complugin.websocket.server-ip 设置为 localhostplugin.websocket.server-ip以下是插件配置文件中的注释说明与默认示例。
#
# <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
: VOICEpiano.models-limitpiano.piano-rangepiano-range 时,钢琴变为可交互状态sounds.namespacesounds.sound-category[AMBIENT, BLOCKS, HOSTILE, MASTER, MUSIC, NEUTRAL, RECORDS, VOICE, WEATHER]plugin.resourcepack.urlplugin.resourcepack.download-on-joinplugin.websocket.runfalse 时,websocket 不会运行plugin.saving-frequencyplugin.languagelanguages 文件夹,复制 en.yml 并改成你需要的文件名language 属性设置为你的文件名,并执行 /reload serverplugin.websocket.portplugin.websocket.server-iplocalhostcommands
:
# /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
resourcepack :
children
: - download
- link
description
: downloads plugin resourcepack
usage
: /piano resourcepack
# /piano resourcepack download
download :
description
: downloads plugin resourcepack
usage
: /piano resourcepack download
# /piano resourcepack link
link :
description
: sending to player resourcepack link
usage
: /piano resourcepack link/pianojw-piano.commands.piano/piano lang <language>- `cs`- `de`- `en`- `es`- `fr`- `it`- `ko`- `pl`- `pt`- `ru`- `tr`- `zh`/piano colors/piano update/piano resourcepack/piano resourcepack download/piano resourcepack linkpermissions
:
# ======================================== 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 pianojw-piano.*jw-piano.piano.*jw-piano.piano.keyboard.*jw-piano.piano.keyboard.usejw-piano.piano.bench.*jw-piano.piano.bench.usejw-piano.piano.pedal.*jw-piano.piano.pedal.usef 使用延音踏板jw-piano.commands.*jw-piano.commands.pianojw-piano.commands.langjw-piano.commands.updatejw-piano.gui.*jw-piano.gui.midi-player.*jw-piano.gui.midi-player.speedjw-piano.gui.midi-player.player-typejw-piano.gui.midi-player.next-songjw-piano.gui.midi-player.previous-songjw-piano.gui.midi-player.play-stopjw-piano.gui.midi-player.select-songjw-piano.gui.midi-player.remove-songjw-piano.gui.bench.*jw-piano.gui.bench.movejw-piano.gui.bench.settings.*jw-piano.gui.bench.settings.activejw-piano.gui.piano.*jw-piano.gui.piano.generate-tokenjw-piano.gui.piano.volumejw-piano.gui.piano.renamejw-piano.gui.piano.teleportjw-piano.gui.piano.skinjw-piano.gui.piano.effectjw-piano.gui.piano.soundjw-piano.gui.piano.clearjw-piano.gui.piano.settings.*jw-piano.gui.piano.settings.keyboard-pressing-activejw-piano.gui.piano.settings.pedal-pressing-activef 触发延音踏板jw-piano.gui.piano.settings.desktop-app-activejw-piano.gui.piano.settings.pianist-activejw-piano.gui.piano-list.*jw-piano.gui.piano-list.createjw-piano.gui.piano-list.remove这是该插件配置文件的中文说明,已按功能整理,便于在插件目录页面中快速查看和使用。
languages 文件夹en.ymllanguage 属性设置为该文件名/reload 或重载服务器craftplayer.com:22225craftplayer.comlocalhostplugin:
version: 1.1.3
language: en
saving-frequency: 5
auto-download-resourcepack: true
piano-config:
models-limit: 10
minDistanceToPiano: 3.0
maxDistanceFromPiano: 3.0
maxDistanceFromKeys: 2.0
piano-server:
enable: true
customer-server-ip: ''
port: 2022version: 当前配置版本language: 使用的语言文件名saving-frequency: 数据保存频率,单位为分钟auto-download-resourcepack: 是否自动下载材质包models-limit: 可生成的钢琴数量上限minDistanceToPiano: 与钢琴的最小距离maxDistanceFromPiano: 与钢琴的最大距离maxDistanceFromKeys: 与琴键的最大距离enable: 是否启用钢琴服务器customer-server-ip: 自定义服务器 IPport: 钢琴服务器使用的端口language 后,需要重载服务器配置才能生效customer-server-ip 留空时会自动检测 IP友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作
历史访问人数:197,963 | 历史访问人次:303,361
今日访问人数:4,684 | 今日访问人次:5,112
昨日访问人数:30,537 | 昨日访问人次:36,142
Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.
❤ Powered by GermMC 京ICP备17023959号-6