Skip to content

Commit f474b81

Browse files
authored
LADX: Add --no-magpie argument for disabling magpie bridge (#1788)
1 parent 5255bc5 commit f474b81

File tree

1 file changed

+26
-16
lines changed

1 file changed

+26
-16
lines changed

LinksAwakeningClient.py

+26-16
Original file line numberDiff line numberDiff line change
@@ -438,12 +438,16 @@ class LinksAwakeningContext(CommonContext):
438438
found_checks = []
439439
last_resend = time.time()
440440

441-
magpie = MagpieBridge()
441+
magpie_enabled = False
442+
magpie = None
442443
magpie_task = None
443444
won = False
444445

445-
def __init__(self, server_address: typing.Optional[str], password: typing.Optional[str]) -> None:
446+
def __init__(self, server_address: typing.Optional[str], password: typing.Optional[str], magpie: typing.Optional[bool]) -> None:
446447
self.client = LinksAwakeningClient()
448+
if magpie:
449+
self.magpie_enabled = True
450+
self.magpie = MagpieBridge()
447451
super().__init__(server_address, password)
448452

449453
def run_gui(self) -> None:
@@ -462,16 +466,17 @@ class LADXManager(GameManager):
462466
def build(self):
463467
b = super().build()
464468

465-
button = Button(text="", size=(30, 30), size_hint_x=None,
466-
on_press=lambda _: webbrowser.open('https://magpietracker.us/?enable_autotracker=1'))
467-
image = Image(size=(16, 16), texture=magpie_logo())
468-
button.add_widget(image)
469+
if self.ctx.magpie_enabled:
470+
button = Button(text="", size=(30, 30), size_hint_x=None,
471+
on_press=lambda _: webbrowser.open('https://magpietracker.us/?enable_autotracker=1'))
472+
image = Image(size=(16, 16), texture=magpie_logo())
473+
button.add_widget(image)
469474

470-
def set_center(_, center):
471-
image.center = center
472-
button.bind(center=set_center)
475+
def set_center(_, center):
476+
image.center = center
477+
button.bind(center=set_center)
473478

474-
self.connect_layout.add_widget(button)
479+
self.connect_layout.add_widget(button)
475480
return b
476481

477482
self.ui = LADXManager(self)
@@ -506,7 +511,8 @@ async def on_deathlink(self, data: typing.Dict[str, typing.Any]) -> None:
506511
def new_checks(self, item_ids, ladxr_ids):
507512
self.found_checks += item_ids
508513
create_task_log_exception(self.send_checks())
509-
create_task_log_exception(self.magpie.send_new_checks(ladxr_ids))
514+
if self.magpie_enabled:
515+
create_task_log_exception(self.magpie.send_new_checks(ladxr_ids))
510516

511517
async def server_auth(self, password_requested: bool = False):
512518
if password_requested and not self.password:
@@ -537,7 +543,8 @@ async def victory():
537543
async def deathlink():
538544
await self.send_deathlink()
539545

540-
self.magpie_task = asyncio.create_task(self.magpie.serve())
546+
if self.magpie_enabled:
547+
self.magpie_task = asyncio.create_task(self.magpie.serve())
541548

542549
# yield to allow UI to start
543550
await asyncio.sleep(0)
@@ -558,9 +565,10 @@ async def deathlink():
558565
if self.last_resend + 5.0 < now:
559566
self.last_resend = now
560567
await self.send_checks()
561-
self.magpie.set_checks(self.client.tracker.all_checks)
562-
await self.magpie.set_item_tracker(self.client.item_tracker)
563-
await self.magpie.send_gps(self.client.gps_tracker)
568+
if self.magpie_enabled:
569+
self.magpie.set_checks(self.client.tracker.all_checks)
570+
await self.magpie.set_item_tracker(self.client.item_tracker)
571+
await self.magpie.send_gps(self.client.gps_tracker)
564572

565573
except GameboyException:
566574
time.sleep(1.0)
@@ -570,9 +578,11 @@ async def deathlink():
570578
async def main():
571579
parser = get_base_parser(description="Link's Awakening Client.")
572580
parser.add_argument("--url", help="Archipelago connection url")
581+
parser.add_argument("--no-magpie", dest='magpie', default=True, action='store_false', help="Disable magpie bridge")
573582

574583
parser.add_argument('diff_file', default="", type=str, nargs="?",
575584
help='Path to a .apladx Archipelago Binary Patch file')
585+
576586
args = parser.parse_args()
577587
logger.info(args)
578588

@@ -590,7 +600,7 @@ async def main():
590600
if url.password:
591601
args.password = urllib.parse.unquote(url.password)
592602

593-
ctx = LinksAwakeningContext(args.connect, args.password)
603+
ctx = LinksAwakeningContext(args.connect, args.password, args.magpie)
594604

595605
ctx.server_task = asyncio.create_task(server_loop(ctx), name="server loop")
596606

0 commit comments

Comments
 (0)