Python Discord.py role.members返回空列表
我在使用discord.py中的role.members功能时遇到问题Python Discord.py role.members返回空列表,python,python-3.x,discord.py,Python,Python 3.x,Discord.py,我在使用discord.py中的role.members功能时遇到问题 role.members 只返回一个空列表。这是我的密码: class MyClient(discord.Client): async def on_ready(self): print("") print('Logged on as', self.user) async def on_message(self, message): re
role.members
只返回一个空列表。这是我的密码:
class MyClient(discord.Client):
async def on_ready(self):
print("")
print('Logged on as', self.user)
async def on_message(self, message):
reasons = []
# don't respond to ourselves
if message.author == self.user:
return
if CheckBot.susCheck(self, message.content, susWords):
reasons.append("Being sus")
# DM staff, admins, and headstaff(Still working)
report = "Caught " + str(message.author) + '" being sus with the following message: \n"' + message.content + '"'
print("")
print("####################-END-####################")
print("")
print(report)
if CheckBot.badCheck(self, message.content, badWords):
reasons.append("Saying bad words")
# DM staff, admins and headstaff(Still working)
report = "Caught " + str(message.author) + ' saying bad words with the following message: \n"' + message.content + '"'
print("")
print("####################-END-####################")
print("")
print(report)
role1 = message.guild.get_role(ROLE_ID)
role2 = message.guild.get_role(ROLE_ID)
role3 = message.guild.get_role(ROLE_ID)
role4 = message.guild.get_role(ROLE_ID)
role5 = message.guild.get_role(ROLE_ID)
print(role3.members)
if role3 in message.author.roles or role4 in message.author.roles or role5 in message.author.roles:
if CheckBot.spamCheck(self, message.content, 100000000000000000):
reasons.append("Spam")
# DM staff, admins, and headstaff(Still working)
report = "Caught " + str(message.author) + ' spamming with the following message: \n"' + message.content + '"'
print("")
print("####################-END-####################")
print("")
print(report)
else:
if CheckBot.spamCheck(self, message.content, 115):
reasons.append("Spam")
# DM staff, admins, owner, and headstaff(Still working)
report = "Caught " + str(message.author) + ' spamming with the following message: \n"' + message.content + '"'
print("")
print("####################-END-####################")
print("")
print(report)
client = MyClient()
我对此感到非常困惑。我在网上找不到关于它的任何信息。如果您想知道这个bot是关于什么的,当有人违反服务器规则时,它应该使用DM mod type角色。我的一个朋友让我做这件事,而我自己也接受了。我看到很多人把它当作一个学习项目。任何事情都会有帮助。请在您的列表中输入
成员的意图。这是为了防止滥用API,如果要使用它,必须启用它
转到Bots并启用以下功能:
在代码中,您应该从以下内容开始。如果将client
用作变量,则将bot=
替换为client=
intents=discord.intents.default()#允许使用自定义意图
intents.members=True
bot=commands.bot(command_prefix=“?”,不区分大小写=True,intents=intents)
最终代码:
导入不一致
从discord.ext导入命令
intents=discord.intents.default()#允许使用自定义意图
intents.members=True
client=commands.Bot(command\u prefix=“?”,不区分大小写=True,intents=intents)
@客户端事件
_ready()上的异步定义:
打印(“”)
打印('登录身份:',客户端)
@客户端事件
异步def on_消息(消息):
原因=[]
#不要回应我们自己
如果message.author==client.user:
返回
如果CheckBot.susCheck(message.content,susWords):
原因。追加(“被sus”)
#DM员工、管理员和主管(仍在工作)
report=“catch”+str(
message.author)+”与以下消息一起使用:\n“+message.content++”
打印(“”)
3月日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日"""(""""")
打印(“”)
打印(报告)
如果CheckBot.badCheck(message.content,badWords):
原因。追加(“说坏话”)
#DM员工、管理员和负责人(仍在工作)
report=“catch”+str(
message.author)+用以下消息说脏话:\n“'+message.content+'”
打印(“”)
3月日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日"""(""""")
打印(“”)
打印(报告)
role1=message.guild.get\u角色(角色ID)
role2=message.guild.get\u角色(角色ID)
role3=message.guild.get\u角色(角色ID)
role4=message.guild.get\u角色(角色ID)
role5=message.guild.get\u角色(角色ID)
打印(角色3.成员)
如果message.author.roles中的role3或message.author.roles中的role4或message.author.roles中的role5:
如果CheckBot.spamCheck(message.content,1000000000000000):
原因。附加(“垃圾邮件”)
#DM员工、管理员和主管(仍在工作)
report=“catch”+str(
message.author)+垃圾发送以下消息:\n“'+message.content+'”
打印(“”)
3月日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日"""(""""")
打印(“”)
打印(报告)
其他:
如果CheckBot.spamCheck(message.content,115):
原因。附加(“垃圾邮件”)
#DM员工、管理员、所有者和负责人(仍在工作)
report=“catch”+str(
message.author)+垃圾发送以下消息:\n“'+message.content+'”
打印(“”)
3月日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日"""(""""")
打印(“”)
打印(报告)
client.run(“令牌”)
我该怎么做?我只能找到特权和选择的作用域。更新了我的答案@graydog6抱歉,如果我遗漏了一些明显的东西。但我认为这有一个问题。我所有的东西都在一个名为MyClient的类中,并接受了“discord.Client”。然后我在末尾创建了一个名为“Client”的变量“把它分配给我的班级。那么我该如何修改它来处理您的代码呢?client=commands.Bot(command\u prefix=“?”,不区分大小写=True,intents=intents)
@graydog6或者用您使用的代码更新您的问题我不好,应该这样做的。我刚刚更新了我的代码。