我正在尝试使用 JSON 设置通道发送欢迎消息,但它不起作用

时间:2021-07-02 10:47:56

标签: python json discord discord.py

所以我尝试使用 on_member_join 发送欢迎消息,但它不起作用。以下是我认为与该问题相关的所有代码:

我的进口

#Imports
import discord
import random
import os
import keep_alive
import requests
import json
from Variables import *
from discord.ext import commands

与欢迎信息相关的所有内容:

@client.event
async def on_member_join(member):
    with open('guilds.json', 'r', encoding='utf-8') as f:
        guilds_dict = json.load(f)

    channel_id = guilds_dict[str(member.guild.id)]
    await client.get_channel(int(channel_id)).send(f'{member.mention} welcome to the Otay! Support server! Enjoy your stay!?')


@client.command(name='welcome')
async def set_welcome_channel(ctx, channel: discord.TextChannel):
    with open('guilds.json', 'r', encoding='utf-8') as f:
        guilds_dict = json.load(f)

    guilds_dict[str(ctx.guild.id)] = str(channel.id)
    with open('guilds.json', 'w', encoding='utf-8') as f:
        json.dump(guilds_dict, f, indent=4, ensure_ascii=False)
    
    await ctx.send(f'Sent welcome channel for {ctx.message.guild.name} to {channel.name}')

在名为“guilds.json”的 JSON 文件中

{
    "822514664863957054": "847897881431900222"
}

我的朋友做了完全相同的事情,但对他有用,所以我很困惑。如果您想了解更多信息,请对此消息发表评论。

非常感谢任何支持,谢谢!

1 个答案:

答案 0 :(得分:0)

在导入下面添加这个

intents = discord.Intents.default()

intents.members = True

然后把这个 - intents=intents 放在下面

client = commands.Bot(command_prefix = 'd', intents = intents)

在开发者页面 https://discord.com/developers/applications 上,转到您的应用程序,然后转到侧边栏中的机器人部分 click on the bot part

看看这张图片,并确保选中突出显示的位 make sure the highlighted bits in yellow are checked

希望这有效