# Itemuse - 物品指令绑定插件
<img src="https://img.shields.io/badge/Minecraft-1.12.2-green" alt="Minecraft 1.12.2">
<img src="https://img.shields.io/badge/License-MIT-blue" alt="MIT License">
##
简介
`Itemuse` 是一个允许玩家将任意指令绑定到物品上的插件,当玩家使用该物品时,会自动执行绑定的指令(支持变量和 PlaceholderAPI),并可选择是否消耗物品。
##
核心功能
- **物品指令绑定**
将指令绑定到手持物品(支持消耗/非消耗模式)
- **变量替换**
支持 `%player%`, `%uuid%`, `%world%`, `%x%`, `%y%`, `%z%` 等动态变量
- **PlaceholderAPI 集成**
兼容所有 PlaceholderAPI 占位符
- **多语言支持**
内置中英文切换(默认中文)
- **数据库存储**
支持 SQLite(默认)和 MySQL 存储绑定数据
##
安装方法
1. 下载最新版 `Itemuse.jar`
2. 放入服务器 `plugins/` 目录
3. 重启服务器
4. 配置文件自动生成在 `plugins/Itemuse/`
##
命令列表
| 命令 | 参数 | 描述 | 权限节点 |
|------|------|------|----------|
| **/itemuse bind** | `<true/false> <指令>` | 绑定指令到手持物品 | `yiran.itembind.bind` |
| **/itemuse remove** | - | 移除物品绑定指令 | `yiran.itembind.remove` |
| **/itemuse list** | - | 查看物品绑定信息 | `yiran.itembind.list` |
| **/itemuse reload** | - | 重载配置文件 | `yiran.itembind.reload` |
### 使用示例
- 绑定消耗型指令(使用后物品-1)
- /itemuse bind true say 你好,我是%player%!
- 绑定非消耗型指令
- /itemuse bind false effect give %player% speed 10 1
##
配置文件
```
# 支持 zh_CN, en_US 等
language: zh_CN
# 数据库配置
database:
# sqlite 或 mysql
type: sqlite
# SQLite 配置
sqlite:
filename: deposit_cumulative.db
# MySQL 配置 (当 type=mysql 时生效)
mysql:
host: localhost
port: 3306
database: mc_plugin
user: root
password: ""
```
##
多语言支持
### 切换语言
修改 `config.yml` 中的 `language` 字段:
- language: en_US # 切换为英文
### 自定义翻译
1. 复制 `zh_CN.yml` 重命名为新语言文件(如 `en_US.yml`)
2. 修改文件中的文本内容
3. 在 `config.yml` 中设置对应语言代码
##
开发者 API
### 获取物品绑定信息
```
ItemCommandService service = new ItemCommandService();
ItemStack item = player.getInventory().getItemInMainHand();
CommandData data = service.getCommandDataByItem(item);
if(data != null) {
String command = data.getCommand();// 绑定指令
boolean consume = data.shouldConsume(); // 消耗模式
}
```
### 监听物品使用事件
```
@EventHandler
public void onItemUse(PlayerInteractEvent event) {
ItemStack item = event.getItem();
CommandData data = commandService.getCommandDataByItem(item);
// 自定义处理逻辑...
}
```
##
常见问题
### Q: 绑定指令后不生效?
**解决步骤:**
1. 确认玩家有 `yiran.itembind.use` 权限
2. 检查控制台错误日志
3. 确保指令格式正确(不要包含 `/` 前缀)
### Q: 如何迁移到 MySQL 数据库?
1. 修改 `config.yml`:
```
database:
type: mysql
mysql:
host: 你的数据库IP
database: 数据库名
user: 用户名
password: 密码
```
2. 重启服务器,插件会自动创建表结构
### Q: 变量替换不生效?
- 基础变量(如 `%player%`) 总是生效
- PlaceholderAPI 变量需要安装 [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)
- 使用前执行 `/papi ecloud download` 获取所需扩展
##
技术信息
- **运行环境**: Java 8+, Spigot 1.12.2
##
开发者信息
- **作者**:Yiran
- **版本**:1.0.0
- **依赖库**:PlaceholderAPI (可选)
- **开源协议**:GPLv3
> 提示:插件启动时会显示彩色横幅(包含版本和作者信息),可在 Logger.java 中自定义横幅内容。所有数据库操作自动初始化,无需手动建表。
<img src="https://img.shields.io/badge/Minecraft-1.12.2-green" alt="Minecraft 1.12.2">
<img src="https://img.shields.io/badge/License-MIT-blue" alt="MIT License">
##
`Itemuse` 是一个允许玩家将任意指令绑定到物品上的插件,当玩家使用该物品时,会自动执行绑定的指令(支持变量和 PlaceholderAPI),并可选择是否消耗物品。
##
- **物品指令绑定**
将指令绑定到手持物品(支持消耗/非消耗模式)
- **变量替换**
支持 `%player%`, `%uuid%`, `%world%`, `%x%`, `%y%`, `%z%` 等动态变量
- **PlaceholderAPI 集成**
兼容所有 PlaceholderAPI 占位符
- **多语言支持**
内置中英文切换(默认中文)
- **数据库存储**
支持 SQLite(默认)和 MySQL 存储绑定数据
##
1. 下载最新版 `Itemuse.jar`
2. 放入服务器 `plugins/` 目录
3. 重启服务器
4. 配置文件自动生成在 `plugins/Itemuse/`
##
| 命令 | 参数 | 描述 | 权限节点 |
|------|------|------|----------|
| **/itemuse bind** | `<true/false> <指令>` | 绑定指令到手持物品 | `yiran.itembind.bind` |
| **/itemuse remove** | - | 移除物品绑定指令 | `yiran.itembind.remove` |
| **/itemuse list** | - | 查看物品绑定信息 | `yiran.itembind.list` |
| **/itemuse reload** | - | 重载配置文件 | `yiran.itembind.reload` |
### 使用示例
- 绑定消耗型指令(使用后物品-1)
- /itemuse bind true say 你好,我是%player%!
- 绑定非消耗型指令
- /itemuse bind false effect give %player% speed 10 1
##
```
# 支持 zh_CN, en_US 等
language: zh_CN
# 数据库配置
database:
# sqlite 或 mysql
type: sqlite
# SQLite 配置
sqlite:
filename: deposit_cumulative.db
# MySQL 配置 (当 type=mysql 时生效)
mysql:
host: localhost
port: 3306
database: mc_plugin
user: root
password: ""
```
##
### 切换语言
修改 `config.yml` 中的 `language` 字段:
- language: en_US # 切换为英文
### 自定义翻译
1. 复制 `zh_CN.yml` 重命名为新语言文件(如 `en_US.yml`)
2. 修改文件中的文本内容
3. 在 `config.yml` 中设置对应语言代码
##
### 获取物品绑定信息
```
ItemCommandService service = new ItemCommandService();
ItemStack item = player.getInventory().getItemInMainHand();
CommandData data = service.getCommandDataByItem(item);
if(data != null) {
String command = data.getCommand();// 绑定指令
boolean consume = data.shouldConsume(); // 消耗模式
}
```
### 监听物品使用事件
```
@EventHandler
public void onItemUse(PlayerInteractEvent event) {
ItemStack item = event.getItem();
CommandData data = commandService.getCommandDataByItem(item);
// 自定义处理逻辑...
}
```
##
### Q: 绑定指令后不生效?
**解决步骤:**
1. 确认玩家有 `yiran.itembind.use` 权限
2. 检查控制台错误日志
3. 确保指令格式正确(不要包含 `/` 前缀)
### Q: 如何迁移到 MySQL 数据库?
1. 修改 `config.yml`:
```
database:
type: mysql
mysql:
host: 你的数据库IP
database: 数据库名
user: 用户名
password: 密码
```
2. 重启服务器,插件会自动创建表结构
### Q: 变量替换不生效?
- 基础变量(如 `%player%`) 总是生效
- PlaceholderAPI 变量需要安装 [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)
- 使用前执行 `/papi ecloud download` 获取所需扩展
##
- **运行环境**: Java 8+, Spigot 1.12.2
##
- **作者**:Yiran
- **版本**:1.0.0
- **依赖库**:PlaceholderAPI (可选)
- **开源协议**:GPLv3
> 提示:插件启动时会显示彩色横幅(包含版本和作者信息),可在 Logger.java 中自定义横幅内容。所有数据库操作自动初始化,无需手动建表。