新增注册系统

This commit is contained in:
2025-10-29 15:49:39 +08:00
parent 37fccb3021
commit 27aee22f62
5 changed files with 341 additions and 10 deletions

View File

@@ -55,18 +55,39 @@ class GiftGame(BaseGame):
Returns:
处理结果消息
"""
# 解析参数:.gift <receiver_id> <points> [message]
# 解析参数:.gift <receiver_identifier> <points> [message]
parts = args.split(maxsplit=2)
if len(parts) < 2:
return "❌ 指令格式错误!\n\n正确格式:`.gift <用户ID> <积分数量> [附赠消息]`\n\n示例:\n`.gift 123 50 生日快乐`\n`.gift 456 100`"
return "❌ 指令格式错误!\n\n正确格式:`.gift <用户名或ID> <积分数量> [附赠消息]`\n\n示例:\n`.gift 张三 50 生日快乐`\n`.gift 123 50`\n`.gift 456 100`"
# 解析积分数量
try:
receiver_id = int(parts[0])
points = int(parts[1])
message = parts[2] if len(parts) > 2 else None
except ValueError:
return "用户ID和积分数量必须是数字!"
return "❌ 积分数量必须是数字!"
# 检查第一部分是用户名还是ID
receiver_input = parts[0]
if receiver_input.isdigit():
# 是数字作为用户ID处理
receiver_id = int(receiver_input)
else:
# 是用户名,通过数据库查找
user = self.db.get_user_by_name(receiver_input)
if not user:
return f"❌ 未找到用户: {receiver_input}\n\n请确认用户名是否正确或使用用户ID。"
receiver_id = user['user_id']
# 获取接收者名称用于显示
receiver_user = self.db.get_or_create_user(receiver_id)
receiver_name = receiver_user.get('username', f"用户{receiver_id}")
# 获取发送者名称用于显示
sender_user = self.db.get_or_create_user(sender_id)
sender_name = sender_user.get('username', f"用户{sender_id}")
# 验证参数
if points <= 0:
@@ -92,8 +113,8 @@ class GiftGame(BaseGame):
receiver_points_after = self.db.get_user_points(receiver_id)
text = f"## 🎁 积分赠送成功!\n\n"
text += f"**赠送者**用户{sender_id}\n\n"
text += f"**接收者**用户{receiver_id}\n\n"
text += f"**赠送者**{sender_name}\n\n"
text += f"**接收者**{receiver_name}\n\n"
text += f"**赠送积分**{points}\n\n"
if message:
@@ -212,7 +233,7 @@ class GiftGame(BaseGame):
"""
text = f"## 🎁 积分赠送系统\n\n"
text += f"### 基础用法\n"
text += f"- `.gift <用户ID> <积分数量> [附赠消息]` - 赠送积分\n"
text += f"- `.gift <用户名或ID> <积分数量> [附赠消息]` - 赠送积分\n"
text += f"- `.gift stats` - 查看赠送统计\n"
text += f"- `.gift sent` - 查看发送记录\n"
text += f"- `.gift received` - 查看接收记录\n"
@@ -226,13 +247,16 @@ class GiftGame(BaseGame):
text += f"### 示例\n"
text += f"```\n"
text += f".gift 123 50 生日快乐\n"
text += f".gift 456 100 感谢你的帮助\n"
text += f".gift 789 200\n"
text += f".gift 张三 50 生日快乐\n"
text += f".gift 123 50 (使用用户ID)\n"
text += f".gift 李四 100 感谢你的帮助\n"
text += f".gift 王五 200\n"
text += f".gift stats\n"
text += f"```\n\n"
text += f"### 说明\n"
text += f"- 支持使用用户名或用户ID进行赠送\n"
text += f"- 使用用户名需要先通过 `.register` 注册名称\n"
text += f"- 所有赠送都有完整记录\n"
text += f"- 赠送和接收都会在积分记录中显示\n"
text += f"- 赠送是单向的,无需对方确认\n"