当前位置: 首页 > 知识库问答 >
问题:

如何在特定的“欢迎”文本频道中欢迎新成员。皮耶?

叶书
2023-03-14

我想为我的机器人制作一个命令,在其中我们可以配置机器人可以发送的欢迎消息。因此,配置的工作原理如下:nb欢迎

预期的输出是一个嵌入,它被写入Hello

这是我的密码:

@client.command(aliases = ["welcome"])
async def _welcome(ctx, channel : discord.TextChannel, roles : discord.TextChannel = None):
    global channel_welcome
    global role_welcome
    channel_welcome = channel
    
    if roles != None:
        role_welcome = roles
        
    else:
        role_welcome = None
    
    await ctx.send("Ok, welcome message configured!")    

@client.event
async def on_member_join(member):
    global channel_welcome
    global role_welcome
    pfp = member.avatar_url
    
    if role_welcome == None:
        embedVar = discord.Embed(title="WELCOME!",description = "{}, you are welcome to this server!" . format(member.mention), color = 0xff9900)
        embedVar.set_thumbnail(url = pfp)
        await client.getchannel(channel_welcome).send(embed = embedVar)

    else:
        embedVar = discord.Embed(title="WELCOME!",description = "{}, you are welcome to this server! Go to {} to assign yourself some roles." . format(member.mention, role_welcome.mention), color = 0xff9900)
        embedVar.set_thumbnail(url = pfp)
        await client.getchannel(channel_welcome).send(embed = embedVar)

所以,欢迎命令是配置命令。如您所见,角色参数是可选的,如果用户愿意,他/她可以使用它。每当我运行代码,有人加入服务器时,它不会发送消息或引发任何错误。

有没有关于如何解决这个问题的建议?


共有1个答案

詹高畅
2023-03-14

当用户加入时,bot不会做出反应的原因可能是您没有为bot定义适当的意图。

现在在代码中,您需要定义意图

import discord
from discord.ext import commands

intents = discord.Intents().default()
intents.members = True
client = commands.Bot(prefix = "your_prefix", intents = intents)

这将允许bot侦听关于成员加入的事件。

 类似资料:
  • 该站点的目标是成为 Jekyll 的全面指南。包括一些内容如:搭建和运行你的站点、创建以及管理内容、定制站点的展现和外观、在不同的环境中发布、以及参与到 Jekyll 将来的开发的一些建议。 Jekyll 究竟是什么? Jekyll 是一个简单的博客形态的静态站点生产机器。它有一个模版目录,其中包含原始文本格式的文档,通过一个转换器(如 Markdown)和我们的 Liquid 渲染器转化成一个完

  • 欢迎来到 Libra 开发者站点! Libra 的使命是建立一套简单的全球货币和金融基础设施,为数十亿人服务。 The world truly needs a reliable digital currency and infrastructure that together can deliver on the promise of “the internet of money.” Securi

  • Web 应用程序开发人员可以在 Web 应用程序部署描述文件中定义一个称为欢迎文件的局部 URI 有序列表。在 Web 应用程序部署描述文件模式中描述了部署描述文件中欢迎文件列表的语法。 这种机制的目的是,当一个对应到 WAR文件中一个目录条目的请求 URI没有映射到一个 Web 组件时,允许部署者为容器用于添加 URI 指定局部URI 有序列表。这种请求被认为是有效的局部请求。 通过下面常见的例

  • 当你开始 Navicat Data Modeler,一个欢迎窗口会弹出,你可以选择创建一个新模型、打开一个现有的模型等。在登录 Navicat Cloud 后,欢迎窗口会分为两部份:“我的 Mac 上”和“Navicat Cloud”。你可以在本机电脑和 Navicat Cloud 访问或保存模型。 创建一个新模型 在欢迎窗口中点击“新建模型”。 选择模型类型和其他设置。 从数据库创建一个新模型

  • 当你开始 Navicat Data Modeler,一个欢迎窗口会弹出,你可以选择创建一个新模型、打开一个现有的模型等。在登录 Navicat Cloud 后,欢迎窗口会分为两部份:“本机”和“Cloud”。你可以在本机电脑和 Navicat Cloud 访问或保存模型。 创建一个新模型 在欢迎窗口中点击“新建模型”。 选择模型类型和其他设置。 从数据库创建一个新模型 选择“工具”->“从数据库导

  • 我需要我的discord机器人记住在不同的行会中向哪个频道发送问候。目前,我将频道名称作为前缀,并使用它来回忆发送到何处: 我如何设置一个命令,当机器人加入他们的公会时,所有者可以使用该命令,为每个公会设置一个唯一的欢迎通道(并且显然只向加入公会的人发送欢迎消息)。 哦,我如何设置一个命令,最终让人们改变他们公会的欢迎信息? 谢谢!:)