Commit Graph

236 Commits

Author SHA1 Message Date
Life 0a56f46d28 Fix CatalogPagesListComposer parsing error in Nitro client
The Nitro client's NodeData parser enforces safety limits (max 1000 offers,
500 children, 20 depth) using Math.min() on the count but the server was
sending all data beyond those limits. The unread bytes left in the buffer
corrupted parsing of subsequent nodes, causing RangeError.

Cap server-side output to match client limits and snapshot offerIds array
to prevent potential race conditions between size() and iteration.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 21:52:55 +01:00
DuckieTM 195525a997 Merge pull request #43 from duckietm/dev
Dev
2026-03-24 11:50:02 +01:00
DuckieTM 0dc0c45096 Merge pull request #42 from Lorenzune/feature/wired-followups-20260324
Refine wired movement and extra behavior
2026-03-24 07:15:13 +01:00
Lorenzune 3a8c9985fb Refine wired movement and extra behavior 2026-03-24 02:11:54 +01:00
DuckieTM 01ea444636 Merge pull request #41 from duckietm/dev
㊙️ Security update
2026-03-23 22:22:32 +01:00
DuckieTM 64283d9242 ㊙️ Security update
- SQL injection fix: Replaced string concatenation of minPrice/maxPrice with proper parameterized ? placeholders using a paramIndex counter

- IDOR fix: Added user_id ownership check in MarketPlace.takeBackItem() — now verifies the DB user_id matches the requesting player before allowing item retrieval, with warning log on mismatch
2026-03-23 21:50:08 +01:00
DuckieTM 035ae48afa Merge pull request #40 from duckietm/dev
Dev
2026-03-23 16:26:29 +01:00
duckietm f6588c378a 🆙 Added the latest Compiled version and cleanup 2026-03-23 16:25:22 +01:00
DuckieTM 6350106b23 Merge pull request #39 from duckietm/main
Sync
2026-03-23 15:49:23 +01:00
DuckieTM e08387e5c8 Merge pull request #34 from simoleo89/catalog-redesign
feat: CatalogAdmin server handlers (10050-10059)
2026-03-23 15:22:38 +01:00
DuckieTM 84cb1c8c58 Merge pull request #37 from duckietm/dev
Dev
2026-03-22 21:37:28 +01:00
DuckieTM c8787209ff Merge pull request #35 from Lorenzune/feature/wired-movement-source-fixes
Feature/wired movement source fixes
2026-03-22 21:28:36 +01:00
Lorenzune 0b12c7d856 feat: improve wired movement and selector behavior 2026-03-22 16:48:51 +01:00
Life 4a20f26685 feat: CatalogAdmin server handlers (10050-10059) with acc_catalogfurni
Add 9 incoming packet handlers + 1 outgoing composer for catalog
admin management via websocket. All operations require acc_catalogfurni
permission.

Handlers:
- CatalogAdminSavePageEvent (10050) - UPDATE catalog_pages
- CatalogAdminCreatePageEvent (10051) - INSERT catalog_pages
- CatalogAdminDeletePageEvent (10052) - DELETE catalog_pages
- CatalogAdminSaveOfferEvent (10053) - UPDATE catalog_items
- CatalogAdminCreateOfferEvent (10054) - INSERT catalog_items
- CatalogAdminDeleteOfferEvent (10055) - DELETE catalog_items
- CatalogAdminMoveOfferEvent (10056) - reorder offers
- CatalogAdminMovePageEvent (10057) - move/toggle enabled/visible
- CatalogAdminPublishEvent (10058) - reload catalog + broadcast
- CatalogAdminResultComposer (10059) - response (success + message)

Includes:
- New permission constant ACC_CATALOGFURNI in Permission.java
- SQL migration to add acc_catalogfurni column to permissions table
- Enabled by default for Administrator rank (id=7)
2026-03-22 16:47:31 +01:00
DuckieTM dc930c086e 🆙 Small fix 2026-03-21 15:28:03 +01:00
DuckieTM eca64329cb Merge pull request #33 from Lorenzune/work/wired-sync-20260321
Work/wired sync 20260321
2026-03-21 15:09:47 +01:00
Lorenzune b82820c67b Merge remote-tracking branch 'upstream/main'
# Conflicts:
#	Emulator/src/main/java/com/eu/habbo/habbohotel/commands/CommandHandler.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/items/ItemManager.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotHabboHasHandItem.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectFurniToFurni.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectFurniToUser.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectUserToFurni.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerFurniStateToggled.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerHabboClicksFurni.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerHabboClicksTile.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerHabboClicksUser.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/rooms/RoomUnitManager.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/wired/WiredConditionType.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/wired/WiredEffectType.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/wired/WiredTriggerType.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/wired/core/WiredManager.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/wired/migrate/WiredEvents.java
#	Emulator/src/main/java/com/eu/habbo/messages/incoming/rooms/items/ClickFurniEvent.java
#	Emulator/src/main/java/com/eu/habbo/messages/incoming/rooms/users/ClickUserEvent.java
2026-03-21 14:46:11 +01:00
Lorenzune 3a5d1e21e3 feat(wired): expand advanced wired gameplay tools 2026-03-21 14:27:57 +01:00
DuckieTM 876150264f :basecampy: Added SQL for user_prefixes 2026-03-21 12:42:16 +01:00
DuckieTM d184808218 🆙 Added AvailableCommands 2026-03-21 12:27:43 +01:00
DuckieTM 0162327678 🆙 Latest compiled version 2026-03-21 09:13:52 +01:00
DuckieTM 55ac0205fa Merge pull request #32 from duckietm/dev
Dev
2026-03-21 09:08:04 +01:00
DuckieTM ca25740cdb Merge branch 'main' into dev 2026-03-21 09:06:27 +01:00
DuckieTM 533b4d1aa2 Merge pull request #30 from simoleo89/feature/custom-prefix-system-clean
feat: Custom Prefix System (Emulator)
2026-03-21 08:45:53 +01:00
simoleo89 6b4e6a8759 feat: custom prefix system with effects and admin commands
Backend implementation:
- UserPrefix model with effect field, DB CRUD operations
- PrefixesComponent inventory management
- PurchasePrefixEvent with settings, blacklist and currency validation
- Composers: UserPrefixes, PrefixReceived, ActivePrefixUpdated
- RoomChatMessage serializes active prefix (text, color, icon, effect)
- Admin commands: giveprefix, listprefixes, removeprefix, prefixblacklist
- CustomPrefixLayout catalog page
- SQL setup: user_prefixes, custom_prefix_settings, custom_prefix_blacklist tables
2026-03-20 17:14:15 +01:00
duckietm aefc1e787b 🆙 Stage 2 reconnect 2026-03-20 17:11:09 +01:00
duckietm 5807303807 🆙 Stage 1 reconnect 2026-03-20 16:08:51 +01:00
DuckieTM 349b2c4dcd Merge pull request #26 from Lorenzune/pr/wired-tools-command-20260319
feat(commands): add wired tools launcher
2026-03-19 21:05:50 +01:00
duckietm c2f3311344 🆙 Duplicate packet fix 2026-03-19 16:17:47 +01:00
duckietm 85ade76142 🆙 Latest comopiled version 2026-03-19 15:48:02 +01:00
Lorenzune 2a9f1c1c32 feat(commands): add wired tools launcher 2026-03-19 15:24:17 +01:00
Lorenzune 12079a43f8 feat(commands): add wired tools launcher 2026-03-19 15:22:49 +01:00
DuckieTM 1398f4e430 Merge pull request #25 from Lorenzune/pr/wired-advanced-conditions-timezone-20260319
feat(wired): add advanced match conditions and hotel timezone
2026-03-19 15:07:32 +01:00
Lorenzune 00782cbde9 feat(wired): add advanced match conditions and hotel timezone 2026-03-19 14:30:32 +01:00
Lorenzune e234debfbd feat(wired): add advanced match conditions and hotel timezone 2026-03-19 14:27:26 +01:00
duckietm 5743341220 🆙 Fix conflict import 2026-03-19 10:20:35 +01:00
DuckieTM 727f0a9242 Merge pull request #23 from Lorenzune/pr/wired-altitude-relative-move-clean-20260318
feat(wired): add altitude and relative move effects
2026-03-19 10:05:39 +01:00
DuckieTM ee95e6e266 Merge pull request #24 from Lorenzune/pr/wired-triggers-clean-20260318
feat(wired): add leave/click/action/short-period triggers
2026-03-19 10:05:21 +01:00
DuckieTM db5f09f81a Merge branch 'main' into pr/wired-triggers-clean-20260318 2026-03-19 10:05:04 +01:00
DuckieTM 67d0639bee Merge branch 'main' into pr/wired-altitude-relative-move-clean-20260318 2026-03-19 10:04:39 +01:00
DuckieTM 5a8c17b97e Merge pull request #22 from Lorenzune/pr/wired-freeze-furni-movement-clean-20260318
feat(wired): add freeze and furni movement effects
2026-03-19 09:55:14 +01:00
DuckieTM 5b76dd25cd Merge pull request #19 from Lorenzune/pr/wired-reward-mute-fixes-20260318
fix(wired): improve rewards and room mute feedback
2026-03-19 09:54:45 +01:00
duckietm 77fea6b9fd 🆙 Added more rate limiting to the emu 2026-03-19 08:12:05 +01:00
Lorenzune 75151accb5 feat(wired): add upcounter clock controls and checks 2026-03-19 00:01:59 +01:00
Lorenzune 8a9670759a feat(wired): add altitude and relative move effects 2026-03-18 17:40:43 +01:00
Lorenzune d8a68ad8d3 feat(wired): add freeze and furni movement effects
- register interaction types wf_act_freeze, wf_act_unfreeze, wf_act_furni_to_user, wf_act_user_to_furni and wf_act_furni_to_furni

- add effect types FREEZE, UNFREEZE, FURNI_TO_USER, USER_TO_FURNI and FURNI_TO_FURNI

- add freeze handling with cancel-on-teleport and cleanup on teleport or room leave

- support furni-to-furni secondary target selection and immediate furni position persistence

- prevent frozen users from walking until they are unfrozen or moved out of the frozen state
2026-03-18 17:40:43 +01:00
Lorenzune 13669ba8ce feat(wired): add leave/click/action/short-period triggers
- add wf_trg_leave_room, wf_trg_stuff_state, wf_trg_period_short, wf_trg_click_furni, wf_trg_click_tile, wf_trg_click_user and wf_trg_user_performs_action\n- add interaction type room_invisible_click_tile\n- persist selector-driven MatchFurni and ToggleRandom state changes\n- use configured duration in WiredEffectMuteHabbo
2026-03-18 17:38:42 +01:00
Lorenzune d70841d61e Merge upstream/main into main 2026-03-18 17:32:16 +01:00
Lorenzune fb280c0912 fix(wired): improve rewards and room mute feedback 2026-03-18 17:03:25 +01:00
Lorenzune c9f5c62c7f fix(wired): improve rewards and room mute feedback 2026-03-18 17:01:10 +01:00