BUG反馈请前往Github issue,见上方版权链接
[MD]
# Wireless Box - 无线箱子
这个插件属于是把自己奇奇怪怪的想法做出来了
插件功能:
1. 远程操作箱子、木桶之类的容器方块
2. 支持远程拿取、放入箱子
3. 潜行点击箱子可获取此箱子绑定玩家
4. 全GUI操作
## 配置文件
无
## 命令
/box
## 注意事项
本插件未对接任何领地、箱子商店!所以只要添加后,可以绕过领地之类的限制!
请使用API接口监听添加箱子事件,拦截玩家添加在他人领地内的箱子!
## API接口
注意:本插件的数据类型与LLSE-JS数据类型相同
参数前面如果有?代表此参数为可选参数
### 基础接口
`WirelessBox_addBox` - 给指定玩家添加一个箱子
参数:
- xuid: `String`
- 要添加玩家的XUID
- pos: `IntPos`
- 箱子坐标
- ?name: `String`
- 箱子别名
返回:`Boolean`
- 是否添加成功
`WirelessBox_deleteBox` - 删除指定玩家箱子
参数:
- xuid: `String`
- 要删除玩家的XUID
- pos: `IntPos`
- 箱子坐标
返回:`Boolean`
- 是否删除成功
`WirelessBox_getPlayerAllBox` - 获取指定玩家所有箱子
参数:
- xuid: `String`
- 玩家的XUID
返回: `Array`
- 所有箱子 [object, object, ...]
`WirelessBox_getPlayerBox` - 获取指定玩家指定箱子
参数:
- xuid: `String`
- 要删除玩家的XUID
- pos: `IntPos`
- 箱子坐标
返回: `Array`
- 所有箱子 [object]
`WirelessBox_getBoxInPos` - 通过坐标获取箱子
参数:
- pos: `IntPos`
- 箱子坐标
返回: `Array`
- 所有箱子 [object]
`WirelessBox_isBoxBound` - 箱子是否已被绑定
参数:
- pos: `IntPos`
- 箱子坐标
返回:`Boolean`
- 是否被绑定
### 事件接口
#### 模板
本模板以iLand领地作为示例
[/MD]
[MD]
`onWirelessAddBox` - 玩家添加箱子
返回Object:
- player: `Player`
- 触发此次事件的玩家
- box: `IntPos`
- 被绑定箱子坐标
- name: `String`
- 箱子别名
拦截事件:
函数返回`false`
`onWirelessDeleteBox` - 玩家删除箱子
返回Object:
- player: `Player`
- 触发此次事件的玩家
- index: `Number`
- 箱子在配置文件中的索引
- box: `Object`
- 保存的箱子对象
拦截事件:
函数返回`false`
`onWirelessEditBox` - 玩家重命名箱子别名
返回Object:
- player: `Player`
- 触发此次事件的玩家
- oldName: `String`
- 旧名称
- newName: `String`
- 新名称
- index: `Number`
- 箱子在配置文件中的索引
- box: `Object`
- 保存的箱子对象
拦截事件:
函数返回`false`
## 图片展示
[/MD]
[MD]
# Wireless Box - 无线箱子
这个插件属于是把自己奇奇怪怪的想法做出来了
插件功能:
1. 远程操作箱子、木桶之类的容器方块
2. 支持远程拿取、放入箱子
3. 潜行点击箱子可获取此箱子绑定玩家
4. 全GUI操作
## 配置文件
无
## 命令
/box
## 注意事项
本插件未对接任何领地、箱子商店!所以只要添加后,可以绕过领地之类的限制!
请使用API接口监听添加箱子事件,拦截玩家添加在他人领地内的箱子!
## API接口
注意:本插件的数据类型与LLSE-JS数据类型相同
参数前面如果有?代表此参数为可选参数
### 基础接口
`WirelessBox_addBox` - 给指定玩家添加一个箱子
参数:
- xuid: `String`
- 要添加玩家的XUID
- pos: `IntPos`
- 箱子坐标
- ?name: `String`
- 箱子别名
返回:`Boolean`
- 是否添加成功
`WirelessBox_deleteBox` - 删除指定玩家箱子
参数:
- xuid: `String`
- 要删除玩家的XUID
- pos: `IntPos`
- 箱子坐标
返回:`Boolean`
- 是否删除成功
`WirelessBox_getPlayerAllBox` - 获取指定玩家所有箱子
参数:
- xuid: `String`
- 玩家的XUID
返回: `Array`
- 所有箱子 [object, object, ...]
`WirelessBox_getPlayerBox` - 获取指定玩家指定箱子
参数:
- xuid: `String`
- 要删除玩家的XUID
- pos: `IntPos`
- 箱子坐标
返回: `Array`
- 所有箱子 [object]
`WirelessBox_getBoxInPos` - 通过坐标获取箱子
参数:
- pos: `IntPos`
- 箱子坐标
返回: `Array`
- 所有箱子 [object]
`WirelessBox_isBoxBound` - 箱子是否已被绑定
参数:
- pos: `IntPos`
- 箱子坐标
返回:`Boolean`
- 是否被绑定
### 事件接口
#### 模板
本模板以iLand领地作为示例
[/MD]
JavaScript:
// 导入 Listener 模块 下载地址: gitee.com/minimouse0/listenapi
import { Listener } from "./plugins/lib/listenAPI.js";
// 导入iLand接口
const ILAPI_PosGetLand = ll.imports("ILAPI_PosGetLand");
const ILAPI_GetOwner = ll.imports("ILAPI_GetOwner");
// 监听 被监听插件名 本插件名 要监听的事件 回调函数
Listener.on("WirelessBox", "ListenEventTemplate", "onWirelessAddBox", result => {
// 通过iland接口查询领地信息
const id = ILAPI_PosGetLand(result.box, true);
// 判断是否未返回领地id
if (id != -1) {
// 通过返回的领地id查询添加箱子的玩家是否为领地主人
if (ILAPI_GetOwner(id) != result.player.xuid) {
result.player.tell("当前箱子在他人领地内!");
return false;// 返回false 拦截此次事件
// 当然,你也要监听iLand创建领地事件,防止已添加的箱子被他人圈入领地内
}
}
});
[MD]
`onWirelessAddBox` - 玩家添加箱子
返回Object:
- player: `Player`
- 触发此次事件的玩家
- box: `IntPos`
- 被绑定箱子坐标
- name: `String`
- 箱子别名
拦截事件:
函数返回`false`
`onWirelessDeleteBox` - 玩家删除箱子
返回Object:
- player: `Player`
- 触发此次事件的玩家
- index: `Number`
- 箱子在配置文件中的索引
- box: `Object`
- 保存的箱子对象
拦截事件:
函数返回`false`
`onWirelessEditBox` - 玩家重命名箱子别名
返回Object:
- player: `Player`
- 触发此次事件的玩家
- oldName: `String`
- 旧名称
- newName: `String`
- 新名称
- index: `Number`
- 箱子在配置文件中的索引
- box: `Object`
- 保存的箱子对象
拦截事件:
函数返回`false`
## 图片展示
[/MD]