前置插件:聊天栏菜单
介绍
聊天栏菜单主要提供了将触发词命令注册到聊天栏菜单中的功能,让你可以在聊天栏中唤出插件功能。
例如:
.help
- 显示聊天栏菜单帮助.music play
- 播放音乐 (音乐播放器插件).spawnpoint
- 记录重生点 (自定义聊天栏菜单插件)
获取方式
- 类式插件:python
class MyPlugin(Plugin): ... def __init__(self, frame): super().__init__(frame) self.ListenPreload(self.on_preload) def on_preload(self): chatbar = self.GetPluginAPI("聊天栏菜单")
1
2
3
4
5
6
7
8
9
接口
添加聊天栏菜单项
python
def add_new_trigger(
triggers: list[str],
argument_hint: ARGUMENT_HINT,
usage: str,
func: Callable[[Player, tuple], bool],
op_only=False,
)
1
2
3
4
5
6
7
2
3
4
5
6
7
添加一个菜单触发词项。
参数:
参数名 类型 说明 triggers list[str] 触发词列表,如 ["help", "帮助"]
argument_hint ARGUMENT_HINT 触发词参数提示 usage str 命令说明,如 "显示帮助信息"
func (str, tuple) -> bool 命令执行回调:(玩家名, 传入参数) -> 是否拦截,一般来说返回 True 即可 op_only bool 是否仅管理员可用, 默认为 False
- 关于
argument_hint
:ARGUMENT_HINT
是一个描述菜单参数的列表,如:
python[("玩家名", str, None), ("数量", int, 1), ("额外内容", str, "")]
1- 其中元组的:
- 第一项为参数显示名,第二项为该参数类型
- 第二项为参数类型,可选值:
str
:可以输入字符串,如hello
int
:可以输入整数,如1
float
:可以输入整数或浮点数,如1.0
但是不能输入inf
,-inf
或nan
bool
:可以输入true
或false
- 第三项为参数默认值,没有默认值则设置为
None
- 关于
示例:
python
class NewPlugin(Plugin):
...
def __init__(self, frame):
super().__init__(frame)
self.ListenPreload(self.on_preload)
def on_preload(self):
chatbar = self.GetPluginAPI("聊天栏菜单")
# 添加菜单项:
# 输入 .give 指令起到和 /give 命令类似的效果
chatbar.add_new_trigger(
["give", "给予"],
[
("目标", str, None),
("物品ID", str, None)
("数量", int, 1),
("特殊值", int, 0)
],
self.menu_cb,
op_only=True
)
def menu_cb(self, player: Player, args: tuple):
target, item_id, count, data = args
self.game_ctrl.sendcmd(
f"give {target} {item_id} {count} {data}"
)
# .give @s diamond
# .give @s diamond 100
# .give @s diamond 100 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32