Fix for hidden settings & tower messages
This commit is contained in:
@@ -7,11 +7,13 @@ from requests import Session
|
||||
from conf.config import BotConfig
|
||||
from core.aochat.BaseModule import BaseModule
|
||||
from core.db import DB
|
||||
from core.decorators import instance, timerevent, event
|
||||
from core.decorators import instance, timerevent, event, setting
|
||||
from core.job_scheduler import JobScheduler
|
||||
from core.setting_types import BooleanSettingType
|
||||
from core.text import Text
|
||||
from core.igncore import Tyrbot
|
||||
from core.util import Util
|
||||
from modules.core.accounting.services.account_service import AccountService
|
||||
from modules.raidbot.tower.tower_controller import TowerController
|
||||
from modules.standard.helpbot.playfield_controller import PlayfieldController
|
||||
|
||||
@@ -30,6 +32,7 @@ class TowerService(BaseModule):
|
||||
self.text: Text = registry.get_instance("text")
|
||||
self.playfield_controller: PlayfieldController = registry.get_instance("playfield_controller")
|
||||
self.job_scheduler: JobScheduler = registry.get_instance("job_scheduler")
|
||||
self.account_service: AccountService = registry.get_instance("account_service")
|
||||
|
||||
mod = __import__(f'conf.{sys.argv[1]}', fromlist=['BotConfig'])
|
||||
config: BotConfig = getattr(mod, 'BotConfig')
|
||||
@@ -61,10 +64,18 @@ class TowerService(BaseModule):
|
||||
if event_data.attacker.get("org_id", None):
|
||||
self.attack_hot.append({'org_name': event_data.attacker.org_name, 'hot': time.time() + 60 * 60})
|
||||
|
||||
@setting(name="tower_notify_type", value=False, description="Only notify when our orgs are involved")
|
||||
def tower_notify_type(self) -> BooleanSettingType:
|
||||
return BooleanSettingType()
|
||||
|
||||
@event(event_type=TowerController.TOWER_VICTORY_EVENT, description="Send NW warnings")
|
||||
def victory(self, _, event_data):
|
||||
t = int(time.time())
|
||||
if event_data.type == "attack":
|
||||
if self.tower_notify_type().get_value():
|
||||
if not (event_data.winner.get("org_name", None) in self.account_service.get_org_names()
|
||||
or event_data.loser.org_name in self.account_service.get_org_names()):
|
||||
return
|
||||
row = self.get_last_attack(event_data.winner.faction, event_data.winner.org_name, event_data.loser.faction,
|
||||
event_data.loser.org_name, event_data.location.playfield.id, t)
|
||||
self.send_nw_warn(0,
|
||||
|
||||
Reference in New Issue
Block a user