Added the "temp-leader" back (!leader set now raises the rank, and is not visual-only)
!loot add also works for players without accounts now (i.e. outside the alliance)
This commit is contained in:
@@ -16,6 +16,8 @@ from modules.core.accounting.services.access_service import AccessService
|
|||||||
|
|
||||||
|
|
||||||
# noinspection SqlCaseVsIf,SqlResolve,PyMethodMayBeStatic
|
# noinspection SqlCaseVsIf,SqlResolve,PyMethodMayBeStatic
|
||||||
|
|
||||||
|
|
||||||
@instance()
|
@instance()
|
||||||
class AccountService:
|
class AccountService:
|
||||||
MAIN_CHANGED_EVENT_TYPE = "main_changed"
|
MAIN_CHANGED_EVENT_TYPE = "main_changed"
|
||||||
@@ -37,6 +39,7 @@ class AccountService:
|
|||||||
self.pork: PorkService = registry.get_instance("pork_service")
|
self.pork: PorkService = registry.get_instance("pork_service")
|
||||||
self.setting_service: SettingService = registry.get_instance("setting_service")
|
self.setting_service: SettingService = registry.get_instance("setting_service")
|
||||||
self.text: Text = registry.get_instance("text")
|
self.text: Text = registry.get_instance("text")
|
||||||
|
self.leader = registry.get_instance("leader_controller", is_optional=True)
|
||||||
|
|
||||||
def pre_start(self):
|
def pre_start(self):
|
||||||
self.db.exec("CREATE TABLE IF NOT EXISTS account ("
|
self.db.exec("CREATE TABLE IF NOT EXISTS account ("
|
||||||
@@ -433,6 +436,8 @@ class AccountService:
|
|||||||
return "council" in self.get_ranks(char_id)
|
return "council" in self.get_ranks(char_id)
|
||||||
|
|
||||||
def check_leader(self, char_id) -> bool:
|
def check_leader(self, char_id) -> bool:
|
||||||
|
if self.leader and self.leader.leader and self.leader.leader.char_id == char_id:
|
||||||
|
return True
|
||||||
if self.simple_checks(self.get_account(char_id)):
|
if self.simple_checks(self.get_account(char_id)):
|
||||||
return "leader" in self.get_ranks(char_id)
|
return "leader" in self.get_ranks(char_id)
|
||||||
|
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ class LootController:
|
|||||||
def loot_add_to_cmd(self, request, _, item_index: int):
|
def loot_add_to_cmd(self, request, _, item_index: int):
|
||||||
main = self.alts_service.get_account(request.sender.char_id)
|
main = self.alts_service.get_account(request.sender.char_id)
|
||||||
if self.raid_controller:
|
if self.raid_controller:
|
||||||
raider: Raider = self.raid_controller.is_in_raid(main.char_id)
|
raider: Raider = self.raid_controller.is_in_raid(main.get("char_id", -1))
|
||||||
if type(raider) == Raider:
|
if type(raider) == Raider:
|
||||||
if not raider.is_active:
|
if not raider.is_active:
|
||||||
self.bot.send_mass_message(request.sender.char_id,
|
self.bot.send_mass_message(request.sender.char_id,
|
||||||
@@ -165,7 +165,7 @@ class LootController:
|
|||||||
if old_item.get_item_str() == loot_item.get_item_str():
|
if old_item.get_item_str() == loot_item.get_item_str():
|
||||||
name = "You have" if request.channel == "msg" else request.sender.name
|
name = "You have" if request.channel == "msg" else request.sender.name
|
||||||
self.bot.send_mass_message(request.sender.char_id,
|
self.bot.send_mass_message(request.sender.char_id,
|
||||||
"%s already added to %s." % (name, loot_item.get_item_str()))
|
f"{name} already added to {loot_item.get_item_str()}.")
|
||||||
old_item.bidders.remove(request.sender.name)
|
old_item.bidders.remove(request.sender.name)
|
||||||
|
|
||||||
loot_item.bidders.append(request.sender.name)
|
loot_item.bidders.append(request.sender.name)
|
||||||
|
|||||||
Reference in New Issue
Block a user