async def on_input_coordinate(bot, ev: CQEvent): game = gm.get_game(ev.group_id) if not game or game.winner: return #匹配输入,正确内容转换为元组 s = ev.message.extract_plain_text() if not re.match(r'^(?:\(|()\d+(?:\,|,)\d+(?:\)|))$', s): return temp = s.replace('(', '').replace(')', '').replace('(', '').replace(')', '').replace(',', ',') answer = tuple([int(i) for i in temp.split(',')]) if operator.eq(answer, game.answer): game.winner = ev.user_id n = game.record() msg_part = f'{MessageSegment.at(ev.user_id)}猜对了,真厉害!TA已经猜对{n}次了~\n(此轮游戏将在时间到后自动结束,请耐心等待)' jewel_counter = jewel.jewelCounter() winning_jewel = 60 jewel_counter._add_jewel(ev.group_id, ev.user_id, winning_jewel) msg_part2 = f'{ev.user_id}获得了{winning_jewel}宝石' msg = f'正确坐标是: {game.answer}\n{msg_part}\n{msg_part2}' await bot.send(ev, msg)
async def on_input_chara_name(bot, ev: CQEvent): game = gm.get_game(ev.group_id) if not game or game.winner: return c = chara.fromname(ev.message.extract_plain_text()) if c.id != chara.UNKNOWN and c.id == game.answer: game.winner = ev.user_id n = game.record() gm.exit_game(ev.group_id) jewel_counter = jewel.jewelCounter() winning_jewel = 70 jewel_counter._add_jewel(ev.group_id, ev.user_id, winning_jewel) msg_part2 = f'获得了{winning_jewel}宝石' msg = f"正确答案是: {c.name}{c.icon.cqcode}\n{MessageSegment.at(ev.user_id)}猜对了,真厉害!TA已经猜对{n}次了~\n{msg_part2}" await bot.send(ev, msg)
async def on_input_chara_name(bot, ev: CQEvent): try: if winner_judger.get_on_off_status(ev.group_id): s = ev.message.extract_plain_text() cid = chara.name2id(s) if cid != chara.UNKNOWN and cid == winner_judger.get_correct_chara_id(ev.group_id) and winner_judger.get_winner(ev.group_id) == '': winner_judger.record_winner(ev.group_id, ev.user_id) winning_counter = WinningCounter() winning_counter._record_winning(ev.group_id, ev.user_id) winning_count = winning_counter._get_winning_number(ev.group_id, ev.user_id) user_card_dict = await get_user_card_dict(bot, ev.group_id) user_card = uid2card(ev.user_id, user_card_dict) msg_part = f'{user_card}猜对了,真厉害!TA已经猜对{winning_count}次了~\n(此轮游戏将在时间到后自动结束,请耐心等待)' c = chara.fromid(winner_judger.get_correct_chara_id(ev.group_id)) jewel_counter = jewel.jewelCounter() winning_jewel = 35 jewel_counter._add_jewel(ev.group_id, ev.user_id, winning_jewel) msg_part2 = f'{user_card}获得了{winning_jewel}宝石' msg = f'正确答案是: {c.name}{c.icon.cqcode}\n{msg_part}\n{msg_part2}' await bot.send(ev, msg) except Exception as e: await bot.send(ev, '错误:\n' + str(e))
-[查宝石] 查询拥有宝石 -[宝石群排行] 查看本群宝石数量最多的人 ......更多功能有待开发 '''.strip() sv = Service( name = '宝石银行', #功能名 use_priv = priv.NORMAL, #使用权限 manage_priv = priv.ADMIN, #管理权限 visible = True, #是否可见 enable_on_default = True, #是否默认启用 bundle = '娱乐', #属于哪一类 help_ = sv_help #帮助文本 ) jewel_counter = jewel.jewelCounter() @sv.on_fullmatch(["帮助宝石银行"]) async def bangzhu(bot, ev): await bot.send(ev, sv_help, at_sender=True) @sv.on_prefix(['查宝石', '查询宝石', '查看宝石']) async def get_jewel(bot, ev: CQEvent): gid = ev.group_id sid = None uid = ev.user_id for m in ev.message: if m.type == 'at' and m.data['qq'] != 'all': sid = int(m.data['qq']) elif m.type == 'at' and m.data['qq'] == 'all': await bot.send(ev, '人干事?', at_sender=True)