Commit Graph

220 Commits

Author SHA1 Message Date
DuckieTM 1a3ceefdc5 🆙 Oepsie forgot to add the Boolean 2026-04-18 11:57:45 +02:00
duckietm 74f3127f80 🆙 Bug Fixed in catalogue editor 2026-04-17 13:50:11 +02:00
duckietm 5b8aca458d 💳 Credits update 2026-04-14 14:51:25 +02:00
duckietm ab570885e6 🆙 Stage 1 New wired 2026-04-13 17:40:31 +02:00
DuckieTM 176d766665 Merge branch 'dev' into feat/wired-signal-flow-apr13 2026-04-13 17:00:54 +02:00
Lorenzune ae08d4b3f4 Preserve signal origin actor context 2026-04-13 16:45:40 +02:00
duckietm d5850e7e0b 🆙 Fixed not saveing selected furni 2026-04-13 16:36:43 +02:00
DuckieTM b06f380713 Merge pull request #76 from simoleo89/pr/catalog-admin-fixes
fix(catalog): NPE on page creation + admin handlers
2026-04-13 15:47:33 +02:00
duckietm c17cd4b14f 🆙 Teleport Wired fixed - thanks to xlRaiko 2026-04-13 14:44:35 +02:00
duckietm f18eeb7d67 🆙 Fix idle 2026-04-13 08:31:38 +02:00
Life 961c53950e fix(catalog): NPE on page creation + admin page image/icon handlers
- Fixed NullPointerException in CatalogPage constructor when `includes`
  column is null (added null-safety check)
- Added `includes` column to createCatalogPage INSERT statement (was
  missing, causing null column values)
- Added CatalogAdminSavePageImagesEvent (packet 10048): allows admin
  client to update page header/teaser images
- Added CatalogAdminSavePageIconEvent (packet 10049): allows admin
  client to update page icon type
- Registered both new handlers in PacketManager and Incoming
2026-04-13 00:07:02 +02:00
duckietm 263408dbed 🆕 YoutubeTV broadcasting 2026-04-10 09:05:21 +02:00
duckietm c5609ed00b 🆙 Added packet rate limit ==> 50 p/s & youtube fixes 2026-04-09 15:20:31 +02:00
duckietm 5172a74f61 🆙 Logic for the Youtube Broadcast 2026-04-09 11:47:53 +02:00
Lorenzune 17e316e521 Add wired signal and variable fixes 2026-04-08 16:18:16 +02:00
duckietm 559231e23e 🆙 Update ItemsComponent & NPE Roomunit
This does not try to auto-repair the broken room layout. A room with bad
door coordinates is a database / model-authoring issue that needs to
be fixed at the source; this patch only stops the gameserver from
crashing on every entry attempt and leaving permanent ghost units
behind. The warning log line identifies the specific room id so the
operator can investigate which rooms are broken.
2026-04-08 15:47:53 +02:00
duckietm fc487231a8 🆙 Added send username to badge 2026-04-08 14:08:22 +02:00
duckietm 7e22e215e5 🆙 Fix NPE
Fixed in-memory disconnection race caused by a sloppy antipattern pervasive in Habbo.java
2026-04-08 08:21:20 +02:00
duckietm 7786ba8e8f 🆙 Chatlog logging 2026-04-08 08:05:11 +02:00
Lorenzune cf90ab2bf0 Fix builders club virtual owner persistence 2026-04-07 16:56:57 +02:00
duckietm 6f2766547b 🆙 No debug logging for MariaDB 2026-04-07 16:14:40 +02:00
duckietm bcdb1f1812 🆙 Bumb to 4.1.1 2026-04-07 15:52:10 +02:00
Lorenzune ece0a16612 Merge remote-tracking branch 'upstream/main' into merge/duckietm-main-20260407
# Conflicts:
#	Emulator/src/main/java/com/eu/habbo/habbohotel/wired/core/WiredEngine.java
#	Emulator/src/main/java/com/eu/habbo/habbohotel/wired/core/WiredManager.java
2026-04-07 15:34:07 +02:00
duckietm 5e3a43a62b Stage 2 of DB rebuild 2026-04-07 15:02:45 +02:00
Lorenzune 50334d50e7 feat: add builders club catalog and room flow 2026-04-07 14:40:51 +02:00
duckietm 46230d0709 🆙 Stage 1 of DB rebuild 2026-04-07 13:53:21 +02:00
duckietm 75b73df8dc 🆙 Make Emulator Full MariaDB
- Swap mysql-connector-j → mariadb-java-client in pom.xml
- Changed JDBC URL to jdbc:mariadb://
Add all the HikariCP properties above (configurable via config.ini with sensible defaults)
- Fix the double-close in Database.dispose()
2026-04-07 11:00:04 +02:00
duckietm 5e586d1093 🆙 Fix in habbomanager
The getCloneAccounts query had an operator-precedence bug:

WHERE ip_register = ? OR ip_current = ? AND id != ?
-- parsed as:
WHERE ip_register = ? OR (ip_current = ? AND id != ?)

So a user whose ip_register matched themselves would show up in their own clone list. Added parentheses:

WHERE (ip_register = ? OR ip_current = ?) AND id != ?

So please run the 006_HabboManager_fix before you run the update Emulator !
2026-04-07 09:20:15 +02:00
DuckieTM 0adb99a962 🆙 Update Gifts 2026-04-05 14:53:10 +02:00
DuckieTM 773694460f 🆙 Small fix Wired Highscore 2026-04-04 16:26:20 +02:00
DuckieTM e6f824aedd 🆙 Wired Core updates
Thanks to Migueg
2026-04-04 16:19:46 +02:00
Lorenzune 3efcca1e34 feat: update wired movement and show message behavior 2026-04-04 15:57:43 +02:00
DuckieTM 0916ff1e0b 🆙 Redone the userwalk flood detection 2026-04-04 08:49:19 +02:00
Lorenzune 6ab152c47d feat: add room control furni and stack walk helper 2026-04-03 12:09:16 +02:00
Lorenzune db6cb80ca7 Merge remote-tracking branch 'upstream/main' into feature/checkpoint-20260403 2026-04-03 05:25:28 +02:00
Lorenzune 71e3878e53 chore: checkpoint current work 2026-04-03 05:22:25 +02:00
Lorenzune 9dc77aebf7 feat: add advanced wired variable system and tooling 2026-04-02 04:44:04 +02:00
duckietm 2246d82dc7 🆙 Fix Youtube TV's 2026-03-31 11:41:08 +02:00
Lorenzune a43fa87f4c Merge remote-tracking branch 'upstream/main' into feature/pr-20260327 2026-03-31 09:13:54 +02:00
DuckieTM 3bc82ee147 Merge pull request #59 from Lorenzune/feature/pr-20260327
Extend wired runtime metadata and placeholder support
2026-03-31 09:01:11 +02:00
DuckieTM 88536e4e88 Merge pull request #53 from simoleo89/furnieditor
feat: FurniEditor WebSocket (packets 10040-10045)
2026-03-30 11:12:13 +02:00
DuckieTM 0ebb303e0c 🆙 Small security fix Forum Groups & better cache
GuildChangeSettingsEvent 2000ms - Write
GuildForumPostThreadEvent 2000ms - Write
ModerateMessage/Thread 2000ms - Write
ThreadUpdate 2000ms -Write
UpdateSettings 2000ms- Write
MarkAsRead 2000ms - Write
Data/List/Threads/Messages - 500ms Read-only
2026-03-29 16:04:52 +02:00
DuckieTM c34bf49e64 🆕 Groups Forums
- Please run the 002_forum_groups.sql !
2026-03-29 14:46:53 +02:00
DuckieTM bf0f246b84 🆙 stage 1 2026-03-28 19:35:00 +01:00
Life 7e736900a3 feat: FurniEditor WebSocket handlers (10040-10045) — search, detail, update, delete, interactions 2026-03-27 20:10:03 +01:00
duckietm 9cbfc6c1db 🆙 Fix Groups Forum SQL code 2026-03-27 17:11:21 +01:00
Lorenzune dfd9cd1357 Extend wired runtime metadata and placeholder support
- add wf_xtra_text_output_furni_name and expand text placeholders for furni, users, bots and pets

- include room, entry, teleport and item metadata needed by the new :wired tools flow

- animate furniture position updates through the wired movement path

- fix teleport pair persistence/lookups for items_teleports with explicit column inserts
2026-03-27 09:37:14 +01:00
DuckieTM f7a75d8614 Merge pull request #51 from Lorenzune/feature/pr-20260326
Add wired evaluation and text placeholder extras
2026-03-26 15:19:59 +01:00
duckietm 95aea934bd 🆙 Fix rooms loading
- Layout Cache (eliminates 1 DB query per room load)

Standard room models (model_a, model_b, etc.) are loaded once at startup and cached in memory
RoomLayout gets a new constructor from cached data instead of ResultSet
~99% of rooms use standard models, so this saves a DB round-trip on nearly every room load

- Better Parallel Pipeline (reduced critical path)

Before: layout → [items|rights|wordfilter] → heightmap → [bots|pets|wired]
After:  layout → [items|rights|wordfilter|bots|pets] → [heightmap|wired]

Bots and pets only need layout for positioning, not items - so they now start immediately
Wired only needs items loaded (not heightmap) - so it now runs parallel with heightmap

-  Deferred Promotion Query (faster Room instantiation)

Moved room_promotions DB query from constructor to loadDataInternal() as an async task
Room constructor now only runs bans query (needed for entry check)
Saves ~20ms per Room instantiation for promoted rooms

-  Smart Heightmap (reduced tile iterations by 80-95%)

Instead of updating ALL tiles (1024 for 32x32 room), only updates tiles with items on them
Uses getTilesAt() for correct rotation-aware multi-tile coverage
For a room with 100 items on a 32x32 grid: ~200 tile updates instead of 1024
2026-03-26 12:44:12 +01:00
duckietm b755828d85 🆙 Small fix UserCreditsComposer
se this instead of this.client.getHabbo() since giveCredits() is already called on the Habbo instance itself. No need for the round-trip through the client.
2026-03-26 10:43:26 +01:00