[MD]
# GUI & Dialog & Pupup
用户可自定义,可用指令的GUI / 弹窗 / 菜单插件
##
安装
LL3 先安装 LSE
下载 `GUI-Dialog-Pupup_x.x.x.zip`
LL3 把 zip 解压到 plugins/ 下
LL2 把 zip 中的 `GUI & Dialog & Pupup.js` 解压到 plugins/ 下
##
使用
### 基础部分
**使用 `/toast` 在屏幕上方弹出短暂的提示**
示例 `/toast @s 标题 这是一条 Toast`
**使用 `/popup` 弹出纯文本信息**
示例 `/popup @s 这是一条 Popup`
[/MD]
[MD]
**使用 `/alert` 弹出带有标题的信息**
示例 `/alert @s 标题 这是一条 Alert`
[/MD]
[MD]
**使用 `/confirm 玩家 确认后执行的命令 内容` 弹出确认消息**
示例 `/confirm @s "say $PLAYER 点击了确认" 这是一个 Confirm`
[/MD]
[MD]
**注意: 命令执行主体为玩家时,确认后执行的命令将被发送弹窗的玩家执行(管理员),命令执行主体为服务器时,确认后执行的命令将被服务器执行(后台),其他执行主体如命令方块等,则不执行确认后的命令,请注意命令是否安全**
确认后执行的命令中的 `$PLAYER` 将会被替换成接收到弹窗的玩家名,`$PLAYEREX` 将会被替换成接收到弹窗的玩家别名(假名)
**使用 `/prompt 玩家 提交后执行的命令 内容` 弹出输入框**
示例 `/prompt @s "say $PLAYER 输入了: $CONTENT" 这是一个 Prompt`
[/MD]
[MD]
**注意: 命令执行主体为玩家时,提交后执行的命令将被发送弹窗的玩家执行(管理员),命令执行主体为服务器时,提交后执行的命令将被服务器执行(后台),其他执行主体如命令方块等,则不执行提交后的命令,请注意命令是否安全**
提交后执行的命令中的 `$PLAYER` 将会被替换成接收到弹窗的玩家名,`$PLAYEREX` 将会被替换成接收到弹窗的玩家别名(假名),`$CONTENT` 将会被替换成输入的内容
### 自定义部分
**使用 `/gdpdialog 路径` 或 `/dialog 路径` 弹出自定义弹窗**
**使用 `/gdpopup setitem 物品 路径` 绑定物品对应的弹窗路径**,此时手持对应物品长按即可触发弹窗
**注意:**
1. 路径的根目录为 `plugins/GUI & Dialog & Pupup/dialogs/`
2. 弹窗文件格式为 JSON
3. 路径无需带上.json,插件会自动添加.json
4. **自定义弹窗的回调命令都是被后台执行,请注意命令安全**
### 弹窗文件说明
弹窗文件为 JSON 文件,但是可以存在注释,注释以 `//` 开头且**只能在单独一行**
包含所有可能存在的键的文件格式:
```json
{
"type": "弹窗类型",
// 必须存在,其他都可能不存在
"message": "弹窗内容",
// 仅type=popup/alert/confirm/prompt
"title": "标题",
// 仅type=alert/dialog/dialog_ex
"on_confirm": "确认后执行的命令",
// 仅type=confirm
"on_submit": "提交后执行的命令",
// 仅type=prompt
"content": "弹窗内容",
// 仅type=dialog,后面也是
"buttons": [
{
"text": "按钮文字",
"icon": "按钮图标",
// 使用原版图标格式:textures/items/apple,使用网络图标直接填图片链接
"callback": [
{
"type": "回调类型",
// cmd: 后台执行命令,pl_say: 以玩家身份说话
// pl_cmd: 以玩家身份执行命令,tell: 玩家聊天栏显示内容,js: 执行js
// bc: 广播消息,goto: 切换弹窗
"content": "执行内容",
// $PLAYER 会被替换成玩家名,$PLAYEREX 会被替换成玩家别名(假名)
"if": "执行条件",
// 会替换内容同上,条件内容将会被作为 JS 执行,请注意代码安全
"else": "条件不满足时执行"
// 会替换内容同上
}
]
}
]
}
```
使用 `dialog_ex` 创建内容更丰富的弹窗
[/MD]
[MD]
**`dialog_ex` 的 JSON 格式和条件示例请查看附件中弹窗示例的 `example7.json`**
具体示例:
```json
{
"type": "popup",
"message": "示例 Popup"
}
```
这将弹出一个 Popup,与 popup 命令执行效果相同
```json
{
"type": "dialog",
"title": "标题",
"content": "文字内容",
"buttons": [
{
"text": "按钮1",
"callback": [
{
"type": "pl_say",
"content": "我点击了按钮1"
}
]
},
{
"text": "按钮2,带图标",
"icon": "textures/items/diamond",
"callback": [
{
"type": "cmd",
"content": "say $PLAYER 点击了按钮2,并且弹出了一个 Popup"
},
{
"type": "goto",
"content": "example1"
}
]
}
]
}
```
这将弹出一个拥有多个按钮的自定义弹窗
更多示例在**附件**
[/MD]
# GUI & Dialog & Pupup
用户可自定义,可用指令的GUI / 弹窗 / 菜单插件
##

LL3 先安装 LSE
下载 `GUI-Dialog-Pupup_x.x.x.zip`
LL3 把 zip 解压到 plugins/ 下
LL2 把 zip 中的 `GUI & Dialog & Pupup.js` 解压到 plugins/ 下
##

### 基础部分
**使用 `/toast` 在屏幕上方弹出短暂的提示**
示例 `/toast @s 标题 这是一条 Toast`
**使用 `/popup` 弹出纯文本信息**
示例 `/popup @s 这是一条 Popup`
[/MD]
[MD]
**使用 `/alert` 弹出带有标题的信息**
示例 `/alert @s 标题 这是一条 Alert`
[/MD]
[MD]
**使用 `/confirm 玩家 确认后执行的命令 内容` 弹出确认消息**
示例 `/confirm @s "say $PLAYER 点击了确认" 这是一个 Confirm`
[/MD]
[MD]
**注意: 命令执行主体为玩家时,确认后执行的命令将被发送弹窗的玩家执行(管理员),命令执行主体为服务器时,确认后执行的命令将被服务器执行(后台),其他执行主体如命令方块等,则不执行确认后的命令,请注意命令是否安全**
确认后执行的命令中的 `$PLAYER` 将会被替换成接收到弹窗的玩家名,`$PLAYEREX` 将会被替换成接收到弹窗的玩家别名(假名)
**使用 `/prompt 玩家 提交后执行的命令 内容` 弹出输入框**
示例 `/prompt @s "say $PLAYER 输入了: $CONTENT" 这是一个 Prompt`
[/MD]
[MD]
**注意: 命令执行主体为玩家时,提交后执行的命令将被发送弹窗的玩家执行(管理员),命令执行主体为服务器时,提交后执行的命令将被服务器执行(后台),其他执行主体如命令方块等,则不执行提交后的命令,请注意命令是否安全**
提交后执行的命令中的 `$PLAYER` 将会被替换成接收到弹窗的玩家名,`$PLAYEREX` 将会被替换成接收到弹窗的玩家别名(假名),`$CONTENT` 将会被替换成输入的内容
### 自定义部分
**使用 `/gdpdialog 路径` 或 `/dialog 路径` 弹出自定义弹窗**
**使用 `/gdpopup setitem 物品 路径` 绑定物品对应的弹窗路径**,此时手持对应物品长按即可触发弹窗
**注意:**
1. 路径的根目录为 `plugins/GUI & Dialog & Pupup/dialogs/`
2. 弹窗文件格式为 JSON
3. 路径无需带上.json,插件会自动添加.json
4. **自定义弹窗的回调命令都是被后台执行,请注意命令安全**
### 弹窗文件说明
弹窗文件为 JSON 文件,但是可以存在注释,注释以 `//` 开头且**只能在单独一行**
包含所有可能存在的键的文件格式:
```json
{
"type": "弹窗类型",
// 必须存在,其他都可能不存在
"message": "弹窗内容",
// 仅type=popup/alert/confirm/prompt
"title": "标题",
// 仅type=alert/dialog/dialog_ex
"on_confirm": "确认后执行的命令",
// 仅type=confirm
"on_submit": "提交后执行的命令",
// 仅type=prompt
"content": "弹窗内容",
// 仅type=dialog,后面也是
"buttons": [
{
"text": "按钮文字",
"icon": "按钮图标",
// 使用原版图标格式:textures/items/apple,使用网络图标直接填图片链接
"callback": [
{
"type": "回调类型",
// cmd: 后台执行命令,pl_say: 以玩家身份说话
// pl_cmd: 以玩家身份执行命令,tell: 玩家聊天栏显示内容,js: 执行js
// bc: 广播消息,goto: 切换弹窗
"content": "执行内容",
// $PLAYER 会被替换成玩家名,$PLAYEREX 会被替换成玩家别名(假名)
"if": "执行条件",
// 会替换内容同上,条件内容将会被作为 JS 执行,请注意代码安全
"else": "条件不满足时执行"
// 会替换内容同上
}
]
}
]
}
```
使用 `dialog_ex` 创建内容更丰富的弹窗
[/MD]
[MD]
**`dialog_ex` 的 JSON 格式和条件示例请查看附件中弹窗示例的 `example7.json`**
具体示例:
```json
{
"type": "popup",
"message": "示例 Popup"
}
```
这将弹出一个 Popup,与 popup 命令执行效果相同
```json
{
"type": "dialog",
"title": "标题",
"content": "文字内容",
"buttons": [
{
"text": "按钮1",
"callback": [
{
"type": "pl_say",
"content": "我点击了按钮1"
}
]
},
{
"text": "按钮2,带图标",
"icon": "textures/items/diamond",
"callback": [
{
"type": "cmd",
"content": "say $PLAYER 点击了按钮2,并且弹出了一个 Popup"
},
{
"type": "goto",
"content": "example1"
}
]
}
]
}
```
这将弹出一个拥有多个按钮的自定义弹窗
更多示例在**附件**
[/MD]