39603b1e06
FIX: Fixed the Permission issues with logger FEAT: Changed how the XP system works. Now does a scaling curve with xp being 1-5
65 lines
2.3 KiB
Python
65 lines
2.3 KiB
Python
# modules/admin/logger_module.py
|
|
import logging
|
|
import logging.config
|
|
|
|
import discord
|
|
from discord import app_commands
|
|
|
|
from .logging_config import logging_config
|
|
|
|
|
|
class LoggerModule:
|
|
def __init__(self, bot):
|
|
self.bot = bot
|
|
logging.config.dictConfig(logging_config)
|
|
self.logger = logging.getLogger(__name__)
|
|
self.add_logging_commands()
|
|
|
|
def add_logging_commands(self):
|
|
@self.bot.tree.command(name="log_test", description="Test the logging system") # noqa: E501
|
|
async def log_test(interaction: discord.Interaction):
|
|
self.logger.debug("This is a debug message")
|
|
self.logger.info("This is an info message")
|
|
self.logger.warning("This is a warning message")
|
|
self.logger.error("This is an error message")
|
|
self.logger.critical("This is a critical message")
|
|
await interaction.response.send_message(
|
|
"Logging test completed. Check the logs!"
|
|
)
|
|
|
|
@self.bot.tree.command(
|
|
name="set_log_level", description="Set the logging level (Owner/Admin only)" # noqa: E501
|
|
)
|
|
@app_commands.choices(
|
|
level=[
|
|
app_commands.Choice(name="DEBUG", value="DEBUG"),
|
|
app_commands.Choice(name="INFO", value="INFO"),
|
|
app_commands.Choice(name="WARNING", value="WARNING"),
|
|
app_commands.Choice(name="ERROR", value="ERROR"),
|
|
app_commands.Choice(name="CRITICAL", value="CRITICAL"),
|
|
]
|
|
)
|
|
async def set_log_level(
|
|
interaction: discord.Interaction, level: app_commands.Choice[str]
|
|
):
|
|
guild = interaction.guild
|
|
if guild is not None and (
|
|
interaction.user.id == guild.owner_id
|
|
or any(
|
|
role.permissions.administrator for role in interaction.user.roles # noqa: E501
|
|
)
|
|
):
|
|
logging.getLogger().setLevel(level.value)
|
|
await interaction.response.send_message(
|
|
f"Logging level set to {level.value}"
|
|
)
|
|
else:
|
|
await interaction.response.send_message(
|
|
"You do not have permission to set the logging level.",
|
|
ephemeral=True,
|
|
)
|
|
|
|
|
|
async def setup(bot):
|
|
LoggerModule(bot)
|