forked from gooberinc/goober
changed from creating new settings instance into using a shared one
This commit is contained in:
parent
7e21a10dde
commit
ade9d88086
18 changed files with 252 additions and 43 deletions
|
@ -4,9 +4,8 @@ from discord.ext import commands
|
||||||
import logging
|
import logging
|
||||||
from typing import Literal, get_args, cast
|
from typing import Literal, get_args, cast
|
||||||
from modules.permission import requires_admin
|
from modules.permission import requires_admin
|
||||||
from modules.settings import Settings as SettingsManager
|
from modules.settings import instance as settings_manager
|
||||||
|
|
||||||
settings_manager = SettingsManager()
|
|
||||||
settings = settings_manager.settings
|
settings = settings_manager.settings
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,10 +7,9 @@ import discord.ext.commands
|
||||||
import modules.keys as k
|
import modules.keys as k
|
||||||
from modules.permission import requires_admin
|
from modules.permission import requires_admin
|
||||||
from modules.sentenceprocessing import send_message
|
from modules.sentenceprocessing import send_message
|
||||||
from modules.settings import Settings as SettingsManager
|
from modules.settings import instance as settings_manager
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
settings_manager = SettingsManager()
|
|
||||||
settings = settings_manager.settings
|
settings = settings_manager.settings
|
||||||
|
|
||||||
|
|
||||||
|
@ -159,13 +158,11 @@ class BaseCommands(commands.Cog):
|
||||||
|
|
||||||
response = requests.post(
|
response = requests.post(
|
||||||
"https://litterbox.catbox.moe/resources/internals/api.php",
|
"https://litterbox.catbox.moe/resources/internals/api.php",
|
||||||
data={"reqtype": "fileupload", "time": "1h", "fileToUpload": data},
|
data={"reqtype": "fileupload", "time": "1h"},
|
||||||
|
files={"fileToUpload": data},
|
||||||
)
|
)
|
||||||
|
|
||||||
print(response.text)
|
await send_message(ctx, response.text)
|
||||||
print(response.status_code)
|
|
||||||
|
|
||||||
# await send_message(ctx, memorylitter.stdout.strip())
|
|
||||||
|
|
||||||
|
|
||||||
async def setup(bot: discord.ext.commands.Bot):
|
async def setup(bot: discord.ext.commands.Bot):
|
||||||
|
|
|
@ -3,9 +3,9 @@ from discord.ext import commands
|
||||||
import discord.ext
|
import discord.ext
|
||||||
import discord.ext.commands
|
import discord.ext.commands
|
||||||
from modules.permission import requires_admin
|
from modules.permission import requires_admin
|
||||||
from modules.settings import Settings as SettingsManager
|
from modules.settings import instance as settings_manager
|
||||||
|
from modules.globalvars import available_cogs
|
||||||
|
|
||||||
settings_manager = SettingsManager()
|
|
||||||
settings = settings_manager.settings
|
settings = settings_manager.settings
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,6 +23,15 @@ class CogManager(commands.Cog):
|
||||||
await self.bot.load_extension(COG_PREFIX + cog_name)
|
await self.bot.load_extension(COG_PREFIX + cog_name)
|
||||||
await ctx.send(f"Loaded cog `{cog_name}` successfully.")
|
await ctx.send(f"Loaded cog `{cog_name}` successfully.")
|
||||||
settings["bot"]["enabled_cogs"].append(cog_name)
|
settings["bot"]["enabled_cogs"].append(cog_name)
|
||||||
|
settings_manager.add_admin_log_event(
|
||||||
|
{
|
||||||
|
"action": "add",
|
||||||
|
"author": ctx.author.id,
|
||||||
|
"change": "enabled_cogs",
|
||||||
|
"messageId": ctx.message.id,
|
||||||
|
"target": cog_name,
|
||||||
|
}
|
||||||
|
)
|
||||||
settings_manager.commit()
|
settings_manager.commit()
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -69,6 +78,15 @@ class CogManager(commands.Cog):
|
||||||
await self.bot.unload_extension(COG_PREFIX + cog_name)
|
await self.bot.unload_extension(COG_PREFIX + cog_name)
|
||||||
await ctx.send(f"Unloaded cog `{cog_name}` successfully.")
|
await ctx.send(f"Unloaded cog `{cog_name}` successfully.")
|
||||||
settings["bot"]["enabled_cogs"].remove(cog_name)
|
settings["bot"]["enabled_cogs"].remove(cog_name)
|
||||||
|
settings_manager.add_admin_log_event(
|
||||||
|
{
|
||||||
|
"action": "del",
|
||||||
|
"author": ctx.author.id,
|
||||||
|
"change": "enabled_cogs",
|
||||||
|
"messageId": ctx.message.id,
|
||||||
|
"target": cog_name,
|
||||||
|
}
|
||||||
|
)
|
||||||
settings_manager.commit()
|
settings_manager.commit()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await ctx.send(f"Error unloading cog `{cog_name}`: {e}")
|
await ctx.send(f"Error unloading cog `{cog_name}`: {e}")
|
||||||
|
@ -102,7 +120,8 @@ class CogManager(commands.Cog):
|
||||||
title="Loaded Cogs",
|
title="Loaded Cogs",
|
||||||
description="Here is a list of all currently loaded cogs:",
|
description="Here is a list of all currently loaded cogs:",
|
||||||
)
|
)
|
||||||
embed.add_field(name="Cogs", value="\n".join(cogs), inline=False)
|
embed.add_field(name="Loaded cogs", value="\n".join(cogs), inline=False)
|
||||||
|
embed.add_field(name="Available cogs", value="\n".join(available_cogs()))
|
||||||
await ctx.send(embed=embed)
|
await ctx.send(embed=embed)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -24,9 +24,8 @@ import markovify
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger("goober")
|
logger = logging.getLogger("goober")
|
||||||
from modules.settings import Settings as SettingsManager
|
from modules.settings import instance as settings_manager
|
||||||
|
|
||||||
settings_manager = SettingsManager()
|
|
||||||
settings = settings_manager.settings
|
settings = settings_manager.settings
|
||||||
|
|
||||||
|
|
||||||
|
|
118
assets/cogs/internal/permissions.py
Normal file
118
assets/cogs/internal/permissions.py
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
import discord
|
||||||
|
from discord.ext import commands
|
||||||
|
|
||||||
|
from modules.permission import requires_admin
|
||||||
|
from modules.settings import instance as settings_manager
|
||||||
|
|
||||||
|
settings = settings_manager.settings
|
||||||
|
|
||||||
|
|
||||||
|
class PermissionManager(commands.Cog):
|
||||||
|
def __init__(self, bot):
|
||||||
|
self.bot = bot
|
||||||
|
|
||||||
|
@requires_admin()
|
||||||
|
@commands.command()
|
||||||
|
async def add_owner(self, ctx: commands.Context, member: discord.Member):
|
||||||
|
settings["bot"]["owner_ids"].append(member.id)
|
||||||
|
settings_manager.add_admin_log_event(
|
||||||
|
{
|
||||||
|
"action": "add",
|
||||||
|
"author": ctx.author.id,
|
||||||
|
"change": "owner_ids",
|
||||||
|
"messageId": ctx.message.id,
|
||||||
|
"target": member.id,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
settings_manager.commit()
|
||||||
|
|
||||||
|
embed = discord.Embed(
|
||||||
|
title="Permissions",
|
||||||
|
description=f"Set {member.name} as an owner",
|
||||||
|
color=discord.Color.blue(),
|
||||||
|
)
|
||||||
|
|
||||||
|
await ctx.send(embed=embed)
|
||||||
|
|
||||||
|
@requires_admin()
|
||||||
|
@commands.command()
|
||||||
|
async def remove_owner(self, ctx: commands.Context, member: discord.Member):
|
||||||
|
try:
|
||||||
|
settings["bot"]["owner_ids"].remove(member.id)
|
||||||
|
settings_manager.add_admin_log_event(
|
||||||
|
{
|
||||||
|
"action": "del",
|
||||||
|
"author": ctx.author.id,
|
||||||
|
"change": "owner_ids",
|
||||||
|
"messageId": ctx.message.id,
|
||||||
|
"target": member.id,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
settings_manager.commit()
|
||||||
|
except ValueError:
|
||||||
|
await ctx.send("User is not an owner!")
|
||||||
|
return
|
||||||
|
|
||||||
|
embed = discord.Embed(
|
||||||
|
title="Permissions",
|
||||||
|
description=f"Removed {member.name} from being an owner",
|
||||||
|
color=discord.Color.blue(),
|
||||||
|
)
|
||||||
|
|
||||||
|
await ctx.send(embed=embed)
|
||||||
|
|
||||||
|
@requires_admin()
|
||||||
|
@commands.command()
|
||||||
|
async def blacklist_user(self, ctx: commands.Context, member: discord.Member):
|
||||||
|
settings["bot"]["blacklisted_users"].append(member.id)
|
||||||
|
settings_manager.add_admin_log_event(
|
||||||
|
{
|
||||||
|
"action": "add",
|
||||||
|
"author": ctx.author.id,
|
||||||
|
"change": "blacklisted_users",
|
||||||
|
"messageId": ctx.message.id,
|
||||||
|
"target": member.id,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
settings_manager.commit()
|
||||||
|
|
||||||
|
embed = discord.Embed(
|
||||||
|
title="Blacklist",
|
||||||
|
description=f"Added {member.name} to the blacklist",
|
||||||
|
color=discord.Color.blue(),
|
||||||
|
)
|
||||||
|
|
||||||
|
await ctx.send(embed=embed)
|
||||||
|
|
||||||
|
@requires_admin()
|
||||||
|
@commands.command()
|
||||||
|
async def unblacklist_user(self, ctx: commands.Context, member: discord.Member):
|
||||||
|
try:
|
||||||
|
settings["bot"]["blacklisted_users"].remove(member.id)
|
||||||
|
settings_manager.add_admin_log_event(
|
||||||
|
{
|
||||||
|
"action": "del",
|
||||||
|
"author": ctx.author.id,
|
||||||
|
"change": "blacklisted_users",
|
||||||
|
"messageId": ctx.message.id,
|
||||||
|
"target": member.id,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
settings_manager.commit()
|
||||||
|
|
||||||
|
except ValueError:
|
||||||
|
await ctx.send("User is not on the blacklist!")
|
||||||
|
return
|
||||||
|
|
||||||
|
embed = discord.Embed(
|
||||||
|
title="Blacklist",
|
||||||
|
description=f"Removed {member.name} from blacklist",
|
||||||
|
color=discord.Color.blue(),
|
||||||
|
)
|
||||||
|
|
||||||
|
await ctx.send(embed=embed)
|
||||||
|
|
||||||
|
|
||||||
|
async def setup(bot):
|
||||||
|
await bot.add_cog(PermissionManager(bot))
|
|
@ -3,9 +3,8 @@ import discord
|
||||||
from collections import defaultdict, Counter
|
from collections import defaultdict, Counter
|
||||||
import datetime
|
import datetime
|
||||||
from modules.permission import requires_admin
|
from modules.permission import requires_admin
|
||||||
from modules.settings import Settings as SettingsManager
|
from modules.settings import instance as settings_manager
|
||||||
|
|
||||||
settings_manager = SettingsManager()
|
|
||||||
settings = settings_manager.settings
|
settings = settings_manager.settings
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@ from discord.ext import commands
|
||||||
from modules.globalvars import RED, GREEN, RESET, LOCAL_VERSION_FILE
|
from modules.globalvars import RED, GREEN, RESET, LOCAL_VERSION_FILE
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
from modules.permission import requires_admin
|
||||||
|
|
||||||
|
|
||||||
class songchange(commands.Cog):
|
class songchange(commands.Cog):
|
||||||
def __init__(self, bot):
|
def __init__(self, bot):
|
||||||
|
@ -17,15 +19,10 @@ class songchange(commands.Cog):
|
||||||
global local_version
|
global local_version
|
||||||
local_version = get_local_version()
|
local_version = get_local_version()
|
||||||
|
|
||||||
|
@requires_admin()
|
||||||
@commands.command()
|
@commands.command()
|
||||||
async def changesong(self, ctx):
|
async def changesong(self, ctx, song: str):
|
||||||
if LOCAL_VERSION_FILE > "0.11.8":
|
await ctx.send(f"Changed song to {song}")
|
||||||
await ctx.send(
|
|
||||||
f"Goober is too old! you must have version 0.11.8 you have {local_version}"
|
|
||||||
)
|
|
||||||
return
|
|
||||||
await ctx.send("Check the terminal! (this does not persist across restarts)")
|
|
||||||
song = input("\nEnter a song:\n")
|
|
||||||
try:
|
try:
|
||||||
await self.bot.change_presence(
|
await self.bot.change_presence(
|
||||||
activity=discord.Activity(
|
activity=discord.Activity(
|
||||||
|
|
|
@ -6,9 +6,8 @@ import json
|
||||||
import asyncio
|
import asyncio
|
||||||
from urllib.parse import urljoin
|
from urllib.parse import urljoin
|
||||||
from modules.permission import requires_admin
|
from modules.permission import requires_admin
|
||||||
from modules.settings import Settings as SettingsManager
|
from modules.settings import instance as settings_manager
|
||||||
|
|
||||||
settings_manager = SettingsManager()
|
|
||||||
settings = settings_manager.settings
|
settings = settings_manager.settings
|
||||||
|
|
||||||
|
|
||||||
|
|
13
bot.py
13
bot.py
|
@ -31,8 +31,9 @@ from modules import key_compiler
|
||||||
import logging
|
import logging
|
||||||
from watchdog.observers import Observer
|
from watchdog.observers import Observer
|
||||||
from watchdog.events import FileSystemEventHandler
|
from watchdog.events import FileSystemEventHandler
|
||||||
from modules.settings import Settings as SettingsManager
|
from modules.settings import instance as settings_manager
|
||||||
from modules.permission import requires_admin
|
from modules.permission import requires_admin
|
||||||
|
import threading
|
||||||
|
|
||||||
|
|
||||||
def build_keys():
|
def build_keys():
|
||||||
|
@ -61,11 +62,11 @@ file_handler.setFormatter(GooberFormatter(colors=False))
|
||||||
logger.addHandler(console_handler)
|
logger.addHandler(console_handler)
|
||||||
logger.addHandler(file_handler)
|
logger.addHandler(file_handler)
|
||||||
|
|
||||||
settings_manager = SettingsManager()
|
|
||||||
settings = settings_manager.settings
|
settings = settings_manager.settings
|
||||||
|
|
||||||
splash_text: str = ""
|
splash_text: str = ""
|
||||||
|
|
||||||
|
|
||||||
with open(settings["splash_text_loc"], "r", encoding="UTF-8") as f:
|
with open(settings["splash_text_loc"], "r", encoding="UTF-8") as f:
|
||||||
splash_text = "".join(f.readlines())
|
splash_text = "".join(f.readlines())
|
||||||
print(splash_text)
|
print(splash_text)
|
||||||
|
@ -160,8 +161,8 @@ async def on_ready() -> None:
|
||||||
if launched:
|
if launched:
|
||||||
return
|
return
|
||||||
|
|
||||||
await load_cogs_from_folder(bot)
|
|
||||||
await load_cogs_from_folder(bot, "assets/cogs/internal")
|
await load_cogs_from_folder(bot, "assets/cogs/internal")
|
||||||
|
await load_cogs_from_folder(bot)
|
||||||
try:
|
try:
|
||||||
synced: List[discord.app_commands.AppCommand] = await bot.tree.sync()
|
synced: List[discord.app_commands.AppCommand] = await bot.tree.sync()
|
||||||
|
|
||||||
|
@ -281,7 +282,7 @@ async def on_message(message: discord.Message) -> None:
|
||||||
if message.author.bot:
|
if message.author.bot:
|
||||||
return
|
return
|
||||||
|
|
||||||
if str(message.author.id) in settings["bot"]["blacklisted_users"]:
|
if message.author.id in settings["bot"]["blacklisted_users"]:
|
||||||
return
|
return
|
||||||
|
|
||||||
commands = [
|
commands = [
|
||||||
|
@ -405,6 +406,10 @@ class Handler(FileSystemEventHandler):
|
||||||
build_keys()
|
build_keys()
|
||||||
|
|
||||||
|
|
||||||
|
observer = Observer()
|
||||||
|
observer.schedule(Handler(), "assets/locales")
|
||||||
|
observer.start()
|
||||||
|
|
||||||
# Start the bot
|
# Start the bot
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
bot.run(os.environ.get("DISCORD_BOT_TOKEN", ""))
|
bot.run(os.environ.get("DISCORD_BOT_TOKEN", ""))
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
|
from typing import Callable, List
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
import pathlib
|
import pathlib
|
||||||
import subprocess
|
import subprocess
|
||||||
|
@ -22,6 +23,10 @@ def get_git_branch():
|
||||||
env_path = pathlib.Path(__file__).parent.parent / ".env"
|
env_path = pathlib.Path(__file__).parent.parent / ".env"
|
||||||
load_dotenv(dotenv_path=env_path)
|
load_dotenv(dotenv_path=env_path)
|
||||||
|
|
||||||
|
available_cogs: Callable[[], List[str]] = lambda: [
|
||||||
|
file[:-3] for file in os.listdir("assets/cogs") if file.endswith(".py")
|
||||||
|
]
|
||||||
|
|
||||||
ANSI = "\033["
|
ANSI = "\033["
|
||||||
RED = f"{ANSI}31m"
|
RED = f"{ANSI}31m"
|
||||||
GREEN = f"{ANSI}32m"
|
GREEN = f"{ANSI}32m"
|
||||||
|
|
|
@ -5,9 +5,8 @@ import pickle
|
||||||
from modules.globalvars import *
|
from modules.globalvars import *
|
||||||
import logging
|
import logging
|
||||||
import modules.keys as k
|
import modules.keys as k
|
||||||
from modules.settings import Settings as SettingsManager
|
from modules.settings import instance as settings_manager
|
||||||
|
|
||||||
settings_manager = SettingsManager()
|
|
||||||
settings = settings_manager.settings
|
settings = settings_manager.settings
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,12 +4,11 @@ import discord
|
||||||
import discord.ext
|
import discord.ext
|
||||||
import discord.ext.commands
|
import discord.ext.commands
|
||||||
|
|
||||||
from modules.settings import Settings as SettingsManager
|
from modules.settings import instance as settings_manager
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
logger = logging.getLogger("goober")
|
logger = logging.getLogger("goober")
|
||||||
|
|
||||||
settings_manager = SettingsManager()
|
|
||||||
settings = settings_manager.settings
|
settings = settings_manager.settings
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,9 +11,8 @@ from spacy.util import is_package
|
||||||
import importlib.metadata
|
import importlib.metadata
|
||||||
import logging
|
import logging
|
||||||
import modules.keys as k
|
import modules.keys as k
|
||||||
from modules.settings import Settings as SettingsManager
|
from modules.settings import instance as settings_manager
|
||||||
|
|
||||||
settings_manager = SettingsManager()
|
|
||||||
settings = settings_manager.settings
|
settings = settings_manager.settings
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
from typing import List, Mapping, Any, TypedDict
|
from typing import List, Literal, Mapping, Any, NotRequired, TypedDict
|
||||||
from modules.keys import Language
|
from modules.keys import Language
|
||||||
import logging
|
import logging
|
||||||
import copy
|
import copy
|
||||||
|
@ -36,8 +36,19 @@ class SettingsType(TypedDict):
|
||||||
splash_text_loc: str
|
splash_text_loc: str
|
||||||
|
|
||||||
|
|
||||||
|
class AdminLogEvent(TypedDict):
|
||||||
|
messageId: int
|
||||||
|
author: int
|
||||||
|
target: str | int
|
||||||
|
action: Literal["del", "add", "set"]
|
||||||
|
change: Literal["owner_ids", "blacklisted_users", "enabled_cogs"]
|
||||||
|
|
||||||
|
|
||||||
class Settings:
|
class Settings:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
|
global instance
|
||||||
|
instance = self
|
||||||
|
|
||||||
self.path: str = os.path.join(".", "settings", "settings.json")
|
self.path: str = os.path.join(".", "settings", "settings.json")
|
||||||
|
|
||||||
if not os.path.exists(self.path):
|
if not os.path.exists(self.path):
|
||||||
|
@ -52,11 +63,37 @@ class Settings:
|
||||||
self.settings = SettingsType(self.__kv_store) # type: ignore
|
self.settings = SettingsType(self.__kv_store) # type: ignore
|
||||||
self.original_settings = copy.deepcopy(self.settings)
|
self.original_settings = copy.deepcopy(self.settings)
|
||||||
|
|
||||||
|
self.log_path: str = os.path.join(".", "settings", "admin_logs.json")
|
||||||
|
|
||||||
|
def reload_settings(self) -> None:
|
||||||
|
with open(self.path, "r") as f:
|
||||||
|
self.__kv_store: dict = json.load(f)
|
||||||
|
|
||||||
|
self.settings = SettingsType(self.__kv_store) # type: ignore
|
||||||
|
self.original_settings = copy.deepcopy(self.settings)
|
||||||
|
|
||||||
def commit(self) -> None:
|
def commit(self) -> None:
|
||||||
with open(self.path, "w") as f:
|
with open(self.path, "w") as f:
|
||||||
json.dump(self.settings, f, indent=4)
|
json.dump(self.settings, f, ensure_ascii=False, indent=4)
|
||||||
|
|
||||||
self.original_settings = self.settings
|
self.original_settings = self.settings
|
||||||
|
|
||||||
def discard(self) -> None:
|
def discard(self) -> None:
|
||||||
self.settings = self.original_settings
|
self.settings = self.original_settings
|
||||||
|
|
||||||
|
def add_admin_log_event(self, event: AdminLogEvent):
|
||||||
|
if not os.path.exists(self.log_path):
|
||||||
|
logger.warning("Admin log doesn't exist!")
|
||||||
|
with open(self.log_path, "w") as f:
|
||||||
|
json.dump([], f)
|
||||||
|
|
||||||
|
with open(self.log_path, "r") as f:
|
||||||
|
logs: List[AdminLogEvent] = json.load(f)
|
||||||
|
|
||||||
|
logs.append(event)
|
||||||
|
|
||||||
|
with open(self.log_path, "w") as f:
|
||||||
|
json.dump(logs, f, ensure_ascii=False, indent=4)
|
||||||
|
|
||||||
|
|
||||||
|
instance: Settings = Settings()
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
import os
|
import os
|
||||||
from modules.settings import Settings as SettingsManager
|
from modules.settings import instance as settings_manager
|
||||||
import logging
|
import logging
|
||||||
from modules.globalvars import RED, RESET
|
from modules.globalvars import RED, RESET
|
||||||
import modules.keys as k
|
import modules.keys as k
|
||||||
|
|
||||||
settings_manager = SettingsManager()
|
|
||||||
settings = settings_manager.settings
|
settings = settings_manager.settings
|
||||||
logger = logging.getLogger("goober")
|
logger = logging.getLogger("goober")
|
||||||
|
|
||||||
|
|
37
settings/admin_logs.json
Normal file
37
settings/admin_logs.json
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"action": "add",
|
||||||
|
"author": 642441889181728810,
|
||||||
|
"change": "enabled_cogs",
|
||||||
|
"messageId": 1397556082225844234,
|
||||||
|
"target": "whoami"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "add",
|
||||||
|
"author": 642441889181728810,
|
||||||
|
"change": "owner_ids",
|
||||||
|
"messageId": 1397556184818384996,
|
||||||
|
"target": 1167661372809683048
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "del",
|
||||||
|
"author": 642441889181728810,
|
||||||
|
"change": "owner_ids",
|
||||||
|
"messageId": 1397556247313780829,
|
||||||
|
"target": 1167661372809683048
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "add",
|
||||||
|
"author": 642441889181728810,
|
||||||
|
"change": "enabled_cogs",
|
||||||
|
"messageId": 1397558663559909399,
|
||||||
|
"target": "fuckup"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "add",
|
||||||
|
"author": 642441889181728810,
|
||||||
|
"change": "enabled_cogs",
|
||||||
|
"messageId": 1397558837644365935,
|
||||||
|
"target": "songchanger"
|
||||||
|
}
|
||||||
|
]
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"bot": {
|
"bot": {
|
||||||
"prefix": "\u00e4.",
|
"prefix": "ä.",
|
||||||
"owner_ids": [
|
"owner_ids": [
|
||||||
|
642441889181728810
|
||||||
],
|
],
|
||||||
"blacklisted_users": [],
|
"blacklisted_users": [],
|
||||||
"user_training": true,
|
"user_training": true,
|
||||||
|
@ -16,6 +16,8 @@
|
||||||
},
|
},
|
||||||
"active_memory": "memory.json",
|
"active_memory": "memory.json",
|
||||||
"enabled_cogs": [
|
"enabled_cogs": [
|
||||||
|
"fuckup",
|
||||||
|
"songchanger"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locale": "fi",
|
"locale": "fi",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue