[我尝试在获得角色后尝试执行print(role),并且该角色显然是“ None”,这可能是问题所在,但我完全不知道为什么会这样做[]
而且此代码在另一个文件中,并且我在主文件中确实有bot.load_extension,所以这不是问题
import discord
from discord.ext import commands
colors = { # id of the emojis, it uses the name of the emoji to figure out which role to give
714912285423829034, # red
714912285180690463, # orange
714912284807266425, # yellow
714912284786294865, # green
714912285088284703, # blue
714912285084090379, # purple
714912285172170862, # pink
714912312938463234 # black
}
class Roles(commands.Cog, command_attrs=dict(hidden=True)):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_raw_reaction_add(self, payload):
blocco = self.bot.get_guild(714868972549570653)
member = blocco.get_member(payload.user_id)
if payload.message_id == 714913902269562962:
for color in colors:
role = blocco.get_role(color)
if role.name.lower().replace(" ", "") == payload.emoji.name.lower().replace("_", ""): # roles formatted like this: "Hello World", roles formatted like this: "hello_world"
await member.add_roles(role)
@commands.Cog.listener()
async def on_raw_reaction_remove(self, payload):
blocco = self.bot.get_guild(714868972549570653)
member = blocco.get_member(payload.user_id)
if payload.message_id == 714913902269562962:
for color in colors:
role = blocco.get_role(color)
if role.name.lower().replace(" ", "") == payload.emoji.name.lower().replace("_", ""): # roles formatted like this: "Hello World", roles formatted like this: "hello_world"
await member.remove_roles(role)
def setup(bot):
bot.add_cog(Roles(bot))
我在获得角色后尝试执行print(role),并且该角色显然是“ None”,这可能是问题所在,但我完全不知道为什么这样做,而且此代码位于其他文件中,...] >
要修复代码,您需要将CSS代码链接到dscrd。我以为您正在使用python代码,但我认为它做了您想要做的事情。希望这会有所帮助!