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)