调整一下撤回时间
This commit is contained in:
@@ -720,7 +720,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "积分购石")
|
||||
await self._send_text_with_status(bot, sender, roomid,
|
||||
f"✅ 积分化石,消耗{pts},得灵石{stones_gain}({rate}分=1石)", 10)
|
||||
f"✅ 积分化石,消耗{pts},得灵石{stones_gain}({rate}分=1石)", 90)
|
||||
return True, "积分购石"
|
||||
|
||||
async def _cmd_status(self, bot: WechatAPIClient, sender: str, roomid: str) -> Tuple[bool, str]:
|
||||
@@ -805,13 +805,13 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
"Injured": "受伤保护",
|
||||
"Expedition": "历练"
|
||||
}.get(status, str(status))
|
||||
await self._send_text_with_status(bot, sender, roomid, f"当前状态[{status_cn}]不宜闭关", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"当前状态[{status_cn}]不宜闭关", 90)
|
||||
return False, "状态不可闭关"
|
||||
player["status"] = "Cultivating"
|
||||
player["last_cultivate_time"] = datetime.now(timezone.utc).isoformat()
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "闭关")
|
||||
await self._send_text_with_status(bot, sender, roomid, "✅ 已入静闭关,期间天道护持,不可被劫", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "✅ 已入静闭关,期间天道护持,不可被劫", 90)
|
||||
return True, "闭关成功"
|
||||
|
||||
async def _cmd_finish_cultivate(self, bot: WechatAPIClient, sender: str, roomid: str) -> Tuple[bool, str]:
|
||||
@@ -856,7 +856,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
self._rate_set(sender, roomid or "", "出关")
|
||||
await self._send_text_with_status(bot, sender, roomid,
|
||||
f"✅ 出关一朝,修为进益:{gain}({duration_hours:.1f}小时)\n现有修为:{player['cultivation_points']}\n状态:气息未平 {self.unstable_qi_minutes}分钟",
|
||||
10)
|
||||
90)
|
||||
return True, "出关结算"
|
||||
|
||||
async def _cmd_gather(self, bot: WechatAPIClient, sender: str, roomid: str, content: str) -> Tuple[bool, str]:
|
||||
@@ -909,7 +909,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
self._auto_layer_up(sender, player)
|
||||
self.redis_db.leaderboard_add(player.get("group_id", ""), sender, float(player["cultivation_points"]))
|
||||
self._rate_set(sender, roomid or "", "聚灵")
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 灵气入体,消耗灵石{qty},修为涨{gain}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 灵气入体,消耗灵石{qty},修为涨{gain}", 90)
|
||||
return True, "聚灵成功"
|
||||
|
||||
async def _cmd_leaderboard(self, bot: WechatAPIClient, sender: str, roomid: str) -> Tuple[bool, str]:
|
||||
@@ -1061,14 +1061,14 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
player["spirit_stone"] = int(player.get("spirit_stone", 0)) + reward
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "签到")
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 灵运昌盛,获灵石{reward}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 灵运昌盛,获灵石{reward}", 90)
|
||||
return True, "签到成功"
|
||||
|
||||
async def _cmd_shop(self, bot: WechatAPIClient, sender: str, roomid: str) -> Tuple[bool, str]:
|
||||
lines = ["🛒 坊市陈列"]
|
||||
for item in self.shop_items:
|
||||
lines.append(f"{item['name']} [{item['type']}] - {item['price']}灵石")
|
||||
await self._send_text_with_status(bot, sender, roomid, "\n".join(lines), 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "\n".join(lines), 90)
|
||||
self._rate_set(sender, roomid or "", "坊市")
|
||||
return True, "坊市"
|
||||
|
||||
@@ -1120,7 +1120,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
pass
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "购买")
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 已购得 {item_name} × {qty}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 已购得 {item_name} × {qty}", 90)
|
||||
return True, "购买成功"
|
||||
|
||||
async def _cmd_sell(self, bot: WechatAPIClient, sender: str, roomid: str, content: str) -> Tuple[bool, str]:
|
||||
@@ -1157,7 +1157,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
pass
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "出售")
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 已出手 {item_name} × {qty},入账灵石{revenue}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 已出手 {item_name} × {qty},入账灵石{revenue}", 90)
|
||||
return True, "出售成功"
|
||||
|
||||
async def _cmd_bag(self, bot: WechatAPIClient, sender: str, roomid: str) -> Tuple[bool, str]:
|
||||
@@ -1180,7 +1180,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
else:
|
||||
for it in items:
|
||||
lines.append(f"{it['name']} × {it['quantity']}")
|
||||
await self._send_text_with_status(bot, sender, roomid, "\n".join(lines), 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "\n".join(lines), 90)
|
||||
self._rate_set(sender, roomid or "", "背包")
|
||||
return True, "背包"
|
||||
|
||||
@@ -1356,7 +1356,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
msg = f"✅ 行走四方所得:灵石{total_stones_delta},修为{cult_gain},材料:{mats_text}\n遭遇:{'、'.join(happened)}"
|
||||
else:
|
||||
msg = f"✅ 行走四方所得:灵石{total_stones_delta},材料:{mats_text}\n遭遇:{'、'.join(happened)}"
|
||||
await self._send_text_with_status(bot, sender, roomid, msg, 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, msg, 90)
|
||||
return True, "历练成功"
|
||||
|
||||
async def _cmd_use(self, bot: WechatAPIClient, sender: str, roomid: str, content: str) -> Tuple[bool, str]:
|
||||
@@ -1382,7 +1382,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
pass
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "使用")
|
||||
await self._send_text_with_status(bot, sender, roomid, "✅ 符文已启,本次聚灵更为顺畅", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "✅ 符文已启,本次聚灵更为顺畅", 90)
|
||||
return True, "使用聚灵符"
|
||||
if item_name == "回气丹":
|
||||
status = player.get("status", "Idle")
|
||||
@@ -1399,7 +1399,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
pass
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "使用")
|
||||
await self._send_text_with_status(bot, sender, roomid, "✅ 服下回气丹,气息平稳,恢复空闲", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "✅ 服下回气丹,气息平稳,恢复空闲", 90)
|
||||
return True, "服用回气丹"
|
||||
# 灵根提升丹药
|
||||
upgrade_map = {
|
||||
@@ -1433,7 +1433,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
player["spirit_root_mult"] = mult
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "使用")
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 灵根蜕变,当前灵根:{target}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 灵根蜕变,当前灵根:{target}", 90)
|
||||
return True, "灵根提升成功"
|
||||
else:
|
||||
# 失败,受伤保护
|
||||
@@ -1443,7 +1443,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "使用")
|
||||
await self._send_text_with_status(bot, sender, roomid,
|
||||
f"❌ 灵根淬炼失利,灵气反噬,受伤{rule['injured_min']}分钟", 10)
|
||||
f"❌ 灵根淬炼失利,灵气反噬,受伤{rule['injured_min']}分钟", 90)
|
||||
return False, "灵根提升失败"
|
||||
return False, "不可使用的物品"
|
||||
|
||||
@@ -1505,7 +1505,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "炼丹")
|
||||
msg = f"✅ 丹炉开盖,成丹{success},走丹{fail}"
|
||||
await self._send_text_with_status(bot, sender, roomid, msg, 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, msg, 90)
|
||||
|
||||
return True, "炼丹完成"
|
||||
|
||||
@@ -1525,23 +1525,23 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
# 优化:检查是否真的达到10层
|
||||
if layer is None or layer < 10:
|
||||
await self._send_text_with_status(bot, sender, roomid, f"当前境界:{cur_realm},唯有至{prefix}10层方可冲关",
|
||||
10)
|
||||
90)
|
||||
return False, "未到瓶颈"
|
||||
stage_key = f"{prefix}10层"
|
||||
stage_conf = self.break_config.get(stage_key)
|
||||
if not stage_conf:
|
||||
await self._send_text_with_status(bot, sender, roomid, "此境瓶颈暂未开示,无法突破", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "此境瓶颈暂未开示,无法突破", 90)
|
||||
return False, "未配置突破"
|
||||
pill_conf = stage_conf.get("pill")
|
||||
if not pill_conf:
|
||||
await self._send_text_with_status(bot, sender, roomid, "丹道途径未明,暂不可试", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "丹道途径未明,暂不可试", 90)
|
||||
|
||||
return False, "未配置"
|
||||
|
||||
# 从配置中获取丹药名称
|
||||
pill_item_name = pill_conf.get("item")
|
||||
if not pill_item_name:
|
||||
await self._send_text_with_status(bot, sender, roomid, "缺少突破丹药的指引", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "缺少突破丹药的指引", 90)
|
||||
|
||||
return False, "丹药未配置"
|
||||
|
||||
@@ -1564,11 +1564,11 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
pill_item_count = inv.get(pill_item_name, 0)
|
||||
|
||||
if points < pill_conf["cost"]:
|
||||
await self._send_text_with_status(bot, sender, roomid, "底蕴未满,暂不可冲关", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "底蕴未满,暂不可冲关", 90)
|
||||
|
||||
return False, "修为不足"
|
||||
if pill_item_count <= 0:
|
||||
await self._send_text_with_status(bot, sender, roomid, f"丹药未备:{pill_item_name}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"丹药未备:{pill_item_name}", 90)
|
||||
|
||||
return False, "缺少丹药"
|
||||
# 更新内存中的inventory(用于缓存)
|
||||
@@ -1590,14 +1590,14 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
self._set_realm(sender, player, pill_conf["target"])
|
||||
self.redis_db.leaderboard_add(player.get("group_id", ""), sender, float(player["cultivation_points"]))
|
||||
self._rate_set(sender, roomid or "", "突破")
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 雷霆破关,晋至{pill_conf['target']}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 雷霆破关,晋至{pill_conf['target']}", 90)
|
||||
|
||||
return True, "突破成功"
|
||||
else:
|
||||
# 失败时也要保存玩家数据
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "突破")
|
||||
await self._send_text_with_status(bot, sender, roomid, "❌ 闭关未成,功亏一篑", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "❌ 闭关未成,功亏一篑", 90)
|
||||
|
||||
return False, "突破失败"
|
||||
|
||||
@@ -1616,22 +1616,22 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
# 优化:检查是否真的达到10层
|
||||
if layer is None or layer < 10:
|
||||
await self._send_text_with_status(bot, sender, roomid,
|
||||
f"当前境界:{cur_realm},至{prefix}10层方能冒险强行冲关", 10)
|
||||
f"当前境界:{cur_realm},至{prefix}10层方能冒险强行冲关", 90)
|
||||
|
||||
return False, "未到瓶颈"
|
||||
stage_key = f"{prefix}10层"
|
||||
stage_conf = self.break_config.get(stage_key)
|
||||
if not stage_conf:
|
||||
await self._send_text_with_status(bot, sender, roomid, "此境瓶颈暂未开示,无法强行冲关", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "此境瓶颈暂未开示,无法强行冲关", 90)
|
||||
|
||||
return False, "未配置突破"
|
||||
hard_conf = stage_conf.get("hard")
|
||||
if not hard_conf:
|
||||
await self._send_text_with_status(bot, sender, roomid, "强行之法未载,难以施为", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "强行之法未载,难以施为", 90)
|
||||
|
||||
return False, "未配置"
|
||||
if points < hard_conf["cost"]:
|
||||
await self._send_text_with_status(bot, sender, roomid, "底蕴不足,强行为之只会贻害", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "底蕴不足,强行为之只会贻害", 90)
|
||||
|
||||
return False, "修为不足"
|
||||
player["cultivation_points"] = points - hard_conf["cost"]
|
||||
@@ -1647,14 +1647,14 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
self._set_realm(sender, player, hard_conf["target"])
|
||||
self.redis_db.leaderboard_add(player.get("group_id", ""), sender, float(player["cultivation_points"]))
|
||||
self._rate_set(sender, roomid or "", "强行突破")
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 硬撼瓶颈,勉强晋至{hard_conf['target']}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 硬撼瓶颈,勉强晋至{hard_conf['target']}", 90)
|
||||
|
||||
return True, "强行突破成功"
|
||||
else:
|
||||
# 失败时也要保存玩家数据
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "强行突破")
|
||||
await self._send_text_with_status(bot, sender, roomid, "❌ 强行冲关失败,灵气反噬!", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "❌ 强行冲关失败,灵气反噬!", 90)
|
||||
|
||||
return False, "强行突破失败"
|
||||
|
||||
@@ -1682,19 +1682,19 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
# 新手保护:不可劫掠炼气期
|
||||
def_prefix, _ = self._parse_realm(defender.get("realm", "炼气1层"))
|
||||
if def_prefix == "炼气":
|
||||
await self._send_text_with_status(bot, sender, roomid, "对方新入仙途,天道庇护,暂不可劫", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "对方新入仙途,天道庇护,暂不可劫", 90)
|
||||
|
||||
return False, "新手保护"
|
||||
if defender.get("status") in ("Cultivating", "Injured"):
|
||||
await self._send_text_with_status(bot, sender, roomid, "对方正受天道护持或闭关参悟,切莫打扰", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "对方正受天道护持或闭关参悟,切莫打扰", 90)
|
||||
|
||||
return False, "目标保护"
|
||||
if roomid and (attacker.get("group_id") != roomid or defender.get("group_id") != roomid):
|
||||
await self._send_text_with_status(bot, sender, roomid, "只可在同一仙门之境内行劫", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "只可在同一仙门之境内行劫", 90)
|
||||
|
||||
return False, "跨群"
|
||||
if attacker.get("clan_id") and defender.get("clan_id") and attacker.get("clan_id") == defender.get("clan_id"):
|
||||
await self._send_text_with_status(bot, sender, roomid, "同门手足,不可相互劫掠", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "同门手足,不可相互劫掠", 90)
|
||||
|
||||
return False, "同门"
|
||||
a_pts = int(attacker.get("cultivation_points", 0))
|
||||
@@ -1726,46 +1726,46 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
self._save_player(defender)
|
||||
self._save_player(attacker)
|
||||
self._rate_set(sender, roomid or "", "劫掠")
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 劫掠得手,入账灵石{gain}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 劫掠得手,入账灵石{gain}", 90)
|
||||
if roomid:
|
||||
g_client_msg_id, g_create_time, g_new_msg_id = await bot.send_text_message(roomid,
|
||||
f"{sender} 劫掠 {target} 得手,目标陷入重创,暂受天道庇护",
|
||||
[target])
|
||||
if self.revoke:
|
||||
self.revoke.add_message_to_revoke(roomid, g_client_msg_id, g_create_time, g_new_msg_id, 10)
|
||||
self.revoke.add_message_to_revoke(roomid, g_client_msg_id, g_create_time, g_new_msg_id, 90)
|
||||
return True, "劫掠成功"
|
||||
else:
|
||||
self._rate_set(sender, roomid or "", "劫掠")
|
||||
await self._send_text_with_status(bot, sender, roomid, "❌ 劫掠受挫,风声紧,暂且退去", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "❌ 劫掠受挫,风声紧,暂且退去", 90)
|
||||
|
||||
return False, "劫掠失败"
|
||||
|
||||
async def _cmd_give_stone(self, bot: WechatAPIClient, sender: str, roomid: str, content: str) -> Tuple[bool, str]:
|
||||
parts = content.strip().split()
|
||||
if len(parts) < 2:
|
||||
await self._send_text_with_status(bot, sender, roomid, "格式:赠与 目标 数量", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "格式:赠与 目标 数量", 90)
|
||||
|
||||
return False, "命令格式错误"
|
||||
target = parts[0].lstrip("@")
|
||||
try:
|
||||
qty = int(parts[1])
|
||||
except Exception:
|
||||
await self._send_text_with_status(bot, sender, roomid, "格式:赠与 目标 数量", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "格式:赠与 目标 数量", 90)
|
||||
|
||||
return False, "命令格式错误"
|
||||
giver = self._get_player_with_cache(sender, roomid or "")
|
||||
receiver = self._get_player_with_cache(target, roomid or "")
|
||||
if not giver or not receiver:
|
||||
await self._send_text_with_status(bot, sender, roomid, "需双方皆踏入仙途", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "需双方皆踏入仙途", 90)
|
||||
|
||||
return False, "道友尚未踏入仙途,请先发送:注册修仙 道号"
|
||||
if not giver.get("clan_id") or giver.get("clan_id") != receiver.get("clan_id"):
|
||||
await self._send_text_with_status(bot, sender, roomid, "灵石只可同门相赠", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "灵石只可同门相赠", 90)
|
||||
|
||||
return False, "不同门"
|
||||
stones = int(giver.get("spirit_stone", 0))
|
||||
if qty <= 0 or stones < qty:
|
||||
await self._send_text_with_status(bot, sender, roomid, "灵石不足或数量有误", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "灵石不足或数量有误", 90)
|
||||
|
||||
return False, "灵石不够,修行不可强行为之"
|
||||
giver["spirit_stone"] = stones - qty
|
||||
@@ -1782,7 +1782,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
self._save_player(giver)
|
||||
self._save_player(receiver)
|
||||
self._rate_set(sender, roomid or "", "赠与")
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 已向 {target} 相赠灵石 {qty}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 已向 {target} 相赠灵石 {qty}", 90)
|
||||
|
||||
return True, "赠与成功"
|
||||
|
||||
@@ -1811,7 +1811,7 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
return False, "道友尚未踏入仙途,请先发送:注册修仙 道号"
|
||||
inv_g = giver.get("inventory") or {}
|
||||
if inv_g.get(item_name, 0) < qty or qty <= 0:
|
||||
await self._send_text_with_status(bot, sender, roomid, "乾坤袋物品不足或数量有误", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "乾坤袋物品不足或数量有误", 90)
|
||||
|
||||
return False, "物品不足"
|
||||
inv_r = receiver.get("inventory") or {}
|
||||
@@ -1822,20 +1822,20 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
if self.xdb:
|
||||
ok = self.xdb.transfer_item(sender, target, item_name, qty)
|
||||
if not ok:
|
||||
await self._send_text_with_status(bot, sender, roomid, "物品转移不成", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "物品转移不成", 90)
|
||||
return False, "转移失败"
|
||||
self.redis_db.invalidate_player(sender, giver.get("group_id", ""))
|
||||
self.redis_db.invalidate_player(target, receiver.get("group_id", ""))
|
||||
self._save_player(giver)
|
||||
self._save_player(receiver)
|
||||
self._rate_set(sender, roomid or "", "赠送")
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 已向 {target} 赠送 {item_name} × {qty}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 已向 {target} 赠送 {item_name} × {qty}", 90)
|
||||
return True, "赠送成功"
|
||||
|
||||
async def _cmd_clan_create(self, bot: WechatAPIClient, sender: str, roomid: str, content: str) -> Tuple[bool, str]:
|
||||
name = content.strip()
|
||||
if not name:
|
||||
await self._send_text_with_status(bot, sender, roomid, "格式:创建门派 名称", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "格式:创建门派 名称", 90)
|
||||
return False, "命令格式错误"
|
||||
player = self._get_player_with_cache(sender, roomid or "")
|
||||
if not player:
|
||||
@@ -1846,13 +1846,13 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
prefix, _ = self._parse_realm(player.get("realm", "炼气1层"))
|
||||
allowed = {"元婴", "化神", "合体", "大乘", "渡劫", "真仙"}
|
||||
if prefix not in allowed:
|
||||
await self._send_text_with_status(bot, sender, roomid, "唯元婴以上方可立宗开派", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "唯元婴以上方可立宗开派", 90)
|
||||
return False, "境界不足"
|
||||
clan_id = None
|
||||
if self.xdb:
|
||||
clan_id = self.xdb.create_clan(name, roomid or "", sender)
|
||||
if clan_id is None:
|
||||
await self._send_text_with_status(bot, sender, roomid, "此门已在或因故未成", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "此门已在或因故未成", 90)
|
||||
return False, "门派失败"
|
||||
if player and clan_id is not None:
|
||||
player["clan_id"] = int(clan_id)
|
||||
@@ -1864,26 +1864,26 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
pass
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "创建门派")
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 山门立成:{name}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 山门立成:{name}", 90)
|
||||
|
||||
return True, "创建门派"
|
||||
|
||||
async def _cmd_clan_join(self, bot: WechatAPIClient, sender: str, roomid: str, content: str) -> Tuple[bool, str]:
|
||||
name = content.strip()
|
||||
if not name:
|
||||
await self._send_text_with_status(bot, sender, roomid, "格式:加入门派 名称", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "格式:加入门派 名称", 90)
|
||||
|
||||
return False, "命令格式错误"
|
||||
player = self._get_player_with_cache(sender, roomid or "")
|
||||
if not player:
|
||||
await self._send_text_with_status(bot, sender, roomid, "道友尚未踏入仙途,请先发送:注册修仙 道号", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "道友尚未踏入仙途,请先发送:注册修仙 道号", 90)
|
||||
|
||||
return False, "道友尚未踏入仙途,请先发送:注册修仙 道号"
|
||||
cid = None
|
||||
if self.xdb:
|
||||
cid = self.xdb.get_clan_id(roomid or "", name)
|
||||
if not cid:
|
||||
await self._send_text_with_status(bot, sender, roomid, "世间无此门派", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "世间无此门派", 90)
|
||||
|
||||
return False, "门派不存在"
|
||||
player["clan_id"] = int(cid) if isinstance(cid, str) else cid
|
||||
@@ -1895,14 +1895,14 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
pass
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "加入门派")
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 已拜入:{name}", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, f"✅ 已拜入:{name}", 90)
|
||||
|
||||
return True, "加入门派"
|
||||
|
||||
async def _cmd_clan_exit(self, bot: WechatAPIClient, sender: str, roomid: str) -> Tuple[bool, str]:
|
||||
player = self._get_player_with_cache(sender, roomid or "")
|
||||
if not player:
|
||||
await self._send_text_with_status(bot, sender, roomid, "道友尚未踏入仙途,请先发送:注册修仙 道号", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "道友尚未踏入仙途,请先发送:注册修仙 道号", 90)
|
||||
|
||||
return False, "未注册"
|
||||
player["clan_id"] = None
|
||||
@@ -1914,6 +1914,6 @@ class XiuxianPlugin(MessagePluginInterface):
|
||||
pass
|
||||
self._save_player(player)
|
||||
self._rate_set(sender, roomid or "", "退出门派")
|
||||
await self._send_text_with_status(bot, sender, roomid, "✅ 已离出山门", 10)
|
||||
await self._send_text_with_status(bot, sender, roomid, "✅ 已离出山门", 90)
|
||||
|
||||
return True, "退出门派"
|
||||
|
||||
Reference in New Issue
Block a user