Daniel Skýpala
2 years ago
3 changed files with 39 additions and 0 deletions
@ -0,0 +1,37 @@ |
|||
import discord |
|||
from discord.ext import commands |
|||
from discord.utils import get |
|||
import hrochobot.utils.data as data |
|||
|
|||
MESSAGES_JSON = "messages" |
|||
|
|||
def as_reply(message: str): |
|||
return "\n".join(map(lambda x: f"> {x}", message.split('\n'))) |
|||
|
|||
class Messages(commands.Cog): |
|||
def __init__(self, bot): |
|||
self.bot = bot |
|||
|
|||
@discord.message_command() |
|||
async def forward(self, ctx: discord.Interaction, message: discord.Message): |
|||
messages_json = data.load_guild_data(ctx.guild.id, MESSAGES_JSON) |
|||
if "forward_channel" not in messages_json: |
|||
return await ctx.respond(f"Forwarding channel not set.", ephemeral=True) |
|||
|
|||
forward_channel = get(ctx.guild.channels, id=messages_json["forward_channel"]) |
|||
header_text = f"{ctx.author.mention} forwarded:\n{message.author.mention} wrote in {message.channel.mention}:\n" |
|||
await forward_channel.send(f"{header_text}{as_reply(message.clean_content)}") |
|||
return await ctx.respond("Message successfully forwarded.", ephemeral=True) |
|||
|
|||
@discord.slash_command(description="Sets channel for forwarding.") |
|||
@discord.option("channel", discord.TextChannel, description="Channel for forwarding.") |
|||
@discord.default_permissions(administrator=True) |
|||
async def set_forward_channel(self, ctx: discord.Interaction, channel: discord.TextChannel): |
|||
messages_json = data.load_guild_data(ctx.guild.id, MESSAGES_JSON) |
|||
messages_json["forward_channel"] = channel.id |
|||
data.dump_guild_data(ctx.guild.id, MESSAGES_JSON, messages_json) |
|||
return await ctx.respond(f"Forwarding channel set to {channel.mention}.\n" + \ |
|||
"Remember to set permissions for forwarding.", ephemeral=True) |
|||
|
|||
def setup(bot): |
|||
bot.add_cog(Messages(bot)) |
@ -1,3 +1,4 @@ |
|||
TEMPLATES = { |
|||
'roles.json' : '{"secret_roles": {}}', |
|||
'messages.json' : '{}', |
|||
} |
|||
|
Loading…
Reference in new issue