Я думал, что это будет простая задача, но каким-то образом я могу даже это испортить. Поэтому я просто хочу, чтобы мой бот отправлял сообщение (чтобы троллить моих друзей) с конкретным c сообщением каждые 5 минут. Итак, я нашел то, что не работает, или какой-либо другой код. Я даже не получаю сообщения об ошибке. Так что я в значительной степени невежественный, что отстой.
import discord
import asyncio
client = discord.Client()
async def my_background_task():
await client.wait_until_ready()
counter = 0
channel = discord.Object(id='channel_id_here')
while not client.is_closed:
counter += 1
await client.send_message(channel, counter)
await asyncio.sleep(60) # task runs every 60 seconds
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
client.loop.create_task(my_background_task())
client.run('token')
В любом случае, вот мой сводный код без всех команд бота.
import discord
from discord.ext.commands import Bot, has_permissions
import secrets
import numpy as np
import re
TOKEN = 'mytokenasastring'
BOT = Bot(command_prefix='!')
#... some commands for my bot for my friends and myself
BOT.loop.create_task(my_background_task())
BOT.run(TOKEN)
Итак, я просто добавил приведенный выше код, например,
async def my_background_task():
await BOT.wait_until_ready()
counter = 0
channel = discord.Object(id='mytestchannelidasastring') #i also tried as int but also doenst work
while not BOT.is_closed:
counter += 1
await BOT.send_message(channel, counter)
await asyncio.sleep(60) # task runs every 60 seconds
тогда vs code сообщает, что у моего бота есть метод send_message. поэтому я меняю код send_message на этот
await channel.send(counter)
Но теперь я получаю VS-код формы предупреждения / ошибки, что канал не имеет метода отправки, поэтому я получаю (настоящий ?!) канал, подобный этому
BOT.get_channel(id='mychannelidasstring')
и он по-прежнему не работает, или я не получаю никаких сообщений об ошибках ... пожалуйста, помогите, или я go злюсь ....