DuckieTM
9c3d887447
Merge pull request #212 from simoleo89/fix/room-item-safety
...
Harden room item packet guards
2026-06-15 22:17:39 +02:00
DuckieTM
316613db6e
Merge pull request #211 from simoleo89/fix/catalog-inventory-safety
...
Harden catalog inventory safety guards
2026-06-15 22:17:14 +02:00
DuckieTM
5f4e91133e
Merge branch 'dev' into fix/catalog-inventory-safety
2026-06-15 22:17:00 +02:00
DuckieTM
47dcbae4b3
Merge pull request #210 from simoleo89/feat/earnings-center
...
feat: add emulator earnings center
2026-06-15 22:16:09 +02:00
DuckieTM
cdc0620c9b
Merge pull request #209 from simoleo89/fix/forum-input-guards
...
fix(forums): validate guild forum inputs
2026-06-15 22:15:49 +02:00
DuckieTM
b7f153f8e7
Merge pull request #206 from simoleo89/fix/modtool-staff-action-guards
...
fix(modtool): harden staff and report workflows
2026-06-15 22:15:14 +02:00
simoleo89
bea385afe2
fix(rooms): harden room item packet guards
2026-06-15 22:07:24 +02:00
simoleo89
8c7d6db135
fix(catalog): harden marketplace and inventory mutations
2026-06-15 22:01:38 +02:00
simoleo89
95bd84a95f
fix(rcon): register guard defaults before startup
2026-06-15 22:01:25 +02:00
simoleo89
22b05b4e52
feat(earnings): gate rewards by user progress
2026-06-15 21:49:45 +02:00
simoleo89
766d8d67d3
feat(earnings): integrate native reward sources
2026-06-15 21:14:35 +02:00
simoleo89
bd9657cf63
docs(earnings): document renderer packet contract
2026-06-15 20:48:43 +02:00
simoleo89
e29e06201c
feat(earnings): add emulator rewards center
2026-06-15 20:41:00 +02:00
simoleo89
dac83e8a62
docs(earnings): define emulator rewards center
2026-06-15 20:25:48 +02:00
simoleo89
916ef7af3a
fix(modtool): guard ticket lifecycle inputs
2026-06-15 20:15:47 +02:00
simoleo89
044d1141cd
fix(modtool): validate report payloads
2026-06-15 20:15:46 +02:00
simoleo89
c98261d8c3
fix(forums): validate guild forum inputs
2026-06-15 20:13:42 +02:00
simoleo89
8ba9132e7e
fix(modtool): bound staff supplied messages
2026-06-15 19:54:34 +02:00
simoleo89
36a06647f0
fix(modtool): enforce staff target rank ceilings
2026-06-15 19:51:36 +02:00
DuckieTM
c48e01cb8e
Merge pull request #205 from Lorenzune/pr-emulator-release-dispatch
...
Allow manual emulator release workflow
2026-06-15 07:25:13 +02:00
DuckieTM
916cf9ba9e
Merge pull request #203 from simoleo89/fix/housekeeping-core-peer-rank
...
fix(housekeeping): harden privileged staff actions
2026-06-15 07:24:55 +02:00
DuckieTM
0af489cef2
Merge pull request #199 from simoleo89/fix/modtool-sanction-rank-ceilings
...
fix(modtool): enforce permissions and sanction rank ceilings
2026-06-15 07:24:30 +02:00
DuckieTM
6171ec7bab
Merge pull request #198 from simoleo89/chore/deps-resilience-validation
...
fix(rcon): harden privileged commands and payloads
2026-06-15 07:24:12 +02:00
DuckieTM
c048713b22
Merge branch 'dev' into chore/deps-resilience-validation
2026-06-15 07:24:02 +02:00
DuckieTM
e5e3918513
Merge pull request #190 from simoleo89/fix/catalog-page-mutation-guards
...
fix(catalog): harden admin mutations and voucher claims
2026-06-15 07:22:47 +02:00
DuckieTM
14593b4638
Merge pull request #188 from simoleo89/fix/furnieditor-update-validation
...
fix(furni-editor): validate and sync furnidata changes
2026-06-15 07:22:24 +02:00
DuckieTM
c199d805d8
Merge pull request #184 from simoleo89/fix/guild-badge-packet-parts
...
fix(guilds): validate badge packets and memberships
2026-06-15 07:22:01 +02:00
DuckieTM
3282430b67
Merge pull request #183 from simoleo89/fix/command-description-texts
...
fix(commands): complete and quiet command descriptions
2026-06-15 07:21:39 +02:00
DuckieTM
560def21d7
Merge pull request #180 from simoleo89/fix/items-ownership-and-charges
...
fix(items): harden ownership and redeem lifecycle
2026-06-15 07:21:09 +02:00
DuckieTM
5011fdf848
Merge pull request #179 from simoleo89/fix/rooms-self-moderation-scope
...
fix(rooms): scope room actions and bound rights removal
2026-06-15 07:20:41 +02:00
DuckieTM
d34b44a656
Merge pull request #177 from simoleo89/style/startup-console
...
style(startup): console banner/splash/colors
2026-06-15 07:20:23 +02:00
DuckieTM
848b8bd5ce
Merge pull request #176 from simoleo89/fix/messages-duplicate-aliases
...
fix(messages): silence duplicate packet aliases
2026-06-15 07:19:39 +02:00
DuckieTM
80400f828c
Merge pull request #172 from simoleo89/fix/marketplace-claimed-payout
...
fix(marketplace): only pay out claimed offers after detach
2026-06-15 07:19:10 +02:00
DuckieTM
6868dd8d3d
Merge pull request #171 from simoleo89/fix/trading-persistence-abort
...
fix(trading): harden trade lifecycle
2026-06-15 07:18:51 +02:00
Lorenzune
9f1e036310
Allow manual emulator release workflow
2026-06-15 02:16:23 +02:00
simoleo89
ec24283e0f
fix(housekeeping): protect room owner mutations
2026-06-14 22:17:47 +02:00
simoleo89
93c4565660
fix(housekeeping): bound staff supplied text
2026-06-14 22:14:41 +02:00
simoleo89
31027095ec
fix(housekeeping): enforce rank ceilings on rank changes
2026-06-14 21:55:19 +02:00
simoleo89
aa6dcd1062
fix(rcon): bound alert payloads
2026-06-14 21:40:59 +02:00
simoleo89
11554eae7b
fix(rcon): validate social and room commands
2026-06-14 21:23:21 +02:00
simoleo89
25273679a1
fix(rcon): constrain remote command execution
2026-06-14 21:18:28 +02:00
simoleo89
15b56f9519
fix(rcon): bound mute and achievement mutations
2026-06-14 21:13:24 +02:00
simoleo89
8412a51ec4
fix(rcon): guard user update mutations
2026-06-14 21:02:28 +02:00
simoleo89
5d8dc670bd
fix(rcon): cap subscription duration changes
2026-06-14 21:02:28 +02:00
simoleo89
81c8dfc605
fix(rcon): harden gift creation requests
2026-06-14 21:02:27 +02:00
simoleo89
4747699656
fix(rcon): validate room ownership and clothing grants
2026-06-14 21:02:27 +02:00
simoleo89
dba0337a7b
fix(rcon): validate grant requests
2026-06-14 21:02:18 +02:00
simoleo89
3cb24a5185
fix(rcon): constrain setrank requests
2026-06-14 21:01:27 +02:00
simoleo89
775197984f
fix(rcon): validate offline badge targets
...
GiveBadge could treat a missing offline user as eligible for a badge and insert through a nullable user subquery. Depending on SQL mode this could fail late or persist an orphaned user_id value. Resolve the offline user first, return HABBO_NOT_FOUND when absent, and insert badges with the resolved user id only.
2026-06-14 21:01:27 +02:00
simoleo89
4eafb54c57
fix(rcon): allow online motto updates outside rooms
...
SetMotto updated the in-memory motto and then unconditionally broadcast RoomUserData through the current room. Online users without a current room could throw a null-pointer exception after the state change, making the RCON call report an error despite mutating the user. Only broadcast room data when a room is present and cover the invariant with a contract test.
2026-06-14 21:01:26 +02:00