DISCORD BOT尝试制作RNG,但在Discord中键入命令时未收到答案

时间:2019-09-28 11:14:16

标签: python

我正在尝试制作一个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))

期望能够从我的机器人获得响应,列出一个随机数,其中最大数为启动该命令中指定的数字。

1 个答案:

答案 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()。