Files
igncore/modules/core/config/alias_controller.py
T

40 lines
1.9 KiB
Python

from core.chat_blob import ChatBlob
from core.command_param_types import Const, Any, Options
from core.decorators import instance, command
from core.translation_service import TranslationService
@instance()
class AliasController:
def inject(self, registry):
self.command_alias_service = registry.get_instance("command_alias_service")
self.ts: TranslationService = registry.get_instance("translation_service")
self.getresp = self.ts.get_response
@command(command="alias", params=[Const("list")], access_level="member",
description="List command aliases")
def alias_list_cmd(self, _, _1):
blob = ""
data = self.command_alias_service.get_enabled_aliases()
count = len(data)
for row in data:
blob += row.alias + " - " + row.command + "\n"
return ChatBlob(self.getresp("module/config", "alias_blob_title", {"amount": count}), blob)
@command(command="alias", params=[Const("add"), Any("alias"), Any("command")], access_level="admin",
description="Add a command alias", sub_command="modify")
def alias_add_cmd(self, _, _1, alias, command_str):
if self.command_alias_service.add_alias(alias, command_str, force_enable=True):
return self.getresp("module/config", "alias_add_success", {"alias": alias, "cmd": command_str})
else:
return self.getresp("module/config", "alias_add_fail", {"alias": alias})
@command(command="alias", params=[Options(["rem", "remove"]), Any("alias")], access_level="admin",
description="Remove a command alias", sub_command="modify")
def alias_remove_cmd(self, _, _1, alias):
if self.command_alias_service.remove_alias(alias):
return self.getresp("module/config", "alias_rem_success", {"alias": alias})
else:
return self.getresp("module/config", "alias_rem_fail", {"alias": alias})