Skip to content

ICU-Club/PlayerEmail

Repository files navigation

PlayerMail 玩家邮件系统 v1.0.0

  • 作者: 星梦
  • 出处: https://github.com/ICU-Club/PlayerEmail
  • 支持玩家绑定邮箱并通过SMTP向其他玩家发送邮件
  • 支持验证码绑定、游戏内收件箱、黑名单、服主广播邮件
  • 支持MySQL多服务器数据同步

指令

玩家指令

语法 权限 说明
/ml playermail.use 显示邮件系统帮助
/ml b <邮箱> playermail.use 绑定邮箱,发送验证码
/ml v <验证码> playermail.use 输入验证码完成绑定
/ml s <玩家> <内容> playermail.use 向指定玩家发送邮件(需双方绑定)
/ml ib [页码] playermail.use 查看邮件收件箱(每页10封)
/ml i playermail.use 查看自己的绑定信息
/ml u playermail.use 解绑自己的邮箱

管理员指令

语法 权限 说明
/ml bc <内容> playermail.admin 向所有绑定玩家群发邮件
/ml bl add <玩家> playermail.admin 将玩家加入黑名单
/ml bl rm <玩家> playermail.admin 将玩家移出黑名单
/ml bl list playermail.admin 查看黑名单列表
/ml ca playermail.admin 一键解绑所有玩家邮箱
/ml u <玩家> playermail.admin 强制解绑指定玩家邮箱
/mlc <玩家> <内容> playermail.console 控制台直接发送邮件

配置

配置文件路径:tshock/PlayerMail/config.json

首次启动自动生成默认配置:

{
  "SMTP服务器": "smtp.qq.com",
  "SMTP端口": 587,
  "SMTP账号": "",
  "SMTP密码或授权码": "",
  "发件人邮箱": "",
  "发件人显示名称": "泰拉瑞亚服务器",
  "邮件标题模板": "[{ServerName}] [{FromPlayer}] 给你发来了一条服务器消息",
  "邮件正文模板": "服务器名称: {ServerName}\n发送玩家: {FromPlayer}\n用户组: {FromGroup}\n玩家邮箱: {FromEmail}\n发送时间: {SendTime}\n\n消息内容:\n{Content}\n\n----------------\n由服务器 {ServerName} 代发\n如需回复,请直接回复此邮件或游戏内联系对方。",
  "验证码邮件标题模板": "[{ServerName}] 邮箱绑定验证码",
  "验证码邮件正文模板": "服务器名称: {ServerName}\n\n玩家: {ToPlayer}\n验证码: {VerifyCode}\n\n请在游戏内输入 /ml v {VerifyCode} 完成绑定。\n如非本人操作,请忽略此邮件。",
  "广播邮件标题模板": "[{ServerName}] 服务器广播消息",
  "广播邮件正文模板": "服务器名称: {ServerName}\n发送者: {FromPlayer} ({FromGroup})\n发送时间: {SendTime}\n\n广播内容:\n{Content}\n\n----------------\n由服务器 {ServerName} 群发",
  "发送冷却秒数": 60,
  "最大内容长度": 500,
  "验证码过期秒数": 60,
  "最大验证码申请次数": 5,
  "使用MySQL同步": false,
  "MySQL连接字符串": "Server=localhost;Database=terraria;Uid=root;Pwd=password;",
  "进服前强制邮箱验证": false
}

邮件模板占位符

占位符 说明
{ServerName} 自动读取 TShock.Config.Settings.ServerName
{ServerDisplayName} 配置中的发件人显示名称
{FromPlayer} 发送者玩家名
{ToPlayer} 接收者玩家名
{FromGroup} 发送者用户组
{FromEmail} 发送者绑定邮箱
{Content} 消息内容
{SendTime} 发送时间
{VerifyCode} 验证码(仅验证码模板)

MySQL多服务器同步

开启方法

  1. 确保所有服务器都能访问同一个MySQL数据库
  2. 使用MySQL同步 设为 true
  3. 填写正确的 MySQL连接字符串
  4. 重启服务器或执行 /reload

插件会自动创建以下表:

  • playermail_players — 玩家邮箱绑定数据
  • playermail_inbox — 邮件收件箱数据
  • playermail_blacklist — 黑名单数据

使用示例

绑定邮箱(正常模式)

/ml b 1011819146@qq.com
→ 验证码已发送至 1011819146@qq.com,请到邮箱查收验证码,并输入 /ml v 四位数验证码 完成绑定
/ml v 1234
→ 邮箱绑定成功: 1011819146@qq.com

进服前强制验证模式

[玩家连接服务器,进入"已找到会话"界面]
→ [c/FF6B6B:═══════════════════════════════]
→ [c/FFD93D:  邮箱验证 required]
→ [c/FFFFFF:  本服务器要求绑定邮箱才能进入]
→ [c/AAAAAA:  请在聊天框输入你的邮箱地址]
→ [c/AAAAAA:  格式示例: 123456@qq.com]
→ [c/FF6B6B:═══════════════════════════════]

玩家输入: 1011819146@qq.com
→ [c/6BCB77:验证码已发送至 1011819146@qq.com]
→ [c/FFFFFF:  请查收邮件并在聊天框输入验证码]
→ [c/AAAAAA:  验证码将在60秒后过期]

玩家输入: 1234
→ [c/6BCB77:邮箱验证成功!正在进入服务器...]
→ [c/6BCB77:绑定邮箱: 1011819146@qq.com]

更新日志

v1.0.0

  • 优化命令显示效果
  • 支持验证码防刷、黑名单、广播等
  • 是的,我把版本号从2.3.0改成了1.0.0()

反馈

  • 优先 -> 我们家族没落了喵...
  • 次优先:TShock官方群:816771079

About

这是一个支持玩家绑定邮箱并通过SMTP向其他玩家发送邮件的插件

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages