Initial Release of IGNCore version 2.5
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
import time
|
||||
|
||||
from core.aochat.BaseModule import BaseModule
|
||||
from core.chat_blob import ChatBlob
|
||||
from core.command_alias_service import CommandAliasService
|
||||
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.public_channel_service import PublicChannelService
|
||||
from core.text import Text
|
||||
from core.tyrbot import Tyrbot
|
||||
from core.util import Util
|
||||
from modules.raidbot.tower.tower_service import TowerService
|
||||
from modules.standard.helpbot.playfield_controller import PlayfieldController
|
||||
|
||||
|
||||
@instance()
|
||||
class PlantController(BaseModule):
|
||||
# noinspection DuplicatedCode
|
||||
def inject(self, registry):
|
||||
self.bot: Tyrbot = registry.get_instance("bot")
|
||||
self.db: DB = registry.get_instance("db")
|
||||
self.util: Util = registry.get_instance("util")
|
||||
self.text: Text = registry.get_instance("text")
|
||||
self.event_service: EventService = registry.get_instance("event_service")
|
||||
self.pork_service: PorkService = registry.get_instance("pork_service")
|
||||
self.playfield_controller: PlayfieldController = registry.get_instance("playfield_controller")
|
||||
self.public_channel_service: PublicChannelService = registry.get_instance("public_channel_service")
|
||||
self.towercache: TowerService = registry.get_instance("tower_service")
|
||||
self.command_alias_service: CommandAliasService = registry.get_instance("command_alias_service")
|
||||
|
||||
@command(command="penalty", params=[], access_level="member", description="Shows planttimers")
|
||||
def penalty(self, _):
|
||||
blob = "<font color=CCInfoText>"
|
||||
self.towercache.attack_hot.sort(key=lambda k: k['org_name'])
|
||||
rem = []
|
||||
for key, value in enumerate(sorted(self.towercache.attack_hot, key=lambda k: k['org_name'])):
|
||||
if value["hot"] < time.time():
|
||||
rem.append(key)
|
||||
continue
|
||||
|
||||
lca = self.towercache.get_towers_by_org_name(value["org_name"])
|
||||
for site in lca:
|
||||
blob += self.towercache.format_entry(site, 10)
|
||||
|
||||
blob += "</font>"
|
||||
for i in reversed(rem):
|
||||
self.towercache.attack_hot.pop(i)
|
||||
if len(self.towercache.attack_hot) == 0:
|
||||
blob = ""
|
||||
return ChatBlob(f"Warhot tower sites", blob.strip("\n")) if blob != "" else f"There are no orgs in penalty."
|
||||
|
||||
@command(command="plant", params=[], access_level="member", description="Shows planttimers")
|
||||
def plant(self, _):
|
||||
blob = "<font color=CCInfoText>"
|
||||
rem = []
|
||||
for key, value in enumerate(sorted(self.towercache.plant, key=lambda k: k['pf'])):
|
||||
print(key, value)
|
||||
if value["plant"] < time.time():
|
||||
rem.append(key)
|
||||
continue
|
||||
|
||||
lca = self.playfield_controller.get_playfield_by_id(value['pf'])
|
||||
blob += f"[<cyan>{lca.short_name}</cyan>] <cyan>x{value['site']}</cyan> in " \
|
||||
f"<white>{self.util.format_time(value['plant'] - time.time())}</white>\n"
|
||||
|
||||
blob += "</font>"
|
||||
for i in reversed(rem):
|
||||
self.towercache.plant.pop(i)
|
||||
if len(self.towercache.plant) == 0:
|
||||
blob = ""
|
||||
if blob != "":
|
||||
return ChatBlob(f"Awaiting plants ({len(self.towercache.plant)})", blob.strip("\n"))
|
||||
else:
|
||||
return f"There are no sites awaiting plants."
|
||||
Reference in New Issue
Block a user