42 lines
1.9 KiB
Python
42 lines
1.9 KiB
Python
from core import command_request
|
|
from core.command_param_types import Options, Int, Character, Any
|
|
from core.db import DB
|
|
from core.decorators import instance, command
|
|
from core.event_service import EventService
|
|
from core.lookup.pork_service import PorkService
|
|
from core.text import Text
|
|
from core.util import Util
|
|
from modules.core.accounting.preference_controller import PreferenceController
|
|
from modules.core.accounting.services.account_service import AccountService
|
|
|
|
|
|
@instance()
|
|
class PointsController:
|
|
def inject(self, registry):
|
|
self.bot = registry.get_instance("bot")
|
|
self.buddy_service = registry.get_instance("buddy_service")
|
|
self.util: Util = registry.get_instance("util")
|
|
self.db: DB = registry.get_instance("db")
|
|
self.character_service = registry.get_instance("character_service")
|
|
self.account_service: AccountService = registry.get_instance("account_service")
|
|
self.event_service: EventService = registry.get_instance("event_service")
|
|
self.pork_service: PorkService = registry.get_instance("pork_service")
|
|
self.text: Text = registry.get_instance("text")
|
|
self.preferences: PreferenceController = registry.get_instance("preference_controller")
|
|
|
|
@command(command="account",
|
|
params=[Options(["give", "take"]), Int("points"), Character("char"), Any("reason")],
|
|
access_level="admin",
|
|
description="Give or take points from an Account",
|
|
sub_command="modify")
|
|
def account_add_mod_pts(self, request: command_request, option, amount, user, reason):
|
|
if option == "take":
|
|
amount = -amount
|
|
self.account_service.add_pts(user.char_id, amount, reason, request.sender.char_id)
|
|
|
|
def display_logs(self, entries):
|
|
blob = ""
|
|
for entry in entries:
|
|
blob += self.account_service.format_entry(entry)
|
|
return blob
|