mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-03 08:03:50 +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
9f3bead117
commit
ce6f66fcfa
6 changed files with 246 additions and 11 deletions
|
|
@ -261,6 +261,15 @@ public:
|
|||
std::string getLastWhisperSender() const { return lastWhisperSender_; }
|
||||
void setLastWhisperSender(const std::string& name) { lastWhisperSender_ = name; }
|
||||
|
||||
// Party/Raid management
|
||||
void uninvitePlayer(const std::string& playerName);
|
||||
void leaveParty();
|
||||
void setMainTank(uint64_t targetGuid);
|
||||
void setMainAssist(uint64_t targetGuid);
|
||||
void clearMainTank();
|
||||
void clearMainAssist();
|
||||
void requestRaidInfo();
|
||||
|
||||
// ---- Phase 1: Name queries ----
|
||||
void queryPlayerName(uint64_t guid);
|
||||
void queryCreatureInfo(uint32_t entry, uint64_t guid);
|
||||
|
|
|
|||
|
|
@ -175,6 +175,8 @@ enum class Opcode : uint16_t {
|
|||
SMSG_GROUP_LIST = 0x07D,
|
||||
SMSG_PARTY_COMMAND_RESULT = 0x07E,
|
||||
MSG_RAID_TARGET_UPDATE = 0x321,
|
||||
CMSG_REQUEST_RAID_INFO = 0x2CD,
|
||||
SMSG_RAID_INSTANCE_INFO = 0x2CC,
|
||||
|
||||
// ---- Phase 5: Loot ----
|
||||
CMSG_AUTOSTORE_LOOT_ITEM = 0x108,
|
||||
|
|
|
|||
|
|
@ -884,6 +884,39 @@ public:
|
|||
static network::Packet build();
|
||||
};
|
||||
|
||||
// ============================================================
|
||||
// Party/Raid Management
|
||||
// ============================================================
|
||||
|
||||
/** CMSG_GROUP_UNINVITE_GUID packet builder */
|
||||
class GroupUninvitePacket {
|
||||
public:
|
||||
static network::Packet build(const std::string& playerName);
|
||||
};
|
||||
|
||||
/** CMSG_GROUP_DISBAND packet builder */
|
||||
class GroupDisbandPacket {
|
||||
public:
|
||||
static network::Packet build();
|
||||
};
|
||||
|
||||
/** MSG_RAID_TARGET_UPDATE packet builder */
|
||||
class RaidTargetUpdatePacket {
|
||||
public:
|
||||
/**
|
||||
* Build raid target marker update packet
|
||||
* @param targetIndex 0-7 for raid icons, 0 = MainTank, 1 = MainAssist
|
||||
* @param targetGuid GUID to mark, or 0 to clear
|
||||
*/
|
||||
static network::Packet build(uint8_t targetIndex, uint64_t targetGuid);
|
||||
};
|
||||
|
||||
/** CMSG_REQUEST_RAID_INFO packet builder */
|
||||
class RequestRaidInfoPacket {
|
||||
public:
|
||||
static network::Packet build();
|
||||
};
|
||||
|
||||
// ============================================================
|
||||
// Random Roll
|
||||
// ============================================================
|
||||
|
|
@ -1315,12 +1348,6 @@ public:
|
|||
static network::Packet build();
|
||||
};
|
||||
|
||||
/** CMSG_GROUP_DISBAND (leave party) packet builder */
|
||||
class GroupDisbandPacket {
|
||||
public:
|
||||
static network::Packet build();
|
||||
};
|
||||
|
||||
/** SMSG_GROUP_LIST parser */
|
||||
class GroupListParser {
|
||||
public:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue