添加打劫保释功能

- 打劫失败后自动关押24小时
- 其他人可以使用"保释 @用户"命令花费30积分保释
- 在押期间无法进行打劫
- 保释后立即释放
- 所有记录都会保存在数据库中
This commit is contained in:
liuwei
2025-04-10 10:02:53 +08:00
parent 3b49e340e4
commit 4e4306d446

View File

@@ -443,6 +443,15 @@ class PointTradePlugin(MessagePluginInterface):
if not roomid:
wcf.send_text("❌打劫功能仅在群聊中可用!", sender, "")
return True, "非群聊环境"
# 检查是否在押
prison_status = self.points_db.check_prison_status(sender, roomid)
if prison_status:
remaining_time = prison_status['end_time'] - datetime.now()
hours = int(remaining_time.total_seconds() / 3600)
minutes = int((remaining_time.total_seconds() % 3600) / 60)
wcf.send_text(f"❌你正在服刑!\n剩余时间: {hours}小时{minutes}分钟\n可请求他人花费30积分保释。", roomid, sender)
return True, "在押状态"
# 检查冷却时间
current_time = time.time()
@@ -555,14 +564,6 @@ class PointTradePlugin(MessagePluginInterface):
wcf.send_text(f"❌打劫过程中出现问题:{result.get('error', '未知错误')}", roomid, sender)
return True, "打劫失败"
else:
# 检查是否在押
prison_status = self.points_db.check_prison_status(sender, roomid)
if prison_status:
remaining_time = prison_status['end_time'] - datetime.now()
hours = int(remaining_time.total_seconds() / 3600)
minutes = int((remaining_time.total_seconds() % 3600) / 60)
wcf.send_text(f"❌你正在服刑!\n剩余时间: {hours}小时{minutes}分钟\n可请求他人花费30积分保释。", roomid, sender)
return True, "在押状态"
# 打劫失败处理
penalty_amount = int(robber_total * self.rob_penalty_percent)