- Published on
MCBE WebSockets 完整函数描述文档
- Authors
- Name
- rice-awa
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:data")
- 逻辑:
- 构建脚本消息并发送到游戏客户端。
游戏信息函数
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关联的令牌是否有效。