我有这样的代码
async def allroles(ctx):
output2 = ""
server = ctx.message.guild
role_id = server.roles[0]
for role in server.roles:
if role_id == 640586288029892618:
print("it´s everyone role")
else:
output2 +=f"{role.name} n"
await ctx.send(output2)
where 640586288029892618 == @everyone我想写每个角色除了每个人,但是当我尝试这个只是写所有角色包括每个人,所以我想我的尝试不写它是错误的(如果有选项来代替每个人使用role_name的ID,所以我不需要改变它为每个@每个服务器角色,但写入
if role.name == "@everyone":
Skip
else:
output2 +=f"{role.name} n"
await ctx.send(output2)
那太好了。谢谢你的帮助!
基本上你做错了什么
if role_id == 640586288029892618:
print("it´s everyone role")
role_id = server.roles[0]
返回一些奇怪的数据在这里(我不记得名字)所以试着用if role_id.id == 640586288029892618:
代替if role_id == 640586288029892618:
希望这能解决你的问题,否则就给我打电话
编辑:因为你每次都要求一个比放置角色id更简单的方法对于大多数角色来说,它可能工作得很好,但是当你在角色名称中添加表情符号时,你可能会在代码中命名角色时遇到困难,当你可以通过简单地添加另一个参数(如
)来完成时,为什么要硬编码呢?类
async def allroles(ctx, role_to_check:Role):
//some code here
for role in server.roles:
if role.id == role_to_check.id:
print("it´s everyone role")
希望这能解决你的问题。