fix: builtin command filter args (#556) (#558)

* fix: builtin command filter args

* fix: use string for command arguments

* fix: text property of command object

Co-authored-by: evgfilim1 <evgfilim1@yandex.ru>

Co-authored-by: evgfilim1 <evgfilim1@yandex.ru>
This commit is contained in:
Googleplex 2021-04-29 04:37:59 +08:00 committed by GitHub
parent 4120408aa3
commit 35bf18cf5a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -4,7 +4,7 @@ import typing
import warnings import warnings
from contextvars import ContextVar from contextvars import ContextVar
from dataclasses import dataclass, field from dataclasses import dataclass, field
from typing import Any, Dict, Iterable, Optional, Union from typing import Any, Dict, Iterable, List, Optional, Union
from babel.support import LazyProxy from babel.support import LazyProxy
@ -110,7 +110,8 @@ class Command(Filter):
if not text: if not text:
return False return False
full_command = text.split()[0] full_command, *args_list = text.split(maxsplit=1)
args = args_list[0] if args_list else None
prefix, (command, _, mention) = full_command[0], full_command[1:].partition('@') prefix, (command, _, mention) = full_command[0], full_command[1:].partition('@')
if not ignore_mention and mention and (await message.bot.me).username.lower() != mention.lower(): if not ignore_mention and mention and (await message.bot.me).username.lower() != mention.lower():
@ -120,7 +121,7 @@ class Command(Filter):
if (command.lower() if ignore_case else command) not in commands: if (command.lower() if ignore_case else command) not in commands:
return False return False
return {'command': cls.CommandObj(command=command, prefix=prefix, mention=mention)} return {'command': cls.CommandObj(command=command, prefix=prefix, mention=mention, args=args)}
@dataclass @dataclass
class CommandObj: class CommandObj: