#python #discord.py
#python #discord.py
Вопрос:
Как мне добавить несколько команд с одинаковым именем в Discord.py ? Например:
@client.command(aliases=["dices"])
async def dice(ctx, num):
try:
num=int(num)
bla bla bla
except ValueError:
await ctx.send("Invalid Number!")
@client.command(name='dice',aliases=["dices"])
async def dice_no_param(ctx):
try:
roll = random.randint(1,6)
bla bla bla
except ValueError:
await ctx.send("Invalid Number!")
Но, очевидно, я получаю сообщение об ошибке.
Traceback (most recent call last):
File "main.py", line 1, in <module>
import bot
File "/home/runner/HamburgerBot/bot.py", line 147, in <module>
async def dice_no_param(ctx):
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 1163, in decorator
self.add_command(result)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 1071, in add_command
raise discord.ClientException('Command {0.name} is already registered.'.format(command))
discord.errors.ClientException: Command dice is already registered.
Ответ №1:
Вы не можете, но для вашей dice
командной цели вы можете сделать это так
@client.command(name='dice', aliases=['dices'])
async def dice(ctx, num=None):
num = num or random.randint(1, 6)
try:
num = int(num)
except ValueError:
return await ctx.send("Invalid Number!")
# bla bla bla other code
Ответ №2:
В первой строке введите имя функции, с помощью которой вы использовали команду. Он должен должен писать так-
@client.command(name='Name_of_the_function', aliases=['what_command_you_also_want_to_use'])
Вы можете использовать несколько подобных команд.