ExternalChat 网页聊天插件
允许通过网页向 Minecraft 世界发送与接收聊天消息,使用 JSON 在游戏内外通信,并通过 Minecraft 服务器进行用户认证;已在 CraftBukkit (CB) 1.1-R6 与 CB 1.2.2-Dev 上测试通过。
- 详细介绍
概述
ExternalChat 插件允许从网页发送和接收 Minecraft 聊天消息。它使用 JSON 在 Minecraft 服务器与外部网页之间交换数据,并通过 Minecraft 官方认证服务对网页用户进行验证,以准确识别发送者身份。
功能
- 从网页向 Minecraft 客户端发送消息
- 从 Minecraft 向网页发送消息
- 安全的网页用户认证(使用 Minecraft 账户)
- 无需数据库
- 网页用户使用其 Minecraft 用户名与密码登录
兼容性与测试
- 在 CraftBukkit (CB) 1.1-R6 上测试通过
- 在 CraftBukkit (CB) 1.2.2-Dev 上测试通过
配置
插件配置(Plugin Configuration)
show_death(默认:true)- 是否将死亡消息发送到网页death_name(默认:Humiliator)- 当将死亡消息发送到网页时显示的用户名chat_delay(默认:3000)- 检查新消息的间隔(以毫秒为单位)clean_delay(默认:30000)- 检查并清理旧消息的间隔(以毫秒为单位)clean_age(默认:45000)- 消息达到该年龄(毫秒)后将被删除chat_file(默认:map/inChat.json)- 用于读写消息的文件名
Minecraft 服务器配置(Minecraft Server Configuration)
- Minecraft 服务器必须对
chat_file(由插件配置指定)具有读写权限。
Web 服务器配置(Web Server Configuration)
- PHP 版本 > 5.2.0 或启用了 JSON 扩展
- 已安装并配置 SSL(建议使用 HTTPS 以保护认证信息)
- 以下文件需要写权限:
chat_sessions、inChat.json
player_chat.js 配置
player_chat.js: line 1-chatRead(默认:/inChat.json)- 用于读取消息的文件名player_chat.js: line 2-chatWrite(默认:/outChat.php)- 认证后用于写入消息的文件名player_chat.js: line 3-authenticator(默认:/minecraft_authenticator.php)- 发送认证请求的文件名player_chat.js: line 4-expireDays(默认:365)- 客户端浏览器 Cookie 的有效天数player_chat.js: line 5-chatDelay(默认:3000)- 检查新消息的间隔(毫秒)
outChat.php 配置
outChat.php: line 2-chatJSON(默认:inChat.json)- 用于写入消息的文件名outChat.php: line 3-sessionFile(默认:chat_sessions)- 用于读写会话信息的文件名outChat.php: line 4-timeZone(默认:America/New_York)- 服务器时区设置(参见 PHP 支持的时区)
minecraft_authenticator.php 配置
minecraft_authenticator.php: line 2-sessionFile(默认:chat_sessions)- 用于读写会话信息的文件名
要求
- Web 服务器应使用 SSL(虽然不是技术上的严格要求,但强烈建议不要在非 SSL 连接上传输认证信息)
- 如果聊天页面不是通过 HTTPS 加载,客户端浏览器必须支持 Access-Control-Allow-Origin 头(以满足跨域 AJAX 安全策略,大多数现代浏览器支持)
chat_sessions文件不应对外可见:服务器需对其读写,但不应将其公开到互联网
安装
- 将插件的 jar 包放入 Minecraft 服务器的
plugins目录。 - 将以下文件复制到你的 Web 目录:
js/player_chat.js、outChat.php、minecraft_authenticator.php、inChat.json、chat_sessions、chat.html(示例页面)。 - 为 Web 服务器设置
chat_sessions与inChat.json的写权限。 - 为 Minecraft 服务器设置
inChat.json的写权限。 - 启动 CraftBukkit 服务器并开始聊天。
命令
private- 将玩家的聊天模式设置为私有(其聊天消息不会发布到网页)public- 将玩家的聊天模式恢复为公开(其聊天消息会发布到网页)
已知问题 / 限制
chat.html文件仅作为示例,界面较为简陋,旨在演示如何整合聊天功能- 来自 Minecraft 的消息中如果包含 HTML 标记,网页端会原样显示 HTML,存在被滥用的可能性
- 此聊天功能要求网页用户需有 Minecraft 账户才能认证;如果用户不是正版账户,仍可被允许进入聊天(取决于认证逻辑)
未来计划
- 可能增加 Facebook 集成
- 在 Minecraft 内宣布网页用户的上线/离线状态
- 对从 Minecraft 传出的聊天消息进行 HTML 转义以避免注入
文档结构
- 概述
- 功能
- 配置(插件 / 服务器 / Web / 各脚本)
- 要求
- 安装
- 命令
- 已知问题 / 限制
- 未来计划
该文章由SodaMC收录 如侵犯版权请联系社区管理删除


