Fix for !lc; invalid parameters (site, PF) nolonger trigger [ERROR]'s
Remove more debugging Stuff Fix for penalty timers
This commit is contained in:
+1
-1
@@ -43,7 +43,7 @@ class IgnCore:
|
|||||||
self.last_timer_event = 0
|
self.last_timer_event = 0
|
||||||
self.start_time = int(time.time())
|
self.start_time = int(time.time())
|
||||||
self.major_version = "IGNCore v2.8"
|
self.major_version = "IGNCore v2.8"
|
||||||
self.minor_version = "1"
|
self.minor_version = "2"
|
||||||
self.incoming_queue = FifoQueue()
|
self.incoming_queue = FifoQueue()
|
||||||
self.mass_message_queue = None
|
self.mass_message_queue = None
|
||||||
self.conns = DictObject()
|
self.conns = DictObject()
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
Our Home: <a href='chatcmd:///start https://www.aoalliance.org/'>https://www.aoalliance.org/</a>
|
|
||||||
Gitlab Repository: <a href='chatcmd:///start https://gitlab.com/CynderGames/igncore'>https://gitlab.com/CynderGames/igncore</a>
|
Gitlab Repository: <a href='chatcmd:///start https://gitlab.com/CynderGames/igncore'>https://gitlab.com/CynderGames/igncore</a>
|
||||||
|
|
||||||
IGNCore is a performance oriented Anarchy Online chatbot,
|
IGNCore is a performance oriented Anarchy Online chatbot,
|
||||||
|
|||||||
@@ -164,8 +164,6 @@ class OrgController:
|
|||||||
<td align="left" class="dim">RK5</td>
|
<td align="left" class="dim">RK5</td>
|
||||||
</tr>""", result.text)
|
</tr>""", result.text)
|
||||||
for match in matches:
|
for match in matches:
|
||||||
if int(match[2]) < 6:
|
|
||||||
continue
|
|
||||||
data.append((int(match[0]), match[1], int(match[2]), match[4], start))
|
data.append((int(match[0]), match[1], int(match[2]), match[4], start))
|
||||||
count += 1
|
count += 1
|
||||||
self.logger.info(f"Batch {letter} done!")
|
self.logger.info(f"Batch {letter} done!")
|
||||||
|
|||||||
@@ -37,8 +37,20 @@ class TowerHotController(BaseModule):
|
|||||||
is_enabled=False)
|
is_enabled=False)
|
||||||
def tower_victory_event(self, _, event_data):
|
def tower_victory_event(self, _, event_data):
|
||||||
if event_data.attacker.org_id:
|
if event_data.attacker.org_id:
|
||||||
self.db.exec("UPDATE towers SET penalty_until=? where org_id=?",
|
data = self.db.query(
|
||||||
[time.time() + 60 * 60, event_data.attacker.org_id])
|
"""SELECT pf_id, site_number, t.org_id, t.faction, penalty_until, planted, close_time
|
||||||
|
FROM towers t
|
||||||
|
LEFT JOIN all_orgs a ON a.org_id = t.org_id WHERE a.org_name = ? AND t.faction = ? AND close_time IS NOT NULL""", [event_data.attacker.org_name, event_data.attacker.faction.lower()])
|
||||||
|
blob = []
|
||||||
|
for row in data:
|
||||||
|
blob.append((((row.planted - time.time()) % 3600) + 3600+time.time(), row.pf_id, row.site_number, row.org_id))
|
||||||
|
if blob:
|
||||||
|
with self.db.lock:
|
||||||
|
with self.db.pool.get_connection() as conn:
|
||||||
|
with conn.cursor() as cur:
|
||||||
|
cur.executemany("UPDATE towers SET penalty_until=? WHERE pf_id=? AND site_number=? AND org_id=?", blob)
|
||||||
|
# self.db.exec("UPDATE towers SET penalty_until=? where org_id=?",
|
||||||
|
# [time.time() + 60 * 60, event_data.attacker.org_id])
|
||||||
|
|
||||||
@command(command="hot",
|
@command(command="hot",
|
||||||
params=[Options(['tl1', 'tl2', 'tl3', 'tl4', 'tl5', 'tl6', 'tl7']), Any('faction', is_optional=True),
|
params=[Options(['tl1', 'tl2', 'tl3', 'tl4', 'tl5', 'tl6', 'tl7']), Any('faction', is_optional=True),
|
||||||
|
|||||||
@@ -117,6 +117,8 @@ class LandController:
|
|||||||
return ChatBlob(f"Orgs matching your search criteria ({num_orgs})", blob)
|
return ChatBlob(f"Orgs matching your search criteria ({num_orgs})", blob)
|
||||||
|
|
||||||
data = self.get_towers_by_org(org_id)
|
data = self.get_towers_by_org(org_id)
|
||||||
|
if not data:
|
||||||
|
return f"The org <highlight>{search}</highlight> does not own any sites or does not exist."
|
||||||
blob = ""
|
blob = ""
|
||||||
ql = 0
|
ql = 0
|
||||||
for x in data:
|
for x in data:
|
||||||
@@ -134,6 +136,8 @@ class LandController:
|
|||||||
return f"Could not find playfield <highlight>{playfield_name}</highlight>."
|
return f"Could not find playfield <highlight>{playfield_name}</highlight>."
|
||||||
|
|
||||||
data = self.get_towers(playfield.id, site_number)
|
data = self.get_towers(playfield.id, site_number)
|
||||||
|
if not data:
|
||||||
|
return f"The Site <highlight>{site_number}</highlight> does not exist in playfield <highlight>{playfield_name}</highlight>."
|
||||||
|
|
||||||
blob = ""
|
blob = ""
|
||||||
t = int(time.time())
|
t = int(time.time())
|
||||||
@@ -157,15 +161,18 @@ class LandController:
|
|||||||
def free(self, _, ):
|
def free(self, _, ):
|
||||||
blob = ""
|
blob = ""
|
||||||
data = self.get_free()
|
data = self.get_free()
|
||||||
|
if not data:
|
||||||
|
return "Currently there are no free sites. Go kill some."
|
||||||
for row in data:
|
for row in data:
|
||||||
blob += f"<pagebreak>{self.format_site_info(row, time.time(), len(data))}\n"
|
blob += f"<pagebreak>{self.format_site_info(row, time.time(), len(data))}\n"
|
||||||
|
return ChatBlob(f"FREE Towersites ({len(data)})", blob)
|
||||||
return ChatBlob(f"FREE Towersites ({len(data)})", blob) if blob else f"No free towersites found."
|
|
||||||
|
|
||||||
def format_site_info(self, row, t, count=0):
|
def format_site_info(self, row, t, count=0):
|
||||||
data = row
|
data = row
|
||||||
if count == 0 and data:
|
if count == 0 and data:
|
||||||
row = data[0]
|
row = data[0]
|
||||||
|
if not row:
|
||||||
|
return "Site does not exist."
|
||||||
blob = f"<highlight>{row.short_name} x{row.site_number}</highlight> ({row.site_name})\n"
|
blob = f"<highlight>{row.short_name} x{row.site_number}</highlight> ({row.site_name})\n"
|
||||||
blob += f"<tab>Level Range: <white>{row.min_ql} - {row.max_ql}</white> "
|
blob += f"<tab>Level Range: <white>{row.min_ql} - {row.max_ql}</white> "
|
||||||
if row.timing == 0:
|
if row.timing == 0:
|
||||||
@@ -273,6 +280,18 @@ class LandController:
|
|||||||
"LEFT JOIN all_orgs e on a.org_id = e.org_id "
|
"LEFT JOIN all_orgs e on a.org_id = e.org_id "
|
||||||
"WHERE a.org_id=? GROUP BY a.pf_id, a.site_number ORDER BY ql, close_time IS NOT NULL", [org_id])
|
"WHERE a.org_id=? GROUP BY a.pf_id, a.site_number ORDER BY ql, close_time IS NOT NULL", [org_id])
|
||||||
|
|
||||||
|
# For some reason the Code above broke... and apparently works again now? leaving this one here, just in case.
|
||||||
|
# return self.db.query("""SELECT * FROM (SELECT COUNT(CASE WHEN name LIKE '%Turret%' THEN 1 WHEN name LIKE '%SAM Battery%' THEN 1 END) turrets,
|
||||||
|
# COUNT(CASE WHEN name LIKE '%Guard%' THEN 1 END) guard, a.pf_id, a.org_id, e.org_name, c.*, d.* FROM towers a
|
||||||
|
# LEFT JOIN aodb b ON a.high_id = b.highid
|
||||||
|
# LEFT JOIN playfields c on a.pf_id = c.id
|
||||||
|
# LEFT JOIN tower_sites d on a.pf_id = d.playfield_id and a.site_number = d.site_number
|
||||||
|
# LEFT JOIN all_orgs e on a.org_id = e.org_id
|
||||||
|
# WHERE a.org_id=? GROUP BY a.pf_id, a.site_number ORDER BY ql, close_time IS NOT NULL) t1
|
||||||
|
# LEFT JOIN
|
||||||
|
# (SELECT * from towers a WHERE a.org_id=? AND close_time IS NOT NULL) t2
|
||||||
|
# ON t1.pf_id=t2.pf_id AND t1.site_number = t2.site_number""", [org_id, org_id])
|
||||||
|
|
||||||
def find_orgs(self, search):
|
def find_orgs(self, search):
|
||||||
return self.db.query("SELECT DISTINCT a.org_name, a.org_id FROM all_orgs a "
|
return self.db.query("SELECT DISTINCT a.org_name, a.org_id FROM all_orgs a "
|
||||||
"LEFT JOIN towers b ON a.org_id = b.org_id WHERE org_name <EXTENDED_LIKE=0> ? AND b.org_id IS NOT NULL",
|
"LEFT JOIN towers b ON a.org_id = b.org_id WHERE org_name <EXTENDED_LIKE=0> ? AND b.org_id IS NOT NULL",
|
||||||
|
|||||||
@@ -94,18 +94,18 @@ class TowerEventController:
|
|||||||
faction = attack.attacker.faction
|
faction = attack.attacker.faction
|
||||||
org_name = attack.attacker.org_name
|
org_name = attack.attacker.org_name
|
||||||
char_info = self.pork_service.get_character_info(name)
|
char_info = self.pork_service.get_character_info(name)
|
||||||
print(attack, name, faction, org_name)
|
# print(attack, name, faction, org_name)
|
||||||
print(char_info)
|
# print(char_info)
|
||||||
attack.attacker = char_info or DictObject()
|
attack.attacker = char_info or DictObject()
|
||||||
attack.attacker.name = name
|
attack.attacker.name = name
|
||||||
attack.attacker.faction = faction or attack.attacker.get("faction", "Unknown")
|
attack.attacker.faction = faction or attack.attacker.get("faction", "Unknown")
|
||||||
attack.attacker.org_name = org_name
|
attack.attacker.org_name = org_name
|
||||||
if char_info:
|
if char_info:
|
||||||
print("ATTK", attack)
|
# print("ATTK", attack)
|
||||||
|
|
||||||
self.event_service.fire_event(self.TOWER_ATTACK_EVENT, attack)
|
self.event_service.fire_event(self.TOWER_ATTACK_EVENT, attack)
|
||||||
else:
|
# else:
|
||||||
print("WARNING", attack)
|
# print("WARNING", attack)
|
||||||
|
|
||||||
def get_attack_event(self, packet: server_packets.PublicChannelMessage):
|
def get_attack_event(self, packet: server_packets.PublicChannelMessage):
|
||||||
|
|
||||||
|
|||||||
@@ -24,10 +24,7 @@ class TowerSpamController:
|
|||||||
self.db = registry.get_instance("db")
|
self.db = registry.get_instance("db")
|
||||||
self.text: Text = registry.get_instance("text")
|
self.text: Text = registry.get_instance("text")
|
||||||
self.util: Util = registry.get_instance("util")
|
self.util: Util = registry.get_instance("util")
|
||||||
self.tower: TowerEventController = registry.get_instance("tower_controller")
|
|
||||||
self.tc: TowerController = registry.get_instance("tower_controller")
|
|
||||||
self.tac: TowerAttackController = registry.get_instance("tower_attack_controller")
|
self.tac: TowerAttackController = registry.get_instance("tower_attack_controller")
|
||||||
self.playfield_controller: PlayfieldController = registry.get_instance("playfield_controller")
|
|
||||||
self.msg_hub: MessageHubService = registry.get_instance("message_hub_service")
|
self.msg_hub: MessageHubService = registry.get_instance("message_hub_service")
|
||||||
|
|
||||||
def pre_start(self):
|
def pre_start(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user