示例#1
0
async def set_pool(bot: KokkoroBot, ev: EventInterface):
    if not priv.check_priv(ev.get_author(), priv.ADMIN):
        await bot.kkr_send(ev, '只有群管理才能切换卡池', at_sender=True)
        return
    name = util.normalize_str(ev.get_param().remain)
    if not name:
        await bot.kkr_send(ev, POOL_NAME_TIP)
        return
    elif name in ('国', '国服', 'cn'):
        await bot.kkr_send(ev, '请选择以下卡池\n> 选择卡池 b服\n> 选择卡池 台服', at_sender=True)
        return
    elif name in ('b', 'b服', 'bl', 'bilibili'):
        name = 'BL'
    elif name in ('台', '台服', 'tw', 'sonet'):
        name = 'TW'
    elif name in ('日', '日服', 'jp', 'cy', 'cygames'):
        name = 'JP'
    elif name in ('混', '混合', 'mix'):
        name = 'MIX'
    else:
        await bot.kkr_send(ev, f'未知服务器地区 {POOL_NAME_TIP}', at_sender=True)
        return
    gid = ev.get_group_id()
    _group_pool[gid] = name
    dump_pool_config()
    await bot.kkr_send(ev, f'卡池已切换为{name}池', at_sender=True)
示例#2
0
 def add(self, keyword: str, sf):
     keyword = util.normalize_str(keyword)
     if keyword in self.allkw:
         other = self.allkw[keyword]
         kokkoro.logger.warning(f'Failed to add keyword trigger `{keyword}`: Conflicts between {sf.__name__} and {other.__name__}')
         return
     self.allkw[keyword] = sf
     kokkoro.logger.debug(f'Succeed to add keyword trigger `{keyword}`')
def server_code(x:str) -> int:
    x = util.normalize_str(x)
    if x in ('jp', '日', '日服'):
        return BattleMaster.SERVER_JP
    elif x in ('tw', '台', '台服'):
        return BattleMaster.SERVER_TW
    elif x in ('cn', '国', '国服', 'b', 'b服'):
        return BattleMaster.SERVER_CN
    raise ParseError('未知服务器地区 请用jp/tw/cn')
示例#4
0
 def update(self):
     importlib.reload(_pcr_data)
     self._roster.clear()
     for idx, names in _pcr_data.CHARA_NAME.items():
         for n in names:
             n = util.normalize_str(n)
             if n not in self._roster:
                 self._roster[n] = idx
             else:
                 logger.warning(f'priconne.chara.Roster: 出现重名{n}于id{idx}与id{self._roster[n]}')
     self._all_name_list = self._roster.keys()
 def parse_team(self, namestr):
     """@return: List[ids], unknown_namestr"""
     namestr = util.normalize_str(namestr)
     team = []
     unknown = []
     while namestr:
         item = self._roster.longest_prefix(namestr)
         if not item:
             unknown.append(namestr[0])
             namestr = namestr[1:].lstrip()
         else:
             team.append(item.value)
             namestr = namestr[len(item.key):].lstrip()
     return team, ''.join(unknown)
 def get_id(self, name):
     name = util.normalize_str(name)
     return self._roster[name] if name in self._roster else UNKNOWN
示例#7
0
 def __init__(self, msg:str):
     self.plain_text = util.remove_mention_me(msg)
     self.norm_text = util.normalize_str(self.plain_text)
def round_code(x:str) -> int:
    x = util.normalize_str(x)
    if _rex_rcode.match(x):
        return int(x)
    raise ParseError('周目数不合法 应为不大于999的非负整数')
def boss_code(x:str) -> int:
    x = util.normalize_str(x)
    if m := _rex1_bcode.match(x):
        return int(m.group(1))
def damage_int(x:str) -> int:
    x = util.normalize_str(x)
    if m := _rex_dint.match(x):
        x = int(m.group(1)) * _unit_rate[m.group(2).lower()]
        if x < 100000000:
            return x