【发布时间】:2021-05-01 22:56:31
【问题描述】:
我一直在为我计划在未来做的一件小事开发一个不和谐机器人,但它并没有按照我想要的方式工作。有没有办法让消息发送到我想要发送的频道?
另外,有什么办法可以缩短我的代码吗?我对python真的很陌生,所以不要因为不知道一些明显的事情而欺负我。这是代码:
@client.command()
@commands.has_any_role("Server Owner")
async def announce(ctx, days: int, hrs: int, mins: int):
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
if days == 0:
if hrs == 0:
if mins == 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
elif mins >= 0:
await ctx.channel.send(f"Overdrive will make an announcement in {mins} minutes! Make sure your online when it comes!")
elif mins <= 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
else:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
elif hrs >= 0:
if mins == 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
await ctx.channel.send(f"Overdrive will make an announcement in {hrs} hours! Make sure your online when it comes!")
elif mins >= 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
await ctx.channel.send(f"Overdrive will make an announcement in {hrs} hours, and {mins} minutes! Make sure your online when it comes!")
elif mins <= 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
else:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
elif hrs <= 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
else:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
elif days >= 0:
if hrs == 0:
if mins == 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
await ctx.channel.send(f"Overdrive will make an announcement in {days} days! Make sure your online when it comes!")
elif mins >= 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
await ctx.channel.send(f"Overdrive will make an announcement in {days} days, and {mins} minutes! Make sure your online when it comes!")
elif mins <= 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
else:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
elif hrs >= 0:
if mins == 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
await ctx.channel.send(f"Overdrive will make an announcement in {days} days, and {hrs} hours! Make sure your online when it comes!")
elif mins >= 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
await ctx.channel.send(f"Overdrive will make an announcement in {days} days, {hrs} hours, and {mins} minutes! Make sure your online when it comes!")
elif mins <= 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
else:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
elif hrs <= 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
else:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
elif days <= 0:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
else:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
@announce.error
@commands.has_any_role("Server Owner")
async def announceError(ctx, error):
if isinstance(error, commands.MissingRequiredArgument):
await ctx.message.delete()
channel = discord.utils.get(ctx.author.guild.text_channels, name="announcements")
await ctx.channel.send(f"Overdrive is about to make an announcement! Make sure you're online when it comes!")
else:
channel = discord.utils.get(ctx.author.guild.text_channels, name="new-channel")
emb = discord.Embed(color=discord.Color.green(), title="**Announcement Error**",description=f"A syntax error occured while trying to send announcement.")
await channel.send(embed=emb)
【问题讨论】: