35 lines
2.6 KiB
Python
35 lines
2.6 KiB
Python
|
from discord import ApplicationContext, Option, SlashCommandGroup, CategoryChannel
|
||
|
from discord.ext import commands
|
||
|
from functions import getMsg, guildConfGet, guildConfReset, guildConfSet, loadJson, makeEmbed, strToColor
|
||
|
|
||
|
#=========================================================================================================================
|
||
|
class CogCategory(commands.Cog):
|
||
|
|
||
|
def __init__(self, client):
|
||
|
self.client = client
|
||
|
|
||
|
category = SlashCommandGroup("category", "Commands related to parent channels category")
|
||
|
|
||
|
@category.command(name="set", description="Select the voice channel that will be parent to private ones")
|
||
|
async def category_set(self, ctx: ApplicationContext, category: Option(CategoryChannel, "Parent Channel Category")): # type: ignore
|
||
|
config = loadJson("config.json")
|
||
|
if ctx.guild is not None:
|
||
|
guildConfSet(ctx.guild, "category", category.id)
|
||
|
await ctx.respond(embed=makeEmbed(title=getMsg("set_category_title", ctx.guild), description=getMsg("set_category_description", ctx.guild).format(category.name), color=strToColor(config["color_ok"])))
|
||
|
if guildConfGet(ctx.guild, "channel") is None:
|
||
|
await ctx.respond(embed=makeEmbed(title=getMsg("hint_none_channel_title", ctx.guild), description=getMsg("hint_none_channel_description", ctx.guild), color=strToColor(config["color_warn"])))
|
||
|
else:
|
||
|
await ctx.respond(embed=makeEmbed(title=getMsg("dm_title", ctx.guild), description=getMsg("dm_description", ctx.guild), color=strToColor(config["color_error"])))
|
||
|
|
||
|
@category.command(name="reset", description="Reset the currently selected parent channel category")
|
||
|
async def category_reset(self, ctx: ApplicationContext): # type: ignore
|
||
|
config = loadJson("config.json")
|
||
|
if ctx.guild is not None:
|
||
|
if guildConfGet(ctx.guild, "category") is not None:
|
||
|
guildConfReset(ctx.guild, "category")
|
||
|
await ctx.respond(embed=makeEmbed(title=getMsg("reset_category_title", ctx.guild), description=getMsg("reset_category_description", ctx.guild), color=strToColor(config["color_ok"])))
|
||
|
else:
|
||
|
await ctx.respond(embed=makeEmbed(title=getMsg("hint_none_category_title", ctx.guild), description=getMsg("hint_none_category_description", ctx.guild), color=strToColor(config["color_warn"])))
|
||
|
else:
|
||
|
await ctx.respond(embed=makeEmbed(title=getMsg("dm_title", ctx.guild), description=getMsg("dm_description", ctx.guild), color=strToColor(config["color_error"])))
|
||
|
#=========================================================================================================================
|