gpt4 book ai didi

python - Discord.py 重写 get_member() 函数为除 bot 之外的所有用户返回 None

转载 作者:行者123 更新时间:2023-12-04 12:16:11 26 4
gpt4 key购买 nike

几个月前我做了一个愚蠢的 discord bot 每分钟更改我 friend 的名字,但我今天更新了它,现在 get_member 函数没有返回任何内容。

@client.event
async def on_ready():
print('bot is ready!')
status = discord.Activity(name="Sam be a loser", type=discord.ActivityType.watching)
await client.change_presence(activity=status)

name_change.start()

@tasks.loop(minutes=1)
async def name_change():
server = client.get_guild(id=584112137132048387)
user = server.get_member(376388277302984714)

global english_words
global wordNumber
wordNumber = wordNumber + 1
#changes nickname to current word
await user.edit(nick=f"{english_words[wordNumber]} lookin' ass")
print(f'Word number {wordNumber}: {english_words[wordNumber]}')
#updates number in file
file = open("currentWord.txt", "w")
file.write(str(wordNumber))
file.close
我对服务器中的每个用户都尝试了相同的功能,但除了当我输入机器人的 id 时,它对所有用户都没有返回。我不知道为什么会发生这种情况,因为我什至没有编辑这部分代码。

最佳答案

这很可能是由于最近的 discord.py 1.5 更新造成的。当你声明你的机器人时,你需要配置你的意图。
什么是意图?
1.5 版引入了意图。这是机器人编写方式的根本变化。意图基本上允许机器人订阅特定的事件桶。与每个意图对应的事件记录在意图文档的各个属性中。下面是一个例子:

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.members = True # Subscribe to the privileged members intent.
bot = commands.Bot(command_prefix='!', intents=intents)
您还必须为公会相关事件启用特权意图: Here
您可以阅读有关意图的更多信息: Here

关于python - Discord.py 重写 get_member() 函数为除 bot 之外的所有用户返回 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64221377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com