此条目仍需完善。
你可以帮助我们扩充关于该主题的更多信息。
本页面是指MCPE/connect
命令连接的WebSocket。
本教程展示的是客户端与服务端的数据包,不涉及WebSocket服务端的开发,但您可以参考底部的链接来进行服务端的开发。
数据包
Websocket服务器需要向mcpe发送数据包来进行交互。
这里有几个示例数据包。
subscribe
{ "body": { "eventName": "PlayerMessage" }, "header": { "requestId": "0ddbe098-00ff-ffff-abbbbbbbbbdd3344", "messagePurpose": "subscribe", "version": 1, "messageType": "commandRequest" } }
这将对PlayerMessage事件进行监听,玩家说的话将被通过数据包发回。
unsubscribe
Unsubscribe包是用来在监听事件之后取消监听。
{ "body": { "eventName": "PlayerMessage" }, "header": { "requestId": "0ddbe098-00ff-ffff-abbbbbbbbbdd3344", "messagePurpose": "unsubscribe", "version": 1, "messageType": "commandRequest" } }
这是一个对PlayerMessage事件进行unsubscribe的包。
CommandRequest
{ "body": { "origin": { "type": "player" }, "commandLine": "say Hello", "version": 1 }, "header": { "requestId": "0ffae098-00ff-ffff-abbbbbdf3f44", "messagePurpose": "commandRequest", "version": 1, "messageType": "commandRequest" } }
这将在客户端执行commandLine项(say Hello)的命令,执行结果会被发回。
- commandRequest能执行一些游戏内无法执行的命令,例如:
/agent create
(创建agent)
返回数据包
event包
标准Event包示例
{ "body": {"eventName": 事件名称,"measurements": null,"properties": {/*信息*/}}, "header": {"meesagePurpose": "event","requestId": "xxx","version":1}}
PlayerMessage event示例
示例:
{"body":{"eventName":"PlayerMessage","measurements":null,"properties":{"AccountType":1,"ActiveSessionID":"(这里是一个uuid)","AppSessionID":"(一个uuid)","Biome":43,"Build":"1.8.0","BuildPlat":2,"Cheevos":false,"ClientId":"(32位16进制数据)","CurrentInput":2,"CurrentNumPlayers":1,"DeviceSessionId":"(一个uuid)","Dim":0,"GlobalMultiplayerCorrelationId":"(一个uuid)","Message":"233","MessageType":"chat","Mode":0,"MultiplayerCorrelationId":"(一个uuid)","NetworkType":0,"Plat":"iOS 12.1.3","PlayerGameMode":1,"Sender":"LNSSPsd","Seq":57,"ServerId":"raknet:11310020921574762398","Treatments":"","UserId":"十六位数字","WorldSessionId":"(一个uuid)","locale":"en_CN","vrMode":false}},"header":{"messagePurpose":"event","requestId":"00000000-0000-0000-0000-000000000000","version":1}}
这是一个playermessage返回包示例。
- body.properties.Message是用户发出的消息
- body.properties.MessageType是消息类型(say,me,chat等)
- body.properties.Sender是发送者名称
- body.properties.locale是设备使用的语言
CommandResponse (CommandRequest返回)
示例:
list命令
{"body":{"currentPlayerCount":1,"maxPlayerCount":5,"players":"LNSSPsd","statusCode":0,"statusMessage":"There are 1/5 players online:\nLNSSPsd"},"header":{"messagePurpose":"commandResponse","requestId":"(一个uuid)","version":1}}
- body.currentPlayerCount,body.maxPlayerCount,body.players 是
/list
命令特有的,在执行其他命令时不存在.
say命令
本示例使用了/say oh
命令
{"body":{"message":"oh","statusCode":0},"header":{"messagePurpose":"commandResponse","requestId":"00000000-0001-0000-000000000000","version":1}}
- body.message 是
/say
命令特有的。
注释
- body.statusCode 是命令完成状态,完成是为0。
- body.statusMessage是状态消息,相当于执行命令后聊天里的命令返回。
事件表
事件 AdditionalContentLoaded AgentCommand AgentCreated ApiInit AppPaused AppResumed AppSuspended AwardAchievement BlockBroken BlockPlaced BoardTextUpdated BossKilled CameraUsed CauldronUsed ChunkChanged ChunkLoaded ChunkUnloaded ConfigurationChanged ConnectionFailed CraftingSessionCompleted EndOfDay EntitySpawned FileTransmissionCancelled FileTransmissionCompleted FileTransmissionStarted FirstTimeClientOpen FocusGained FocusLost GameSessionComplete GameSessionStart HardwareInfo HasNewContent ItemAcquired ItemCrafted ItemDestroyed ItemDropped ItemEnchanted ItemSmelted ItemUsed JoinCanceled JukeboxUsed LicenseCensus MascotCreated MenuShown MobInteracted MobKilled MultiplayerConnectionStateChanged MultiplayerRoundEnd MultiplayerRoundStart NpcPropertiesUpdated OptionsUpdated performanceMetrics PackImportStage PlayerBounced PlayerDied PlayerJoin PlayerLeave PlayerMessage PlayerTeleported PlayerTransform PlayerTravelled PortalBuilt PortalUsed PortfolioExported PotionBrewed PurchaseAttempt PurchaseResolved RegionalPopup RespondedToAcceptContent ScreenChanged ScreenHeartbeat SignInToEdu SignInToXboxLive SignOutOfXboxLive SpecialMobBuilt StartClient StartWorld TextToSpeechToggled UgcDownloadCompleted UgcDownloadStarted UploadSkin VehicleExited WorldExported WorldFilesListed WorldGenerated WorldLoaded WorldUnloaded
你知道吗
历史
携带版Alpha | |||||
---|---|---|---|---|---|
0.16.0 | build 1 | 加入了/connect 命令,可以连接WebSocket了。 | |||
基岩版 | |||||
1.2 | commandRequest包格式发生改变。 |