Skip to content

Check Hearthstone capacity before the innkeeper bind changes home - #3501

Open
relh wants to merge 1 commit into
vmangos:developmentfrom
relh:binder-hearthstone-capacity
Open

Check Hearthstone capacity before the innkeeper bind changes home#3501
relh wants to merge 1 commit into
vmangos:developmentfrom
relh:binder-hearthstone-capacity

Conversation

@relh

@relh relh commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

🍰 Pullrequest

SendBindPoint unconditionally casts spell 3286 on CMSG_BINDER_ACTIVATE. Effect 0 (bind) executes before effect 1 (create Hearthstone item 6948), so a player with full bags and no Hearthstone gets a committed home-bind change plus a failed item creation — and the bind can't be rolled back.

The 5875 client's ConfirmBinder intentionally sends the packet without any inventory preflight, so the server is the only place to check. This adds a capacity preflight before the cast: a free slot is required only when the character owns no Hearthstone at all (bags and bank checked — an existing stone means effect 1 creates nothing). On failure the player gets the ordinary EQUIP_ERR_INVENTORY_FULL, the gossip stays open, and home is unchanged.

Proof

Spell.dbc 3286: effect 0 SPELL_EFFECT_BIND precedes effect 1 SPELL_EFFECT_CREATE_ITEM (6948). Tested with a stock 1.12.1.5875 client: full-bag/no-stone binding fails cleanly with home intact; normal binding and rebinding with an existing stone unchanged.

Issues

  • None found for this.

Spell 3286's bind effect runs before its create-item effect, so a
full-bag player with no Hearthstone gets their home bind moved while the
Hearthstone creation fails, with no way to undo the bind. The 5875
client's ConfirmBinder deliberately sends CMSG_BINDER_ACTIVATE without an
inventory preflight, so the authoritative check belongs here: require
capacity for item 6948 only when the character owns no Hearthstone
anywhere (bags or bank), and answer failure with the ordinary equip
error while leaving the gossip open and home unchanged.
@relh
relh force-pushed the binder-hearthstone-capacity branch from a2de89c to f1ea63d Compare July 20, 2026 04:56
@ratkosrb

Copy link
Copy Markdown
Contributor

Why is this an issue? What happens when you try to set hearthstone with full bags and no hearthstone on the official servers?

@relh

relh commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

I'm going to jump into classic (not canonical 1.12 but still interesting) and try to do this. Then I'll use the /unstuck command if they still have that for hearthing or just run into an instance I'm not a part of and then see where it takes me. Will follow-up here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants