feat(config): Split mod and admin config.

This commit is contained in:
2023-10-16 21:43:54 +03:00
parent d9c58806cf
commit ab39ceee71
44 changed files with 227 additions and 102 deletions

View File

@@ -46,7 +46,7 @@ class MemberAdminCog(LionCog):
"Configuration command cannot be crossloaded."
)
else:
self.crossload_group(self.configure_group, configcog.configure_group)
self.crossload_group(self.configure_group, configcog.config_group)
# ----- Cog API -----
async def absent_remove_role(self, guildid, userid, roleid):

View File

@@ -9,6 +9,7 @@ from settings import ListData, ModelData
from settings.groups import SettingGroup
from settings.setting_types import BoolSetting, ChannelSetting, RoleListSetting
from utils.lib import recurse_map, replace_multiple, tabulate
from wards import low_management_iward, high_management_iward
from . import babel
from .data import MemberAdminData
@@ -36,6 +37,7 @@ _greeting_subkey_desc = {
class MemberAdminSettings(SettingGroup):
class GreetingChannel(ModelData, ChannelSetting):
setting_id = 'greeting_channel'
_write_ward = low_management_iward
_display_name = _p('guildset:greeting_channel', "welcome_channel")
_desc = _p(
@@ -87,6 +89,7 @@ class MemberAdminSettings(SettingGroup):
class GreetingMessage(ModelData, MessageSetting):
setting_id = 'greeting_message'
_write_ward = low_management_iward
_display_name = _p(
'guildset:greeting_message', "welcome_message"
@@ -209,6 +212,7 @@ class MemberAdminSettings(SettingGroup):
class ReturningMessage(ModelData, MessageSetting):
setting_id = 'returning_message'
_write_ward = low_management_iward
_display_name = _p(
'guildset:returning_message', "returning_message"
@@ -335,6 +339,7 @@ class MemberAdminSettings(SettingGroup):
class Autoroles(ListData, RoleListSetting):
setting_id = 'autoroles'
_write_ward = high_management_iward
_display_name = _p(
'guildset:autoroles', "autoroles"
@@ -357,6 +362,7 @@ class MemberAdminSettings(SettingGroup):
class BotAutoroles(ListData, RoleListSetting):
setting_id = 'bot_autoroles'
_write_ward = high_management_iward
_display_name = _p(
'guildset:bot_autoroles', "bot_autoroles"
@@ -379,6 +385,7 @@ class MemberAdminSettings(SettingGroup):
class RolePersistence(ModelData, BoolSetting):
setting_id = 'role_persistence'
_event = 'guildset_role_persistence'
_write_ward = low_management_iward
_display_name = _p('guildset:role_persistence', "role_persistence")
_desc = _p(

View File

@@ -45,6 +45,7 @@ class MemberAdminUI(ConfigUI):
"""
await selection.response.defer(thinking=True, ephemeral=True)
setting = self.get_instance(Settings.GreetingChannel)
await setting.interaction_check(setting.parent_id, selection)
setting.value = selected.values[0] if selected.values else None
await setting.write()
await selection.delete_original_response()
@@ -73,6 +74,7 @@ class MemberAdminUI(ConfigUI):
await equippable_role(self.bot, role, selection.user)
setting = self.get_instance(Settings.Autoroles)
await setting.interaction_check(setting.parent_id, selection)
setting.value = selected.values
await setting.write()
# Instance hooks will update the menu
@@ -102,6 +104,7 @@ class MemberAdminUI(ConfigUI):
await equippable_role(self.bot, role, selection.user)
setting = self.get_instance(Settings.BotAutoroles)
await setting.interaction_check(setting.parent_id, selection)
setting.value = selected.values
await setting.write()
# Instance hooks will update the menu
@@ -131,6 +134,7 @@ class MemberAdminUI(ConfigUI):
await press.response.defer(thinking=True, ephemeral=True)
t = self.bot.translator.t
setting = self.get_instance(Settings.GreetingMessage)
await setting.interaction_check(setting.parent_id, press)
value = setting.value
if value is None:
@@ -173,6 +177,7 @@ class MemberAdminUI(ConfigUI):
await press.response.defer(thinking=True, ephemeral=True)
t = self.bot.translator.t
setting = self.get_instance(Settings.ReturningMessage)
await setting.interaction_check(setting.parent_id, press)
greeting = self.get_instance(Settings.GreetingMessage)
value = setting.value
@@ -254,7 +259,7 @@ class MemberAdminUI(ConfigUI):
class MemberAdminDashboard(DashboardSection):
section_name = _p(
"dash:member_admin|title",
"Greetings and Initial Roles ({commands[configure welcome]})"
"Greetings and Initial Roles ({commands[admin config welcome]})"
)
_option_name = _p(
"dash:member_admin|dropdown|placeholder",
@@ -278,7 +283,7 @@ class MemberAdminDashboard(DashboardSection):
page.add_field(
name=t(_p(
'dash:member_admin|section:greeting_messages|name',
"Greeting Messages ({commands[configure welcome]})"
"Greeting Messages ({commands[admin config welcome]})"
)).format(commands=self.bot.core.mention_cache),
value=table,
inline=False
@@ -289,7 +294,7 @@ class MemberAdminDashboard(DashboardSection):
page.add_field(
name=t(_p(
'dash:member_admin|section:initial_roles|name',
"Initial Roles ({commands[configure welcome]})"
"Initial Roles ({commands[admin config welcome]})"
)).format(commands=self.bot.core.mention_cache),
value=table,
inline=False