Check Hearthstone capacity before the innkeeper bind changes home - #3501
Open
relh wants to merge 1 commit into
Open
Check Hearthstone capacity before the innkeeper bind changes home#3501relh wants to merge 1 commit into
relh wants to merge 1 commit into
Conversation
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
force-pushed
the
binder-hearthstone-capacity
branch
from
July 20, 2026 04:56
a2de89c to
f1ea63d
Compare
Contributor
|
Why is this an issue? What happens when you try to set hearthstone with full bags and no hearthstone on the official servers? |
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🍰 Pullrequest
SendBindPointunconditionally casts spell 3286 onCMSG_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
ConfirmBinderintentionally 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 ordinaryEQUIP_ERR_INVENTORY_FULL, the gossip stays open, and home is unchanged.Proof
Spell.dbc 3286: effect 0
SPELL_EFFECT_BINDprecedes effect 1SPELL_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