Discord Invoke命令用于discord bot

时间:2018-05-31 13:47:43

标签: discord discord.py

我使用以下代码创建了一个机器人,现在在我的不和谐服务器中。

我的问题是,一旦我在与机器人的不和谐聊天中,我如何调用命令让机器人运行代码,为用户列表收集csv?我不确定如何在聊天室/服务器中调用机器人来获取列表。

"""A bot to list all members of a server."""
import csv
import time

from discord.ext import commands
from discord.ext.commands import Bot

# constants
PREFIX = "~"
TOKEN = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXx"

bot = Bot(command_prefix=PREFIX)


@bot.event
async def on_ready():
    print('Logged in as')
    print(bot.user.name)
    print(bot.user.id)
    print('------')


@bot.event
async def on_command_error(error, ctx):
    if isinstance(error, commands.CommandNotFound):
        return
    else:
        print(error)


@bot.command(pass_context=True)
async def stat(ctx):
    """Returns a CSV file of all users on the server."""
    await bot.request_offline_members(ctx.message.server)
    before = time.time()
    nicknames = [m.display_name for m in ctx.message.server.members]
    with open('temp.csv', mode='w', encoding='utf-8', newline='') as f:
        writer = csv.writer(f, dialect='excel')
        for v in nicknames:
            writer.writerow([v])
    after = time.time()
    await bot.send_file(ctx.message.author, 'temp.csv', filename='stats.csv',
                        content="Here you go! Check your PM's. Generated in {:.4}ms.".format((after - before)*1000))


if __name__ == '__main__':
    bot.run(TOKEN)

1 个答案:

答案 0 :(得分:1)

您的意思是运行stat命令吗?由于您的前缀为~,因此您可以通过在频道中输入~stat来调用该命令。