Alasion 发表于 2025-7-7 09:27:05

【自定义指令】custom-commands |支持PAPI变量|快捷注册指令|支持参数|支持权限|热重载

# CustomCommands - Minecraft 自定义命令插件
一个强大的 Minecraft Paper/Spigot 插件,允许服务器管理员在配置文件中创建自定义命令,将多个指令整合成一条指令执行。支持热重载、参数传递、权限控制等高级功能。
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/2728.png 功能特性
- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f3af.png **自定义命令** - 在配置文件中轻松创建自定义命令- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f517.png **命令整合** - 将多个 Minecraft 命令整合成一条指令- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f504.png **热重载** - 支持在线重新加载配置,无需重启服务器- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f4dd.png **参数支持** - 支持命令参数传递和占位符替换- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f517.png **PAPI集成** - 完整支持PlaceholderAPI变量系统- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f510.png **权限控制** - 细粒度的权限管理系统- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/26a1.png **动态注册** - 自动注册配置文件中的命令- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f3a8.png **颜色支持** - 支持 Minecraft 颜色代码- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f4cb.png **命令管理** - 内置命令列表和状态查看
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f4cb.png 系统要求
- **Minecraft版本**: 1.16.5+- **服务端**: Paper/Spigot- **Java版本**: 8+- **可选依赖**: PlaceholderAPI(用于高级变量支持)
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f680.png 安装方法
1. 下载插件 jar 文件2. 将文件放入服务器的 `plugins` 文件夹3. **(可选)** 安装 PlaceholderAPI 插件以启用高级变量支持4. 重启服务器或使用 `/reload` 命令5. 插件会自动生成默认配置文件6. 编辑 `plugins/CustomCommands/config.yml` 配置你的自定义命令https://www.minebbs.com/attachments/webp.104721/### PlaceholderAPI 安装(可选)
如果你想使用 PlaceholderAPI 变量(如 `%player_level%`、`%server_online%` 等),请按以下步骤安装:
1. 下载 (https://www.spigotmc.org/resources/placeholderapi.6245/) 插件2. 将 PlaceholderAPI.jar 放入 `plugins` 文件夹3. 重启服务器4. 使用 `/papi ecloud download <扩展名>` 下载所需的扩展5. 使用 `/papi reload` 重新加载扩展
> https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f4a1.png **提示**: 即使没有安装 PlaceholderAPI,插件也能正常工作,只是无法使用 PAPI 变量。
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/2699.png 配置说明
配置文件位置:`plugins/CustomCommands/config.yml`
### 基础配置格式
```yamlcustom-commands:命令名称:    enabled: true/false# 是否启用此命令    commands:            # 要执行的命令列表      - "命令1"      - "命令2"      - "命令3"```
### 占位符说明
#### 基础占位符- `{player}` - 执行命令的玩家名称- `{args}` - 所有参数(用空格连接)- `{arg0}`, `{arg1}`, `{arg2}...` - 第0、1、2...个参数
#### PlaceholderAPI变量本插件完全支持PlaceholderAPI变量,使用 `%变量名%` 格式:
**玩家信息变量:**- `%player_name%` - 玩家名称- `%player_displayname%` - 玩家显示名- `%player_level%` - 玩家等级- `%player_exp%` - 玩家经验值- `%player_health%` - 玩家当前生命值- `%player_max_health%` - 玩家最大生命值- `%player_food_level%` - 玩家饥饿值- `%player_gamemode%` - 玩家游戏模式- `%player_world%` - 玩家所在世界- `%player_x%`, `%player_y%`, `%player_z%` - 玩家坐标
**服务器信息变量:**- `%server_online%` - 在线玩家数量- `%server_max_players%` - 最大玩家数量- `%server_time_24%` - 服务器时间(24小时制)
**世界信息变量:**- `%world_time%` - 世界游戏时间- `%world_weather%` - 世界天气状态- `%world_is_raining%` - 是否正在下雨
**经济变量(需要Vault插件):**- `%vault_eco_balance%` - 玩家余额- `%vault_eco_balance_formatted%` - 格式化的玩家余额
> https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f4a1.png **提示**: 更多PAPI变量请查看 (https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Placeholders)
### 配置示例
#### 示例1:新手礼包命令```yamlkit:enabled: truecommands:    - "give {player} minecraft:iron_sword 1"    - "give {player} minecraft:bread 16"    - "tell {player} §a欢迎来到服务器!这是你的新手礼包!"```
#### 示例2:带参数的命令```yamlgiveitem:enabled: truecommands:    - "give {player} {arg0} {arg1}"    - "tell {player} §a已给予你 {arg1} 个 {arg0}!"```使用方法:`/giveitem diamond 64`
#### 示例3:传送到出生点```yamlspawn:enabled: truecommands:    - "tp {player} 0 64 0"    - "tell {player} §b已将你传送到出生点!"    - "playsound minecraft:entity.enderman.teleport player {player}"```
#### 示例4:玩家状态查询(使用PAPI变量)```yamlstatus:enabled: truecommands:    - "tell {player} §6=== 你的状态 ==="    - "tell {player} §e等级: §f%player_level% (经验: %player_exp%)"    - "tell {player} §e生命值: §f%player_health%/%player_max_health%"    - "tell {player} §e坐标: §f%player_x%, %player_y%, %player_z%"    - "tell {player} §e世界: §f%player_world%"    - "tell {player} §6=================="```
#### 示例5:服务器信息(使用PAPI变量)```yamlserverinfo:enabled: truecommands:    - "tell {player} §6=== 服务器信息 ==="    - "tell {player} §e在线玩家: §f%server_online%/%server_max_players%"    - "tell {player} §e当前时间: §f%server_time_24%"    - "tell {player} §e世界天气: §f%world_weather%"    - "tell {player} §6=================="```
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f3ae.png 使用方法
### 管理员命令
- `/customcommands` 或 `/cc` - 显示插件信息- `/customcommands reload` - 重新加载配置文件- `/customcommands list` - 查看所有自定义命令列表
### 自定义命令
根据配置文件中定义的命令名称使用,例如:- `/kit` - 获取新手礼包- `/spawn` - 传送到出生点- `/heal` - 完全治疗- `/giveitem diamond 64` - 给予64个钻石
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f510.png 权限系统
### 管理权限- `customcommands.admin` - 插件管理权限(默认:OP)- `customcommands.reload` - 重新加载配置权限(默认:OP)- `customcommands.list` - 查看命令列表权限(默认:OP)
### 使用权限- `customcommands.use.*` - 使用所有自定义命令(默认:所有玩家)- `customcommands.use.<命令名>` - 使用特定自定义命令
### 权限配置示例```yaml# 给予玩家使用特定命令的权限permissions:- customcommands.use.kit- customcommands.use.spawn- customcommands.use.heal```
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f527.png 高级功能
### 1. 条件执行可以在命令中使用条件判断(需要配合其他插件):```yamlconditional_heal:enabled: truecommands:    - "execute if entity {player} run effect give {player} minecraft:instant_health 1 10"    - "tell {player} §c你的生命值太低了,已为你治疗!"```
### 2. 延迟执行```yamldelayed_command:enabled: truecommands:    - "tell {player} §e3秒后将传送你到出生点..."    - "schedule function mypack:teleport_player 60t"```
### 3. 多玩家命令```yamlbroadcast:enabled: truecommands:    - "say §c[公告] §f{player} 说: {args}"    - "playsound minecraft:block.note_block.pling master @a"```
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f6e0.png 开发信息
- **开发者**: 9C2211D- **版本**: 1.0-SNAPSHOT- **API 版本**: 1.16+- **构建工具**: Gradle- **依赖**: Paper API 1.16.5
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f4e6.png 构建项目
```bash# 克隆项目git clone <repository-url>cd custom-commands
# 构建插件./gradlew build
# 运行测试服务器./gradlew runServer```
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f50d.png 故障排除
### 常见问题
**Q: 自定义命令不工作?**A: 检查以下几点:1. 确保命令在配置文件中 `enabled: true`2. 检查玩家是否有相应权限3. 查看控制台是否有错误信息4. 使用 `/customcommands list` 确认命令已加载
**Q: 配置文件修改后不生效?**A: 使用 `/customcommands reload` 重新加载配置文件
**Q: 权限设置不正确?**A: 确保权限插件正确配置了 `customcommands.use.*` 或具体的命令权限
### 调试模式在配置文件中添加以下内容启用调试:```yamldebug: true```
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f4dd.png 更新日志
### v1.0.0- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/2705.png 初始版本发布- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/2705.png 支持自定义命令创建- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/2705.png 支持热重载配置- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/2705.png 支持参数传递- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/2705.png 支持权限控制- https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/2705.png 支持动态命令注册
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f91d.png 贡献指南
欢迎提交 Issue 和 Pull Request!
1. Fork 本项目2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)4. 推送到分支 (`git push origin feature/AmazingFeature`)5. 创建 Pull Request
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f4c4.png 许可证
本项目采用 MIT 许可证 - 查看 (LICENSE) 文件了解详情
## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f3af.png 未来计划
- [ ] 支持命令冷却时间- [ ] 支持命令使用次数限制- [ ] 添加 GUI 配置界面- [ ] 支持数据库存储- [ ] 添加命令执行统计- [ ] 支持条件执行- [ ] 添加命令别名系统
---
**如果这个插件对你有帮助,请给个 https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/2b50.png Star!**下载地址:## https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f4de.png 联系方式
- GitHub Issues: [提交问题](https://github.com/9C2211D/custom-commands/issues)- QQ群: 159998932

Alasion 发表于 2025-7-7 09:28:03

插件有点bug,麻烦删帖谢谢。

Alasion 发表于 2025-7-7 09:28:21

插件有bug,满法删帖谢谢
页: [1]
查看完整版本: 【自定义指令】custom-commands |支持PAPI变量|快捷注册指令|支持参数|支持权限|热重载