diff --git a/konabot/plugins/idiomgame/__init__.py b/konabot/plugins/idiomgame/__init__.py index 4f5e289..99a5a7b 100644 --- a/konabot/plugins/idiomgame/__init__.py +++ b/konabot/plugins/idiomgame/__init__.py @@ -99,17 +99,17 @@ evt = on_alconna(Alconna( ), use_cmd_start=True, use_cmd_sep=False, skip_for_unmatch=True) @evt.handle() -async def _(event: BaseEvent): +async def play_game(event: BaseEvent, force = False): global NOW_PLAYING, LAST_CHAR, INITED - if not be_able_to_play(): + if NOW_PLAYING: + await evt.send(await UniMessage().text("当前已有成语接龙游戏在进行中,请稍后再试!").export()) + return + if not be_able_to_play() and not force: await evt.send(await UniMessage().text("玩玩玩,就知道玩,快去睡觉!").export()) return if not INITED: init_lexicon() INITED = True - if NOW_PLAYING: - await evt.send(await UniMessage().text("当前已有成语接龙游戏在进行中,请稍后再试!").export()) - return NOW_PLAYING = True await evt.send(await UniMessage().text("你小子,还真有意思!\n好,成语接龙游戏开始!我说一个成语,请大家接下去!").export()) # 选择一个随机成语 @@ -118,6 +118,15 @@ async def _(event: BaseEvent): # 发布成语 await evt.send(await UniMessage().text(f"第一个成语:「{idiom}」,请接!").export()) +evt = on_alconna(Alconna( + "老子就是要玩成语接龙!!!" +), use_cmd_start=True, use_cmd_sep=False, skip_for_unmatch=True) + +@evt.handle() +async def force_play_game(event: BaseEvent): + await play_game(event, force=True) + + evt = on_alconna(Alconna( "不玩了" ), use_cmd_start=True, use_cmd_sep=False, skip_for_unmatch=True) @@ -183,13 +192,22 @@ async def _(event: BaseEvent, msg: UniMsg): async def handle_send_info(event: BaseEvent, msg: UniMsg): global NOW_PLAYING, LAST_CHAR, SCORE_BOARD, ALL_BUFF_SCORE - if not NOW_PLAYING: - return - if LOCK: - return user_idiom = msg.extract_plain_text().strip() if(user_idiom not in ALL_IDIOMS and user_idiom not in ALL_WORDS): - await evt.send(await UniMessage().text("接不上!这个不一样!").export()) + # 扣0.1分 + if isinstance(event, DiscordMessageEvent): + user_id = str(event.author.id) + user_name = str(event.author.name) + else: + user_id = str(event.get_user_id()) + user_name = str(event.get_user_id()) + if user_id not in SCORE_BOARD: + SCORE_BOARD[user_id] = { + "name": user_name, + "score": 0 + } + SCORE_BOARD[user_id]["score"] -= 0.1 + await evt.send(await UniMessage().at(user_id).text("接不上!这个不一样!你被扣了 0.1 分!").export()) return # 成功接上 if isinstance(event, DiscordMessageEvent):