Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MetroMusic

乘坐 Metro 地铁时自动播放 NBS 音乐的 Bukkit 插件

MC版本 API版本 作者

简介

MetroMusic 是一款专为 Metro 插件 设计的音乐拓展插件。当玩家乘坐 Metro 地铁系统的矿车时,自动播放 NBS 格式的 MIDI 音乐,带来沉浸式的地铁旅行体验。

特性

  • 自动播放 - 进入地铁矿车自动播放音乐,离开自动停止
  • 自动切歌 - 歌曲播放完毕自动切换下一首,无需手动操作
  • 到站处理 - 途经站音乐继续播放不打断,终点站自动停止
  • 换乘衔接 - 换乘其他线路时音乐无缝衔接,不会中断
  • 跳过/暂停/恢复 - 随时跳过当前歌曲、暂停或恢复播放
  • 个人音量 - 每个玩家独立调节音量 (0-100)
  • 三种播放模式 - 随机播放 / 顺序播放 / 单曲循环
  • GUI 选歌界面 - 通过 /metromusic gui 打开箱子界面,点歌更方便
  • BossBar 进度条 - 实时显示歌曲播放进度和名称
  • ActionBar 提示 - 切歌时在 ActionBar 显示歌曲信息
  • 线路专属歌单 - 不同地铁线路可配置不同的歌曲列表
  • 报站提示音 - 到站时自动播放音效提示
  • 播放统计 - 记录每首歌播放次数,支持排行榜查询
  • PlaceholderAPI 支持 - 暴露 %metromusic_now% 等变量供其他插件使用
  • 多语言 - 支持中文和英文切换
  • 内置歌曲 - 插件自带 50+ 首 NBS 歌曲资源,开箱即用
  • 热重载 - 支持 /metromusic reload 热重载配置和歌曲

依赖

依赖 版本 说明
Metro >= 1.1.7 地铁系统核心插件
NoteBlockAPI >= 1.7.0 NBS 音乐播放 API
PlaceholderAPI >= 2.11.0 (可选) 变量扩展支持

安装

  1. 确保服务器已安装 MetroNoteBlockAPI 插件
  2. 下载 MetroMusic-1.0.0.jar 放入 plugins/ 目录
  3. 重启服务器或执行 /reload
  4. 插件会自动在 plugins/MetroMusic/songs/ 下生成歌曲文件

歌曲管理

内置歌曲

插件内置了 45+ 首 NBS 歌曲,按分类存放在 plugins/MetroMusic/songs/ 子文件夹中:

songs/
├── undertale/        Undertale / Deltarune 系列 (32首)
│   ├── Megalovania.nbs
│   ├── Field of Hopes and Dreams.nbs
│   ├── Rude Buster.nbs
│   ├── Spear of Justice.nbs
│   └── ...
├── touhou/           东方 Project 系列 (8首)
│   ├── 东方永夜抄.nbs
│   ├── 东方妖妖梦.nbs
│   ├── 东方红魔乡.nbs
│   ├── 东方风神录.nbs
│   └── ...
└── other/            其他经典 (5首)
    ├── Tetris A.nbs
    ├── Dead Cell - Clock Town.nbs
    ├── 起风了.nbs
    ├── 晴天.nbs
    └── 不死鸟.nbs

自定义歌曲

  1. .nbs 格式的歌曲文件放入 plugins/MetroMusic/songs/ 文件夹(可创建子文件夹分类管理,如 songs/mysongs/
  2. 执行 /metromusic reload 热重载
  3. 或重启服务器

提示: NBS 文件可使用 OpenNoteBlockStudio 制作或转换。

配置

plugins/MetroMusic/config.yml:

# 音乐播放音量 (0-100)
volume: 100

# 是否随机播放歌曲 (true=随机, false=按顺序)
random: true

# 检测玩家是否在地铁矿车中的检查间隔 (单位:tick, 20tick=1秒)
check-interval: 10

# 语言设置 (zh_cn = 中文, en_us = English)
language: zh_cn

# 报站提示音
station-chime:
  enabled: true               # 是否启用
  sound: BLOCK_NOTE_BLOCK_PLING  # 音效名称

# 线路专属歌单 (取消注释后启用)
# 歌曲名需与 songs/ 文件夹中的 .nbs 文件名一致
#line-playlists:
#  一号线:
#    - 东方永夜抄 恋色マスタースパーク.nbs
#    - 东方妖妖梦.nbs
#  二号线:
#    - Megalovania.nbs
#    - Field of Hopes and Dreams.nbs

命令

管理命令 (权限: metromusic.admin)

命令 别名 描述
/metromusic /mmusic, /mm 查看插件信息与帮助
/metromusic reload - 重新加载配置和歌曲文件
/metromusic list - 列出所有已加载的歌曲
/metromusic stats - 查看播放统计排行榜

玩家命令 (权限: metromusic.player)

命令 描述
/metromusic skip 跳过当前歌曲
/metromusic pause 暂停播放
/metromusic resume 恢复播放
/metromusic volume [0-100] 查看或设置个人音量
/metromusic now 查看当前歌曲信息
/metromusic mode <random|sequential|loop> 切换播放模式
/metromusic play <歌曲名> 搜索并播放指定歌曲
/metromusic gui 打开歌曲选择界面 (需在地铁矿车中)

所有玩家命令均支持 Tab 自动补全。

权限

权限节点 默认 描述
metromusic.admin OP 允许使用管理命令
metromusic.listen true 乘坐地铁时自动播放音乐
metromusic.player true 允许使用玩家命令 (skip/pause/volume 等)

PlaceholderAPI 变量

安装 PlaceholderAPI 后可使用以下变量:

变量 说明
%metromusic_now% 当前播放的歌曲名
%metromusic_author% 当前歌曲作者
%metromusic_volume% 个人音量
%metromusic_mode% 播放模式 (随机/顺序/单曲循环)
%metromusic_paused% 是否暂停 (是/否)
%metromusic_count% 已加载歌曲总数
%metromusic_playing% 是否正在播放 (是/否)

构建

前置条件

  • JDK 17+
  • Maven 3.8+

构建步骤

# 克隆仓库
git clone https://github.com/yourusername/MetroMusic.git
cd MetroMusic

# 构建
mvn clean package

# 输出位置
# target/MetroMusic-1.0.0.jar

依赖安装说明

MetroNoteBlockAPI 标记为 provided,需要在服务器端已安装,或先 install 到本地 Maven 仓库:

# 安装 NoteBlockAPI 到本地仓库
git clone https://github.com/koca2000/NoteBlockAPI.git
cd NoteBlockAPI
mvn clean install

# 安装 Metro 到本地仓库
git clone https://github.com/CubeX-MC/Metro.git
cd Metro
mvn clean install

项目结构

MetroMusic/
  pom.xml                          # Maven 构建配置
  README.md                        # 本文件
  CHANGELOG.md                     # 更新日志 (中/英)
  src/
    main/
      java/
        top/chenray/
          MetroMusic.java           # 插件主类 (命令系统/BossBar/ActionBar)
          MusicListener.java        # 事件监听器 (GUI/报站/线路切换)
          SongData.java             # 歌曲元数据 (播放次数/禁用/线路分配)
          PlayerSettings.java       # 玩家设置 (音量/暂停/播放模式)
          LanguageManager.java      # 多语言管理
          MusicGUI.java             # 歌曲选择 GUI 界面
          MusicPlaceholderExpansion.java  # PlaceholderAPI 扩展
      resources/
        config.yml                  # 配置文件
        plugin.yml                  # Bukkit 插件描述
        songs/                      # 内置 NBS 歌曲资源 (按分类子文件夹整理)
          undertale/                # Undertale / Deltarune 系列 (32首)
          touhou/                   # 东方 Project 系列 (8首)
          other/                    # 其他经典 (5首)

更新日志

English changelog is available in CHANGELOG.md.

v1.1.0 (增强版)

  • 新增跳过/暂停/恢复播放命令
  • 新增个人音量设置 (/metromusic volume)
  • 新增三种播放模式: 随机、顺序、单曲循环
  • 新增 GUI 选歌界面 (/metromusic gui)
  • 新增 BossBar 进度条,实时显示播放进度
  • 新增 ActionBar 切歌提示
  • 新增线路专属歌单配置
  • 新增报站提示音
  • 新增播放统计与排行榜
  • 新增 PlaceholderAPI 变量支持
  • 新增多语言系统 (中文/英文)
  • 新增命令 Tab 自动补全
  • 新增玩家权限节点 metromusic.player
  • 重构歌曲数据模型为 SongData,支持禁用和线路分配
  • 修复 NoteBlockAPI 中文乱码问题

v1.0.0

  • 首次发布
  • Metro 地铁矿车自动播放 NBS 音乐
  • 歌曲播放完毕自动切换下一首
  • 到站/换乘音乐智能处理
  • 内置 50+ 首 NBS 歌曲
  • 管理命令 /metromusic

作者

  • ALingqing_ -- 开发维护

许可证

本项目基于 GNU General Public License v3 (GPLv3) 许可证开源。


Made for Minecraft Metro

About

MetroMusic是一款专为Metro插件设计的音乐拓展插件。当玩家乘坐 Metro 地铁系统的矿车时,自动播放 NBS 格式的 MIDI 音乐,带来沉浸式的地铁旅行体验。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages