[Alias] Aliased commands retain newlines (#4656)

Co-authored-by: Michael Oliveira <34169552+Flame442@users.noreply.github.com>
This commit is contained in:
goettner
2024-01-08 16:34:48 -08:00
committed by GitHub
parent a393a10ceb
commit 569840e9e6
4 changed files with 40 additions and 3 deletions

View File

@@ -150,6 +150,15 @@ class Alias(commands.Cog):
raise ValueError("No prefix found.")
async def call_alias(self, message: discord.Message, prefix: str, alias: AliasEntry):
new_message = self.translate_alias_message(message, prefix, alias)
await self.bot.process_commands(new_message)
def translate_alias_message(self, message: discord.Message, prefix: str, alias: AliasEntry):
"""
Translates a discord message using an alias
for a command to a discord message using the
alias' base command.
"""
new_message = copy(message)
try:
args = alias.get_extra_args_from_alias(message, prefix)
@@ -163,7 +172,8 @@ class Alias(commands.Cog):
new_message.content = "{}{} {}".format(
prefix, command, " ".join(args[trackform.max + 1 :])
).strip()
await self.bot.process_commands(new_message)
return new_message
async def paginate_alias_list(
self, ctx: commands.Context, alias_list: List[AliasEntry]

View File

@@ -62,8 +62,7 @@ class AliasEntry:
word = view.get_quoted_word()
if len(word) < view.index - prev:
word = "".join((view.buffer[prev], word, view.buffer[view.index - 1]))
extra.append(word)
view.skip_ws()
extra.append(word.strip(" "))
return extra
def to_json(self) -> dict:

View File

@@ -23,7 +23,9 @@ __all__ = [
"empty_role",
"empty_user",
"member_factory",
"newline_message",
"user_factory",
"prefix",
"ctx",
]
@@ -142,6 +144,18 @@ def empty_message():
return mock_msg("No content.")
@pytest.fixture(scope="module")
def newline_message():
mock_msg = type("", (), {})()
mock_msg.content = "!test a\nb\nc"
return mock_msg
@pytest.fixture(scope="module")
def prefix():
return "!"
@pytest.fixture()
def ctx(empty_member, empty_channel, red):
mock_ctx = namedtuple("Context", "author guild channel message bot")