为什么我使用 discord.utils.get() 时成员变量没有被填充?
这些ID是来自Discord的正确的18位数字,意图和机器人的权限设置也没问题,但两个获取的结果都是None,也就是没有返回任何东西。
import discord
from discord.ext import commands
intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print(f'Logged in as {bot.user.name}')
@bot.event
async def on_member_update(before, after):
user1 = discord.utils.get(after.guild.members, name="botid")
user2 = discord.utils.get(after.guild.members, name="myid")
if after.id == user1.id and before.roles != after.roles and user2 in after.roles:
roles_added = [role for role in after.roles if role not in before.roles]
roles_removed = [role for role in before.roles if role not in after.roles]
if roles_added:
await after.remove_roles(*roles_added, reason="Automated action: roles cannot be assigned to user1 by user2")
elif roles_removed:
await after.add_roles(*roles_removed, reason="Automated action: roles cannot be removed from user1 by user2")
这是一个基础的角色机器人,它可以防止特定用户(我)给另一个用户(这个机器人)设置角色。
0 个回答
暂无回答