首页 文章

Discord Invoke命令用于discord bot

提问于
浏览
0

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

我的问题是,一旦我与机器人聊天不和,我如何调用命令让机器人运行代码,收集用户列表的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 回答

  • 1

    你的意思是运行你的 stat 命令?由于您的前缀是 ~ ,因此您可以通过在通道中键入 ~stat 来调用该命令 .

相关问题