是什么导致工单系统无法运行?
What is causing the ticket system to not function?
抱歉,这可能很容易解决(我不太了解文档)
但是,我想要打开一个频道,所以只有用户和模组才能看到它。当用户对消息添加反应时,它将被打开,然后反应将被删除(只留下机器人的反应)
目前,我的代码是:
@commands.Cog.listener()
async def on_reaction_add(self, reaction, user):
if reaction.emoji == '':
if user.channel.id == 850622999577231370:
await message.remove_reaction("", user)
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.me: discord.PermissionOverwrite(read_messages=True)
}
n = random.randomint(1, 1000)
await guild.create_text_channel(f'Ticket {n}', overwrites=overwrites, categoty="Tickets")
else:
pass
else:
pass
似乎没有运行,因为没有错误消息,但也没有创建频道
我注意到的几件事:
random.randomint
不存在,一定是random.randrange
.
- 您没有在提供的代码中定义
guild
,我们将只使用 user.guild
。
- 为了获取频道,我们使用
if reaction.message.channel.id
而不是 if user.channel.id
,这在这里毫无意义。
这是一个可能的新代码:
@commands.Cog.listener()
async def on_reaction_add(self, reaction, user):
if reaction.emoji == '':
print("Reaction")
if reaction.message.channel.id == Your_Channel_ID:
await reaction.message.remove_reaction("", user)
guild = user.guild # We get the guild
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.me: discord.PermissionOverwrite(read_messages=True)
}
n = random.randrange(1, 1000) # We choose a number from randrange 1-1000
await guild.create_text_channel(f'Ticket {n}', overwrites=overwrites, categoty="Tickets")
else:
pass
else:
pass
抱歉,这可能很容易解决(我不太了解文档) 但是,我想要打开一个频道,所以只有用户和模组才能看到它。当用户对消息添加反应时,它将被打开,然后反应将被删除(只留下机器人的反应) 目前,我的代码是:
@commands.Cog.listener()
async def on_reaction_add(self, reaction, user):
if reaction.emoji == '':
if user.channel.id == 850622999577231370:
await message.remove_reaction("", user)
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.me: discord.PermissionOverwrite(read_messages=True)
}
n = random.randomint(1, 1000)
await guild.create_text_channel(f'Ticket {n}', overwrites=overwrites, categoty="Tickets")
else:
pass
else:
pass
似乎没有运行,因为没有错误消息,但也没有创建频道
我注意到的几件事:
random.randomint
不存在,一定是random.randrange
.- 您没有在提供的代码中定义
guild
,我们将只使用user.guild
。 - 为了获取频道,我们使用
if reaction.message.channel.id
而不是if user.channel.id
,这在这里毫无意义。
这是一个可能的新代码:
@commands.Cog.listener()
async def on_reaction_add(self, reaction, user):
if reaction.emoji == '':
print("Reaction")
if reaction.message.channel.id == Your_Channel_ID:
await reaction.message.remove_reaction("", user)
guild = user.guild # We get the guild
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.me: discord.PermissionOverwrite(read_messages=True)
}
n = random.randrange(1, 1000) # We choose a number from randrange 1-1000
await guild.create_text_channel(f'Ticket {n}', overwrites=overwrites, categoty="Tickets")
else:
pass
else:
pass