feat(config): Split mod and admin config.
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -133,7 +133,7 @@ class VoiceTrackerCog(LionCog):
|
||||
"Attempting to load VoiceTrackerCog before ConfigCog! Cannot 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()
|
||||
@@ -867,7 +867,6 @@ class VoiceTrackerCog(LionCog):
|
||||
hourly_live_bonus=VoiceTrackerSettings.HourlyLiveBonus._desc,
|
||||
daily_voice_cap=VoiceTrackerSettings.DailyVoiceCap._desc,
|
||||
)
|
||||
@appcmds.default_permissions(manage_guild=True)
|
||||
@low_management_ward
|
||||
async def configure_voice_tracking_cmd(self, ctx: LionContext,
|
||||
hourly_reward: Optional[int] = None, # TODO: Change these to Ranges
|
||||
|
||||
@@ -14,6 +14,7 @@ from meta.sharding import THIS_SHARD
|
||||
from meta.logger import log_wrap
|
||||
from utils.lib import MessageArgs
|
||||
from utils.ui import LeoUI, ConfigUI, DashboardSection
|
||||
from wards import low_management_iward
|
||||
|
||||
from core.data import CoreData
|
||||
from core.lion_guild import VoiceMode
|
||||
@@ -35,7 +36,8 @@ class VoiceTrackerSettings(SettingGroup):
|
||||
class UntrackedChannels(ListData, ChannelListSetting):
|
||||
setting_id = 'untracked_channels'
|
||||
_event = 'guildset_untracked_channels'
|
||||
_set_cmd = 'configure voice_rewards'
|
||||
_set_cmd = 'config voice_rewards'
|
||||
_write_ward = low_management_iward
|
||||
|
||||
_display_name = _p('guildset:untracked_channels', "untracked_channels")
|
||||
_desc = _p(
|
||||
@@ -112,7 +114,8 @@ class VoiceTrackerSettings(SettingGroup):
|
||||
class HourlyReward(ModelData, IntegerSetting):
|
||||
setting_id = 'hourly_reward'
|
||||
_event = 'on_guildset_hourly_reward'
|
||||
_set_cmd = 'configure voice_rewards'
|
||||
_set_cmd = 'config voice_rewards'
|
||||
_write_ward = low_management_iward
|
||||
|
||||
_display_name = _p('guildset:hourly_reward', "hourly_reward")
|
||||
_desc = _p(
|
||||
@@ -192,7 +195,8 @@ class VoiceTrackerSettings(SettingGroup):
|
||||
"""
|
||||
setting_id = 'hourly_live_bonus'
|
||||
_event = 'on_guildset_hourly_live_bonus'
|
||||
_set_cmd = 'configure voice_rewards'
|
||||
_set_cmd = 'config voice_rewards'
|
||||
_write_ward = low_management_iward
|
||||
|
||||
_display_name = _p('guildset:hourly_live_bonus', "hourly_live_bonus")
|
||||
_desc = _p(
|
||||
@@ -243,7 +247,8 @@ class VoiceTrackerSettings(SettingGroup):
|
||||
class DailyVoiceCap(ModelData, DurationSetting):
|
||||
setting_id = 'daily_voice_cap'
|
||||
_event = 'on_guildset_daily_voice_cap'
|
||||
_set_cmd = 'configure voice_rewards'
|
||||
_set_cmd = 'config voice_rewards'
|
||||
_write_ward = low_management_iward
|
||||
|
||||
_display_name = _p('guildset:daily_voice_cap', "daily_voice_cap")
|
||||
_desc = _p(
|
||||
@@ -465,6 +470,7 @@ class VoiceTrackerConfigUI(ConfigUI):
|
||||
async def untracked_channels_menu(self, selection: discord.Interaction, selected):
|
||||
await selection.response.defer()
|
||||
setting = self.instances[3]
|
||||
await setting.interaction_check(setting.parent_id, selection)
|
||||
setting.value = selected.values
|
||||
await setting.write()
|
||||
|
||||
@@ -528,7 +534,7 @@ class VoiceTrackerConfigUI(ConfigUI):
|
||||
class VoiceTrackerDashboard(DashboardSection):
|
||||
section_name = _p(
|
||||
'dash:voice_tracker|title',
|
||||
"Voice Tracker Configuration ({commands[configure voice_rewards]})"
|
||||
"Voice Tracker Configuration ({commands[config voice_rewards]})"
|
||||
)
|
||||
_option_name = _p(
|
||||
"dash:voice_tracking|dropdown|placeholder",
|
||||
|
||||
Reference in New Issue
Block a user