Changed the string formatter from % to f"",
Fixed a bug related to logging [log dir does not exist on master, and needs to get created on first startup] Added !prefadmin <user> to view preferences of players, and change them Orgrank & name will be hidden in !alts, if the character is not in an org Page prefix & suffix are now being relayed [for example, it affects !online Fixed !perks Added comments regarding external API's.
This commit is contained in:
@@ -8,6 +8,7 @@ from core.logger import Logger
|
||||
from core.lookup.pork_service import PorkService
|
||||
from core.setting_service import SettingService
|
||||
from core.text import Text
|
||||
from core.translation_service import TranslationService
|
||||
from core.tyrbot import Tyrbot
|
||||
from core.util import Util
|
||||
from modules.core.accounting.services.account_service import AccountService
|
||||
@@ -31,6 +32,8 @@ class PreferenceController:
|
||||
self.setting_service: SettingService = registry.get_instance("setting_service")
|
||||
self.discord: DiscordController = registry.get_instance("discord_controller")
|
||||
self.job_scheduler = registry.get_instance("job_scheduler")
|
||||
self.ts: TranslationService = registry.get_instance("translation_service")
|
||||
self.getresp = self.ts.get_response
|
||||
|
||||
def start(self):
|
||||
self.command_alias_service.add_alias("prefs", "preferences")
|
||||
@@ -68,6 +71,15 @@ class PreferenceController:
|
||||
return f"<highlight>{main.name}</highlight>'s <highlight>{pref.capitalize()}</highlight> " \
|
||||
f"preference has been set to {value}."
|
||||
|
||||
@command(command="prefadmin", params=[Character('character')], description="View the preferences of a player", access_level="moderator")
|
||||
def show_prefadmin(self, request, char):
|
||||
if not char.char_id:
|
||||
return self.getresp("global", "char_not_found", {"char": char.name})
|
||||
account = self.account_service.get_account(char.char_id)
|
||||
if not account:
|
||||
return f"{char.name} has no preferences you could manage...."
|
||||
return ChatBlob(f"{account.name}'s Preferences", self.get_pref_view_full(account, account))
|
||||
|
||||
def get_prefs(self, char_id):
|
||||
return self.account_service.get_account(char_id)
|
||||
|
||||
@@ -82,25 +94,31 @@ class PreferenceController:
|
||||
self.db.exec(f"UPDATE account set {pref}={value} where char_id=(SELECT main from account where char_id=?)",
|
||||
[char_id])
|
||||
|
||||
def get_pref_view_small(self, prefs):
|
||||
def get_pref_view_small(self, prefs, owner=None):
|
||||
return f"\n" \
|
||||
f" └ [{self._make_cmd('news', prefs.news_spam)}] News - " \
|
||||
f"Autoinvite [{self._make_cmd('autoinvite', prefs.auto_invite)}], \n" \
|
||||
f" └ [{self._make_cmd('raidinvite', prefs.raid_invite)}] Raidinvite - " \
|
||||
f"Massmessage [{self._make_cmd('raidspam', prefs.raid_invite)}], \n" \
|
||||
f" └ [{self._make_cmd('subtilespam', prefs.subtile_spam)}] Subtilespam"
|
||||
f" └ [{self._make_cmd('news', prefs.news_spam, owner)}] News - " \
|
||||
f"Autoinvite [{self._make_cmd('autoinvite', prefs.auto_invite, owner)}], \n" \
|
||||
f" └ [{self._make_cmd('raidinvite', prefs.raid_invite, owner)}] Raidinvite - " \
|
||||
f"Massmessage [{self._make_cmd('raidspam', prefs.raid_invite, owner)}], \n" \
|
||||
f" └ [{self._make_cmd('subtilespam', prefs.subtile_spam, owner)}] Subtilespam"
|
||||
|
||||
def get_pref_view_full(self, prefs):
|
||||
def get_pref_view_full(self, prefs, owner=None):
|
||||
return f"\n" \
|
||||
f"<tab>└ [ {self._make_cmd('news', prefs.news_spam)} ] Do you want your News on Logon? \n" \
|
||||
f"<tab>└ [ {self._make_cmd('autoinvite', prefs.auto_invite)} ] Do you want to receive autoinvites? \n" \
|
||||
f"<tab>└ [ {self._make_cmd('raidinvite', prefs.raid_invite)} ] Do you want to receive raidinvites? \n" \
|
||||
f"<tab>└ [ {self._make_cmd('raidspam', prefs.raid_invite)} ] Do you want to receive massmessages? \n" \
|
||||
f"<tab>└ [ {self._make_cmd('subtilespam', prefs.subtile_spam)} ] Do you want a subtile invite spam? \n"
|
||||
f"<tab>└ [ {self._make_cmd('news', prefs.news_spam, owner)} ] Do you want your News on Logon? \n" \
|
||||
f"<tab>└ [ {self._make_cmd('autoinvite', prefs.auto_invite, owner)} ] Do you want to receive autoinvites? \n" \
|
||||
f"<tab>└ [ {self._make_cmd('raidinvite', prefs.raid_invite, owner)} ] Do you want to receive raidinvites? \n" \
|
||||
f"<tab>└ [ {self._make_cmd('raidspam', prefs.raid_invite, owner)} ] Do you want to receive massmessages? \n" \
|
||||
f"<tab>└ [ {self._make_cmd('subtilespam', prefs.subtile_spam, owner)} ] Do you want a subtile invite spam? \n"
|
||||
|
||||
def _make_cmd(self, pref, value):
|
||||
def _make_cmd(self, pref, value, owner=None):
|
||||
# ---
|
||||
# [ ON | OFF ]
|
||||
# [ YES | NO ]
|
||||
if owner:
|
||||
if value == 1:
|
||||
return f"<green>YES</green> | {self.text.make_chatcmd('NO', f'/tell <myname> prefadmin set {owner.name} {pref} off')}"
|
||||
else:
|
||||
return f"{self.text.make_chatcmd('YES', f'/tell <myname> prefadmin set {owner.name} {pref} on')} | <red>NO</red>"
|
||||
|
||||
if value == 1:
|
||||
return f"<green>YES</green> | {self.text.make_chatcmd('NO', f'/tell <myname> preferences set {pref} off')}"
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user