From 2f81b2e381eb6715046172d31f0abdb3d7372c27 Mon Sep 17 00:00:00 2001 From: QiChenSn <2102733232@qq.com> Date: Fri, 27 Jun 2025 02:32:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8Dcommandfilter=E5=AF=B9?= =?UTF-8?q?=E5=B8=83=E5=B0=94=E7=B1=BB=E5=9E=8B=E7=9A=84=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- astrbot/core/star/filter/command.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/astrbot/core/star/filter/command.py b/astrbot/core/star/filter/command.py index 7d3cabbfa..9bddcb263 100755 --- a/astrbot/core/star/filter/command.py +++ b/astrbot/core/star/filter/command.py @@ -110,6 +110,17 @@ class CommandFilter(HandlerFilter): elif isinstance(param_type_or_default_val, str): # 如果 param_type_or_default_val 是字符串,直接赋值 result[param_name] = params[i] + elif isinstance(param_type_or_default_val, bool): + # 处理布尔类型 + lower_param = params[i].lower() + if lower_param in ['true', 'yes', '1']: + result[param_name] = True + elif lower_param in ['false', 'no', '0']: + result[param_name] = False + else: + raise ValueError( + f"参数 {param_name} 必须是布尔值(true/false, yes/no, 1/0)。" + ) elif isinstance(param_type_or_default_val, int): result[param_name] = int(params[i]) elif isinstance(param_type_or_default_val, float):