WebSocket命令
命令是通过 WebSocket 连接发送的 JSON 对象。 命令通过OnWsCommandResponse事件返回相应。
{
"command": "CommandName",
"requestId": "unique-id",
"parameters": []
}协议命令
这些命令负责管理 WebSocket 会话本身。
Authenticate
使用配置的密码进行身份验证。 必须在任何其他命令前调用。(除了ChangeSessionId)
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | string | 密码 |
示例:
{
"command": "Authenticate",
"requestId": "auth-001",
"parameters": ["你的密码"]
}ChangeSessionId
重命名当前会话。 无需身份验证即可调用。 新ID必须在1-32个字符之间并且尚未被占用。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | string | 新会话 ID |
示例:
{
"command": "ChangeSessionId",
"requestId": "rename-001",
"parameters": ["my-bot"]
}日志命令
LogToConsole
将消息输出到MCC控制台。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | string | 消息内容 |
LogDebugToConsole
将调试消息输出到MCC控制台(仅在调试模式下可见)。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | string | 消息内容 |
LogToConsoleTranslated
用某个MCC翻译键值输出一个已翻译消息。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | string | 翻译键值 |
LogDebugToConsoleTranslated
输出一个已翻译的调试消息。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | string | 翻译键值 |
会话命令
ReconnectToTheServer
重新连接到 Minecraft 服务器。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | int | 额外的重连次数(默认 3) |
| 1 | int | 延迟秒数(默认0) |
DisconnectAndExit
断开服务器连接并关闭 MCC。 无参数。
聊天命令
SendPrivateMessage
向一个玩家发送私信。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | string | 玩家名称 |
| 1 | string | 消息内容 |
脚本命令
RunScript
运行 MCC 脚本文件。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | string | 文件名 |
世界和地形命令
GetTerrainEnabled
检查是否启用地形处理。 无参数。 返回 { "enabled": true/false }。
SetTerrainEnabled
启用或禁用地形处理。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | bool | 是否启用 |
GetWorld
检查世界数据是否可用。 无参数。 如果启用了地形处理,返回 { "available": true } 。
DigBlock
破坏指定坐标的方块。 会验证该方块在6格方块内且不是空气。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | double | X 坐标 |
| 1 | double | Y 坐标 |
| 2 | double | Z 坐标 |
| 3 | string | 方向 (可选,例如:"Down") |
Direction 参数可接受字符串值:Down、Up、North、South、West、East。
实体命令
GetEntityHandlingEnabled
检查实体处理是否已启用。 无参数。 返回 { "enabled": true/false }。
GetEntities
获取所有追踪的实体。 无参数。 返回实体ID到对象的字典。
实体类型会被序列化为字符串(例如 "Zombie", "Player")。
InteractEntity
与实体互动。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | int | 实体 ID |
| 1 | string | 交互类型 (Interact, Attack, InteractAt) |
| 2 | string | 主副手(可选, MainHand 或 OffHand) |
SendEntityAction
发送实体动作。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | string | 动作类型(例如 StartSneaking, StopSneaking) |
Sneak
切换到潜行。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | bool | true 开始潜行,false 停止潜行 |
移动命令
GetCurrentLocation
获取玩家当前位置。 无参数。 返回位置的 x, y, z 坐标。
MoveToLocation
进行寻路并将玩家移动到一个位置。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | double | X 坐标 |
| 1 | double | Y 坐标 |
| 2 | double | Z 坐标 |
| 3 | bool | 允许危险路径(可选,默认:true) |
| 4 | bool | 允许传送(可选,默认:true) |
| 5 | int | 最大偏移(可选,默认:0) |
| 6 | int | 最小偏移(可选,默认:0) |
ClientIsMoving
检查玩家当前是否在移动。 无参数。 返回 { "moving": true/false }。
LookAtLocation
让玩家看向坐标。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | double | X 坐标 |
| 1 | double | Y 坐标 |
| 2 | double | Z 坐标 |
玩家信息命令
GetUsername
获取玩家的用户名。 无参数。 返回 { "username": "..." }。
GetUserUUID
获取玩家的 UUID。 无参数。 返回 { "uuid": "..." }。
GetGamemode
获取当前游戏模式。 无参数。 返回 { "gamemode": 0 }。
GetYaw
获取玩家偏航角度。 无参数。 返回 { "yaw": 0.0 }。
GetPitch
获取玩家俯仰角度。 无参数。 返回 { "pitch": 0.0 }。
GetOnlinePlayers
获取在线玩家列表。 无参数。 返回字符串数组。
GetOnlinePlayersWithUUID
获取在线玩家 UUID 列表。 无参数。 返回一个 UUID 到玩家名称的字典。
GetPlayersLatency
获取在线玩家的延迟信息。 无参数。
服务器信息命令
GetServerHost
获取服务器主机名。 无参数。 返回 { "host": "..." }。
GetServerPort
获取服务器端口。 无参数。 返回 { "port": 25565 }。
GetServerTPS
获取服务器 TPS (每秒 Tick 数) 无参数。 返回 { "tps": 20.0 }。
GetTimestamp
获取当前时间戳。 无参数。 返回 { "timestamp": "..." }。
GetProtocolVersion
获取 Minecraft 协议版本. 无参数。 返回 { "protocolVersion": 769 }。
GetMaxChatMessageLength
获取最大聊天消息长度。 无参数。 返回 { "length": 256 }。
物品栏命令
GetInventoryEnabled
检查物品栏处理是否已启用。 无参数。 返回 { "enabled": true/false }。
GetPlayerInventory
获取玩家物品栏。 无参数。 返回玩家物品栏内所有物品。
物品类型会被序列化为字符串(例如 "DiamondSword","Stone")。
GetInventories
获取所有打开的物品栏。 无参数。
WindowAction
执行窗口/物品栏操作。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | int | 物品栏 ID |
| 1 | int | 槽位 ID |
| 2 | string | 操作类型 (例如 LeftClick, RightClick, DropItemStack) |
ChangeSlot
更改激活的快捷栏槽位。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | short | 槽位号 (0-8) |
GetCurrentSlot
获取当前选中的快捷栏槽位。 无参数。 返回 { "slot": 0 }。
SetSlot
设置快捷栏槽位 (旧版命令)。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | int | 槽位号 |
ClearInventories
清除跟踪的物品栏状态。 无参数。
CloseInventory
关闭物品栏窗口。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | int | 物品栏 ID |
创造模式命令
CreativeGive
在创造模式中给予物品。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | int | 槽位 ID |
| 1 | string | 物品类型 (例如 "DiamondSword" 或 798) |
| 2 | int | 数量 |
CreativeDelete
从创造模式物品栏槽位下中删除物品。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | int | 槽位 ID |
方块交互命令
SendPlaceBlock
放置一个方块。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | double | X 坐标 |
| 1 | double | Y 坐标 |
| 2 | double | Z 坐标 |
| 3 | string | 方向 (例如:"Up") |
| 4 | string | 主副手(可选, "MainHand" 或 "OffHand") |
SendAnimation
播放手臂回旋动画。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | string | 主副手(可选,默认为"MainHand") |
UseItemInHand
使用当前持有的物品。 无参数。
UpdateSign
更新告示牌的文字
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | double | X 坐标 |
| 1 | double | Y 坐标 |
| 2 | double | Z 坐标 |
| 3 | string | 第 1 行 |
| 4 | string | 第 2 行 |
| 5 | string | 第 3 行 |
| 6 | string | 第 4 行 |
UpdateCommandBlock
更新命令方块。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | double | X 坐标 |
| 1 | double | Y 坐标 |
| 2 | double | Z 坐标 |
| 3 | string | 命令 |
| 4 | string | 模式(例如:"Sequence"、"Auto"、"Redstone") |
| 5 | string | 标志 |
交易命令
SelectTrade
选择一个村民交易。
参数:
| 索引 | 类型 | 描述 |
|---|---|---|
| 0 | int | 交易索引 |
Respawn
死亡后重生。 无参数。
映射命令 (新)
这些命令允许客户端在运行时动态查询枚举的映射。这样命令就不需要依靠硬编码维护随 MCC 版本不断更新的数字 ID 表。 详情见 问题 #2805。
GetItemTypeMappings
获取所有物品类型名称到它们数字ID的字典。 无参数。 返回 { "DiamondSword": 798, "Stone": 1, ... }。
GetEntityTypeMappings
获取所有实体类型名称到它们数字ID的字典。 无参数。 返回 { "Player": 128, "Zombie": 119, ... }。
