Rs794613 / PcrDuel

创建贵族进行俄罗斯转盘决斗,提升贵族等级,争夺pcr女友的小游戏。
GNU General Public License v3.0
53 stars 26 forks source link

如何清除贵族一个群的贵族数据? #19

Open 1424932726 opened 3 years ago

1424932726 commented 3 years ago

群里好多人都抢了女友但是不玩了,想彻底重置这个群的女友,但是不影响其他群的,要怎么弄才可以????求大佬帮助

BeiYazi0 commented 1 year ago

init.py中加入以下代码

@sv.on_prefix('一键重置')
async def reset_chara3(bot, ev: CQEvent):
    if ev.user_id not in hoshino.config.SUPERUSERS:
        await bot.finish(ev, '只有超级用户才能使用一键重置功能哦。', at_sender=True)
    args = ev.message.extract_plain_text().split()
    if len(args)>=2:
        await bot.finish(ev, '指令格式错误', at_sender=True)
    if len(args)==0:
        await bot.finish(ev, '请输入一键重置+被重置群号', at_sender=True)
    else :
        gid = args[0]
        curdb = sqlite3.connect(DB_PATH)
        cu = curdb.cursor()
        sql = '''select UID from LEVELTABLE where GID = ("%s")''' % gid
        cu.execute(sql)
        res = cu.fetchall()
        cu.close()
        curdb.close()
        duel = DuelCounter()
        score_counter = ScoreCounter2()    
        for uid in res:
            id = uid[0]
            cidlist = duel._get_cards(gid, id)
            for cid in cidlist:
                duel._delete_card(gid, id, cid)
            queen = duel._search_queen(gid,id)
            duel._delete_queen_owner(gid,queen)
            duel._set_level(gid, id, 0)    
            current_score = score_counter._get_score(gid, id)
            score_counter._reduce_score(gid, id,current_score)
        await bot.finish(ev, f'已清空群{gid}所有用户的女友和贵族等级和金币。', at_sender=True)