#2.向Discord.py介绍
#初学者 #教程 #python #discord

hii家伙,我是曼努(Mannu),这是我在Discord.py教程上的第二篇文章。如果您还没有看过以前的post,请从Start中检查一下。

因此,我们已经创建了机器人,现在是时候使其正常工作了。
我们要做的就是创建一个名为main.py的文件。您可以按任何名称创建文件,但现在可以使用main.py,以便您留在我身边......

所以我们今天要做的就是在线上进行机器人并创建我们的第一个命令。

这就是我们的代码库的样子(忽略许可证和读书文件一段时间)
Codebase
你们中有些人可能想知道为什么有.env文件以及它的用途。 Well .ENV文件用于存储像我的Discord Bot令牌一样的环境变量。我将使用一些额定功能将其导入我的主文件。您可以直接在主文件中使用令牌,它将起作用的目的是为了安全目的,并确保在Github上发布时从那里删除令牌。

所以让我们写第一行代码。将以下内容导入您的主文件。

import discord
from discord.ext import commands

现在你们中有些人可能会说什么。这些只是我们运行机器人所需的软件包。 discord.ext只是discord.py的扩展,这就是为什么我们将使用discord.ext。

因此,在下一行,我们将设定机器人工作的意图。

intents = discord.Intents.default()
intents.message_content = True

我们在这里完成的是创建一个变量,该变量存储了我们的Discord Bot中的Discord软件包中所有默认意见。然后我们设置了intents.message_content = True。这意味着我们允许我们的机器人阅读和发送消息。

然后我们为Out Bot创建一个变量。

bot = commands.Bot(command_prefix=".",intents=intents)

我们在这里正在做的是创建一个bot变量wher store commands.bot(),作为参数,我们正在提供command_prefix,这是我们的Discord Bot前缀和设置Intests = Intents = Intents,这意味着我们正在提供机器人发送和阅读消息前面提到的权限。

现在在末端类型

bot.run("your bot token here")

这样做的是它与我们的机器人连接并启动/使其在线。

现在我们的整个代码看起来像这样

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.message_content = True

bot = commands.Bot(command_prefix=".",intents=intents)


bot.run("your bot token here")

通过运行此命令运行此代码

python main.py

if there are any errors in the terminal do comment on this post so that I can know
恭喜!我们的机器人现在在线。
online bot
现在让我们添加我们的第一个命令。

我们将在这两个之间编写命令的代码
command place

让我们创建一个命令。要创建一个命令,我们需要使用此语法。

@bot.command()
async def hello(ctx):
    await ctx.send("Hii There! I am Mannu And Welcome to the discord.py tutorial")

我们在这里做的是添加一个名为bot.command()的decorator。它的作用是在bot上运行命令时称为我们的def。不要太困惑了,你会理解我想说的话。
现在,我们创建了一个名为Hello的异步def,这也是我们的命令名称。好事是,上述装饰器创建了一个与我们功能相同的名称的命令。现在,在此异步def中,我们将CTX作为param。然后,在此防御中,我们正在等待我们的代码行,即ctx.send("Your Message")。它的作用是使机器人发送消息。
保存您的程序并准备使用我们的第一个命令。
运行程序并等待我们的机器人上网。

在Discord聊天中键入.hello。然后按Enter
first command

output
然后你去。我们成功创建了我们的第一个命令。
这是完整的代码,以防万一

import discord
from discord.ext import commands
from dotenv import load_dotenv
import os

load_dotenv()
token = os.environ["TOKEN"]

intents = discord.Intents.default()
intents.message_content = True

bot = commands.Bot(command_prefix=".",intents=intents)

@bot.command()
async def hello(ctx):
    await ctx.send("Hii There! I am Mannu And Welcome to the discord.py tutorial")

bot.run(token)

我们将来会创建更复杂的命令,因此请尝试了解这些东西是什么。请喜欢如果有帮助的话。

快乐的编码!
Manno