feat: fire PLAYER_CONTROL_LOST/GAINED on movement control changes

Fire PLAYER_CONTROL_LOST when SMSG_CLIENT_CONTROL_UPDATE revokes player
movement (stun, fear, mind control, etc.) and PLAYER_CONTROL_GAINED when
movement is restored.

Used by loss-of-control addons and action bar addons to show stun/CC
indicators and disable ability buttons during crowd control.
This commit is contained in:
Kelsi 2026-03-21 05:42:57 -07:00
parent 2e6400f22e
commit d20357415b

View file

@ -3295,8 +3295,10 @@ void GameHandler::handlePacket(network::Packet& packet) {
sendMovement(Opcode::MSG_MOVE_STOP_TURN); sendMovement(Opcode::MSG_MOVE_STOP_TURN);
sendMovement(Opcode::MSG_MOVE_STOP_SWIM); sendMovement(Opcode::MSG_MOVE_STOP_SWIM);
addSystemChatMessage("Movement disabled by server."); addSystemChatMessage("Movement disabled by server.");
if (addonEventCallback_) addonEventCallback_("PLAYER_CONTROL_LOST", {});
} else if (changed && allowMovement) { } else if (changed && allowMovement) {
addSystemChatMessage("Movement re-enabled."); addSystemChatMessage("Movement re-enabled.");
if (addonEventCallback_) addonEventCallback_("PLAYER_CONTROL_GAINED", {});
} }
} }
break; break;