
歌曲播放器
一个适用于Minecraft的Fabric模组,可用音符盒播放歌曲。支持midi格式。
SongPlayer
一个 Fabric 模组,用于在 Minecraft 中使用音符盒播放歌曲。
如果您有任何疑问、想分享歌曲,或只是想聊聊这个模组,欢迎加入 Discord 服务器。
如何安装
您可以从 releases 部分获取模组 jar 文件。 该模组需要 Fabric API。
添加歌曲
您可以将 midi 或 NoteBlockStudio 文件放入 .minecraft/songs 文件夹中。
SongPlayer 支持任何有效的 midi 文件以及所有版本的 NBS 文件。
使用客户端
首先,将一些 midi 或 nbs 文件添加到您的歌曲文件夹中,然后在空旷区域使用 $play <文件名>。
文件名或文件路径中不支持空格。
如果您提供了有效的 midi 或 nbs 文件,它将尝试将您的游戏模式设置为创造模式,摆放歌曲所需的音符盒,尝试切换您到生存模式,然后开始播放。
您还可以将歌曲组织到歌曲文件夹中的子目录中。Tab 补全功能可让导航变得轻松。也支持符号链接目录。
命令
所有命令均不区分大小写。
$help
$help <命令>
如果没有提供参数,则列出所有 SongPlayer 命令。 否则,解释指定命令并显示其语法。
$setPrefix <前缀>
别名:$prefix
设置所有 SongPlayer 命令使用的前缀(默认:$)
$play <文件名或 URL>
播放 .minecraft/songs 文件夹中的特定 midi,或者如果指定了 URL,则下载该 URL 处的歌曲并尝试播放。
如果已有歌曲正在播放,新歌曲将添加到队列中。
$stop
停止播放/建造并清空队列。
$skip
跳过当前歌曲并播放下一首。
$goto <分:秒>
跳到歌曲中的指定时间。
$loop
切换歌曲循环播放。
$status
别名:$current
获取当前正在播放歌曲的状态。
$queue
别名:$showqueue
显示队列中的所有歌曲。
$songs
$songs <子目录>
别名:$list
如果没有提供参数,则列出 songs 文件夹中的歌曲。否则,列出指定子目录中的歌曲。
$playlist play <播放列表>
$playlist create <播放列表>
$playlist list [<播放列表>]
$playlist delete <播放列表> <歌曲>
$playlist addSong <播放列表> <歌曲>
$playlist removeSong <播放列表> <歌曲>
$playlist renameSong <播放列表> <旧名称> <新名称>
$playlist loop
$playlist shuffle
创建、编辑、删除或播放播放列表。您也可以切换循环播放或随机播放。
$setCreativeCommand <命令>
别名:$sc
默认情况下,客户端使用 /gamemode creative 进入创造模式。
但是,/gamemode creative 并非在所有服务器上都有效。
如果创造模式命令不同,请使用此命令设置。
例如,如果服务器使用原版命令,请执行 $setCreativeCommand /gamemode creative。
$setSurvivalCommand <命令>
别名:$ss
默认情况下,客户端使用 /gamemode survival 进入生存模式。
但是,/gamemode survival 并非在所有服务器上都有效。
如果生存模式命令不同,请使用此命令设置。
例如,如果服务器使用原版命令,请执行 $setSurvivalCommand /gamemode survival。
$useEssentialsCommands
别名:$essentials、$useEssentials、$essentialsCommands
切换到使用 Essentials 游戏模式命令。
等同于 $setCreativeCommand /gmc 和 $setSurvivalCommand /gms
$useVanillaCommands
别名:$vanilla、$useVanilla、$vanillaCommands
切换到使用原版游戏模式命令。
等同于 $setCreativeCommand /gamemode creative 和 $setSurvivalCommand /gamemode survival
$toggleFakePlayer
别名:$fakePlayer、$fp
切换是否显示一个虚拟玩家来表示您在播放歌曲时的真实位置。播放歌曲时,由于它会自动启用自由视角,您的真实位置将与您视觉上的位置不同。虚拟玩家将显示您实际所在位置。默认情况下,此功能是禁用的。
$setStageType <DEFAULT | WIDE | SPHERICAL>
别名:$setStage、$stageType
设置要建造的音符盒舞台类型。感谢 Sk8kman 和 Lizard16 设计了球形舞台!
- 默认(Default):方形舞台,最多 300 个音符盒
- 宽型(Wide):圆柱形舞台,最多 360 个音符盒
- 球形(Spherical):密集排列的球形舞台,可容纳全部 400 种可能的音符盒
$breakSpeed set <速度>
$breakSpeed reset
设置方块破坏速度(方块/秒)。
$placeSpeed set <速度>
$placeSpeed reset
设置方块放置速度(方块/秒)。
$toggleMovement <swing | rotate>
别名:$movement
切换击打音符盒时是否会挥动手臂并转头看向击打的音符盒。
$setVelocityThreshold <阈值>
别名:$velocityThreshold $threshold
设置低于该阈值的最小力度不播放音符(适用于 midi 和 nbs)。该值必须是 0 到 100 之间的数字。对于歌曲物品,阈值在物品创建时已固化。
$toggleAutoCleanup
别名:$autoCleanup
切换是否在播放结束后自动清理您的舞台并恢复原始方块。
$cleanupLastStage
清理您最近创建的舞台,并尽力将方块恢复到其原始状态。
如果您停止播放然后重新开始播放,记录的修改将被重置。
不会替换流体或门等双格方块,也不会替换方块实体数据。 也可能无法正确处理像火把这样依赖其他方块的方块。
$announcement <enable | disable | getMessage>
$announcement setMessage
设置一个在您开始播放歌曲时发送的公告消息。
使用 setMessage 时,请在歌曲名称所在位置写入 [name]。
示例:$announcement setMessage &6正在播放:&3[name]
$toggleSurvivalOnly
别名:$survivalOnly
启用或禁用仅生存模式,该模式下自动放置音符盒被禁用,自动调音通过右键点击完成。
在此模式下,您必须自己放置所需的乐器。
如果您尝试播放歌曲但条件未满足,它会告诉您每种乐器需要多少个。
$toggleFlightNoclip
别名:$flightNoclip
切换飞行穿墙。启用后,您的本地玩家在播放歌曲时可以穿墙,但仅限于飞行时。
$songItem create <歌曲或 URL>
$songItem setSongName <名称>
别名:$item
将歌曲数据编码为物品。当您右键点击此类物品时,SongPlayer 将自动检测到它是歌曲物品,并询问您是否要播放它。这些物品一旦创建,任何使用所需版本 SongPlayer 的人都可以使用。
它会自动生成自定义物品名称和描述,但这些可以被修改或删除而不影响歌曲数据,因此您可以随意编辑物品。SongPlayer 只查看 SongItemData 标签。
$testSong
一个我在开发期间用于测试的命令。 它按顺序播放所有 400 种可能的音符盒声音。
机制
SongPlayer 放置的音符盒已包含 nbt 和乐器数据,因此无需单独调音每个音符盒。
客户端会在每首歌曲播放前自动检测所需音符盒并自动放置,这使得播放歌曲非常容易。唯一的缺点是您需要能够在创造和生存模式之间切换,我的客户端会尝试自动完成。
播放歌曲时,会启用自由视角。您可以自由移动,但实际上只是移动了镜头,而您的玩家保持在音符盒中心。这是因为只有处于音符盒的触及距离内才能演奏它们,所以您必须站在音符盒中心来演奏,但能在歌曲播放时自由移动仍然很好。
致谢
Ayunami2000:提出了直接放置带有 nbt 数据的音符盒而不是手动调音的概念。
Sk8kman:Songplayer 3.0 的一些改动灵感来自他们对 SongPlayer 的 fork。最值得注意的是他们另类的舞台设计,但也促使我实现了播放列表和可切换动作。
Lizard16:被 Sk8kman 提及为球形舞台设计者。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。