71 lines
3.2 KiB
Python
71 lines
3.2 KiB
Python
from pathlib import Path
|
|
from os import system
|
|
|
|
import libminecraft
|
|
import libsignal
|
|
import libcommon
|
|
|
|
RetardsServer = libcommon.Group(
|
|
"Retards Server", "5PlbXaPmWZQkhmuyyC/fkWTy8K+BqomjK7byVDyxmpo=")
|
|
|
|
|
|
@libsignal.onMessage(RetardsServer)
|
|
def signalControl(usr: str, msg: str):
|
|
if usr == "Malasaur" and msg.startswith("!"):
|
|
match msg.split():
|
|
case ["!modules", "list"]:
|
|
available_modules, loaded_modules, unloaded_modules = libcommon.listModules()
|
|
libsignal.sendMessage(
|
|
f"""Available modules: {" ".join(available_modules)}
|
|
Loaded modules: {" ".join(loaded_modules)}
|
|
Unloaded modules: {" ".join(unloaded_modules)}""", RetardsServer
|
|
)
|
|
case ["!modules", "load", *modules]:
|
|
for module in modules:
|
|
try:
|
|
libcommon.loadModule(module)
|
|
libsignal.sendMessage(
|
|
f"'{module}' successfully loaded.", RetardsServer)
|
|
except Exception as e:
|
|
libsignal.sendMessage(
|
|
f"Error loading '{module}': {e}", RetardsServer)
|
|
case ["!modules", "unload", *modules]:
|
|
for module in modules:
|
|
try:
|
|
libcommon.unloadModule(module)
|
|
libsignal.sendMessage(
|
|
f"'{module}' successfully unloaded.", RetardsServer)
|
|
except Exception as e:
|
|
libsignal.sendMessage(
|
|
f"Error unloading '{module}': {e}", RetardsServer)
|
|
case ["!modules", "reload", *modules]:
|
|
for module in modules:
|
|
try:
|
|
libcommon.unloadModule(module)
|
|
libcommon.loadModule(module)
|
|
libsignal.sendMessage(
|
|
f"'{module}' successfully reloaded.", RetardsServer)
|
|
except Exception as e:
|
|
libsignal.sendMessage(
|
|
f"Error reloading '{module}': {e}", RetardsServer)
|
|
case ["!modules", "update"]:
|
|
system("git -C Serve pull")
|
|
log = []
|
|
modules = []
|
|
for file in Path("Serve", "modules").iterdir():
|
|
if file.name[:-3] in libcommon.listModules()[0]:
|
|
if file.read_text() != Path("modules", file.name).read_text():
|
|
log.append(
|
|
f"Module '{file.name[:-3]}' has an available update.")
|
|
else:
|
|
log.append(f"New module added: '{file.name[:-3]}'.")
|
|
modules.append(file.name[:-3])
|
|
for module in libcommon.listModules()[0]:
|
|
if module not in modules:
|
|
log.append(f"Module '{module}' was removed.")
|
|
if not log:
|
|
log.append("Already up to date.")
|
|
libsignal.sendMessage("\n".join(log), RetardsServer)
|
|
case ["!modules", "install"]:
|
|
system("cp Serve/modules/* modules")
|
|
libsignal.sendMessage("Modules installed.", RetardsServer)
|