MEBForms

原创 插件 MEBForms 1.0.0

请登录后获取
版权类型
原创
API版本
5.x.x
版权链接
#
语言支持
多语言
[MD] # MEBForms | | | |---|---| | API | `5.0.0` | | Load | `STARTUP` | --- MEBForms 是一个**纯类库插件**,把 PocketMine-MP 的原生 `Form` 接口包装成三个开箱即用的表单类,让你的插件用几行代码弹出 GUI 窗口。 ### 三个表单类 | 类 | 界面 | 回调收到的值 | |---|---|---| | `SimpleForm` | 一列按钮,支持图标 | 按钮索引 `int`,或你指定的 `label` 字符串 | | `CustomForm` | 输入框 / 开关 / 滑块 / 下拉框 / 分段滑块 | 数组,下标 = 元素添加顺序 | | `ModalForm` | 两个按钮的确认框 | `true` = 第一个按钮,`false` = 第二个 | 全部继承自 `BaseForm`,共用 `setTitle()`、`setCallable()`。 ### 安装 把 `MEBForms` 放进 `plugins/`。在你自己插件的 `plugin.yml` 里声明依赖(对于开发者): ```yaml depend: [MEBForms] ``` ### 用法 按钮窗口: ```php use MengBao\MEBForms\SimpleForm; $form = new SimpleForm(function(Player $player, $data): void { if ($data === null) { return; //玩家关掉了窗口 } match ($data) { "shop" => $player->sendMessage("打开商店"), "spawn" => $player->sendMessage("传送到出生点"), default => null, }; }); $form->setTitle("§l主菜单"); $form->setContent("选一个功能"); $form->addButton("商店", 0, "textures/items/emerald", "shop"); $form->addButton("回出生点", -1, "", "spawn"); $player->sendForm($form); ``` `addButton` 的第四个参数 `label` 给了之后,回调收到的就是这个字符串而不是索引——中间插一个按钮也不用回去改 `match` 的数字。不给 `label` 时回调收到索引,按索引判断照样能用。 自定义窗口: ```php use MengBao\MEBForms\CustomForm; $form = new CustomForm(function(Player $player, $data): void { if ($data === null) { return; } //注意 label 也占一个下标,值恒为 null,后面的元素要跟着往后数 $name = (string) $data[1]; $isPvp = (bool) $data[2]; $size = (float) $data[3]; $mode = (int) $data[4]; //选中项的索引 }); $form->setTitle("创建领地"); $form->addLabel("填写领地信息"); $form->addInput("领地名称", "最多16个字"); $form->addToggle("允许PVP", false); $form->addSlider("半径", 8, 128, 8, 32); $form->addDropdown("类型", ["住宅", "商业", "农场"]); $player->sendForm($form); ``` 确认框: ```php use MengBao\MEBForms\ModalForm; $form = new ModalForm(function(Player $player, bool $confirm): void { if ($confirm) { $player->sendMessage("已删除"); } }); $form->setTitle("确认删除"); $form->setContent("这个操作不可撤销,确定吗?"); $form->setButton1("§c确定删除"); $form->setButton2("取消"); $player->sendForm($form); ``` 确认框没有关闭按钮,玩家按 ESC 等同于点了第二个按钮,所以 `ModalForm` 的回调可以直接把参数标成 `bool`。 ### 提示 - 按钮文字和内容都支持 `§` 颜色码和 `\n` 换行。 - 图标参数:`0` = 材质路径(如 `textures/ui/accept`),`1` = 网络 URL,`-1` = 不要图标。 - 想复用同一个表单实例又要换回调,用 `setCallable()`。 - `getButtonCount()` / `getElementCount()` 在动态生成表单时用来对下标很方便。 --- [/MD]
GitHub开源
点击进群
作者
梦宝
价格
1.00金粒
下载
1
查看
37
首次发布
最后更新

评分

0.00 星 0 次评分

梦宝 的其他资源

后退
顶部 底部