роль редактирования бота discord

#python #discord #discord.py #discord.py-rewrite

#python #Discord #discord.py

Вопрос:

Я пытаюсь создать роль, которая постоянно меняет цвет. Я использую discord.py переписать.

Несколько часов назад это работало, теперь я в замешательстве, потому что это больше не работает. Я ничего не изменил.

Вот мой код:

 import discord
import asyncio
from discord.ext import commands

bot = commands.Bot(command_prefix='?', description="description")


@bot.event
async def on_ready():
    print('Logged in as')
    print(bot.user.name)
    print(bot.user.id)
    print('------')


@bot.command()
async def rgb(ctx, time: int):
    colours = [0xFF0000, 0x00FF00, 0x0000FF]
    i = 0
    selectedrole = ctx.guild.get_role(748128282859274251)

    while True:
        i = (i   1) % 3
        print("This is printed")
        await selectedrole.edit(colour=discord.Colour(colours[i]))
        print("This will not be printed")
        await asyncio.sleep(time)


bot.run('xxxxx')

  

Он не запускает эту строку кода и просто останавливается (программа все еще запущена, ничего не происходит)

ожидание выбранной роли.редактировать (цвет = discord.Цвет(цвета[i]))

Комментарии:

1. Какие ошибки у вас есть?

2. Ошибок нет

3. Никогда не указывайте свой токен бота ни в каком коде.

4. Я изменил токен на что-то случайное. Это не мое. 😉

Ответ №1:

Это потому, что ваш бот рассылает спам по API, поэтому код редактирования никогда не будет получен. Вы можете попробовать удалить роль, если обнаружена ошибка тайм-аута, и снова создать роль, что может немного помочь, но в любом случае вам следует избегать рассылки спама через API, поскольку это может привести к удалению вашей учетной записи бота.

Ответ №2:

Да, вам нужно встроить таймер, и я бы не позволил этому меняться по команде. Но имейте в виду, что Discord не любят Радужные роли или, по крайней мере, не любили их еще в 2018 году. Я не получил никакой другой информации. [https://twitter.com/discord/status/1055182857709256704?s=20 ]

кстати. вероятно, вам придется изменить свой токен бота, потому что вы слили его сюда, но в любом случае вот код.

 import asyncio
from discord.ext import commands

bot = commands.Bot(command_prefix='?', description="description")
TOKEN = 'YOUR NEW TOKEN'


@bot.event
async def on_ready():
    print('Logged in as')
    print(bot.user.name)
    print(bot.user.id)
    print('------')


@bot.command()
async def rgb(ctx):
    colours = [0xFF0000, 0x00FF00, 0x0000FF]
    i = 0
    selectedrole = ctx.guild.get_role(101010101010101)

    while True:
        await asyncio.sleep(10)
        i = (i   1) % 3
        print("Color changed")
        await selectedrole.edit(colour=discord.Colour(colours[i]))


bot.run(TOKEN)
  

Комментарии:

1. Я изменил токен на что-то случайное. Это не мое. 😉