Pixiv - 砂糖
1903 字
10 分钟
MCBE WebSockets 完整函数描述文档
Minecraft基岩版WebSocket服务器 - 完整函数文档
本文档详细介绍了Minecraft基岩版WebSocket服务器项目中的所有函数。
目录
- 总述
- 核心功能函数
- 消息处理函数
- GPT相关函数
- 命令执行函数
- 游戏信息函数
- 实用函数
send_data(websocket, message)send_game_message(websocket, message)subscribe_events(websocket)parse_message(message)handle_data_part(message, connection_uuid, data_type, other_message=None)handle_display_command_log(websocket)clear_old_data(websocket, connection_uuid)get_game_information(websocket, connection_uuid)
- 认证函数
总述
这个项目实现了一个Minecraft基岩版(MCBE)的WebSocket服务器,旨在通过WebSocket连接与游戏客户端通信,并利用GPT模型提供智能对话和命令执行功能。服务器能够处理来自游戏的各种事件和命令,并返回相应的游戏信息。项目的核心功能包括处理WebSocket连接、订阅游戏事件、执行游戏命令、与GPT模型交互以及管理游戏状态信息。
核心功能函数
main()
- 描述:服务器的主入口点,启动WebSocket服务器并设置周期性更新。
- 逻辑:
- 启动WebSocket服务器,监听指定的IP和端口。
- 调用
periodic_update()函数定期更新游戏信息。
periodic_update()
- 描述:定期更新所有已连接客户端的游戏信息。
- 逻辑:
- 每隔10秒清理旧数据并获取新的游戏信息。
- 调用
clear_old_data()和get_game_information()函数。
handle_connection(websocket, path)
- 描述:处理新的WebSocket连接。
- 参数:
websocket: WebSocket连接对象path: 连接路径
- 逻辑:
- 为新连接生成UUID并初始化相关信息。
- 发送欢迎消息。
- 订阅游戏事件。
- 处理来自客户端的消息并调用相应的处理函数。
handle_event(websocket, data, conversation)
- 描述:处理来自游戏的传入事件。
- 参数:
websocket: WebSocket连接对象data: 事件数据conversation: GPT对话对象
- 逻辑:
- 根据事件类型调用相应的处理函数,如
handle_player_message()、handle_command_response()和handle_event_message()。
- 根据事件类型调用相应的处理函数,如
消息处理函数
handle_player_message(websocket, data, conversation)
- 描述:处理玩家消息并执行相应的命令。
- 参数:
websocket: WebSocket连接对象data: 消息数据conversation: GPT对话对象
- 逻辑:
- 解析玩家消息以提取命令和内容。
- 根据命令调用相应的处理函数,如登录验证、GPT聊天、执行命令等。
handle_command_response(websocket, data)
- 描述:处理命令响应。
- 参数:
websocket: WebSocket连接对象data: 响应数据
- 逻辑:
- 解析命令响应并更新游戏状态信息。
- 记录命令日志。
handle_event_message(websocket, data)
- 描述:处理事件消息,如玩家位置更新。
- 参数:
websocket: WebSocket连接对象data: 事件数据
- 逻辑:
- 解析事件数据并更新玩家位置信息。
GPT相关函数
gpt_main(conversation, player_prompt)
- 描述:向GPT模型发送提示并返回响应。
- 参数:
conversation: GPT对话对象player_prompt: 用户的输入提示
- 逻辑:
- 调用GPT模型生成响应。
- 返回GPT的响应消息。
handle_gpt_chat(websocket, content, conversation)
- 描述:处理GPT聊天请求。
- 参数:
websocket: WebSocket连接对象content: 聊天内容conversation: GPT对话对象
- 逻辑:
- 调用
gpt_main()生成GPT响应。 - 发送GPT响应到游戏客户端。
- 调用
handle_gpt_script(websocket, content, conversation)
- 描述:处理GPT脚本请求。
- 参数:
websocket: WebSocket连接对象content: 脚本内容conversation: GPT对话对象
- 逻辑:
- 调用
gpt_main()生成GPT响应。 - 发送脚本数据到游戏客户端。
- 调用
handle_gpt_save(websocket, conversation)
- 描述:保存GPT对话并重启对话。
- 参数:
websocket: WebSocket连接对象conversation: GPT对话对象
- 逻辑:
- 保存当前对话状态。
- 重启对话并通知客户端。
命令执行函数
run_command(websocket, command)
- 描述:执行游戏命令。
- 参数:
websocket: WebSocket连接对象command: 要执行的命令
- 逻辑:
- 构建命令消息并发送到游戏客户端。
- 记录待响应的命令。
handle_run_command(websocket, content)
- 描述:处理运行命令请求。
- 参数:
websocket: WebSocket连接对象content: 命令内容
- 逻辑:
- 调用
run_command()执行命令。
- 调用
handle_script_run_command(websocket, content)
- 描述:处理脚本运行命令请求。
- 参数:
websocket: WebSocket连接对象content: 脚本命令内容
- 逻辑:
- 调用
send_script_data()发送脚本命令。
- 调用
send_script_data(websocket, content, messageid="server:data")
- 描述:向游戏发送脚本数据。
- 参数:
websocket: WebSocket连接对象content: 脚本内容messageid: 消息ID(默认为”server”)
- 逻辑:
- 构建脚本消息并发送到游戏客户端。
游戏信息函数
gpt_game_weather(websocket, dimension)
- 描述:检索指定维度的当前天气。
- 参数:
websocket: WebSocket连接对象dimension: 游戏维度
- 逻辑:
- 获取并返回当前维度的天气信息。
gpt_game_players(websocket)
- 描述:检索游戏中所有玩家的信息。
- 参数:
websocket: WebSocket连接对象
- 逻辑:
- 获取并返回所有玩家的信息。
gpt_get_time(websocket, dimension)
- 描述:检索当前游戏时间和天数。
- 参数:
websocket: WebSocket连接对象dimension: 游戏维度
- 逻辑:
- 获取并返回当前游戏时间和天数。
gpt_run_command(websocket, commands)
- 描述:使用gpt智能运行命令。
- 参数:
websocket: WebSocket连接对象commands: 要执行的命令列表
- 逻辑:
- 调用
run_command()执行命令。
- 调用
gpt_world_entity(websocket, entityid)
- 描述:检索特定实体的信息。
- 参数:
websocket: WebSocket连接对象entityid: 实体ID
- 逻辑:
- 获取并返回特定实体的信息。
gpt_player_inventory(websocket, player_name=None)
- 描述:检索特定玩家或所有玩家的物品栏。
- 参数:
websocket: WebSocket连接对象player_name: 玩家名称(可选)
- 逻辑:
- 获取并返回特定玩家或所有玩家的物品栏信息。
gpt_get_commandlog(websocket)
- 描述:检索命令执行日志。
- 参数:
websocket: WebSocket连接对象
- 逻辑:
- 获取并返回命令执行日志。
实用函数
send_data(websocket, message)
- 描述:通过WebSocket连接发送数据。
- 参数:
websocket: WebSocket连接对象message: 要发送的消息
- 逻辑:
- 将消息转换为JSON格式并发送到WebSocket连接。
send_game_message(websocket, message)
- 描述:向游戏聊天发送格式化消息。
- 参数:
websocket: WebSocket连接对象message: 要发送的消息
- 逻辑:
- 格式化消息并发送到游戏聊天。
subscribe_events(websocket)
- 描述:订阅游戏事件。
- 参数:
websocket: WebSocket连接对象
- 逻辑:
- 构建订阅消息并发送到游戏客户端。
parse_message(message)
- 描述:解析玩家消息以提取命令和内容。
- 参数:
message: 来自玩家的原始消息
- 逻辑:
- 检查消息中是否包含预定义命令。
- 返回命令和内容。
handle_data_part(message, connection_uuid, data_type, other_message=None)
- 描述:处理来自游戏的部分数据消息。
- 参数:
message: 部分数据消息connection_uuid: 连接UUIDdata_type: 正在接收的数据类型other_message: 附加消息信息(可选)
- 逻辑:
- 解析数据部分并存储。
- 检查是否接收到所有数据部分,若是则组合并解析完整数据。
handle_display_command_log(websocket)
- 描述:显示命令日志。
- 参数:
websocket: WebSocket连接对象
- 逻辑:
- 获取并显示命令执行日志。
clear_old_data(websocket, connection_uuid)
- 描述:清理旧的游戏信息数据。
- 参数:
websocket: WebSocket连接对象connection_uuid: 连接UUID
- 逻辑:
- 清理GameInformation对象中的临时数据。
get_game_information(websocket, connection_uuid)
- 描述:获取游戏信息。
- 参数:
websocket: WebSocket连接对象connection_uuid: 连接UUID
- 逻辑:
- 发送游戏信息查询命令。
- 更新游戏信息。
认证函数
auth.verify_password(content)
- 描述:验证登录密码。
- 参数:
content: 要验证的密码
- 逻辑:
- 检查密码是否正确。
auth.generate_token()
- 描述:生成新的认证令牌。
- 逻辑:
- 生成新的随机令牌。
auth.save_token(connection_uuid, token)
- 描述:为连接保存认证令牌。
- 参数:
connection_uuid: 连接UUIDtoken: 认证令牌
- 逻辑:
- 将令牌与连接UUID关联并存储。
auth.verify_token(token)
- 描述:验证认证令牌。
- 参数:
token: 要验证的令牌
- 逻辑:
- 检查令牌是否有效。
auth.get_stored_token(connection_uuid)
- 描述:获取存储的认证令牌。
- 参数:
connection_uuid: 连接UUID
- 逻辑:
- 返回存储的令牌。
auth.is_token_valid(connection_uuid)
- 描述:检查令牌是否有效。
- 参数:
connection_uuid: 连接UUID
- 逻辑:
- 检查与连接UUID关联的令牌是否有效。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
MCBE WebSockets 完整函数描述文档
https://blog.rice-awa.top/posts/mcbe-websockets-doc/ 最后更新于 2024-08-16,距今已过 602 天
部分内容可能已过时