Делаю бота для себя и своих друзей. Вроде все настроил, но он выдает роли только мне, когда кто-то другой нажимает получает только сообщение.
Так же иногда вылетает "Ошибка взаимодействия"
Вот сам код:
bot = commands.Bot( command_prefix = '!')
@bot.event
async def on_ready():
DiscordComponents(bot)
await bot.change_presence(activity=discord.Game(name="Monro FamQ"))
res = bot.get_channel(880840475312001065)
log = discord.Embed(title = '**Работает**', colour = 0xFFFF00)
await res.send(
embed = log)
print("Бот включен")
@bot.command()
async def test(ctx):
emb = discord.Embed(title = ':pencil: Роли Discord', description = "**Автоматическое выдача роли - <@&792385427679477790>**", colour = 0xFF005C)
emb.set_image(url = 'https://media.discordapp.net/attachments/716571065270140938/880854910005047366/-7.png?width=701&height=701')
emb.set_footer(text = 'Monro FamQ', icon_url = 'https://media.discordapp.net/attachments/716571065270140938/880854176735854622/-6.png?width=701&height=701')
await ctx.send(
embed = emb,
components = [
Button(style = ButtonStyle.green, label = "Стать другом Monro!", emoji = '❤️'),
Button(style = ButtonStyle.blue, label = "Получить дополнительные роли!", emoji = '❤️'),
Button(style = ButtonStyle.red, label = "Перестать быть другом Monro!", emoji = '')
]
)
while True:
res = await bot.wait_for('button_click')
member = res.guild.get_member(res.user.id)
role = res.guild.get_role(792385427679477790)
rolex = res.guild.get_role(792399225459310613)
channel = res.guild.get_channel(880840475312001065)
log = discord.Embed(title = '**Выданы Роли**', colour = 0x00FF00)
if res.component.label.startswith("Стать другом Monro!"):
await res.respond(content="Поздравляю, тебе выданы роль <@&792385427679477790> и <@&792399225459310613>!")
await ctx.author.add_roles(role, rolex)
await channel.set_permissions(ctx.author, overwrite = discord.PermissionOverwrite(view_channel = True, send_messages = True))
await channel.send(
embed = log)
res = await bot.wait_for('button_click')
member = res.guild.get_member(res.user.id)
channel = res.guild.get_channel(880840475312001065)
log = discord.Embed(title = ', получил инструкцию', colour = 0x0000FF)
if res.component.label.startswith("Получить дополнительные роли!"):
await res.respond(content="Напиши, <@!416881340487827456>, в личные сообщения!")
await channel.set_permissions(ctx.author, overwrite = discord.PermissionOverwrite(view_channel = True, send_messages = True))
await channel.send(
embed = log)
res = await bot.wait_for('button_click')
member = res.guild.get_member(res.user.id)
role = res.guild.get_role(792385427679477790)
rolex = res.guild.get_role(792399225459310613)
channel = res.guild.get_channel(880840475312001065)
log = discord.Embed(title = 'Забрал Роли', colour = 0xFF0000)
if res.component.label.startswith("Перестать быть другом Monro!"):
await res.respond(content="Удачи!")
await ctx.author.remove_roles(role, rolex)
await channel.set_permissions(ctx.author, overwrite = discord.PermissionOverwrite(view_channel = True, send_messages = True))
await channel.send(
embed = log)