Initial Release of IGNCore version 2.5

This commit is contained in:
2021-08-09 13:18:56 +02:00
commit a83d98c47e
910 changed files with 224171 additions and 0 deletions
@@ -0,0 +1,62 @@
from core.chat_blob import ChatBlob
from core.command_param_types import Any
from core.decorators import instance, command
@instance()
class SymbiantController:
def __init__(self):
pass
def inject(self, registry):
self.db = registry.get_instance("db")
self.text = registry.get_instance("text")
self.command_alias_service = registry.get_instance("command_alias_service")
def start(self):
self.command_alias_service.add_alias("symb", "symbiant")
self.command_alias_service.add_alias("symbs", "symbiant")
self.command_alias_service.add_alias("symbiants", "symbiant")
@command(command="symbiant", params=[Any("search")], access_level="member",
description="Show information about symbiants")
def symbiant_cmd(self, _, search):
data = self.search_for_symbiant(search)
blob = ""
for row in data:
blob += f"{self.text.make_item(row.lowid, row.highid, row.highql, row.name)} ({row.highql:d})\n"
blob += f"Found on {self.text.make_tellcmd(row.pocketboss_name, f'pocketboss {row.pocketboss_name}')}\n\n"
return ChatBlob(f"Symbiant Search Results ({len(data):d})", blob)
def search_for_symbiant(self, search):
parts = " ".join((map(self.replacements, search.split(" "))))
return self.db.query("SELECT a.*, p2.name AS pocketboss_name FROM pocketboss_loot p "
"LEFT JOIN aodb a ON p.item_id = a.highid "
"LEFT JOIN pocketboss p2 ON p.pocketboss_id = p2.id "
"WHERE a.name <EXTENDED_LIKE=0> ? "
"ORDER BY a.highql DESC, a.name", [parts], extended_like=True)
def replacements(self, part):
if part == "eye":
return "ocular"
elif part == "head":
return "brain"
elif part == "rarm":
return "right arm"
elif part == "larm":
return "left arm"
elif part == "rwrist":
return "right wrist"
elif part == "lwrist":
return "left wrist"
elif part == "rhand":
return "right hand"
elif part == "lhand":
return "left hand"
elif part == "leg" or part == "legs":
return "thigh"
else:
return part