📅  最后修改于: 2023-12-03 14:50:05.452000             🧑  作者: Mango
Discord py 是一个 Python 的库,可以方便开发 discord 机器人。它提供了很多功能,包括发送和接收消息,管理频道和服务器成员等。在 Discord 服务器中,消息是非常重要的一环,除了文字消息外,它还支持图片、链接、表情等多种消息格式。在本文中,我们将讲解如何在 discord py 中发送和接收消息。
要发送消息,我们需要利用 discord.py 中的 discord.Client
类或者 discord.ext.commands.Bot
类。discord.Client
是一个基础的客户端对象,而 discord.ext.commands.Bot
是在其基础上的封装,可以更方便地注册和调用命令。
我们可以利用 discord.Client
或 discord.ext.commands.Bot
对象的 send
方法来发送消息。例如:
import discord
client = discord.Client()
@client.event
async def on_ready():
print(f'{client.user} 已登录')
@client.event
async def on_message(message):
if message.content.startswith('$hello'):
await message.channel.send('Hello!')
client.run('your-token')
本代码在接收到 $hello
这条消息时发送了一条 Hello!
的回复消息。
Discord 支持在消息中使用 Markdown 和一些自定义的语法,以获得丰富的消息格式。我们可以利用 discord.Embed
类来发送富文本消息。例如:
import discord
client = discord.Client()
@client.event
async def on_ready():
print(f'{client.user} 已登录')
@client.event
async def on_message(message):
if message.content.startswith('$info'):
embed = discord.Embed(title="Python", description="Python 是一种跨平台的解释型、面向对象、动态数据类型的高级程序设计语言。", color=0x00ff00)
embed.set_author(name="Python", icon_url="https://www.python.org/static/favicon.ico", url="https://www.python.org/")
embed.set_thumbnail(url="https://www.python.org/static/opengraph-icon-200x200.png")
embed.add_field(name="版本", value="3.9.7", inline=True)
embed.add_field(name="官网", value="[python.org](https://www.python.org/)", inline=True)
await message.channel.send(embed=embed)
client.run('your-token')
本代码在接收到 $info
这条消息时发送了一条包含 Python 相关信息的富文本消息。
要接收消息,我们需要利用 discord.py 中的 discord.Client
类或者 discord.ext.commands.Bot
类和 on_message
事件。on_message
事件会在接收到消息后触发,我们可以在此事件中处理消息。
import discord
client = discord.Client()
@client.event
async def on_ready():
print(f'{client.user} 已登录')
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('$hello'):
await message.channel.send('Hello!')
if message.content.startswith('$info'):
embed = discord.Embed(title="Python", description="Python 是一种跨平台的解释型、面向对象、动态数据类型的高级程序设计语言。", color=0x00ff00)
embed.set_author(name="Python", icon_url="https://www.python.org/static/favicon.ico", url="https://www.python.org/")
embed.set_thumbnail(url="https://www.python.org/static/opengraph-icon-200x200.png")
embed.add_field(name="版本", value="3.9.7", inline=True)
embed.add_field(name="官网", value="[python.org](https://www.python.org/)", inline=True)
await message.channel.send(embed=embed)
client.run('your-token')
本代码接收 $hello
和 $info
两条消息,分别发送不同内容的回复消息。
以上是关于消息在 discord py 中的使用介绍,希望对你有所帮助。