mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-24 08:00:14 +00:00
Add Tier 6 commands: party/raid management
- Uninvite/kick: /uninvite, /kick <player name> to remove player from party/raid - Leave party: /leave, /leaveparty to leave current group - Main tank: /maintank, /mt to set target as main tank (uses raid marker index 0) - Main assist: /mainassist, /ma to set target as main assist (uses raid marker index 1) - Clear markers: /clearmaintank, /clearmainassist to remove designations - Raid info: /raidinfo to display raid lockouts and saved instances Added opcodes: - CMSG_REQUEST_RAID_INFO (0x2CD) for requesting raid lockout info - SMSG_RAID_INSTANCE_INFO (0x2CC) for receiving raid info response New packet builders: - GroupUninvitePacket for removing players from group - GroupDisbandPacket for leaving party (with logging) - RaidTargetUpdatePacket for setting raid markers (main tank/assist) - RequestRaidInfoPacket for querying raid lockouts All commands include proper validation and user feedback.
This commit is contained in:
parent
627c2fe0f6
commit
d5b734a591
6 changed files with 246 additions and 11 deletions
|
|
@ -1330,6 +1330,74 @@ void GameScreen::sendChatMessage(game::GameHandler& gameHandler) {
|
|||
return;
|
||||
}
|
||||
|
||||
// Party/Raid management commands
|
||||
if (cmdLower == "uninvite" || cmdLower == "kick") {
|
||||
if (spacePos != std::string::npos) {
|
||||
std::string playerName = command.substr(spacePos + 1);
|
||||
gameHandler.uninvitePlayer(playerName);
|
||||
} else {
|
||||
game::MessageChatData msg;
|
||||
msg.type = game::ChatType::SYSTEM;
|
||||
msg.language = game::ChatLanguage::UNIVERSAL;
|
||||
msg.message = "Usage: /uninvite <player name>";
|
||||
gameHandler.addLocalChatMessage(msg);
|
||||
}
|
||||
chatInputBuffer[0] = '\0';
|
||||
return;
|
||||
}
|
||||
|
||||
if (cmdLower == "leave" || cmdLower == "leaveparty") {
|
||||
gameHandler.leaveParty();
|
||||
chatInputBuffer[0] = '\0';
|
||||
return;
|
||||
}
|
||||
|
||||
if (cmdLower == "maintank" || cmdLower == "mt") {
|
||||
if (gameHandler.hasTarget()) {
|
||||
gameHandler.setMainTank(gameHandler.getTargetGuid());
|
||||
} else {
|
||||
game::MessageChatData msg;
|
||||
msg.type = game::ChatType::SYSTEM;
|
||||
msg.language = game::ChatLanguage::UNIVERSAL;
|
||||
msg.message = "You must target a player to set as main tank.";
|
||||
gameHandler.addLocalChatMessage(msg);
|
||||
}
|
||||
chatInputBuffer[0] = '\0';
|
||||
return;
|
||||
}
|
||||
|
||||
if (cmdLower == "mainassist" || cmdLower == "ma") {
|
||||
if (gameHandler.hasTarget()) {
|
||||
gameHandler.setMainAssist(gameHandler.getTargetGuid());
|
||||
} else {
|
||||
game::MessageChatData msg;
|
||||
msg.type = game::ChatType::SYSTEM;
|
||||
msg.language = game::ChatLanguage::UNIVERSAL;
|
||||
msg.message = "You must target a player to set as main assist.";
|
||||
gameHandler.addLocalChatMessage(msg);
|
||||
}
|
||||
chatInputBuffer[0] = '\0';
|
||||
return;
|
||||
}
|
||||
|
||||
if (cmdLower == "clearmaintank") {
|
||||
gameHandler.clearMainTank();
|
||||
chatInputBuffer[0] = '\0';
|
||||
return;
|
||||
}
|
||||
|
||||
if (cmdLower == "clearmainassist") {
|
||||
gameHandler.clearMainAssist();
|
||||
chatInputBuffer[0] = '\0';
|
||||
return;
|
||||
}
|
||||
|
||||
if (cmdLower == "raidinfo") {
|
||||
gameHandler.requestRaidInfo();
|
||||
chatInputBuffer[0] = '\0';
|
||||
return;
|
||||
}
|
||||
|
||||
// Chat channel slash commands
|
||||
bool isChannelCommand = false;
|
||||
if (cmdLower == "s" || cmdLower == "say") {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue