From 0840eadd8f8f3ff05d05f813db967d139011fcb6 Mon Sep 17 00:00:00 2001 From: JeffTheRock <84420756+JeffTheRock@users.noreply.github.com> Date: Wed, 22 Jul 2026 20:09:43 -0400 Subject: [PATCH] fix puffles breaking after unlocking a code (#115) movng the pgu packet from login to js solves the issue with thanks to @ooowoothevirtualhowler for doing the actual discovery here, i just wrote it --- houdini/handlers/play/navigation.py | 3 ++- houdini/handlers/play/pet.py | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/houdini/handlers/play/navigation.py b/houdini/handlers/play/navigation.py index 36089f0..9f75dfa 100644 --- a/houdini/handlers/play/navigation.py +++ b/houdini/handlers/play/navigation.py @@ -18,6 +18,7 @@ from houdini.handlers.games.ninja.fire import CardJitsuFireLogic, FireMatLogic, from houdini.handlers.games.ninja.water import CardJitsuWaterLogic, WaterSenseiLogic from houdini.handlers.games.sled import SledRacingLogic from houdini.handlers.games.treasure import TreasureHuntLogic +from houdini.handlers.play.pet import get_my_player_puffles TableLogicMapping = { 'four': ConnectFourLogic, @@ -77,7 +78,7 @@ async def handle_join_server(p, penguin_id: int, login_key: str): if login_key != p.login_key: return await p.close() - await p.send_xt('activefeatures') + await p.send_xt('pgu', *get_my_player_puffles(p)) moderator_status = 3 if p.character else 2 if p.stealth_moderator else 1 if p.moderator else 0 diff --git a/houdini/handlers/play/pet.py b/houdini/handlers/play/pet.py index 39baba6..cbaf329 100644 --- a/houdini/handlers/play/pet.py +++ b/houdini/handlers/play/pet.py @@ -242,8 +242,6 @@ async def load_pet_inventory(p): p.puffles = await PenguinPuffleCollection.get_collection(p.id) p.puffle_items = await PenguinPuffleItemCollection.get_collection(p.id) - await p.send_xt('pgu', *get_my_player_puffles(p)) - @handlers.handler(XTPacket('p', 'getdigcooldown'), pre_login=True) async def handle_get_dig_cooldown(p):