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

@@ -16,7 +16,7 @@ from meta.app import appname
from meta.monitor import ComponentMonitor, ComponentStatus, StatusLevel
from utils.lib import utc_now, error_embed
from wards import low_management_ward, sys_admin_ward
from wards import low_management_ward, sys_admin_ward, low_management_iward
from . import babel, logger
from .data import TextTrackerData
@@ -116,7 +116,7 @@ class TextTrackerCog(LionCog):
"Attempting to load the TextTrackerCog before ConfigCog! Failed to crossload configuration group."
)
else:
self.crossload_group(self.configure_group, configcog.configure_group)
self.crossload_group(self.configure_group, configcog.config_group)
if self.bot.is_ready():
await self.initialise()
@@ -318,7 +318,6 @@ class TextTrackerCog(LionCog):
xp_per_period=TextTrackerSettings.XPPerPeriod._desc,
word_xp=TextTrackerSettings.WordXP._desc,
)
@appcmds.default_permissions(manage_guild=True)
@low_management_ward
async def configure_text_tracking_cmd(self, ctx: LionContext,
xp_per_period: Optional[appcmds.Range[int, 0, 2**15]] = None,

View File

@@ -11,6 +11,7 @@ from meta.sharding import THIS_SHARD
from meta.logger import log_wrap
from core.data import CoreData
from babel.translator import ctx_translator
from wards import low_management_iward
from . import babel, logger
from .data import TextTrackerData
@@ -28,7 +29,8 @@ class TextTrackerSettings(SettingGroup):
"""
class XPPerPeriod(ModelData, IntegerSetting):
setting_id = 'xp_per_period'
_set_cmd = 'configure message_exp'
_set_cmd = 'config message_exp'
_write_ward = low_management_iward
_display_name = _p('guildset:xp_per_period', "xp_per_5min")
_desc = _p(
@@ -60,7 +62,8 @@ class TextTrackerSettings(SettingGroup):
class WordXP(ModelData, IntegerSetting):
setting_id = 'word_xp'
_set_cmd = 'configure message_exp'
_set_cmd = 'config message_exp'
_write_ward = low_management_iward
_display_name = _p('guildset:word_xp', "xp_per_100words")
_desc = _p(
@@ -91,6 +94,7 @@ class TextTrackerSettings(SettingGroup):
class UntrackedTextChannels(ListData, ChannelListSetting):
setting_id = 'untracked_text_channels'
_write_ward = low_management_iward
_display_name = _p('guildset:untracked_text_channels', "untracked_text_channels")
_desc = _p(

View File

@@ -35,6 +35,7 @@ class TextTrackerConfigUI(ConfigUI):
async def untracked_channels_menu(self, selection: discord.Interaction, selected):
await selection.response.defer()
setting = self.instances[2]
await setting.interaction_check(setting.parent_id, selection)
setting.value = selected.values
await setting.write()
@@ -86,7 +87,7 @@ class TextTrackerConfigUI(ConfigUI):
class TextTrackerDashboard(DashboardSection):
section_name = _p(
'dash:text_tracking|title',
"Message XP configuration ({commands[configure message_exp]})",
"Message XP configuration ({commands[config message_exp]})",
)
_option_name = _p(
"dash:text_tracking|dropdown|placeholder",