指令和数据包发送
以玩家身份发送指令
python
def sendcmd(
cmd: str,
waitForResp: bool = False,
timeout: int = 30
) -> Packet_CommandOutput | None
1
2
3
4
5
2
3
4
5
- 执行MC指令,并指定是否返回指令执行结果
- 参数:
- cmd (str): Minecraft 指令
- waitForResp (bool): 是否等待指令执行完成并返回执行结果,默认False
- timeout (int): 等待超时时间秒数,超时引发TimeoutError,默认为 30 秒
- 返回: 若 waitForResp 为 False:返回
None
若 waitForResp 为 True: 返回Packet_CommandOutput
实例, 包含指令返回的一系列信息
关于 Packet_CommandOutput
Packet_CommandOutput
是一个类,用于封装 MC 指令执行结果。 如果你不知道如何使用它,可以打印它的 as_dict
属性,其包含了完整的指令返回内容。
- 示例
- 类式插件中:
pythonclass MyPlugin(Plugin): def on_inject(self): self.game_ctrl.sendcmd("/say Hello World") print(self.game_ctrl.sendcmd("/say Hello World", waitForResp=True).as_dict)
1
2
3
4
5- 注入式插件中:
python:::from tooldelta.game_utils import sendcmd sendcmd("/say Hello World") print(sendcmd("/say Hello World", waitForResp=True).as_dict)
1
2
3
4
以玩家身份发送指令并获取返回
python
def sendcmd(
cmd: str,
timeout: int = 30
) -> Packet_CommandOutput
1
2
3
4
2
3
4
执行MC指令并获取返回结果
参数:
- cmd (str): Minecraft 指令
- timeout (int): 等待超时时间秒数,超时引发TimeoutError,默认为 30 秒
返回: 返回
Packet_CommandOutput
实例, 包含指令返回的一系列信息示例
- 类式插件中:
pythonclass MyPlugin(Plugin): def on_inject(self): print(self.game_ctrl.sendcmd_with_resp("/say Hello World").as_dict)
1
2
3
4注入式插件中:
pythonfrom tooldelta.game_utils import sendcmd sendcmd("/say Hello World")
1
2
3
以 WebSocket 身份发送指令
python
def sendwscmd(
cmd: str,
waitForResp: bool = False,
timeout: int = 30
) -> Packet_CommandOutput | None
1
2
3
4
5
2
3
4
5
- 以 WebSocket 身份执行 Minecraft 指令
- 参数与返回同上
以控制台身份发送指令
python
def sendwocmd(cmd: str) -> None
1
执行无返回高权限指令
参数:
cmd (str): 指令示例
- 类式插件中:
pythonclass MyPlugin(Plugin): def on_inject(self): self.game_ctrl.sendwocmd("/say Hello World")
1
2
3
4- 注入式插件中:
pythonfrom tooldelta.game_utils import sendwocmd sendwocmd("/say Hello World")
1
2
3
发送数据包
python
def sendPacket(self, pckID: int, pck: dict)
1
- 向服务器发送游戏数据包。数据包格式参考 Minecraft Bedrock Protocol
- 参数:
- pckID (int):数据包ID
- pck (dict):数据包包体
对玩家显示聊天栏消息
python
def say_to(target: str, text: str) -> None
1
向玩家显示聊天栏消息
参数:
- target (str): 显示的目标(可以是目标选择器)
- text (str): 消息
示例
- 类式插件中:
pythonclass MyPlugin(Plugin): def on_inject(self): self.game_ctrl.say_to("@a", "Hello World")
1
2
3
4
显示 title 信息
python
def player_title(target: str, text: str) -> None
1
- 向玩家显示标题栏消息
- 参数:
- target (str): 显示的目标(可以是目标选择器)
- text (str): 消息
- 示例
- 类式插件中:
pythonclass MyPlugin(Plugin): def on_inject(self): self.game_ctrl.player_title("@a", "Hello World")
1
2
3
4
显示 subtitle 信息
python
def player_subtitle(target: str, text: str) -> None
1
- 向玩家显示小标题栏消息,需要先显示了大标题信息
- 参数:
- target (str): 显示的目标(可以是目标选择器)
- text (str): 消息
- 示例
- 类式插件中:
pythonclass MyPlugin(Plugin): def on_inject(self): self.game_ctrl.player_subtitle("@a", "Hello World")
1
2
3
4
显示 actionbar 信息
python
def player_actionbar(target: str, text: str) -> None
1
- 向玩家显示行动栏消息
- 参数:
- target (str): 显示的目标(可以是目标选择器)
- text (str): 消息
- 示例
- 类式插件中:
pythonclass MyPlugin(Plugin): def on_inject(self): self.game_ctrl.player_actionbar("@a", "Hello World")
1
2
3
4