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

不一致py-加入/离开消息错误,不工作

雷硕
2023-03-14

再一次,我的代码没有跟上,我不知道为什么。。。控制台显示没有错误。

这是我的密码:

@bot.event
async def on_member_join(member):
    channel = bot.get_channel(792786709350973454)
    author = ctx.message.author
    ico = author.avatar_url
    embed = discord.Embed(
        color = discord.Color.red(),
    )
    embed.set_author(name=(f'• Hello {member} on my server!!'))
    embed.add_field(name='Warning,', value='read the regulations!', inline=False)
    embed.set_footer(text="dBot created by Diablo#4700", icon_url=ico)
    await channel.send(embed=embed)

共有1个答案

司空鸿熙
2023-03-14

代码片段中存在不止一个问题。我将在这里列出它们,并进行修复。

  • 首先是主要问题,您正在使用ctx声明author变量。著者姓名这里什么是ctxctx仅在命令中传递。这是一件大事。它使用member作为参数,但此处不能使用ctx

固定代码:

@bot.event
async def on_member_join(member):
    channel = bot.get_channel(792786709350973454)
    # author = ctx.message.author # first problem, you don't really need this line 
    ico = member.avatar_url # since above line is useless you would change this line too
    embed = discord.Embed(
        color = discord.Color.red(),
    )
    embed.set_author(name=f'• Hello {member.name} on my server!!') # second problem was here.
    embed.add_field(name='Warning,', value='read the regulations!', inline=False)
    embed.set_footer(text="dBot created by Diablo#4700", icon_url=ico)
    await channel.send(embed=embed)

(重要)意图:
如果您不知道,您需要特权网关意图来跟踪成员事件。确保在开发者不和谐门户的应用程序中启用bot部分的两个意图,然后在顶部的代码中(在那里初始化bot)...

import discord
from discord.ext import commands

client= commands.Bot(command_prefix="prefix", intents=discord.Intents.all()) 

...
# rest of the code

参考文献:

on\u member\u joinevent
contextctx
意欲不和。派克

 类似资料:
  • 我开始使用(不是命令,只有)。最近,我做了一个频道,名字显示了公会的成员数量,每次有人加入或离开都会更新。这是我的代码: 我还添加了命令上,以便bot将该名称编辑为我键入的任何名称。 现在,在添加了一些用于调试的打印后,我发现,\u member\u join()上的上的

  • 我只是想给加入服务器的新成员写一封欢迎信。我想在每次新成员加入时发送嵌入。但是,未发送嵌入。有人能帮我吗? 这是我的代码: 谢谢

  • bot发送嵌入消息,但仅发送文本而不发送gif。我有一个单独的gif文件。json文件,因此当有人使用该命令时,会有不同的GIF。但由于某种原因,它不起作用。也许是因为天气原因。json文件?我真的不知道,请帮帮我。我的代码: 该代码为。json文件: (我知道,它只有一个gif。) 当两个文件都在一个文件夹中时,我在控制台中出现的错误:图片:https://i.stack.imgur.com/8

  • 我不和谐。关于repl的js初学者。信息技术 代码: 但是控制台发送这样的错误: 有人能看出我错在哪里吗?

  • 我的discord机器人发送了错误的嵌入消息。这是一个拥抱命令,如果某人没有提及某人,机器人会在频道中发送一条错误消息,内容如下:请提及有效用户!我想以嵌入方式发送此消息,但它无法正常工作。每次我使用命令时,没有提到任何人,我的控制台中都不会出现错误。当我提到某人时,它是有效的,但它也会发送错误信息。以下是一个截图:https://i.imgur.com/bcnS1Yb.png 我的代码: 请帮帮

  • 我正在尝试使用on_message事件将消息和有关消息的信息写入我的文件日志。然而,我得到的错误; 回溯(最后一次调用):文件“C:\Users\arsto\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\Local Packages\Python38\site Packages