我正在尝试制作一个RNG机器人,以自学自学python的基础知识。当执行RNG命令时,我的计划是例如使用命令(-RNG),并找到一个随机数以找到1与文本中选择的数字之间的rng。我已经达到极限,并且能够使代码正常工作(就没有任何错误而言),但是我的机器人无法识别该命令,因此我没有任何响应。有帮助/想法吗?
尝试从在线搜索中找到各种代码,但没有一个比这个更好,因为已经在另一个在线论坛上找到了该代码,但是只是不确定如何使命令起作用。
import discord
import random
from discord.ext.commands import Bot
from discord.ext import commands
class MyClient(discord.Client):
async def on_ready(self):
print('Logged in as')
print(self.user.name)
print(self.user.id)
print('------')
async def on_message(self, message):
if message.content.startswith('-rng'):
async def random1and10(ctx, number):
try:
arg = random.randint(1, int(number))
except ValueError:
await message.channel.send("Invalid number dumbass")
else:
await message.channel.send(str(arg))
期望能够从我的机器人获得响应,列出一个随机数,其中最大数为启动该命令中指定的数字。
答案 0 :(得分:0)
这种方式行不通;你要解决这个错误。查看discord.py重写。
from discord.ext import commands
import discord, random
bot = commands.Bot(command_prefix="-")
@commands.command()
async def rng(ctx, num):
# ctx.channel is the channel the command was called in
try:
arg = random.randint(1, int(num))
except ValueError:
return await ctx.channel.send("Wrong number dumbass")
else:
return await ctx.channel.send(str(arg))
现在,如果设置正确,则在服务器中执行-rng时,机器人将调用rng()。