【发布时间】:2020-08-30 22:57:36
【问题描述】:
这应该每 15 分钟在频道中发送一条消息。 由于某种原因,它不起作用。它也没有显示任何错误。有人可以帮我解决这个问题吗?
import time
from discord.ext import commands
message = 'choose roles from <#728984187041742888>'
channel_id = 742227160944869437 # the channel id (right click on the channel to get it)
time_spacing = 15*60 # s : 15min
class auto(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def spamm(self, ctx):
while True:
time.sleep(time_spacing)
await ctx.get_channel(channel_id).send(message)
@commands.Cog.listener()
async def on_ready(self):
print(f'Sp4mm3r {self.bot.user} has connected to Discord!')
print('Sending message :', message, 'every', time_spacing, 'seconds')
def setup(bot):
bot.add_cog(auto(bot))
---------修正版------------ 认为问题是我没有开始任务,并且 time.sleep 不应该在那里使用。
from discord.ext import tasks
from discord.ext import commands
time = 30*60
class Automessager(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.message = 'Choose roles from <#728984187041742888>'
self.channel1 = 725550664561983519
self.text.start()
@tasks.loop(seconds=time)
async def text(self):
try:
channel = self.bot.get_channel(self.channel1)
await channel.send(self.message)
except Exception as e:
print(e)
@commands.Cog.listener()
async def on_ready(self):
print(f'{self.bot.user} has connected to Discord!')
print(f'Sending message: {self.message} every {time} seconds')
def setup(bot):
bot.add_cog(Automessager(bot))
【问题讨论】:
标签: python discord bots discord.py