From 4efe624af12293aea60607f879aae0d7d3527318 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Fri, 3 Jun 2022 20:01:55 -0400 Subject: [PATCH] Core/PacketIO: Updated packet structures to 9.2.5 Port From (https://github.com/TrinityCore/TrinityCore/commit/d3c4216de8e1dcb9f62d2fcc1b9b72852e5409c9) --- Source/Framework/Constants/Network/Opcodes.cs | 1362 +++++++++-------- .../Framework/Constants/SupportSystemConst.cs | 55 +- .../Database/Databases/CharacterDatabase.cs | 6 +- .../Entities/Object/Update/UpdateFields.cs | 6 +- Source/Game/Entities/Object/WorldObject.cs | 4 +- Source/Game/Entities/Player/Player.Items.cs | 7 +- Source/Game/Groups/Group.cs | 6 + Source/Game/Guilds/Guild.cs | 39 +- Source/Game/Guilds/GuildManager.cs | 4 +- Source/Game/Handlers/AuctionHandler.cs | 27 + Source/Game/Handlers/CharacterHandler.cs | 23 - Source/Game/Handlers/SocialHandler.cs | 8 + Source/Game/Handlers/TicketHandler.cs | 4 +- .../Networking/Packets/AuctionHousePackets.cs | 7 + .../Networking/Packets/GarrisonPackets.cs | 90 +- .../Game/Networking/Packets/GuildPackets.cs | 4 + Source/Game/Networking/Packets/LFGPackets.cs | 5 + .../Networking/Packets/MovementPackets.cs | 5 +- .../Game/Networking/Packets/PartyPackets.cs | 2 + .../Game/Networking/Packets/SocialPackets.cs | 20 + .../Game/Networking/Packets/TicketPackets.cs | 10 +- Source/Game/SupportSystem/SupportTickets.cs | 20 +- sql/base/characters_database.sql | 7 +- .../master/2022_06_01_00_characters.sql | 12 + 24 files changed, 957 insertions(+), 776 deletions(-) create mode 100644 sql/updates/characters/master/2022_06_01_00_characters.sql diff --git a/Source/Framework/Constants/Network/Opcodes.cs b/Source/Framework/Constants/Network/Opcodes.cs index e122752d3..0fecc1e11 100644 --- a/Source/Framework/Constants/Network/Opcodes.cs +++ b/Source/Framework/Constants/Network/Opcodes.cs @@ -19,21 +19,22 @@ namespace Framework.Constants { public enum ClientOpcodes : uint { - AbandonNpeResponse = 0x33f2, + AbandonNpeResponse = 0x33e1, AcceptGuildInvite = 0x35fc, + AcceptSocialContract = 0x373b, AcceptTrade = 0x315a, AcceptWargameInvite = 0x35e0, - AccountNotificationAcknowledged = 0x3732, - ActivateSoulbind = 0x33e1, + AccountNotificationAcknowledged = 0x3731, + ActivateSoulbind = 0x33d0, ActivateTaxi = 0x34b1, AddonList = 0x35d8, AddAccountCosmetic = 0x32a9, - AddBattlenetFriend = 0x365a, - AddFriend = 0x36cd, - AddIgnore = 0x36d1, + AddBattlenetFriend = 0x3659, + AddFriend = 0x36cc, + AddIgnore = 0x36d0, AddToy = 0x32a8, AdventureJournalOpenQuest = 0x3205, - AdventureJournalUpdateSuggestions = 0x33e4, + AdventureJournalUpdateSuggestions = 0x33d3, AdventureMapStartQuest = 0x3360, AlterAppearance = 0x3503, AreaSpiritHealerQuery = 0x34b6, @@ -44,8 +45,8 @@ namespace Framework.Constants AssignEquipmentSetSpec = 0x3211, AttackStop = 0x3260, AttackSwing = 0x325f, - AuctionableTokenSell = 0x36e3, - AuctionableTokenSellAtMarketPrice = 0x36e4, + AuctionableTokenSell = 0x36e2, + AuctionableTokenSellAtMarketPrice = 0x36e3, AuctionBrowseQuery = 0x34d6, AuctionCancelCommoditiesPurchase = 0x34de, AuctionConfirmCommoditiesPurchase = 0x34dd, @@ -59,9 +60,10 @@ namespace Framework.Constants AuctionPlaceBid = 0x34d5, AuctionRemoveItem = 0x34d3, AuctionReplicateItems = 0x34d4, + AuctionRequestFavoriteList = 0x3733, AuctionSellCommodity = 0x34df, AuctionSellItem = 0x34d2, - AuctionSetFavoriteItem = 0x3733, + AuctionSetFavoriteItem = 0x3732, AuthContinuedSession = 0x3766, AuthSession = 0x3765, AutobankItem = 0x3997, @@ -86,19 +88,19 @@ namespace Framework.Constants BattlemasterJoinArena = 0x3531, BattlemasterJoinBrawl = 0x3535, BattlemasterJoinSkirmish = 0x3532, - BattlenetChallengeResponse = 0x36d0, - BattlenetRequest = 0x36f2, - BattlePayAckFailedResponse = 0x36ca, - BattlePayCancelOpenCheckout = 0x3710, - BattlePayConfirmPurchaseResponse = 0x36c9, - BattlePayDistributionAssignToTarget = 0x36c0, + BattlenetChallengeResponse = 0x36cf, + BattlenetRequest = 0x36f1, + BattlePayAckFailedResponse = 0x36c9, + BattlePayCancelOpenCheckout = 0x370f, + BattlePayConfirmPurchaseResponse = 0x36c8, + BattlePayDistributionAssignToTarget = 0x36bf, BattlePayDistributionAssignVas = 0x3736, - BattlePayGetProductList = 0x36b8, - BattlePayGetPurchaseList = 0x36b9, - BattlePayOpenCheckout = 0x3709, - BattlePayRequestPriceInfo = 0x3705, - BattlePayStartPurchase = 0x36c8, - BattlePayStartVasPurchase = 0x36ef, + BattlePayGetProductList = 0x36b7, + BattlePayGetPurchaseList = 0x36b8, + BattlePayOpenCheckout = 0x3708, + BattlePayRequestPriceInfo = 0x3704, + BattlePayStartPurchase = 0x36c7, + BattlePayStartVasPurchase = 0x36ee, BattlePetClearFanfare = 0x312c, BattlePetDeletePet = 0x3625, BattlePetDeletePetCheat = 0x3626, @@ -116,28 +118,28 @@ namespace Framework.Constants BlackMarketOpen = 0x353d, BlackMarketRequestItems = 0x353e, BonusRoll = 0x338b, - BugReport = 0x3685, + BugReport = 0x3684, BusyTrade = 0x3158, BuyBackItem = 0x34aa, BuyBankSlot = 0x34ba, BuyItem = 0x34a9, BuyReagentBank = 0x34bb, CageBattlePet = 0x31f4, - CalendarAddEvent = 0x367d, - CalendarCommunityInvite = 0x3671, - CalendarComplain = 0x3679, - CalendarCopyEvent = 0x3678, - CalendarEventSignUp = 0x367b, - CalendarGet = 0x366f, - CalendarGetEvent = 0x3670, - CalendarGetNumPending = 0x367a, - CalendarInvite = 0x3672, - CalendarModeratorStatus = 0x3676, - CalendarRemoveEvent = 0x3677, - CalendarRemoveInvite = 0x3673, - CalendarRsvp = 0x3674, - CalendarStatus = 0x3675, - CalendarUpdateEvent = 0x367e, + CalendarAddEvent = 0x367c, + CalendarCommunityInvite = 0x3670, + CalendarComplain = 0x3678, + CalendarCopyEvent = 0x3677, + CalendarEventSignUp = 0x367a, + CalendarGet = 0x366e, + CalendarGetEvent = 0x366f, + CalendarGetNumPending = 0x3679, + CalendarInvite = 0x3671, + CalendarModeratorStatus = 0x3675, + CalendarRemoveEvent = 0x3676, + CalendarRemoveInvite = 0x3672, + CalendarRsvp = 0x3673, + CalendarStatus = 0x3674, + CalendarUpdateEvent = 0x367d, CancelAura = 0x31af, CancelAutoRepeatSpell = 0x34f5, CancelCast = 0x32af, @@ -149,22 +151,22 @@ namespace Framework.Constants CancelQueuedSpell = 0x3180, CancelTempEnchantment = 0x3500, CancelTrade = 0x315c, - CanDuel = 0x3662, - CanRedeemTokenForBalance = 0x3704, + CanDuel = 0x3661, + CanRedeemTokenForBalance = 0x3703, CastSpell = 0x32ac, ChallengeModeRequestLeaders = 0x3090, ChangeBagSlotFlag = 0x3345, ChangeBankBagSlotFlag = 0x3346, ChangeMonumentAppearance = 0x3326, - ChangeRealmTicket = 0x36f7, - ChangeSubGroup = 0x364c, - CharacterCheckUpgrade = 0x36c3, - CharacterRenameRequest = 0x36be, - CharacterUpgradeManualUnrevokeRequest = 0x36c1, - CharacterUpgradeStart = 0x36c2, - CharCustomize = 0x368c, - CharDelete = 0x369b, - CharRaceOrFactionChange = 0x3692, + ChangeRealmTicket = 0x36f6, + ChangeSubGroup = 0x364b, + CharacterCheckUpgrade = 0x36c2, + CharacterRenameRequest = 0x36bd, + CharacterUpgradeManualUnrevokeRequest = 0x36c0, + CharacterUpgradeStart = 0x36c1, + CharCustomize = 0x368b, + CharDelete = 0x369a, + CharRaceOrFactionChange = 0x3691, ChatAddonMessage = 0x37ee, ChatAddonMessageTargeted = 0x37ef, ChatChannelAnnouncements = 0x37e3, @@ -201,28 +203,29 @@ namespace Framework.Constants ChatReportFiltered = 0x37cc, ChatReportIgnored = 0x37cb, ChatUnregisterAllAddonPrefixes = 0x37ce, - CheckCharacterNameAvailability = 0x3645, + CheckCharacterNameAvailability = 0x3644, CheckIsAdventureMapPoiValid = 0x3251, ChoiceResponse = 0x32b4, - ChromieTimeSelectExpansion = 0x33e0, - ClaimWeeklyReward = 0x33bc, + ChromieTimeSelectExpansion = 0x33cf, + ClaimWeeklyReward = 0x33ab, ClearNewAppearance = 0x312f, ClearRaidMarker = 0x31a7, ClearTradeItem = 0x315e, ClientPortGraveyard = 0x3539, CloseInteraction = 0x3499, CloseQuestChoice = 0x32b5, - CloseRuneforgeInteraction = 0x33e8, - ClubFinderApplicationResponse = 0x371b, - ClubFinderGetApplicantsList = 0x3719, - ClubFinderPost = 0x3716, - ClubFinderRequestClubsData = 0x371d, - ClubFinderRequestClubsList = 0x3717, - ClubFinderRequestMembershipToClub = 0x3718, - ClubFinderRequestPendingClubsList = 0x371c, - ClubFinderRequestSubscribedClubPostingIds = 0x371e, - ClubFinderRespondToApplicant = 0x371a, - ClubPresenceSubscribe = 0x36f4, + CloseRuneforgeInteraction = 0x33d7, + ClubFinderApplicationResponse = 0x371a, + ClubFinderGetApplicantsList = 0x3718, + ClubFinderPost = 0x3715, + ClubFinderRequestClubsData = 0x371c, + ClubFinderRequestClubsList = 0x3716, + ClubFinderRequestMembershipToClub = 0x3717, + ClubFinderRequestPendingClubsList = 0x371b, + ClubFinderRequestSubscribedClubPostingIds = 0x371d, + ClubFinderRespondToApplicant = 0x3719, + ClubFinderWhisperApplicantRequest = 0x3739, + ClubPresenceSubscribe = 0x36f3, CollectionItemSetFavorite = 0x3633, CommentatorEnable = 0x35f0, CommentatorEnterInstance = 0x35f4, @@ -232,34 +235,34 @@ namespace Framework.Constants CommentatorGetPlayerInfo = 0x35f2, CommentatorSpectate = 0x3737, CommentatorStartWargame = 0x35ef, - CommerceTokenGetCount = 0x36e1, - CommerceTokenGetLog = 0x36eb, - CommerceTokenGetMarketPrice = 0x36e2, - Complaint = 0x366c, + CommerceTokenGetCount = 0x36e0, + CommerceTokenGetLog = 0x36ea, + CommerceTokenGetMarketPrice = 0x36e1, + Complaint = 0x366b, CompleteCinematic = 0x3557, CompleteMovie = 0x34eb, ConfirmArtifactRespec = 0x31ac, ConfirmRespecWipe = 0x3213, ConnectToFailed = 0x35d4, - ConsumableTokenBuy = 0x36e6, - ConsumableTokenBuyAtMarketPrice = 0x36e7, - ConsumableTokenCanVeteranBuy = 0x36e5, - ConsumableTokenRedeem = 0x36e9, - ConsumableTokenRedeemConfirmation = 0x36ea, + ConsumableTokenBuy = 0x36e5, + ConsumableTokenBuyAtMarketPrice = 0x36e6, + ConsumableTokenCanVeteranBuy = 0x36e4, + ConsumableTokenRedeem = 0x36e8, + ConsumableTokenRedeemConfirmation = 0x36e9, ContributionContribute = 0x356b, ContributionLastUpdateRequest = 0x356c, ConversationCinematicReady = 0x3559, ConversationLineStarted = 0x3558, - ConvertRaid = 0x364e, + ConvertRaid = 0x364d, CovenantRenownRequestCatchupState = 0x357f, - CreateCharacter = 0x3644, + CreateCharacter = 0x3643, CreateShipment = 0x3312, DbQueryBulk = 0x35e4, DeclineGuildInvites = 0x352d, DeclinePetition = 0x3546, DeleteEquipmentSet = 0x3519, - DelFriend = 0x36ce, - DelIgnore = 0x36d2, + DelFriend = 0x36cd, + DelIgnore = 0x36d1, DepositReagentBank = 0x334e, DestroyItem = 0x32a2, DfBootPlayerVote = 0x3616, @@ -274,7 +277,7 @@ namespace Framework.Constants DfTeleport = 0x3617, DiscardedTimeSyncAcks = 0x3a42, DismissCritter = 0x3507, - DoCountdown = 0x3715, + DoCountdown = 0x3714, DoMasterLootRoll = 0x3218, DoReadyCheck = 0x3634, DuelResponse = 0x34f0, @@ -282,10 +285,10 @@ namespace Framework.Constants Emote = 0x3553, EnableNagle = 0x376b, EnableTaxiNode = 0x34af, - EngineSurvey = 0x36e0, + EngineSurvey = 0x36df, EnterEncryptedModeAck = 0x3767, EnumCharacters = 0x35e8, - EnumCharactersDeletedByClient = 0x36da, + EnumCharactersDeletedByClient = 0x36d9, FarSight = 0x34f6, GameEventDebugDisable = 0x31b3, GameEventDebugEnable = 0x31b2, @@ -315,26 +318,26 @@ namespace Framework.Constants GarrisonSetFollowerFavorite = 0x32f1, GarrisonSetFollowerInactive = 0x32e9, GarrisonSetRecruitmentPreferences = 0x32f7, - GarrisonSocketTalent = 0x33f5, + GarrisonSocketTalent = 0x33e4, GarrisonStartMission = 0x3332, GarrisonSwapBuildings = 0x32e1, GenerateRandomCharacterName = 0x35e7, - GetAccountCharacterList = 0x36b3, - GetAccountNotifications = 0x3731, + GetAccountCharacterList = 0x36b2, + GetAccountNotifications = 0x3730, GetGarrisonInfo = 0x32d6, GetItemPurchaseData = 0x3541, GetLandingPageShipments = 0x3311, GetMirrorImageData = 0x32a6, GetPvpOptionsEnabled = 0x35ee, - GetRafAccountInfo = 0x371f, - GetRemainingGameTime = 0x36e8, + GetRafAccountInfo = 0x371e, + GetRemainingGameTime = 0x36e7, GetTrophyList = 0x3323, - GetUndeleteCharacterCooldownStatus = 0x36dc, - GetVasAccountCharacterList = 0x36ed, - GetVasTransferTargetRealmList = 0x36ee, - GmTicketAcknowledgeSurvey = 0x3690, - GmTicketGetCaseStatus = 0x368f, - GmTicketGetSystemStatus = 0x368e, + GetUndeleteCharacterCooldownStatus = 0x36db, + GetVasAccountCharacterList = 0x36ec, + GetVasTransferTargetRealmList = 0x36ed, + GmTicketAcknowledgeSurvey = 0x368f, + GmTicketGetCaseStatus = 0x368e, + GmTicketGetSystemStatus = 0x368d, GossipRefreshOptions = 0x357e, GossipSelectOption = 0x349a, GuildAddBattlenetFriend = 0x308e, @@ -374,7 +377,7 @@ namespace Framework.Constants GuildReplaceGuildMaster = 0x3089, GuildSetAchievementTracking = 0x3070, GuildSetFocusedAchievement = 0x3071, - GuildSetGuildMaster = 0x36c5, + GuildSetGuildMaster = 0x36c4, GuildSetMemberNote = 0x3073, GuildSetRankPermissions = 0x3068, GuildShiftRank = 0x3067, @@ -388,17 +391,17 @@ namespace Framework.Constants InitiateTrade = 0x3156, Inspect = 0x353b, InstanceLockResponse = 0x351a, - IslandQueue = 0x33b8, + IslandQueue = 0x33a7, ItemPurchaseRefund = 0x3542, ItemTextQuery = 0x3342, JoinPetBattleQueue = 0x31df, JoinRatedBattleground = 0x3179, - KeepAlive = 0x367f, + KeepAlive = 0x367e, KeyboundOverride = 0x322b, LatencyReport = 0x3771, LearnPvpTalents = 0x356a, LearnTalents = 0x3568, - LeaveGroup = 0x3649, + LeaveGroup = 0x3648, LeavePetBattleQueue = 0x31e0, LfgListApplyToGroup = 0x360d, LfgListCancelApplication = 0x360e, @@ -411,10 +414,10 @@ namespace Framework.Constants LfgListSearch = 0x360c, LfgListUpdateRequest = 0x3387, ListInventory = 0x34a7, - LiveRegionAccountRestore = 0x36b6, - LiveRegionCharacterCopy = 0x36b5, - LiveRegionGetAccountCharacterList = 0x36b4, - LiveRegionKeyBindingsCopy = 0x36b7, + LiveRegionAccountRestore = 0x36b5, + LiveRegionCharacterCopy = 0x36b4, + LiveRegionGetAccountCharacterList = 0x36b3, + LiveRegionKeyBindingsCopy = 0x36b6, LoadingScreenNotify = 0x35f8, LoadSelectedTrophy = 0x3324, LogoutCancel = 0x34e6, @@ -427,13 +430,13 @@ namespace Framework.Constants LootRelease = 0x321a, LootRoll = 0x321b, LootUnit = 0x3214, - LowLevelRaid1 = 0x369f, + LowLevelRaid1 = 0x369e, LowLevelRaid2 = 0x3521, MailCreateTextItem = 0x354d, MailDelete = 0x322d, MailGetList = 0x3548, MailMarkAsRead = 0x354c, - MailReturnToSender = 0x3655, + MailReturnToSender = 0x3654, MailTakeItem = 0x354a, MailTakeMoney = 0x3549, MakeContitionalAppearancePermanent = 0x322f, @@ -441,7 +444,7 @@ namespace Framework.Constants MergeGuildBankItemWithGuildBankItem = 0x34c7, MergeGuildBankItemWithItem = 0x34c4, MergeItemWithGuildBankItem = 0x34c2, - MinimapPing = 0x364b, + MinimapPing = 0x364a, MissileTrajectoryCollision = 0x318b, MountClearFanfare = 0x312d, MountSetFavorite = 0x3632, @@ -524,7 +527,7 @@ namespace Framework.Constants NextCinematicCamera = 0x3556, ObjectUpdateFailed = 0x3181, ObjectUpdateRescued = 0x3182, - OfferPetition = 0x33df, + OfferPetition = 0x33ce, OpeningCinematic = 0x3555, OpenItem = 0x3343, OpenMissionNpc = 0x3307, @@ -534,19 +537,19 @@ namespace Framework.Constants OverrideScreenFlash = 0x352e, PartyInvite = 0x3602, PartyInviteResponse = 0x3604, - PartyUninvite = 0x3647, + PartyUninvite = 0x3646, PerformItemInteraction = 0x3237, PetitionBuy = 0x34cf, - PetitionRenameGuild = 0x36c6, + PetitionRenameGuild = 0x36c5, PetitionShowList = 0x34ce, PetitionShowSignatures = 0x34d0, PetAbandon = 0x3493, PetAction = 0x3491, PetBattleFinalNotify = 0x31e4, - PetBattleInput = 0x3641, + PetBattleInput = 0x3640, PetBattleQueueProposeMatchResult = 0x322c, PetBattleQuitNotify = 0x31e3, - PetBattleReplaceFrontPet = 0x3642, + PetBattleReplaceFrontPet = 0x3641, PetBattleRequestPvp = 0x31dd, PetBattleRequestUpdate = 0x31de, PetBattleRequestWild = 0x31db, @@ -554,7 +557,7 @@ namespace Framework.Constants PetBattleWildLocationFail = 0x31dc, PetCancelAura = 0x3494, PetCastSpell = 0x32ab, - PetRename = 0x3684, + PetRename = 0x3683, PetSetAction = 0x3490, PetSpellAutocast = 0x3495, PetStopAttack = 0x3492, @@ -563,13 +566,13 @@ namespace Framework.Constants PushQuestToParty = 0x34a5, PvpLogData = 0x317c, QueryBattlePetName = 0x3284, - QueryCorpseLocationFromClient = 0x3660, - QueryCorpseTransport = 0x3661, + QueryCorpseLocationFromClient = 0x365f, + QueryCorpseTransport = 0x3660, QueryCountdownTimer = 0x31aa, QueryCreature = 0x327e, QueryGameObject = 0x327f, QueryGarrisonPetName = 0x3285, - QueryGuildInfo = 0x368a, + QueryGuildInfo = 0x3689, QueryInspectAchievements = 0x350e, QueryNextMailTime = 0x354b, QueryNpcText = 0x3280, @@ -581,8 +584,8 @@ namespace Framework.Constants QueryPlayerNameByCommunityId = 0x376f, QueryQuestCompletionNpcs = 0x3175, QueryQuestInfo = 0x3281, - QueryRealmName = 0x3689, - QueryScenarioPoi = 0x3656, + QueryRealmName = 0x3688, + QueryScenarioPoi = 0x3655, QueryTime = 0x34e3, QueryTreasurePicker = 0x3367, QueryVoidStorage = 0x31a3, @@ -597,60 +600,60 @@ namespace Framework.Constants QuestGiverStatusMultipleQuery = 0x34a3, QuestGiverStatusQuery = 0x34a2, QuestLogRemoveQuest = 0x3540, - QuestPoiQuery = 0x36ad, + QuestPoiQuery = 0x36ac, QuestPushResult = 0x34a6, - QuestSessionBeginResponse = 0x33d0, - QuestSessionRequestStart = 0x33cf, - QuestSessionRequestStop = 0x372a, + QuestSessionBeginResponse = 0x33bf, + QuestSessionRequestStart = 0x33be, + QuestSessionRequestStop = 0x3729, QueuedMessagesEnd = 0x376c, - QuickJoinAutoAcceptRequests = 0x3703, - QuickJoinRequestInvite = 0x3702, - QuickJoinRequestInviteWithConfirmation = 0x372f, - QuickJoinRespondToInvite = 0x3701, - QuickJoinSignalToastDisplayed = 0x3700, + QuickJoinAutoAcceptRequests = 0x3702, + QuickJoinRequestInvite = 0x3701, + QuickJoinRequestInviteWithConfirmation = 0x372e, + QuickJoinRespondToInvite = 0x3700, + QuickJoinSignalToastDisplayed = 0x36ff, RafClaimActivityReward = 0x3512, - RafClaimNextReward = 0x3720, - RafGenerateRecruitmentLink = 0x3722, - RafUpdateRecruitmentInfo = 0x3721, - RandomRoll = 0x3654, + RafClaimNextReward = 0x371f, + RafGenerateRecruitmentLink = 0x3721, + RafUpdateRecruitmentInfo = 0x3720, + RandomRoll = 0x3653, ReadyCheckResponse = 0x3635, ReadItem = 0x3344, ReclaimCorpse = 0x34e9, RemoveNewItem = 0x336a, - RemoveRafRecruit = 0x3723, + RemoveRafRecruit = 0x3722, ReorderCharacters = 0x35e9, RepairItem = 0x34fa, ReplaceTrophy = 0x3325, RepopRequest = 0x3538, - ReportClientVariables = 0x36fd, - ReportEnabledAddons = 0x36fc, - ReportKeybindingExecutionCounts = 0x36fe, + ReportClientVariables = 0x36fc, + ReportEnabledAddons = 0x36fb, + ReportKeybindingExecutionCounts = 0x36fd, ReportPvpPlayerAfk = 0x3502, - ReportServerLag = 0x33c8, - ReportStuckInCombat = 0x33c9, - RequestAccountData = 0x3694, + ReportServerLag = 0x33b7, + ReportStuckInCombat = 0x33b8, + RequestAccountData = 0x3693, RequestAreaPoiUpdate = 0x3369, RequestBattlefieldStatus = 0x35dc, RequestCategoryCooldowns = 0x317e, RequestCemeteryList = 0x3177, - RequestCharacterGuildFollowInfo = 0x368b, + RequestCharacterGuildFollowInfo = 0x368a, RequestConquestFormulaConstants = 0x32c8, - RequestCovenantCallings = 0x33ba, + RequestCovenantCallings = 0x33a9, RequestCrowdControlSpell = 0x353c, RequestForcedReactions = 0x320f, - RequestGarrisonTalentWorldQuestUnlocks = 0x33f4, + RequestGarrisonTalentWorldQuestUnlocks = 0x33e3, RequestGuildPartyState = 0x31a9, RequestGuildRewardsList = 0x31a8, - RequestLatestSplashScreen = 0x33ca, + RequestLatestSplashScreen = 0x33b9, RequestLfgListBlacklist = 0x32b7, RequestMythicPlusAffixes = 0x3209, RequestMythicPlusSeasonData = 0x320a, RequestPartyJoinUpdates = 0x35f7, - RequestPartyMemberStats = 0x3653, + RequestPartyMemberStats = 0x3652, RequestPetInfo = 0x3496, RequestPlayedTime = 0x3289, RequestPvpRewards = 0x3196, - RequestRaidInfo = 0x36c7, + RequestRaidInfo = 0x36c6, RequestRatedPvpInfo = 0x35e3, RequestRealmGuildMasterInfo = 0x309b, RequestResearchHistory = 0x3167, @@ -660,12 +663,12 @@ namespace Framework.Constants RequestVehicleNextSeat = 0x3243, RequestVehiclePrevSeat = 0x3242, RequestVehicleSwitchSeat = 0x3244, - RequestWeeklyRewards = 0x33bd, + RequestWeeklyRewards = 0x33ac, RequestWorldQuestUpdate = 0x3368, ResetChallengeMode = 0x3207, ResetChallengeModeCheat = 0x3208, - ResetInstances = 0x3668, - ResurrectResponse = 0x3683, + ResetInstances = 0x3667, + ResurrectResponse = 0x3682, RevertMonumentAppearance = 0x3327, RideVehicleInteract = 0x3245, SaveCufProfiles = 0x318c, @@ -676,41 +679,41 @@ namespace Framework.Constants SceneTriggerEvent = 0x3229, SelfRes = 0x3543, SellItem = 0x34a8, - SendCharacterClubInvitation = 0x36f6, - SendContactList = 0x36cc, + SendCharacterClubInvitation = 0x36f5, + SendContactList = 0x36cb, SendMail = 0x35fa, SendTextEmote = 0x348e, - ServerTimeOffsetRequest = 0x369a, + ServerTimeOffsetRequest = 0x3699, SetAchievementsHidden = 0x322e, SetActionBarToggles = 0x3544, SetActionButton = 0x3636, SetActiveMover = 0x3a3d, SetAdvancedCombatLogging = 0x32c9, - SetAssistantLeader = 0x364f, + SetAssistantLeader = 0x364e, SetBackpackAutosortDisabled = 0x3347, SetBankAutosortDisabled = 0x3348, SetChatDisabled = 0x3735, - SetContactNotes = 0x36cf, + SetContactNotes = 0x36ce, SetCurrencyFlags = 0x3169, SetDifficultyId = 0x322a, - SetDungeonDifficulty = 0x3682, + SetDungeonDifficulty = 0x3681, SetEveryoneIsAssistant = 0x3618, SetFactionAtWar = 0x34ec, SetFactionInactive = 0x34ee, SetFactionNotAtWar = 0x34ed, SetGameEventDebugViewState = 0x31ba, SetInsertItemsLeftToRight = 0x334a, - SetLootMethod = 0x3648, + SetLootMethod = 0x3647, SetLootSpecialization = 0x3551, - SetPartyAssignment = 0x3651, - SetPartyLeader = 0x364a, + SetPartyAssignment = 0x3650, + SetPartyLeader = 0x3649, SetPetSlot = 0x3168, - SetPlayerDeclinedNames = 0x3688, + SetPlayerDeclinedNames = 0x3687, SetPreferredCemetery = 0x3178, SetPvp = 0x32bf, - SetRaidDifficulty = 0x36d8, + SetRaidDifficulty = 0x36d7, SetRole = 0x35d9, - SetSavedInstanceExtend = 0x3686, + SetSavedInstanceExtend = 0x3685, SetSelection = 0x353a, SetSheathed = 0x348f, SetSortBagsRightToLeft = 0x3349, @@ -722,9 +725,10 @@ namespace Framework.Constants SetUsingPartyGarrison = 0x3309, SetWarMode = 0x32c0, SetWatchedFaction = 0x34ef, - ShowTradeSkill = 0x36bf, + ShowTradeSkill = 0x36be, SignPetition = 0x3545, - SilencePartyTalker = 0x3652, + SilencePartyTalker = 0x3651, + SocialContractRequest = 0x373a, SocketGems = 0x34f9, SortBags = 0x334b, SortBankBags = 0x334c, @@ -740,10 +744,10 @@ namespace Framework.Constants StartSpectatorWarGame = 0x35df, StartWarGame = 0x35de, StoreGuildBankItem = 0x34be, - SubmitUserFeedback = 0x3693, - SubscriptionInterstitialResponse = 0x33e9, - SummonResponse = 0x366a, - SupportTicketSubmitComplaint = 0x3646, + SubmitUserFeedback = 0x3692, + SubscriptionInterstitialResponse = 0x33d8, + SummonResponse = 0x3669, + SupportTicketSubmitComplaint = 0x3645, SurrenderArena = 0x3174, SuspendCommsAck = 0x3764, SuspendTokenResponse = 0x376a, @@ -751,7 +755,7 @@ namespace Framework.Constants SwapInvItem = 0x399d, SwapItem = 0x399c, SwapItemWithGuildBankItem = 0x34bf, - SwapSubGroups = 0x364d, + SwapSubGroups = 0x364c, SwapVoidItem = 0x31a5, TabardVendorActivate = 0x32bc, TalkToGossip = 0x3498, @@ -762,7 +766,7 @@ namespace Framework.Constants TimeSyncResponse = 0x3a3e, TimeSyncResponseDropped = 0x3a40, TimeSyncResponseFailed = 0x3a3f, - ToggleDifficulty = 0x3657, + ToggleDifficulty = 0x3656, TogglePvp = 0x32be, TotemDestroyed = 0x3506, ToyClearFanfare = 0x312e, @@ -771,41 +775,41 @@ namespace Framework.Constants TrainerList = 0x34b3, TransmogrifyItems = 0x3198, TurnInPetition = 0x3547, - Tutorial = 0x36d9, + Tutorial = 0x36d8, TwitterCheckStatus = 0x312a, TwitterConnect = 0x3127, TwitterDisconnect = 0x312b, - UiMapQuestLinesRequest = 0x33b9, + UiMapQuestLinesRequest = 0x33a8, UnacceptTrade = 0x315b, - UndeleteCharacter = 0x36db, + UndeleteCharacter = 0x36da, UnlearnSkill = 0x34f3, UnlearnSpecialization = 0x31a6, UnlockVoidStorage = 0x31a2, - UpdateAccountData = 0x3695, + UpdateAccountData = 0x3694, UpdateAreaTriggerVisual = 0x32ae, - UpdateClientSettings = 0x3664, + UpdateClientSettings = 0x3663, UpdateMissileTrajectory = 0x3a44, - UpdateRaidTarget = 0x3650, + UpdateRaidTarget = 0x364f, UpdateSpellVisual = 0x32ad, - UpdateVasPurchaseStates = 0x36f0, + UpdateVasPurchaseStates = 0x36ef, UpgradeGarrison = 0x32d1, - UpgradeRuneforgeLegendary = 0x33e7, + UpgradeRuneforgeLegendary = 0x33d6, UsedFollow = 0x3187, UseCritterItem = 0x324b, UseEquipmentSet = 0x3995, UseItem = 0x32a7, UseToy = 0x32aa, - VasCheckTransferOk = 0x3708, - VasGetQueueMinutes = 0x3707, - VasGetServiceStatus = 0x3706, + VasCheckTransferOk = 0x3707, + VasGetQueueMinutes = 0x3706, + VasGetServiceStatus = 0x3705, ViolenceLevel = 0x3185, - VoiceChannelSttTokenRequest = 0x370c, - VoiceChatJoinChannel = 0x370d, - VoiceChatLogin = 0x370b, + VoiceChannelSttTokenRequest = 0x370b, + VoiceChatJoinChannel = 0x370c, + VoiceChatLogin = 0x370a, VoidStorageTransfer = 0x31a4, Warden3Data = 0x35ec, - Who = 0x3681, - WhoIs = 0x3680, + Who = 0x3680, + WhoIs = 0x367f, WorldPortResponse = 0x35f9, WrapItem = 0x3994, @@ -816,85 +820,85 @@ namespace Framework.Constants public enum ServerOpcodes : uint { AbortNewWorld = 0x259a, - AccountCosmeticAdded = 0x2885, - AccountCriteriaUpdate = 0x286b, - AccountDataTimes = 0x26fd, + AccountCosmeticAdded = 0x2872, + AccountCriteriaUpdate = 0x2858, + AccountDataTimes = 0x26fe, AccountMountUpdate = 0x25ac, - AccountNotificationsResponse = 0x2884, + AccountNotificationsResponse = 0x2871, AccountToyUpdate = 0x25ad, AccountTransmogSetFavoritesUpdate = 0x25b0, AccountTransmogUpdate = 0x25af, - AchievementDeleted = 0x26dc, - AchievementEarned = 0x263a, + AchievementDeleted = 0x26dd, + AchievementEarned = 0x263b, ActivateEssenceFailed = 0x3015, ActivateSoulbindFailed = 0x3017, - ActivateTaxiReply = 0x2674, + ActivateTaxiReply = 0x2675, ActiveGlyphs = 0x2c54, - AddonListRequest = 0x2639, - AddBattlenetFriendResponse = 0x2634, + AddonListRequest = 0x263a, + AddBattlenetFriendResponse = 0x2635, AddItemPassive = 0x25a8, - AddLossOfControl = 0x2668, - AddRunePower = 0x26ae, + AddLossOfControl = 0x2669, + AddRunePower = 0x26af, AdjustSplineDuration = 0x25cc, - AdvancedCombatLog = 0x2881, - AdventureJournalDataResponse = 0x287b, - AdventureMapOpenNpc = 0x27e4, - AeLootTargets = 0x260f, - AeLootTargetAck = 0x2610, - AiReaction = 0x26ab, - AlliedRaceDetails = 0x27ea, + AdvancedCombatLog = 0x286e, + AdventureJournalDataResponse = 0x2868, + AdventureMapOpenNpc = 0x27e5, + AeLootTargets = 0x2610, + AeLootTargetAck = 0x2611, + AiReaction = 0x26ac, + AlliedRaceDetails = 0x27eb, AllAccountCriteria = 0x2571, AllAchievementData = 0x2570, AllGuildAchievements = 0x29b8, - ApplyMountEquipmentResult = 0x2858, + ApplyMountEquipmentResult = 0x2845, ArchaeologySurveryCast = 0x2588, AreaPoiUpdateResponse = 0x3010, - AreaSpiritHealerTime = 0x2732, + AreaSpiritHealerTime = 0x2733, AreaTriggerDenied = 0x2902, AreaTriggerForceSetPositionAndFacing = 0x28ff, - AreaTriggerNoCorpse = 0x2709, + AreaTriggerNoCorpse = 0x270a, AreaTriggerPlaySpellVisual = 0x28fe, AreaTriggerRePath = 0x28fd, AreaTriggerReShape = 0x2901, AreaTriggerUnattach = 0x2900, - ArenaClearOpponents = 0x2640, - ArenaCrowdControlSpellResult = 0x2629, - ArenaPrepOpponentSpecializations = 0x263f, - ArtifactEndgamePowersRefunded = 0x2795, - ArtifactForgeError = 0x2793, - ArtifactRespecPrompt = 0x2794, - ArtifactXpGain = 0x27dd, + ArenaClearOpponents = 0x2641, + ArenaCrowdControlSpellResult = 0x262a, + ArenaPrepOpponentSpecializations = 0x2640, + ArtifactEndgamePowersRefunded = 0x2796, + ArtifactForgeError = 0x2794, + ArtifactRespecPrompt = 0x2795, + ArtifactXpGain = 0x27de, AttackerStateUpdate = 0x294d, AttackStart = 0x2938, AttackStop = 0x2939, AttackSwingError = 0x2947, AttackSwingLandedLog = 0x2948, - AuctionableTokenAuctionSold = 0x27c6, - AuctionableTokenSellAtMarketPriceResponse = 0x27c5, - AuctionableTokenSellConfirmRequired = 0x27c4, - AuctionClosedNotification = 0x26e6, - AuctionCommandResult = 0x26e3, - AuctionFavoriteList = 0x2872, - AuctionGetCommodityQuoteResult = 0x2869, - AuctionHelloResponse = 0x26e1, - AuctionListBiddedItemsResult = 0x2868, - AuctionListBucketsResult = 0x2865, - AuctionListItemsResult = 0x2866, - AuctionListOwnedItemsResult = 0x2867, - AuctionOutbidNotification = 0x26e5, - AuctionOwnerBidNotification = 0x26e7, - AuctionReplicateResponse = 0x26e2, - AuctionWonNotification = 0x26e4, + AuctionableTokenAuctionSold = 0x27c7, + AuctionableTokenSellAtMarketPriceResponse = 0x27c6, + AuctionableTokenSellConfirmRequired = 0x27c5, + AuctionClosedNotification = 0x26e7, + AuctionCommandResult = 0x26e4, + AuctionFavoriteList = 0x285f, + AuctionGetCommodityQuoteResult = 0x2856, + AuctionHelloResponse = 0x26e2, + AuctionListBiddedItemsResult = 0x2855, + AuctionListBucketsResult = 0x2852, + AuctionListItemsResult = 0x2853, + AuctionListOwnedItemsResult = 0x2854, + AuctionOutbidNotification = 0x26e6, + AuctionOwnerBidNotification = 0x26e8, + AuctionReplicateResponse = 0x26e3, + AuctionWonNotification = 0x26e5, AuraPointsDepleted = 0x2c23, AuraUpdate = 0x2c22, AuthChallenge = 0x3048, AuthFailed = 0x256c, AuthResponse = 0x256d, AvailableHotfixes = 0x290f, - AzeriteRespecNpc = 0x27e7, + AzeriteRespecNpc = 0x27e8, BagCleanupFinished = 0x2da7, - BarberShopResult = 0x26b3, - BatchPresenceSubscription = 0x2849, + BarberShopResult = 0x26b4, + BatchPresenceSubscription = 0x2836, BattlefieldList = 0x2927, BattlefieldPortDenied = 0x292d, BattlefieldStatusActive = 0x2923, @@ -910,33 +914,33 @@ namespace Framework.Constants BattlegroundPlayerLeft = 0x292c, BattlegroundPlayerPositions = 0x2928, BattlegroundPoints = 0x2949, - BattlenetChallengeAbort = 0x277c, - BattlenetChallengeStart = 0x277b, - BattlenetNotification = 0x27f5, - BattlenetResponse = 0x27f4, - BattleNetConnectionStatus = 0x27f6, - BattlePayAckFailed = 0x2776, - BattlePayBattlePetDelivered = 0x276b, - BattlePayCollectionItemDelivered = 0x276c, - BattlePayConfirmPurchase = 0x2775, - BattlePayDeliveryEnded = 0x2769, - BattlePayDeliveryStarted = 0x2768, - BattlePayDistributionAssignVasResponse = 0x288A, - BattlePayDistributionUnrevoked = 0x2766, - BattlePayDistributionUpdate = 0x2767, - BattlePayGetDistributionListResponse = 0x2765, - BattlePayGetProductListResponse = 0x2763, - BattlePayGetPurchaseListResponse = 0x2764, - BattlePayMountDelivered = 0x276a, - BattlePayPurchaseUpdate = 0x2774, - BattlePayStartCheckout = 0x2811, - BattlePayStartDistributionAssignToTargetResponse = 0x2772, - BattlePayStartPurchaseResponse = 0x2771, - BattlePayValidatePurchaseResponse = 0x2805, + BattlenetChallengeAbort = 0x277d, + BattlenetChallengeStart = 0x277c, + BattlenetNotification = 0x27f6, + BattlenetResponse = 0x27f5, + BattleNetConnectionStatus = 0x27f7, + BattlePayAckFailed = 0x2777, + BattlePayBattlePetDelivered = 0x276c, + BattlePayCollectionItemDelivered = 0x276d, + BattlePayConfirmPurchase = 0x2776, + BattlePayDeliveryEnded = 0x276a, + BattlePayDeliveryStarted = 0x2769, + BattlePayDistributionAssignVasResponse = 0x2877, + BattlePayDistributionUnrevoked = 0x2767, + BattlePayDistributionUpdate = 0x2768, + BattlePayGetDistributionListResponse = 0x2766, + BattlePayGetProductListResponse = 0x2764, + BattlePayGetPurchaseListResponse = 0x2765, + BattlePayMountDelivered = 0x276b, + BattlePayPurchaseUpdate = 0x2775, + BattlePayStartCheckout = 0x2812, + BattlePayStartDistributionAssignToTargetResponse = 0x2773, + BattlePayStartPurchaseResponse = 0x2772, + BattlePayValidatePurchaseResponse = 0x2806, BattlePetsHealed = 0x25ec, - BattlePetCageDateError = 0x266f, + BattlePetCageDateError = 0x2670, BattlePetDeleted = 0x25e9, - BattlePetError = 0x262f, + BattlePetError = 0x2630, BattlePetJournal = 0x25e8, BattlePetJournalLockAcquired = 0x25e6, BattlePetJournalLockDenied = 0x25e7, @@ -945,78 +949,78 @@ namespace Framework.Constants BattlePetRevoked = 0x25ea, BattlePetTrapLevel = 0x25e4, BattlePetUpdates = 0x25e3, - BinderConfirm = 0x26f0, + BinderConfirm = 0x26f1, BindPointUpdate = 0x257d, - BlackMarketBidOnItemResult = 0x261f, - BlackMarketOpenResult = 0x261d, - BlackMarketOutbid = 0x2620, - BlackMarketRequestItemsResult = 0x261e, - BlackMarketWon = 0x2621, - BonusRollEmpty = 0x263c, + BlackMarketBidOnItemResult = 0x2620, + BlackMarketOpenResult = 0x261e, + BlackMarketOutbid = 0x2621, + BlackMarketRequestItemsResult = 0x261f, + BlackMarketWon = 0x2622, + BonusRollEmpty = 0x263d, BossKill = 0x294c, BreakTarget = 0x2937, BroadcastAchievement = 0x2bbc, - BroadcastSummonCast = 0x284b, - BroadcastSummonResponse = 0x284c, - BuyFailed = 0x26bc, - BuySucceeded = 0x26bb, + BroadcastSummonCast = 0x2838, + BroadcastSummonResponse = 0x2839, + BuyFailed = 0x26bd, + BuySucceeded = 0x26bc, CacheInfo = 0x291d, CacheVersion = 0x291c, - CalendarClearPendingAction = 0x2694, - CalendarCommandResult = 0x2695, - CalendarCommunityInvite = 0x2684, - CalendarEventRemovedAlert = 0x268c, - CalendarEventUpdatedAlert = 0x268d, - CalendarInviteAdded = 0x2685, - CalendarInviteAlert = 0x2689, - CalendarInviteNotes = 0x268e, - CalendarInviteNotesAlert = 0x268f, - CalendarInviteRemoved = 0x2686, - CalendarInviteRemovedAlert = 0x268b, - CalendarInviteStatus = 0x2687, - CalendarInviteStatusAlert = 0x268a, - CalendarModeratorStatus = 0x2688, - CalendarRaidLockoutAdded = 0x2690, - CalendarRaidLockoutRemoved = 0x2691, - CalendarRaidLockoutUpdated = 0x2692, - CalendarSendCalendar = 0x2682, - CalendarSendEvent = 0x2683, - CalendarSendNumPending = 0x2693, - CameraEffect = 0x2718, - CancelAutoRepeat = 0x26d2, + CalendarClearPendingAction = 0x2695, + CalendarCommandResult = 0x2696, + CalendarCommunityInvite = 0x2685, + CalendarEventRemovedAlert = 0x268d, + CalendarEventUpdatedAlert = 0x268e, + CalendarInviteAdded = 0x2686, + CalendarInviteAlert = 0x268a, + CalendarInviteNotes = 0x268f, + CalendarInviteNotesAlert = 0x2690, + CalendarInviteRemoved = 0x2687, + CalendarInviteRemovedAlert = 0x268c, + CalendarInviteStatus = 0x2688, + CalendarInviteStatusAlert = 0x268b, + CalendarModeratorStatus = 0x2689, + CalendarRaidLockoutAdded = 0x2691, + CalendarRaidLockoutRemoved = 0x2692, + CalendarRaidLockoutUpdated = 0x2693, + CalendarSendCalendar = 0x2683, + CalendarSendEvent = 0x2684, + CalendarSendNumPending = 0x2694, + CameraEffect = 0x2719, + CancelAutoRepeat = 0x26d3, CancelCombat = 0x2946, CancelOrphanSpellVisual = 0x2c46, - CancelScene = 0x262e, + CancelScene = 0x262f, CancelSpellVisual = 0x2c44, CancelSpellVisualKit = 0x2c48, CanDuelResult = 0x2942, - CanRedeemTokenForBalanceResponse = 0x2804, + CanRedeemTokenForBalanceResponse = 0x2805, CapturePointRemoved = 0x292a, CastFailed = 0x2c57, CategoryCooldown = 0x2c16, ChainMissileBounce = 0x25c4, - ChallengeModeComplete = 0x2603, - ChallengeModeRequestLeadersResult = 0x2607, - ChallengeModeReset = 0x2602, - ChallengeModeStart = 0x2600, - ChallengeModeUpdateDeathCount = 0x2601, + ChallengeModeComplete = 0x2604, + ChallengeModeRequestLeadersResult = 0x2608, + ChallengeModeReset = 0x2603, + ChallengeModeStart = 0x2601, + ChallengeModeUpdateDeathCount = 0x2602, ChangePlayerDifficultyResult = 0x3004, - ChangeRealmTicketResponse = 0x27f7, + ChangeRealmTicketResponse = 0x27f8, ChannelList = 0x2bc3, ChannelNotify = 0x2bc0, ChannelNotifyJoined = 0x2bc1, ChannelNotifyLeft = 0x2bc2, - CharacterCheckUpgradeResult = 0x27af, - CharacterLoginFailed = 0x26f8, - CharacterObjectTestResponse = 0x277a, - CharacterRenameResult = 0x2755, - CharacterUpgradeAborted = 0x27ae, - CharacterUpgradeComplete = 0x27ad, - CharacterUpgradeManualUnrevokeResult = 0x27b0, - CharacterUpgradeStarted = 0x27ac, - CharCustomizeFailure = 0x26d6, - CharCustomizeSuccess = 0x26d7, - CharFactionChangeResult = 0x2799, + CharacterCheckUpgradeResult = 0x27b0, + CharacterLoginFailed = 0x26f9, + CharacterObjectTestResponse = 0x277b, + CharacterRenameResult = 0x2756, + CharacterUpgradeAborted = 0x27af, + CharacterUpgradeComplete = 0x27ae, + CharacterUpgradeManualUnrevokeResult = 0x27b1, + CharacterUpgradeStarted = 0x27ad, + CharCustomizeFailure = 0x26d7, + CharCustomizeSuccess = 0x26d8, + CharFactionChangeResult = 0x279a, Chat = 0x2bad, ChatAutoResponded = 0x2bb8, ChatDown = 0x2bbd, @@ -1033,86 +1037,87 @@ namespace Framework.Constants CheckAbandonNpe = 0x3018, CheckCharacterNameAvailabilityResult = 0x2584, CheckWargameEntry = 0x2592, - ChromieTimeOpenNpc = 0x27ec, - ChromieTimeSelectExpansionSuccess = 0x2875, - ClaimRafRewardResponse = 0x285c, + ChromieTimeOpenNpc = 0x27ed, + ChromieTimeSelectExpansionSuccess = 0x2862, + ClaimRafRewardResponse = 0x2849, ClearAllSpellCharges = 0x2c27, ClearBossEmotes = 0x25b7, - ClearCooldown = 0x26b0, + ClearCooldown = 0x26b1, ClearCooldowns = 0x2c26, ClearResurrect = 0x257f, ClearSpellCharges = 0x2c28, ClearTarget = 0x2943, ClearTreasurePickerCache = 0x2aa1, - CloseArtifactForge = 0x2792, - CloseHeartForge = 0x2817, - CloseItemForge = 0x2790, - ClubFinderErrorMessage = 0x2854, - ClubFinderGetClubPostingIdsResponse = 0x2857, - ClubFinderLookupClubPostingsList = 0x2855, - ClubFinderResponseCharacterApplicationList = 0x2852, - ClubFinderResponsePostRecruitmentMessage = 0x2856, - ClubFinderUpdateApplications = 0x2853, - CoinRemoved = 0x260e, + CloseArtifactForge = 0x2793, + CloseHeartForge = 0x2818, + CloseItemForge = 0x2791, + ClubFinderErrorMessage = 0x2841, + ClubFinderGetClubPostingIdsResponse = 0x2844, + ClubFinderLookupClubPostingsList = 0x2842, + ClubFinderResponseCharacterApplicationList = 0x283f, + ClubFinderResponsePostRecruitmentMessage = 0x2843, + ClubFinderUpdateApplications = 0x2840, + ClubFinderWhisperApplicantResponse = 0x287a, + CoinRemoved = 0x260f, CombatEventFailed = 0x293a, - CommentatorMapInfo = 0x26fa, - CommentatorPlayerInfo = 0x26fb, - CommentatorStateChanged = 0x26f9, - CommerceTokenGetCountResponse = 0x27c1, - CommerceTokenGetLogResponse = 0x27cd, - CommerceTokenGetMarketPriceResponse = 0x27c3, - CommerceTokenUpdate = 0x27c2, - ComplaintResult = 0x26a2, - CompleteShipmentResponse = 0x278b, - ConfirmPartyInvite = 0x2803, + CommentatorMapInfo = 0x26fb, + CommentatorPlayerInfo = 0x26fc, + CommentatorStateChanged = 0x26fa, + CommerceTokenGetCountResponse = 0x27c2, + CommerceTokenGetLogResponse = 0x27ce, + CommerceTokenGetMarketPriceResponse = 0x27c4, + CommerceTokenUpdate = 0x27c3, + ComplaintResult = 0x26a3, + CompleteShipmentResponse = 0x278c, + ConfirmPartyInvite = 0x2804, ConnectTo = 0x304d, - ConquestFormulaConstants = 0x2777, - ConsoleWrite = 0x262c, - ConsumableTokenBuyAtMarketPriceResponse = 0x27c9, - ConsumableTokenBuyChoiceRequired = 0x27c8, - ConsumableTokenCanVeteranBuyResponse = 0x27c7, - ConsumableTokenRedeemConfirmRequired = 0x27cb, - ConsumableTokenRedeemResponse = 0x27cc, - ContactList = 0x2778, - ContributionLastUpdateResponse = 0x280a, - ControlUpdate = 0x263e, - ConvertItemsToCurrencyValue = 0x287e, - CooldownCheat = 0x272b, - CooldownEvent = 0x26af, - CorpseLocation = 0x2646, - CorpseReclaimDelay = 0x273c, - CorpseTransportQuery = 0x2705, + ConquestFormulaConstants = 0x2778, + ConsoleWrite = 0x262d, + ConsumableTokenBuyAtMarketPriceResponse = 0x27ca, + ConsumableTokenBuyChoiceRequired = 0x27c9, + ConsumableTokenCanVeteranBuyResponse = 0x27c8, + ConsumableTokenRedeemConfirmRequired = 0x27cc, + ConsumableTokenRedeemResponse = 0x27cd, + ContactList = 0x2779, + ContributionLastUpdateResponse = 0x280b, + ControlUpdate = 0x263f, + ConvertItemsToCurrencyValue = 0x286b, + CooldownCheat = 0x272c, + CooldownEvent = 0x26b0, + CorpseLocation = 0x2647, + CorpseReclaimDelay = 0x273d, + CorpseTransportQuery = 0x2706, CovenantCallingsAvailabilityResponse = 0x2aa3, - CovenantPreviewOpenNpc = 0x27ed, - CovenantRenownOpenNpc = 0x287d, - CovenantRenownSendCatchupState = 0x287f, - CreateChar = 0x26f4, - CreateShipmentResponse = 0x278a, - CriteriaDeleted = 0x26db, - CriteriaUpdate = 0x26d5, - CrossedInebriationThreshold = 0x26b7, + CovenantPreviewOpenNpc = 0x27ee, + CovenantRenownOpenNpc = 0x286a, + CovenantRenownSendCatchupState = 0x286c, + CreateChar = 0x26f5, + CreateShipmentResponse = 0x278b, + CriteriaDeleted = 0x26dc, + CriteriaUpdate = 0x26d6, + CrossedInebriationThreshold = 0x26b8, CustomLoadScreen = 0x25c7, DailyQuestsReset = 0x2a80, - DamageCalcLog = 0x27b6, + DamageCalcLog = 0x27b7, DbReply = 0x290e, - DeathReleaseLoc = 0x26c8, - DebugMenuManagerFullUpdate = 0x264c, + DeathReleaseLoc = 0x26c9, + DebugMenuManagerFullUpdate = 0x264d, DefenseMessage = 0x2bb6, - DeleteChar = 0x26f5, + DeleteChar = 0x26f6, DeleteExpiredMissionsResult = 0x2980, - DestroyArenaUnit = 0x2734, - DestructibleBuildingDamage = 0x26ec, + DestroyArenaUnit = 0x2735, + DestructibleBuildingDamage = 0x26ed, DifferentInstanceFromParty = 0x258c, DisenchantCredit = 0x25a5, DismountResult = 0x257c, DispelFailed = 0x2c30, DisplayGameError = 0x259f, DisplayPlayerChoice = 0x2ffc, - DisplayPromotion = 0x2643, + DisplayPromotion = 0x2644, DisplayQuestPopup = 0x2a9e, - DisplaySoulbindUpdateMessage = 0x2883, - DisplayToast = 0x261b, - DisplayWorldText = 0x27de, + DisplaySoulbindUpdateMessage = 0x2870, + DisplayToast = 0x261c, + DisplayWorldText = 0x27df, DontAutoPushSpellsToActionBar = 0x25da, DropNewConnection = 0x304c, DuelArranged = 0x293c, @@ -1122,48 +1127,48 @@ namespace Framework.Constants DuelOutOfBounds = 0x293d, DuelRequested = 0x293b, DuelWinner = 0x2941, - DurabilityDamageDeath = 0x2738, - Emote = 0x27b7, - EnableBarberShop = 0x26b2, - EnchantmentLog = 0x2706, - EncounterEnd = 0x2770, - EncounterStart = 0x276f, - EndLightningStorm = 0x269f, + DurabilityDamageDeath = 0x2739, + Emote = 0x27b8, + EnableBarberShop = 0x26b3, + EnchantmentLog = 0x2707, + EncounterEnd = 0x2771, + EncounterStart = 0x2770, + EndLightningStorm = 0x26a0, EnterEncryptedMode = 0x3049, EnumCharactersResult = 0x2583, - EnumVasPurchaseStatesResponse = 0x27e3, + EnumVasPurchaseStatesResponse = 0x27e4, EnvironmentalDamageLog = 0x2c21, - EquipmentSetId = 0x26a8, + EquipmentSetId = 0x26a9, ExpectedSpamRecords = 0x2bb1, - ExplorationExperience = 0x2751, - ExternalTransactionIdGenerated = 0x287c, - FactionBonusInfo = 0x2717, + ExplorationExperience = 0x2752, + ExternalTransactionIdGenerated = 0x2869, + FactionBonusInfo = 0x2718, FailedPlayerCondition = 0x2ffa, - FailedQuestTurnIn = 0x2800, + FailedQuestTurnIn = 0x2801, FeatureSystemStatus = 0x25bb, FeatureSystemStatusGlueScreen = 0x25bc, - FeignDeathResisted = 0x2737, - FishEscaped = 0x26c5, - FishNotHooked = 0x26c4, + FeignDeathResisted = 0x2738, + FishEscaped = 0x26c6, + FishNotHooked = 0x26c5, FlightSplineSync = 0x2e2b, - ForcedDeathUpdate = 0x26c9, - ForceAnim = 0x2743, - ForceAnimations = 0x2744, - ForceObjectRelink = 0x2642, - FriendStatus = 0x2779, - GainMawPower = 0x27d2, + ForcedDeathUpdate = 0x26ca, + ForceAnim = 0x2744, + ForceAnimations = 0x2745, + ForceObjectRelink = 0x2643, + FriendStatus = 0x277a, + GainMawPower = 0x27d3, GameObjectActivateAnimKit = 0x25bf, - GameObjectBase = 0x2818, + GameObjectBase = 0x2819, GameObjectCustomAnim = 0x25c0, GameObjectDespawn = 0x25c1, GameObjectPlaySpellVisual = 0x2c4b, GameObjectPlaySpellVisualKit = 0x2c4a, - GameObjectResetState = 0x2711, - GameObjectSetStateLocal = 0x27f3, - GameObjectUiLink = 0x270d, - GameSpeedSet = 0x2678, - GameTimeSet = 0x26ff, - GameTimeUpdate = 0x26fe, + GameObjectResetState = 0x2712, + GameObjectSetStateLocal = 0x27f4, + GameObjectUiLink = 0x270e, + GameSpeedSet = 0x2679, + GameTimeSet = 0x2700, + GameTimeUpdate = 0x26ff, GarrisonActivateMissionBonusAbility = 0x2982, GarrisonAddEvent = 0x29a5, GarrisonAddFollowerResult = 0x2974, @@ -1238,33 +1243,33 @@ namespace Framework.Constants GarrisonUpgradeResult = 0x296b, GarrisonUseRecallPortalResult = 0x297d, GenerateRandomCharacterNameResult = 0x2585, - GenerateSsoTokenResponse = 0x280b, - GetAccountCharacterListResult = 0x2753, + GenerateSsoTokenResponse = 0x280c, + GetAccountCharacterListResult = 0x2754, GetGarrisonInfoResult = 0x295e, - GetLandingPageShipmentsResponse = 0x278d, - GetRemainingGameTimeResponse = 0x27ca, - GetSelectedTrophyIdResponse = 0x27b4, - GetShipmentsOfTypeResponse = 0x278c, - GetShipmentInfoResponse = 0x2788, - GetTrophyListResponse = 0x27b3, - GetVasAccountCharacterListResult = 0x27df, - GetVasTransferTargetRealmListResult = 0x27e0, + GetLandingPageShipmentsResponse = 0x278e, + GetRemainingGameTimeResponse = 0x27cb, + GetSelectedTrophyIdResponse = 0x27b5, + GetShipmentsOfTypeResponse = 0x278d, + GetShipmentInfoResponse = 0x2789, + GetTrophyListResponse = 0x27b4, + GetVasAccountCharacterListResult = 0x27e0, + GetVasTransferTargetRealmListResult = 0x27e1, GmPlayerInfo = 0x3005, GmRequestPlayerInfo = 0x2ffb, - GmTicketCaseStatus = 0x269a, - GmTicketSystemStatus = 0x2699, - GodMode = 0x26ef, + GmTicketCaseStatus = 0x269b, + GmTicketSystemStatus = 0x269a, + GodMode = 0x26f0, GossipComplete = 0x2a97, GossipMessage = 0x2a98, - GossipPoi = 0x2785, + GossipPoi = 0x2786, GossipQuestUpdate = 0x2a99, GossipRefreshOptions = 0x2aa6, GroupActionThrottled = 0x2590, - GroupAutoKick = 0x2783, - GroupDecline = 0x2780, - GroupDestroyed = 0x2782, - GroupNewLeader = 0x2624, - GroupUninvite = 0x2781, + GroupAutoKick = 0x2784, + GroupDecline = 0x2781, + GroupDestroyed = 0x2783, + GroupNewLeader = 0x2625, + GroupUninvite = 0x2782, GuildAchievementDeleted = 0x29c5, GuildAchievementEarned = 0x29c4, GuildAchievementMembers = 0x29c7, @@ -1318,60 +1323,60 @@ namespace Framework.Constants GuildRoster = 0x29bb, GuildRosterUpdate = 0x29bc, GuildSendRankChange = 0x29b9, - HealthUpdate = 0x26c6, - HighestThreatUpdate = 0x26ce, + HealthUpdate = 0x26c7, + HighestThreatUpdate = 0x26cf, HotfixConnect = 0x2911, HotfixMessage = 0x2910, - InitializeFactions = 0x2716, + InitializeFactions = 0x2717, InitialSetup = 0x2580, - InitWorldStates = 0x2739, - InspectResult = 0x2628, - InstanceEncounterChangePriority = 0x279f, - InstanceEncounterDisengageUnit = 0x279e, - InstanceEncounterEnd = 0x27a7, - InstanceEncounterEngageUnit = 0x279d, - InstanceEncounterGainCombatResurrectionCharge = 0x27a9, - InstanceEncounterInCombatResurrection = 0x27a8, - InstanceEncounterObjectiveComplete = 0x27a2, - InstanceEncounterObjectiveStart = 0x27a1, - InstanceEncounterObjectiveUpdate = 0x27a6, - InstanceEncounterPhaseShiftChanged = 0x27aa, - InstanceEncounterStart = 0x27a3, - InstanceEncounterTimerStart = 0x27a0, - InstanceEncounterUpdateAllowReleaseInProgress = 0x27a5, - InstanceEncounterUpdateSuppressRelease = 0x27a4, - InstanceGroupSizeChanged = 0x26ed, - InstanceInfo = 0x262b, - InstanceReset = 0x267d, - InstanceResetFailed = 0x267e, - InstanceSaveCreated = 0x276e, + InitWorldStates = 0x273a, + InspectResult = 0x2629, + InstanceEncounterChangePriority = 0x27a0, + InstanceEncounterDisengageUnit = 0x279f, + InstanceEncounterEnd = 0x27a8, + InstanceEncounterEngageUnit = 0x279e, + InstanceEncounterGainCombatResurrectionCharge = 0x27aa, + InstanceEncounterInCombatResurrection = 0x27a9, + InstanceEncounterObjectiveComplete = 0x27a3, + InstanceEncounterObjectiveStart = 0x27a2, + InstanceEncounterObjectiveUpdate = 0x27a7, + InstanceEncounterPhaseShiftChanged = 0x27ab, + InstanceEncounterStart = 0x27a4, + InstanceEncounterTimerStart = 0x27a1, + InstanceEncounterUpdateAllowReleaseInProgress = 0x27a6, + InstanceEncounterUpdateSuppressRelease = 0x27a5, + InstanceGroupSizeChanged = 0x26ee, + InstanceInfo = 0x262c, + InstanceReset = 0x267e, + InstanceResetFailed = 0x267f, + InstanceSaveCreated = 0x276f, InterruptPowerRegen = 0x2c59, InvalidatePageText = 0x2918, InvalidatePlayer = 0x2fff, - InvalidPromotionCode = 0x2745, + InvalidPromotionCode = 0x2746, InventoryChangeFailure = 0x2da5, - InventoryFixupComplete = 0x2802, - InventoryFullOverflow = 0x2813, - IslandsMissionNpc = 0x27e9, - IslandAzeriteGain = 0x274e, - IslandComplete = 0x274f, + InventoryFixupComplete = 0x2803, + InventoryFullOverflow = 0x2814, + IslandsMissionNpc = 0x27ea, + IslandAzeriteGain = 0x274f, + IslandComplete = 0x2750, IsQuestCompleteResponse = 0x2a84, - ItemChanged = 0x26de, - ItemCooldown = 0x27b5, - ItemEnchantTimeUpdate = 0x2747, + ItemChanged = 0x26df, + ItemCooldown = 0x27b6, + ItemEnchantTimeUpdate = 0x2748, ItemExpirePurchaseRefund = 0x259e, - ItemInteractionComplete = 0x2874, + ItemInteractionComplete = 0x2861, ItemPurchaseRefundResult = 0x259c, - ItemPushResult = 0x261a, - ItemTimeUpdate = 0x2746, - KickReason = 0x2680, - LatencyReportPing = 0x2886, + ItemPushResult = 0x261b, + ItemTimeUpdate = 0x2747, + KickReason = 0x2681, + LatencyReportPing = 0x2873, LearnedSpells = 0x2c4d, LearnPvpTalentFailed = 0x25ce, LearnTalentFailed = 0x25cd, - LegacyLootRules = 0x2819, - LevelLinkingResult = 0x285a, - LevelUpInfo = 0x26dd, + LegacyLootRules = 0x281a, + LevelLinkingResult = 0x2847, + LevelUpInfo = 0x26de, LfgBootPlayer = 0x2a35, LfgDisabled = 0x2a33, LfgExpandSearchPrompt = 0x2a3b, @@ -1399,44 +1404,45 @@ namespace Framework.Constants LfgSlotInvalid = 0x2a30, LfgTeleportDenied = 0x2a32, LfgUpdateStatus = 0x2a24, - LiveRegionAccountRestoreResult = 0x2760, - LiveRegionCharacterCopyResult = 0x275f, - LiveRegionGetAccountCharacterListResult = 0x2754, - LiveRegionKeyBindingsCopyResult = 0x2761, + LiveRegionAccountRestoreResult = 0x2761, + LiveRegionCharacterCopyResult = 0x2760, + LiveRegionGetAccountCharacterListResult = 0x2755, + LiveRegionKeyBindingsCopyResult = 0x2762, LoadCufProfiles = 0x25b8, - LoadEquipmentSet = 0x2701, - LoginSetTimeSpeed = 0x2700, + LoadEquipmentSet = 0x2702, + LoginSetTimeSpeed = 0x2701, LoginVerifyWorld = 0x2599, - LogoutCancelAck = 0x267c, - LogoutComplete = 0x267b, - LogoutResponse = 0x267a, - LogXpGain = 0x26d9, - LootAllPassed = 0x2618, - LootList = 0x2733, - LootMoneyNotify = 0x2613, - LootRelease = 0x2612, - LootReleaseAll = 0x2611, - LootRemoved = 0x260d, - LootResponse = 0x260c, - LootRoll = 0x2615, - LootRollsComplete = 0x2617, - LootRollWon = 0x2619, - LossOfControlAuraUpdate = 0x2667, - MailCommandResult = 0x2632, - MailListResult = 0x2748, - MailQueryNextTimeResult = 0x2749, + LogoutCancelAck = 0x267d, + LogoutComplete = 0x267c, + LogoutResponse = 0x267b, + LogXpGain = 0x26da, + LootAllPassed = 0x2619, + LootList = 0x2734, + LootMoneyNotify = 0x2614, + LootRelease = 0x2613, + LootReleaseAll = 0x2612, + LootRemoved = 0x260e, + LootResponse = 0x260d, + LootRoll = 0x2616, + LootRollsComplete = 0x2618, + LootRollWon = 0x261a, + LossOfControlAuraUpdate = 0x2668, + MailCommandResult = 0x2633, + MailListResult = 0x2749, + MailQueryNextTimeResult = 0x274a, MapObjectivesInit = 0x294b, MapObjEvents = 0x25c2, - MasterLootCandidateList = 0x2616, + MasterLootCandidateList = 0x2617, + MeetingStoneFailed = 0x287c, MessageBox = 0x2576, - MinimapPing = 0x26c3, + MinimapPing = 0x26c4, MirrorImageComponentedData = 0x2c14, MirrorImageCreatureData = 0x2c13, MissileCancel = 0x25c3, - ModifyCooldown = 0x2756, + ModifyCooldown = 0x2757, Motd = 0x2baf, MountResult = 0x257b, - MovementEnforcementAlert = 0x284a, + MovementEnforcementAlert = 0x2837, MoveApplyInertia = 0x2e2e, MoveApplyMovementForce = 0x2e15, MoveDisableCollision = 0x2e11, @@ -1527,82 +1533,82 @@ namespace Framework.Constants MoveUpdateTeleport = 0x2de1, MoveUpdateTurnRate = 0x2ddd, MoveUpdateWalkSpeed = 0x2dd8, - MultiFloorLeaveFloor = 0x27cf, - MultiFloorNewFloor = 0x27ce, - MythicPlusAllMapStats = 0x2604, - MythicPlusCurrentAffixes = 0x2606, - MythicPlusNewWeekRecord = 0x2609, - MythicPlusSeasonData = 0x2605, + MultiFloorLeaveFloor = 0x27d0, + MultiFloorNewFloor = 0x27cf, + MythicPlusAllMapStats = 0x2605, + MythicPlusCurrentAffixes = 0x2607, + MythicPlusNewWeekRecord = 0x260a, + MythicPlusSeasonData = 0x2606, NeutralPlayerFactionSelectResult = 0x25d5, - NewTaxiPath = 0x2675, + NewTaxiPath = 0x2676, NewWorld = 0x2598, NotifyDestLocSpellCast = 0x2c43, - NotifyMissileTrajectoryCollision = 0x26a1, + NotifyMissileTrajectoryCollision = 0x26a2, NotifyMoney = 0x259b, - NotifyReceivedMail = 0x2633, - OfferPetitionError = 0x26ac, - OnCancelExpectedRideVehicleAura = 0x26da, + NotifyReceivedMail = 0x2634, + OfferPetitionError = 0x26ad, + OnCancelExpectedRideVehicleAura = 0x26db, OnMonsterMove = 0x2dd4, - OpenAnimaDiversionUi = 0x270e, - OpenArtifactForge = 0x2791, + OpenAnimaDiversionUi = 0x270f, + OpenArtifactForge = 0x2792, OpenContainer = 0x2da6, - OpenHeartForge = 0x2816, - OpenItemForge = 0x278f, + OpenHeartForge = 0x2817, + OpenItemForge = 0x2790, OpenLfgDungeonFinder = 0x2a31, - OpenShipmentNpcFromGossip = 0x2787, - OpenShipmentNpcResult = 0x2789, - OverrideLight = 0x26b1, - PageText = 0x270c, - PartyCommandResult = 0x2784, + OpenShipmentNpcFromGossip = 0x2788, + OpenShipmentNpcResult = 0x278a, + OverrideLight = 0x26b2, + PageText = 0x270d, + PartyCommandResult = 0x2785, PartyInvite = 0x25b9, - PartyKillLog = 0x274c, - PartyMemberFullState = 0x274b, - PartyMemberPartialState = 0x274a, - PartyNotifyLfgLeaderChange = 0x287a, + PartyKillLog = 0x274d, + PartyMemberFullState = 0x274c, + PartyMemberPartialState = 0x274b, + PartyNotifyLfgLeaderChange = 0x2867, PartyUpdate = 0x25ee, PastTimeEvents = 0x25be, - PauseMirrorTimer = 0x2703, - PendingRaidLock = 0x26eb, + PauseMirrorTimer = 0x2704, + PendingRaidLock = 0x26ec, PetitionAlreadySigned = 0x25a1, PetitionRenameGuildResponse = 0x29fa, - PetitionShowList = 0x26b4, - PetitionShowSignatures = 0x26b5, - PetitionSignResults = 0x273e, - PetActionFeedback = 0x273b, - PetActionSound = 0x2697, + PetitionShowList = 0x26b5, + PetitionShowSignatures = 0x26b6, + PetitionSignResults = 0x273f, + PetActionFeedback = 0x273c, + PetActionSound = 0x2698, PetAdded = 0x2595, - PetBattleChatRestricted = 0x25fb, - PetBattleDebugQueueDumpResponse = 0x266c, - PetBattleFinalizeLocation = 0x25f4, - PetBattleFinalRound = 0x25f9, - PetBattleFinished = 0x25fa, - PetBattleFirstRound = 0x25f6, - PetBattleInitialUpdate = 0x25f5, - PetBattleMaxGameLengthWarning = 0x25fc, - PetBattlePvpChallenge = 0x25f3, - PetBattleQueueProposeMatch = 0x2630, - PetBattleQueueStatus = 0x2631, - PetBattleReplacementsMade = 0x25f8, - PetBattleRequestFailed = 0x25f2, - PetBattleRoundResult = 0x25f7, + PetBattleChatRestricted = 0x25fc, + PetBattleDebugQueueDumpResponse = 0x266d, + PetBattleFinalizeLocation = 0x25f5, + PetBattleFinalRound = 0x25fa, + PetBattleFinished = 0x25fb, + PetBattleFirstRound = 0x25f7, + PetBattleInitialUpdate = 0x25f6, + PetBattleMaxGameLengthWarning = 0x25fd, + PetBattlePvpChallenge = 0x25f4, + PetBattleQueueProposeMatch = 0x2631, + PetBattleQueueStatus = 0x2632, + PetBattleReplacementsMade = 0x25f9, + PetBattleRequestFailed = 0x25f3, + PetBattleRoundResult = 0x25f8, PetBattleSlotUpdates = 0x25e5, PetCastFailed = 0x2c58, PetClearSpells = 0x2c24, - PetDismissSound = 0x2698, - PetGodMode = 0x2672, - PetGuids = 0x26f7, + PetDismissSound = 0x2699, + PetGodMode = 0x2673, + PetGuids = 0x26f8, PetLearnedSpells = 0x2c4f, PetMode = 0x258b, - PetNameInvalid = 0x26b9, + PetNameInvalid = 0x26ba, PetNewlyTamed = 0x2589, PetSlotUpdated = 0x258a, PetSpellsMessage = 0x2c25, PetStableList = 0x2596, PetStableResult = 0x2597, - PetTameFailure = 0x26a9, + PetTameFailure = 0x26aa, PetUnlearnedSpells = 0x2c50, PhaseShiftChange = 0x2578, - PlayedTime = 0x26ca, + PlayedTime = 0x26cb, PlayerAzeriteItemEquippedStatusChanged = 0x3014, PlayerAzeriteItemGains = 0x3013, PlayerBonusRollFailed = 0x3016, @@ -1618,23 +1624,23 @@ namespace Framework.Constants PlayerTabardVendorActivate = 0x3007, PlayerTutorialHighlightSpell = 0x300d, PlayerTutorialUnhighlightSpell = 0x300c, - PlayMusic = 0x275b, - PlayObjectSound = 0x275c, - PlayOneShotAnimKit = 0x2723, + PlayMusic = 0x275c, + PlayObjectSound = 0x275d, + PlayOneShotAnimKit = 0x2724, PlayOrphanSpellVisual = 0x2c47, - PlayScene = 0x262d, - PlaySound = 0x275a, - PlaySpeakerbotSound = 0x275d, + PlayScene = 0x262e, + PlaySound = 0x275b, + PlaySpeakerbotSound = 0x275e, PlaySpellVisual = 0x2c45, PlaySpellVisualKit = 0x2c49, - PlayTimeWarning = 0x26f1, + PlayTimeWarning = 0x26f2, Pong = 0x304e, - PowerUpdate = 0x26c7, + PowerUpdate = 0x26c8, PreloadChildMap = 0x2579, - PrepopulateNameCache = 0x284d, - PreRessurect = 0x2759, + PrepopulateNameCache = 0x283a, + PreRessurect = 0x275a, PrintNotification = 0x25c6, - ProcResist = 0x274d, + ProcResist = 0x274e, PushSpellToActionBar = 0x2c51, PvpCredit = 0x2945, PvpMatchComplete = 0x294f, @@ -1642,7 +1648,7 @@ namespace Framework.Constants PvpMatchStart = 0x294e, PvpMatchStatistics = 0x2932, PvpOptionsEnabled = 0x2934, - PvpTierRecord = 0x2887, + PvpTierRecord = 0x2874, QueryBattlePetNameResponse = 0x291a, QueryCreatureResponse = 0x2914, QueryGameObjectResponse = 0x2915, @@ -1658,7 +1664,7 @@ namespace Framework.Constants QueryPlayerNameByCommunityIdResponse = 0x3002, QueryQuestInfoResponse = 0x2a96, QueryRealmGuildMasterInfoResponse = 0x29e6, - QueryTimeResponse = 0x26d8, + QueryTimeResponse = 0x26d9, QuestCompletionNpcResponse = 0x2a81, QuestConfirmAccept = 0x2a8f, QuestForceRemoved = 0x2a9c, @@ -1676,50 +1682,50 @@ namespace Framework.Constants QuestPoiQueryResponse = 0x2a9d, QuestPoiUpdateResponse = 0x2a9f, QuestPushResult = 0x2a90, - QuestSessionInfoResponse = 0x2870, - QuestSessionReadyCheck = 0x285e, - QuestSessionReadyCheckResponse = 0x285f, - QuestSessionResult = 0x285d, + QuestSessionInfoResponse = 0x285d, + QuestSessionReadyCheck = 0x284b, + QuestSessionReadyCheckResponse = 0x284c, + QuestSessionResult = 0x284a, QuestUpdateAddCredit = 0x2a8c, QuestUpdateAddCreditSimple = 0x2a8d, QuestUpdateAddPvpCredit = 0x2a8e, QuestUpdateComplete = 0x2a89, QuestUpdateFailed = 0x2a8a, QuestUpdateFailedTimer = 0x2a8b, - QueueSummaryUpdate = 0x2801, - RafAccountInfo = 0x285b, - RafActivityStateChanged = 0x286c, - RaidDifficultySet = 0x279a, - RaidGroupOnly = 0x279c, + QueueSummaryUpdate = 0x2802, + RafAccountInfo = 0x2848, + RafActivityStateChanged = 0x2859, + RaidDifficultySet = 0x279b, + RaidGroupOnly = 0x279d, RaidInstanceMessage = 0x2bb4, RaidMarkersChanged = 0x25a2, - RandomRoll = 0x2627, + RandomRoll = 0x2628, RatedPvpInfo = 0x2931, - ReadyCheckCompleted = 0x25f1, - ReadyCheckResponse = 0x25f0, - ReadyCheckStarted = 0x25ef, - ReadItemResultFailed = 0x2796, - ReadItemResultOk = 0x278e, - RealmLookupInfo = 0x27ba, + ReadyCheckCompleted = 0x25f2, + ReadyCheckResponse = 0x25f1, + ReadyCheckStarted = 0x25f0, + ReadItemResultFailed = 0x2797, + ReadItemResultOk = 0x278f, + RealmLookupInfo = 0x27bb, RealmQueryResponse = 0x2913, - ReattachResurrect = 0x273d, - RecruitAFriendFailure = 0x26b6, - RefreshComponent = 0x2648, + ReattachResurrect = 0x273e, + RecruitAFriendFailure = 0x26b7, + RefreshComponent = 0x2649, RefreshSpellHistory = 0x2c2c, RemoveItemPassive = 0x25a9, RemoveSpellFromActionBar = 0x2c52, - ReplaceTrophyResponse = 0x27b2, + ReplaceTrophyResponse = 0x27b3, ReportPvpPlayerAfkResult = 0x3001, RequestCemeteryListResponse = 0x2591, RequestPvpRewardsResponse = 0x2935, RequestScheduledPvpInfoResponse = 0x2936, ResearchComplete = 0x2587, ResetCompressionContext = 0x304f, - ResetFailedNotify = 0x26ad, + ResetFailedNotify = 0x26ae, ResetQuestPoi = 0x2aa0, ResetRangedCombatTimer = 0x2944, ResetWeeklyCurrency = 0x2575, - RespecWipeConfirm = 0x260a, + RespecWipeConfirm = 0x260b, RespondInspectAchievements = 0x2572, RestartGlobalCooldown = 0x2c60, RestrictedAccountWarning = 0x25b5, @@ -1729,20 +1735,20 @@ namespace Framework.Constants ResumeToken = 0x25a7, ResurrectRequest = 0x257e, ResyncRunes = 0x2c5f, - ReturnApplicantList = 0x2851, - ReturnRecruitingClubs = 0x2850, + ReturnApplicantList = 0x283e, + ReturnRecruitingClubs = 0x283d, RoleChangedInform = 0x258d, RoleChosen = 0x2a39, RolePollInform = 0x258e, - RuneforgeLegendaryCraftingOpenNpc = 0x27ee, + RuneforgeLegendaryCraftingOpenNpc = 0x27ef, RuneRegenDebug = 0x25b2, - ScenarioCompleted = 0x27dc, - ScenarioPois = 0x262a, - ScenarioProgressUpdate = 0x2623, - ScenarioShowCriteria = 0x27f1, - ScenarioState = 0x2622, - ScenarioUiUpdate = 0x27f0, - ScenarioVacate = 0x2797, + ScenarioCompleted = 0x27dd, + ScenarioPois = 0x262b, + ScenarioProgressUpdate = 0x2624, + ScenarioShowCriteria = 0x27f2, + ScenarioState = 0x2623, + ScenarioUiUpdate = 0x27f1, + ScenarioVacate = 0x2798, SceneObjectEvent = 0x25db, SceneObjectPetBattleFinalRound = 0x25e0, SceneObjectPetBattleFinished = 0x25e1, @@ -1752,60 +1758,61 @@ namespace Framework.Constants SceneObjectPetBattleRoundResult = 0x25de, ScriptCast = 0x2c56, SeasonInfo = 0x25bd, - SellResponse = 0x26ba, + SellResponse = 0x26bb, SendItemPassives = 0x25aa, SendKnownSpells = 0x2c2a, - SendRaidTargetUpdateAll = 0x2625, - SendRaidTargetUpdateSingle = 0x2626, + SendRaidTargetUpdateAll = 0x2626, + SendRaidTargetUpdateSingle = 0x2627, SendSpellCharges = 0x2c2d, SendSpellHistory = 0x2c2b, SendUnlearnSpells = 0x2c2e, - ServerFirstAchievements = 0x2645, - ServerTime = 0x2679, - ServerTimeOffset = 0x2707, + ServerFirstAchievements = 0x2646, + ServerTime = 0x267a, + ServerTimeOffset = 0x2708, SetupCurrency = 0x2573, SetupResearchHistory = 0x2586, - SetAiAnimKit = 0x2722, - SetAllTaskProgress = 0x277e, - SetAnimTier = 0x2726, + SetAiAnimKit = 0x2723, + SetAllTaskProgress = 0x277f, + SetAnimTier = 0x2727, SetChrUpgradeTier = 0x25d8, SetCurrency = 0x2574, SetDfFastLaunchResult = 0x2a2e, - SetDungeonDifficulty = 0x269b, - SetFactionAtWar = 0x26f3, - SetFactionNotVisible = 0x271d, - SetFactionStanding = 0x271e, - SetFactionVisible = 0x271c, + SetDungeonDifficulty = 0x269c, + SetFactionAtWar = 0x26f4, + SetFactionNotVisible = 0x271e, + SetFactionStanding = 0x271f, + SetFactionVisible = 0x271d, SetFlatSpellModifier = 0x2c36, - SetForcedReactions = 0x2710, + SetForcedReactions = 0x2711, SetItemPurchaseData = 0x259d, - SetLootMethodFailed = 0x27c0, + SetLootMethodFailed = 0x27c1, SetMaxWeeklyQuantity = 0x25a0, - SetMeleeAnimKit = 0x2725, - SetMovementAnimKit = 0x2724, + SetMeleeAnimKit = 0x2726, + SetMovementAnimKit = 0x2725, SetPctSpellModifier = 0x2c37, - SetPetSpecialization = 0x261c, + SetPetSpecialization = 0x261d, SetPlayerDeclinedNamesResult = 0x3003, SetPlayHoverAnim = 0x25b6, - SetProficiency = 0x2727, - SetQuestReplayCooldownOverride = 0x2864, + SetProficiency = 0x2728, + SetQuestReplayCooldownOverride = 0x2851, SetShipmentReadyResponse = 0x2997, SetSpellCharges = 0x2c29, - SetTaskComplete = 0x277f, - SetTimeZoneInformation = 0x266e, - SetVehicleRecId = 0x26ea, - ShadowlandsCapacitanceUpdate = 0x288B, + SetTaskComplete = 0x2780, + SetTimeZoneInformation = 0x266f, + SetVehicleRecId = 0x26eb, + ShadowlandsCapacitanceUpdate = 0x2878, ShipmentFactionUpdateResult = 0x2998, - ShowBank = 0x2676, - ShowMailbox = 0x2798, + ShowBank = 0x2677, + ShowMailbox = 0x2799, ShowNeutralPlayerFactionSelectUi = 0x25d4, ShowQuestCompletionText = 0x2a95, - ShowTaxiNodes = 0x26c2, - ShowTradeSkillResponse = 0x2762, - SocketGemsFailure = 0x271a, - SocketGemsSuccess = 0x2719, - SpecialMountAnim = 0x2696, - SpecInvoluntarilyChanged = 0x270b, + ShowTaxiNodes = 0x26c3, + ShowTradeSkillResponse = 0x2763, + SocialContractRequestResponse = 0x287d, + SocketGemsFailure = 0x271b, + SocketGemsSuccess = 0x271a, + SpecialMountAnim = 0x2697, + SpecInvoluntarilyChanged = 0x270c, SpellAbsorbLog = 0x2c1f, SpellCategoryCooldown = 0x2c17, SpellChannelStart = 0x2c34, @@ -1831,93 +1838,94 @@ namespace Framework.Constants SpellPrepare = 0x2c38, SpellStart = 0x2c3a, SpellVisualLoadScreen = 0x25c8, - SpiritHealerConfirm = 0x2708, - SplashScreenShowLatest = 0x2876, - StandStateUpdate = 0x270f, - StartElapsedTimer = 0x25fd, - StartElapsedTimers = 0x25ff, - StartLightningStorm = 0x269e, - StartLootRoll = 0x2614, - StartMirrorTimer = 0x2702, + SpiritHealerConfirm = 0x2709, + SplashScreenShowLatest = 0x2863, + StandStateUpdate = 0x2710, + StartElapsedTimer = 0x25fe, + StartElapsedTimers = 0x2600, + StartLightningStorm = 0x269f, + StartLootRoll = 0x2615, + StartMirrorTimer = 0x2703, StartTimer = 0x25a4, - StopElapsedTimer = 0x25fe, - StopMirrorTimer = 0x2704, - StopSpeakerbotSound = 0x275e, + StopElapsedTimer = 0x25ff, + StopMirrorTimer = 0x2705, + StopSpeakerbotSound = 0x275f, StreamingMovies = 0x25a3, - SummonCancel = 0x26a7, + SummonCancel = 0x26a8, SummonRaidMemberValidateFailed = 0x258f, - SummonRequest = 0x2714, + SummonRequest = 0x2715, SupercededSpells = 0x2c4c, SuspendComms = 0x304a, SuspendToken = 0x25a6, - SyncWowEntitlements = 0x286e, - TalentsInvoluntarilyReset = 0x270a, - TaxiNodeStatus = 0x2673, - TextEmote = 0x2671, - ThreatClear = 0x26d1, - ThreatRemove = 0x26d0, - ThreatUpdate = 0x26cf, + SyncWowEntitlements = 0x285b, + TalentsInvoluntarilyReset = 0x270b, + TaxiNodeStatus = 0x2674, + TextEmote = 0x2672, + ThreatClear = 0x26d2, + ThreatRemove = 0x26d1, + ThreatUpdate = 0x26d0, TimeAdjustment = 0x2dd3, TimeSyncRequest = 0x2dd2, - TitleEarned = 0x26cc, - TitleLost = 0x26cd, - TotemCreated = 0x26bd, - TotemDurationChanged = 0x26be, - TotemMoved = 0x26bf, + TitleEarned = 0x26cd, + TitleLost = 0x26ce, + TotemCreated = 0x26be, + TotemDurationChanged = 0x26bf, + TotemMoved = 0x26c0, TradeStatus = 0x2582, TradeUpdated = 0x2581, - TrainerBuyFailed = 0x26d4, - TrainerList = 0x26d3, - TransferAborted = 0x26f6, + TrainerBuyFailed = 0x26d5, + TrainerList = 0x26d4, + TransferAborted = 0x26f7, TransferPending = 0x25c9, - TransmogrifyNpc = 0x27e6, + TransmogrifyNpc = 0x27e7, TreasurePickerResponse = 0x291f, - TriggerCinematic = 0x27b8, - TriggerMovie = 0x26c0, - TurnInPetitionResult = 0x2740, - TutorialFlags = 0x27ab, + TriggerCinematic = 0x27b9, + TriggerMovie = 0x26c1, + TurnInPetitionResult = 0x2741, + TutorialFlags = 0x27ac, TwitterStatus = 0x3043, - UiHealingRangeModified = 0x2736, - UiItemInteractionNpc = 0x27e8, + UiHealingRangeModified = 0x2737, + UiItemInteractionNpc = 0x27e9, UiMapQuestLinesResponse = 0x2aa2, - UndeleteCharacterResponse = 0x27bb, - UndeleteCooldownStatusResponse = 0x27bc, + UndeleteCharacterResponse = 0x27bc, + UndeleteCooldownStatusResponse = 0x27bd, UnlearnedSpells = 0x2c4e, UnloadChildMap = 0x257a, - UpdateAadcStatusResponse = 0x2888, - UpdateAccountData = 0x26fc, + UpdateAadcStatusResponse = 0x2875, + UpdateAccountData = 0x26fd, UpdateActionButtons = 0x25d9, - UpdateBnetSessionKey = 0x2812, + UpdateBnetSessionKey = 0x2813, UpdateCapturePoint = 0x2929, - UpdateCelestialBody = 0x280e, - UpdateCharacterFlags = 0x27b1, - UpdateChargeCategoryCooldown = 0x2758, - UpdateCooldown = 0x2757, + UpdateCelestialBody = 0x280f, + UpdateCharacterFlags = 0x27b2, + UpdateChargeCategoryCooldown = 0x2759, + UpdateCooldown = 0x2758, UpdateDailyMissionCounter = 0x297f, - UpdateExpansionLevel = 0x263d, - UpdateGameTimeState = 0x2815, - UpdateInstanceOwnership = 0x26a0, - UpdateLastInstance = 0x267f, - UpdateObject = 0x27b9, + UpdateExpansionLevel = 0x263e, + UpdateGameTimeState = 0x2816, + UpdateInstanceOwnership = 0x26a1, + UpdateLastInstance = 0x2680, + UpdateObject = 0x27ba, UpdatePrimarySpec = 0x25d1, + UpdateRecentPlayerGuids = 0x25ef, UpdateTalentData = 0x25d0, - UpdateTaskProgress = 0x277d, + UpdateTaskProgress = 0x277e, UpdateWeeklySpellUsage = 0x2c19, - UpdateWorldState = 0x273a, + UpdateWorldState = 0x273b, UserlistAdd = 0x2bb9, UserlistRemove = 0x2bba, UserlistUpdate = 0x2bbb, - UseEquipmentSetResult = 0x2741, - VasCheckTransferOkResponse = 0x2809, - VasGetQueueMinutesResponse = 0x2807, - VasGetServiceStatusResponse = 0x2806, - VasPurchaseComplete = 0x27e2, - VasPurchaseStateUpdate = 0x27e1, + UseEquipmentSetResult = 0x2742, + VasCheckTransferOkResponse = 0x280a, + VasGetQueueMinutesResponse = 0x2808, + VasGetServiceStatusResponse = 0x2807, + VasPurchaseComplete = 0x27e3, + VasPurchaseStateUpdate = 0x27e2, VendorInventory = 0x25b4, VignetteUpdate = 0x3008, - VoiceChannelInfoResponse = 0x280d, - VoiceChannelSttTokenResponse = 0x2882, - VoiceLoginResponse = 0x280c, + VoiceChannelInfoResponse = 0x280e, + VoiceChannelSttTokenResponse = 0x286f, + VoiceLoginResponse = 0x280d, VoidItemSwapResponse = 0x2da4, VoidStorageContents = 0x2da1, VoidStorageFailed = 0x2da0, @@ -1926,24 +1934,24 @@ namespace Framework.Constants WaitQueueFinish = 0x256f, WaitQueueUpdate = 0x256e, Warden3Data = 0x2577, - Warden3Disabled = 0x2810, - Warden3Enabled = 0x280f, - WarfrontComplete = 0x2750, + Warden3Disabled = 0x2811, + Warden3Enabled = 0x2810, + WarfrontComplete = 0x2751, WargameRequestSuccessfullySentToOpponent = 0x2933, - Weather = 0x269d, - WeeklyRewardsProgressResult = 0x2879, - WeeklyRewardsResult = 0x2877, - WeeklyRewardClaimResult = 0x2878, + Weather = 0x269e, + WeeklyRewardsProgressResult = 0x2866, + WeeklyRewardsResult = 0x2864, + WeeklyRewardClaimResult = 0x2865, WeeklySpellUsage = 0x2c18, Who = 0x2bae, - WhoIs = 0x269c, - WillBeKickedForAddedSubscriptionTime = 0x2814, - WorldMapOpenNpc = 0x27e5, + WhoIs = 0x269d, + WillBeKickedForAddedSubscriptionTime = 0x2815, + WorldMapOpenNpc = 0x27e6, WorldQuestUpdateResponse = 0x300f, WorldServerInfo = 0x25ab, - WowEntitlementNotification = 0x286f, + WowEntitlementNotification = 0x285c, XpGainAborted = 0x25c5, - XpGainEnabled = 0x279b, + XpGainEnabled = 0x279c, ZoneUnderAttack = 0x2bb5, // Opcodes That Are Not Generated Automatically diff --git a/Source/Framework/Constants/SupportSystemConst.cs b/Source/Framework/Constants/SupportSystemConst.cs index e7a6ec298..9648e904c 100644 --- a/Source/Framework/Constants/SupportSystemConst.cs +++ b/Source/Framework/Constants/SupportSystemConst.cs @@ -17,22 +17,57 @@ namespace Framework.Constants { + public enum ReportType + { + Chat = 0, + InWorld = 1, + ClubFinderPosting = 2, + ClubFinderApplicant = 3, + GroupFinderPosting = 4, + GroupFinderApplicant = 5, + ClubMember = 6, + GroupMember = 7, + Friend = 8, + Pet = 9, + BattlePet = 10, + Calendar = 11, + Mail = 12, + PvP = 13, + } + + public enum ReportMajorCategory + { + InappropriateCommunication = 0, + GameplaySabotage = 1, + Cheating = 2, + InappropriateName = 3, + } + + public enum ReportMinorCategory + { + TextChat = 0x0001, + Boosting = 0x0002, + Spam = 0x0004, + Afk = 0x0008, + IntentionallyFeeding = 0x0010, + BlockingProgress = 0x0020, + Hacking = 0x0040, + Botting = 0x0080, + Advertisement = 0x0100, + BTag = 0x0200, + GroupName = 0x0400, + CharacterName = 0x0800, + GuildName = 0x1000, + Description = 0x2000, + Name = 0x4000, + } + public enum GMTicketSystemStatus { Disabled = 0, Enabled = 1 } - public enum GMSupportComplaintType - { - None = 0, - Language = 2, - PlayerName = 4, - Cheat = 15, - GuildName = 23, - Spamming = 24 - } - public enum SupportSpamType { Mail = 0, diff --git a/Source/Framework/Database/Databases/CharacterDatabase.cs b/Source/Framework/Database/Databases/CharacterDatabase.cs index 79ed7113f..b8934ba92 100644 --- a/Source/Framework/Database/Databases/CharacterDatabase.cs +++ b/Source/Framework/Database/Databases/CharacterDatabase.cs @@ -304,7 +304,7 @@ namespace Framework.Database PrepareStatement(CharStatements.INS_GUILD_MEMBER_WITHDRAW_MONEY, "INSERT INTO guild_member_withdraw (guid, money) VALUES (?, ?) ON DUPLICATE KEY UPDATE money = VALUES (money)"); PrepareStatement(CharStatements.DEL_GUILD_MEMBER_WITHDRAW, "TRUNCATE guild_member_withdraw"); - PrepareStatement(CharStatements.SEL_CHAR_DATA_FOR_GUILD, "SELECT name, level, class, gender, zone, account FROM characters WHERE guid = ?"); + PrepareStatement(CharStatements.SEL_CHAR_DATA_FOR_GUILD, "SELECT name, level, race, class, gender, zone, account FROM characters WHERE guid = ?"); PrepareStatement(CharStatements.DEL_GUILD_ACHIEVEMENT, "DELETE FROM guild_achievement WHERE guildId = ? AND achievement = ?"); PrepareStatement(CharStatements.INS_GUILD_ACHIEVEMENT, "INSERT INTO guild_achievement (guildId, achievement, date, guids) VALUES (?, ?, ?, ?)"); PrepareStatement(CharStatements.DEL_GUILD_ACHIEVEMENT_CRITERIA, "DELETE FROM guild_achievement_progress WHERE guildId = ? AND criteria = ?"); @@ -439,8 +439,8 @@ namespace Framework.Database PrepareStatement(CharStatements.DEL_ALL_GM_BUGS, "TRUNCATE TABLE gm_bug"); // GM Complaint - PrepareStatement(CharStatements.SEL_GM_COMPLAINTS, "SELECT id, playerGuid, note, createTime, mapId, posX, posY, posZ, facing, targetCharacterGuid, complaintType, reportLineIndex, assignedTo, closedBy, comment FROM gm_complaint"); - PrepareStatement(CharStatements.REP_GM_COMPLAINT, "REPLACE INTO gm_complaint (id, playerGuid, note, createTime, mapId, posX, posY, posZ, facing, targetCharacterGuid, complaintType, reportLineIndex, assignedTo, closedBy, comment) VALUES (?, ?, ?, UNIX_TIMESTAMP(NOW()), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); + PrepareStatement(CharStatements.SEL_GM_COMPLAINTS, "SELECT id, playerGuid, note, createTime, mapId, posX, posY, posZ, facing, targetCharacterGuid, reportType, reportMajorCategory, reportMinorCategoryFlags, reportLineIndex, assignedTo, closedBy, comment FROM gm_complaint"); + PrepareStatement(CharStatements.REP_GM_COMPLAINT, "REPLACE INTO gm_complaint (id, playerGuid, note, createTime, mapId, posX, posY, posZ, facing, targetCharacterGuid, reportType, reportMajorCategory, reportMinorCategoryFlags, reportLineIndex, assignedTo, closedBy, comment) VALUES (?, ?, ?, UNIX_TIMESTAMP(NOW()), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); PrepareStatement(CharStatements.DEL_GM_COMPLAINT, "DELETE FROM gm_complaint WHERE id = ?"); PrepareStatement(CharStatements.SEL_GM_COMPLAINT_CHATLINES, "SELECT timestamp, text FROM gm_complaint_chatlog WHERE complaintId = ? ORDER BY lineId ASC"); PrepareStatement(CharStatements.INS_GM_COMPLAINT_CHATLINE, "INSERT INTO gm_complaint_chatlog (complaintId, lineId, timestamp, text) VALUES (?, ?, ?, ?)"); diff --git a/Source/Game/Entities/Object/Update/UpdateFields.cs b/Source/Game/Entities/Object/Update/UpdateFields.cs index 0e34dd608..0ec1a9a35 100644 --- a/Source/Game/Entities/Object/Update/UpdateFields.cs +++ b/Source/Game/Entities/Object/Update/UpdateFields.cs @@ -3569,7 +3569,7 @@ namespace Game.Entities public UpdateFieldArray WeaponDmgMultipliers = new(3, 585, 586); public UpdateFieldArray WeaponAtkSpeedMultipliers = new(3, 585, 589); public UpdateFieldArray BuybackPrice = new(12, 592, 593); - public UpdateFieldArray BuybackTimestamp = new(12, 592, 605); + public UpdateFieldArray BuybackTimestamp = new(12, 592, 605); public UpdateFieldArray CombatRatings = new(32, 617, 618); public UpdateFieldArray PvpInfo = new(6, 650, 651); public UpdateFieldArray NoReagentCostMask = new(4, 657, 658); @@ -3658,7 +3658,7 @@ namespace Game.Entities for (int i = 0; i < 12; ++i) { data.WriteUInt32(BuybackPrice[i]); - data.WriteUInt32(BuybackTimestamp[i]); + data.WriteInt64(BuybackTimestamp[i]); } data.WriteUInt16(TodayHonorableKills); data.WriteUInt16(YesterdayHonorableKills); @@ -4697,7 +4697,7 @@ namespace Game.Entities } if (changesMask[605 + i]) { - data.WriteUInt32(BuybackTimestamp[i]); + data.WriteInt64(BuybackTimestamp[i]); } } } diff --git a/Source/Game/Entities/Object/WorldObject.cs b/Source/Game/Entities/Object/WorldObject.cs index 67519eeeb..4fd1bd6eb 100644 --- a/Source/Game/Entities/Object/WorldObject.cs +++ b/Source/Game/Entities/Object/WorldObject.cs @@ -3806,10 +3806,8 @@ namespace Game.Entities Direction = data.ReadVector3(); TransportID = data.ReadUInt32(); Magnitude = data.ReadFloat(); + Unused910 = data.ReadInt32(); Type = (MovementForceType)data.ReadBits(2); - bool has910 = data.HasBit(); - if (has910) - Unused910 = data.ReadInt32(); } public void Write(WorldPacket data) diff --git a/Source/Game/Entities/Player/Player.Items.cs b/Source/Game/Entities/Player/Player.Items.cs index afcbbac01..2844644d1 100644 --- a/Source/Game/Entities/Player/Player.Items.cs +++ b/Source/Game/Entities/Player/Player.Items.cs @@ -3025,7 +3025,7 @@ namespace Game.Entities // if current back slot non-empty search oldest or free if (m_items[slot] != null) { - uint oldest_time = m_activePlayerData.BuybackTimestamp[0]; + long oldest_time = m_activePlayerData.BuybackTimestamp[0]; uint oldest_slot = InventorySlots.BuyBackStart; for (byte i = InventorySlots.BuyBackStart + 1; i < InventorySlots.BuyBackEnd; ++i) @@ -3037,8 +3037,7 @@ namespace Game.Entities break; } - uint i_time = m_activePlayerData.BuybackTimestamp[i - InventorySlots.BuyBackStart]; - + long i_time = m_activePlayerData.BuybackTimestamp[i - InventorySlots.BuyBackStart]; if (oldest_time > i_time) { oldest_time = i_time; @@ -3489,7 +3488,7 @@ namespace Game.Entities DB.Characters.CommitTransaction(trans); } public void SetBuybackPrice(uint slot, uint price) { SetUpdateFieldValue(ref m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.BuybackPrice, (int)slot), price); } - public void SetBuybackTimestamp(uint slot, uint timestamp) { SetUpdateFieldValue(ref m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.BuybackTimestamp, (int)slot), timestamp); } + public void SetBuybackTimestamp(uint slot, long timestamp) { SetUpdateFieldValue(ref m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.BuybackTimestamp, (int)slot), timestamp); } public Item GetItemFromBuyBackSlot(uint slot) { diff --git a/Source/Game/Groups/Group.cs b/Source/Game/Groups/Group.cs index 464a09292..108cfb3bc 100644 --- a/Source/Game/Groups/Group.cs +++ b/Source/Game/Groups/Group.cs @@ -399,6 +399,7 @@ namespace Game.Groups MemberSlot member = new(); member.guid = player.GetGUID(); member.name = player.GetName(); + member.race = player.GetRace(); member._class = (byte)player.GetClass(); member.group = subGroup; member.flags = 0; @@ -1469,6 +1470,10 @@ namespace Game.Groups playerInfos.Name = member.name; playerInfos.Class = member._class; + ChrRacesRecord race = CliDB.ChrRacesStorage.LookupByKey((uint)member.race); + FactionTemplateRecord raceFaction = CliDB.FactionTemplateStorage.LookupByKey(race.FactionID); + playerInfos.FactionGroup = raceFaction.FactionGroup; + playerInfos.Status = GroupMemberOnlineStatus.Offline; if (memberPlayer && memberPlayer.GetSession() && !memberPlayer.GetSession().PlayerLogout()) playerInfos.Status = GroupMemberOnlineStatus.Online | (IsBGGroup() || IsBFGroup() ? GroupMemberOnlineStatus.PVP : 0); @@ -2845,6 +2850,7 @@ namespace Game.Groups { public ObjectGuid guid; public string name; + public Race race; public byte _class; public byte group; public GroupMemberFlags flags; diff --git a/Source/Game/Guilds/Guild.cs b/Source/Game/Guilds/Guild.cs index acc2ce7f2..6fb8d0742 100644 --- a/Source/Game/Guilds/Guild.cs +++ b/Source/Game/Guilds/Guild.cs @@ -236,6 +236,7 @@ namespace Game.Guilds memberData.Level = member.GetLevel(); memberData.ClassID = (byte)member.GetClass(); memberData.Gender = (byte)member.GetGender(); + memberData.RaceID = (byte)member.GetRace(); memberData.Authenticated = false; memberData.SorEligible = false; @@ -1650,10 +1651,11 @@ namespace Game.Guilds member.SetStats( name, result.Read(1), - (Class)result.Read(2), - (Gender)result.Read(3), - result.Read(4), - result.Read(5), + (Race)result.Read(2), + (Class)result.Read(3), + (Gender)result.Read(4), + result.Read(5), + result.Read(6), 0); ok = member.CheckStats(); @@ -2603,6 +2605,7 @@ namespace Game.Guilds { m_name = player.GetName(); m_level = (byte)player.GetLevel(); + m_race = player.GetRace(); m_class = player.GetClass(); _gender = player.GetNativeGender(); m_zoneId = player.GetZoneId(); @@ -2610,10 +2613,11 @@ namespace Game.Guilds m_achievementPoints = player.GetAchievementPoints(); } - public void SetStats(string name, byte level, Class _class, Gender gender, uint zoneId, uint accountId, uint reputation) + public void SetStats(string name, byte level, Race race, Class _class, Gender gender, uint zoneId, uint accountId, uint reputation) { m_name = name; m_level = level; + m_race = race; m_class = _class; _gender = gender; m_zoneId = zoneId; @@ -2685,12 +2689,13 @@ namespace Game.Guilds SetStats(field.Read(14), field.Read(15), // characters.level - (Class)field.Read(16), // characters.class - (Gender)field.Read(17), // characters.gender - field.Read(18), // characters.zone - field.Read(19), // characters.account + (Race)field.Read(16), // characters.race + (Class)field.Read(17), // characters.class + (Gender)field.Read(18), // characters.gender + field.Read(19), // characters.zone + field.Read(20), // characters.account 0); - m_logoutTime = field.Read(20); // characters.logout_time + m_logoutTime = field.Read(21); // characters.logout_time m_totalActivity = 0; m_weekActivity = 0; m_weekReputation = 0; @@ -2711,13 +2716,19 @@ namespace Game.Guilds { if (m_level < 1) { - Log.outError(LogFilter.Guild, "Player ({0}) has a broken data in field `characters`.`level`, deleting him from guild!", m_guid.ToString()); + Log.outError(LogFilter.Guild, $"{m_guid} has a broken data in field `characters`.`level`, deleting him from guild!"); return false; } - if (m_class < Class.Warrior || m_class >= Class.Max) + if (!CliDB.ChrRacesStorage.ContainsKey((uint)m_race)) { - Log.outError(LogFilter.Guild, "Player ({0}) has a broken data in field `characters`.`class`, deleting him from guild!", m_guid.ToString()); + Log.outError(LogFilter.Guild, $"{m_guid} has a broken data in field `characters`.`race`, deleting him from guild!"); + return false; + } + + if (!CliDB.ChrClassesStorage.ContainsKey((uint)m_class)) + { + Log.outError(LogFilter.Guild, $"{m_guid} has a broken data in field `characters`.`class`, deleting him from guild!"); return false; } return true; @@ -2790,6 +2801,7 @@ namespace Game.Guilds public ulong GetLogoutTime() { return m_logoutTime; } public string GetPublicNote() { return m_publicNote; } public string GetOfficerNote() { return m_officerNote; } + public Race GetRace() { return m_race; } public Class GetClass() { return m_class; } public Gender GetGender() { return _gender; } public byte GetLevel() { return m_level; } @@ -2822,6 +2834,7 @@ namespace Game.Guilds string m_name; uint m_zoneId; byte m_level; + Race m_race; Class m_class; Gender _gender; GuildMemberFlags m_flags; diff --git a/Source/Game/Guilds/GuildManager.cs b/Source/Game/Guilds/GuildManager.cs index 910789c2f..3ebff7515 100644 --- a/Source/Game/Guilds/GuildManager.cs +++ b/Source/Game/Guilds/GuildManager.cs @@ -177,8 +177,8 @@ namespace Game // 0 1 2 3 4 5 6 7 8 9 10 SQLResult result = DB.Characters.Query("SELECT gm.guildid, gm.guid, rank, pnote, offnote, w.tab0, w.tab1, w.tab2, w.tab3, w.tab4, w.tab5, " + - // 11 12 13 14 15 16 17 18 19 20 - "w.tab6, w.tab7, w.money, c.name, c.level, c.class, c.gender, c.zone, c.account, c.logout_time " + + // 11 12 13 14 15 16 17 18 19 20 21 + "w.tab6, w.tab7, w.money, c.name, c.level, c.race, c.class, c.gender, c.zone, c.account, c.logout_time " + "FROM guild_member gm LEFT JOIN guild_member_withdraw w ON gm.guid = w.guid " + "LEFT JOIN characters c ON c.guid = gm.guid ORDER BY gm.guildid ASC"); diff --git a/Source/Game/Handlers/AuctionHandler.cs b/Source/Game/Handlers/AuctionHandler.cs index 765105bd2..563af83e9 100644 --- a/Source/Game/Handlers/AuctionHandler.cs +++ b/Source/Game/Handlers/AuctionHandler.cs @@ -541,6 +541,33 @@ namespace Game SendPacket(response); } + [WorldPacketHandler(ClientOpcodes.AuctionRequestFavoriteList)] + void HandleAuctionRequestFavoriteList(AuctionRequestFavoriteList requestFavoriteList) + { + PreparedStatement stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_CHARACTER_FAVORITE_AUCTIONS); + stmt.AddValue(0, _player.GetGUID().GetCounter()); + GetQueryProcessor().AddCallback(DB.Characters.AsyncQuery(stmt)).WithCallback(favoriteAuctionResult => + { + AuctionFavoriteList favoriteItems = new(); + if (!favoriteAuctionResult.IsEmpty()) + { + do + { + AuctionFavoriteInfo item = new(); + item.Order = favoriteAuctionResult.Read(0); + item.ItemID = favoriteAuctionResult.Read(1); + item.ItemLevel = favoriteAuctionResult.Read(2); + item.BattlePetSpeciesID = favoriteAuctionResult.Read(3); + item.SuffixItemNameDescriptionID = favoriteAuctionResult.Read(4); + favoriteItems.Items.Add(item); + + } while (favoriteAuctionResult.NextRow()); + + } + SendPacket(favoriteItems); + }); + } + [WorldPacketHandler(ClientOpcodes.AuctionSellCommodity)] void HandleAuctionSellCommodity(AuctionSellCommodity sellCommodity) { diff --git a/Source/Game/Handlers/CharacterHandler.cs b/Source/Game/Handlers/CharacterHandler.cs index c99e70b42..2f75a6b9e 100644 --- a/Source/Game/Handlers/CharacterHandler.cs +++ b/Source/Game/Handlers/CharacterHandler.cs @@ -880,29 +880,6 @@ namespace Game // Place character in world (and load zone) before some object loading pCurrChar.LoadCorpse(holder.GetResult(PlayerLoginQueryLoad.CorpseLocation)); - stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_CHARACTER_FAVORITE_AUCTIONS); - stmt.AddValue(0, pCurrChar.GetGUID().GetCounter()); - GetQueryProcessor().AddCallback(DB.Characters.AsyncQuery(stmt)).WithCallback(favoriteAuctionResult => - { - AuctionFavoriteList favoriteItems = new(); - if (!favoriteAuctionResult.IsEmpty()) - { - do - { - AuctionFavoriteInfo item = new(); - item.Order = favoriteAuctionResult.Read(0); - item.ItemID = favoriteAuctionResult.Read(1); - item.ItemLevel = favoriteAuctionResult.Read(2); - item.BattlePetSpeciesID = favoriteAuctionResult.Read(3); - item.SuffixItemNameDescriptionID = favoriteAuctionResult.Read(4); - favoriteItems.Items.Add(item); - - } while (favoriteAuctionResult.NextRow()); - - } - SendPacket(favoriteItems); - }); - // setting Ghost+speed if dead if (pCurrChar.GetDeathState() == DeathState.Dead) { diff --git a/Source/Game/Handlers/SocialHandler.cs b/Source/Game/Handlers/SocialHandler.cs index 10476981d..a8fcafc91 100644 --- a/Source/Game/Handlers/SocialHandler.cs +++ b/Source/Game/Handlers/SocialHandler.cs @@ -364,5 +364,13 @@ namespace Game Log.outDebug(LogFilter.Network, "WorldSession.HandleSetContactNotesOpcode: Contact: {0}, Notes: {1}", packet.Player.Guid.ToString(), packet.Notes); GetPlayer().GetSocial().SetFriendNote(packet.Player.Guid, packet.Notes); } + + [WorldPacketHandler(ClientOpcodes.SocialContractRequest)] + void HandleSocialContractRequest(SocialContractRequest socialContractRequest) + { + SocialContractRequestResponse response = new(); + response.ShowSocialContract = false; + SendPacket(response); + } } } diff --git a/Source/Game/Handlers/TicketHandler.cs b/Source/Game/Handlers/TicketHandler.cs index 1c87695c3..209b30984 100644 --- a/Source/Game/Handlers/TicketHandler.cs +++ b/Source/Game/Handlers/TicketHandler.cs @@ -83,7 +83,9 @@ namespace Game comp.SetFacing(packet.Header.Facing); comp.SetChatLog(packet.ChatLog); comp.SetTargetCharacterGuid(packet.TargetCharacterGUID); - comp.SetComplaintType((GMSupportComplaintType)packet.ComplaintType); + comp.SetReportType((ReportType)packet.ReportType); + comp.SetMajorCategory((ReportMajorCategory)packet.MajorCategory); + comp.SetMinorCategoryFlags((ReportMinorCategory)packet.MinorCategoryFlags); comp.SetNote(packet.Note); Global.SupportMgr.AddTicket(comp); diff --git a/Source/Game/Networking/Packets/AuctionHousePackets.cs b/Source/Game/Networking/Packets/AuctionHousePackets.cs index 886d3a25d..0c25f0abe 100644 --- a/Source/Game/Networking/Packets/AuctionHousePackets.cs +++ b/Source/Game/Networking/Packets/AuctionHousePackets.cs @@ -347,6 +347,13 @@ namespace Game.Networking.Packets } } + class AuctionRequestFavoriteList : ClientPacket + { + public AuctionRequestFavoriteList(WorldPacket packet) : base(packet) { } + + public override void Read() { } + } + class AuctionSellCommodity : ClientPacket { public ObjectGuid Auctioneer; diff --git a/Source/Game/Networking/Packets/GarrisonPackets.cs b/Source/Game/Networking/Packets/GarrisonPackets.cs index 101a30deb..5104e1469 100644 --- a/Source/Game/Networking/Packets/GarrisonPackets.cs +++ b/Source/Game/Networking/Packets/GarrisonPackets.cs @@ -400,34 +400,29 @@ namespace Game.Networking.Packets public string CustomName = ""; } - class GarrisonMission + class GarrisonEncounter { + public int GarrEncounterID; + public List Mechanics = new(); + public int GarrAutoCombatantID; + public int Health; + public int MaxHealth; + public int Attack; + public sbyte BoardIndex; + public void Write(WorldPacket data) { - data.WriteUInt64(DbID); - data.WriteInt64(OfferTime); - data.WriteUInt32(OfferDuration); - data.WriteInt64(StartTime); - data.WriteUInt32(TravelDuration); - data.WriteUInt32(MissionDuration); - data.WriteUInt32(MissionRecID); - data.WriteUInt32(MissionState); - data.WriteUInt32(SuccessChance); - data.WriteUInt32(Flags); - data.WriteFloat(MissionScalar); - } + data.WriteInt32(GarrEncounterID); + data.WriteInt32(Mechanics.Count); + data.WriteInt32(GarrAutoCombatantID); + data.WriteInt32(Health); + data.WriteInt32(MaxHealth); + data.WriteInt32(Attack); + data.WriteInt8(BoardIndex); - public ulong DbID; - public uint MissionRecID; - public long OfferTime; - public uint OfferDuration; - public long StartTime = 2288912640; - public uint TravelDuration; - public uint MissionDuration; - public uint MissionState; - public uint SuccessChance; - public uint Flags; - public float MissionScalar = 1.0f; + if (!Mechanics.Empty()) + Mechanics.ForEach(id => data.WriteInt32(id)); + } } struct GarrisonMissionReward @@ -458,6 +453,53 @@ namespace Game.Networking.Packets public ItemInstance ItemInstance; } + class GarrisonMission + { + public ulong DbID; + public int MissionRecID; + public long OfferTime; + public uint OfferDuration; + public long StartTime = 2288912640; + public uint TravelDuration; + public uint MissionDuration; + public int MissionState = 0; + public int SuccessChance = 0; + public uint Flags = 0; + public float MissionScalar = 1.0f; + public int ContentTuningID = 0; + public List Encounters = new(); + public List Rewards = new(); + public List OvermaxRewards = new(); + + public void Write(WorldPacket data) + { + data.WriteUInt64(DbID); + data.WriteInt32(MissionRecID); + data.WriteInt64(OfferTime); + data.WriteUInt32(OfferDuration); + data.WriteInt64(StartTime); + data.WriteUInt32(TravelDuration); + data.WriteUInt32(MissionDuration); + data.WriteInt32(MissionState); + data.WriteInt32(SuccessChance); + data.WriteUInt32(Flags); + data.WriteFloat(MissionScalar); + data.WriteInt32(ContentTuningID); + data.WriteInt32(Encounters.Count); + data.WriteInt32(Rewards.Count); + data.WriteInt32(OvermaxRewards.Count); + + foreach (GarrisonEncounter encounter in Encounters) + encounter.Write(data); + + foreach (GarrisonMissionReward missionRewardItem in Rewards) + missionRewardItem.Write(data); + + foreach (GarrisonMissionReward missionRewardItem in OvermaxRewards) + missionRewardItem.Write(data); + } + } + struct GarrisonMissionBonusAbility { public void Write(WorldPacket data) diff --git a/Source/Game/Networking/Packets/GuildPackets.cs b/Source/Game/Networking/Packets/GuildPackets.cs index d4a139311..09d0ff79c 100644 --- a/Source/Game/Networking/Packets/GuildPackets.cs +++ b/Source/Game/Networking/Packets/GuildPackets.cs @@ -1638,6 +1638,8 @@ namespace Game.Networking.Packets data.WriteUInt8(Level); data.WriteUInt8(ClassID); data.WriteUInt8(Gender); + data.WriteUInt64(GuildClubMemberID); + data.WriteUInt8(RaceID); data.WriteBits(Name.GetByteCount(), 6); data.WriteBits(Note.GetByteCount(), 8); @@ -1670,6 +1672,8 @@ namespace Game.Networking.Packets public byte Level; public byte ClassID; public byte Gender; + public ulong GuildClubMemberID; + public byte RaceID; public bool Authenticated; public bool SorEligible; public GuildRosterProfessionData[] Profession = new GuildRosterProfessionData[2]; diff --git a/Source/Game/Networking/Packets/LFGPackets.cs b/Source/Game/Networking/Packets/LFGPackets.cs index c1dc0318b..dec26ddbd 100644 --- a/Source/Game/Networking/Packets/LFGPackets.cs +++ b/Source/Game/Networking/Packets/LFGPackets.cs @@ -762,6 +762,8 @@ namespace Game.Networking.Packets Id = data.ReadUInt32(); Type = (RideType)data.ReadUInt32(); Time = data.ReadInt64(); + Unknown925 = data.HasBit(); + data.ResetBitPos(); } public void Write(WorldPacket data) @@ -770,12 +772,15 @@ namespace Game.Networking.Packets data.WriteUInt32(Id); data.WriteUInt32((uint)Type); data.WriteInt64(Time); + data.WriteBit(Unknown925); + data.FlushBits(); } public ObjectGuid RequesterGuid; public uint Id; public RideType Type; public long Time; + public bool Unknown925; } public enum RideType diff --git a/Source/Game/Networking/Packets/MovementPackets.cs b/Source/Game/Networking/Packets/MovementPackets.cs index 225519eab..af712980c 100644 --- a/Source/Game/Networking/Packets/MovementPackets.cs +++ b/Source/Game/Networking/Packets/MovementPackets.cs @@ -342,12 +342,9 @@ namespace Game.Networking.Packets data.WriteUInt32(movementForce.TransportID); data.WriteFloat(movementForce.Magnitude); + data.WriteInt32(movementForce.Unused910); data.WriteBits((byte)movementForce.Type, 2); - data.WriteBit(movementForce.Unused910 != 0); data.FlushBits(); - - if (movementForce.Unused910 != 0) - data.WriteInt32(movementForce.Unused910); } } diff --git a/Source/Game/Networking/Packets/PartyPackets.cs b/Source/Game/Networking/Packets/PartyPackets.cs index ec6edbcc0..e09f551f6 100644 --- a/Source/Game/Networking/Packets/PartyPackets.cs +++ b/Source/Game/Networking/Packets/PartyPackets.cs @@ -1084,6 +1084,7 @@ namespace Game.Networking.Packets data.WriteUInt8(Flags); data.WriteUInt8(RolesAssigned); data.WriteUInt8(Class); + data.WriteUInt8(FactionGroup); data.WriteString(Name); if (!VoiceStateID.IsEmpty()) data.WriteString(VoiceStateID); @@ -1097,6 +1098,7 @@ namespace Game.Networking.Packets public byte Subgroup; public byte Flags; public byte RolesAssigned; + public byte FactionGroup; public bool FromSocialQueue; public bool VoiceChatSilenced; } diff --git a/Source/Game/Networking/Packets/SocialPackets.cs b/Source/Game/Networking/Packets/SocialPackets.cs index 8e67350a6..3d09270bc 100644 --- a/Source/Game/Networking/Packets/SocialPackets.cs +++ b/Source/Game/Networking/Packets/SocialPackets.cs @@ -169,6 +169,26 @@ namespace Game.Networking.Packets public QualifiedGUID Player; } + class SocialContractRequest : ClientPacket + { + public SocialContractRequest(WorldPacket packet) : base(packet) { } + + public override void Read() { } + } + + class SocialContractRequestResponse : ServerPacket + { + public bool ShowSocialContract; + + public SocialContractRequestResponse() : base(ServerOpcodes.SocialContractRequestResponse) { } + + public override void Write() + { + _worldPacket.WriteBit(ShowSocialContract); + _worldPacket.FlushBits(); + } + } + //Structs public class ContactInfo { diff --git a/Source/Game/Networking/Packets/TicketPackets.cs b/Source/Game/Networking/Packets/TicketPackets.cs index fb720335c..099138963 100644 --- a/Source/Game/Networking/Packets/TicketPackets.cs +++ b/Source/Game/Networking/Packets/TicketPackets.cs @@ -129,8 +129,10 @@ namespace Game.Networking.Packets { Header.Read(_worldPacket); TargetCharacterGUID = _worldPacket.ReadPackedGuid(); + ReportType = _worldPacket.ReadInt32(); + MajorCategory = _worldPacket.ReadInt32(); + MinorCategoryFlags = _worldPacket.ReadInt32(); ChatLog.Read(_worldPacket); - ComplaintType = _worldPacket.ReadBits(5); uint noteLength = _worldPacket.ReadBits(10); bool hasMailInfo = _worldPacket.HasBit(); @@ -209,7 +211,9 @@ namespace Game.Networking.Packets public SupportTicketHeader Header; public SupportTicketChatLog ChatLog; public ObjectGuid TargetCharacterGUID; - public byte ComplaintType; + public int ReportType; + public int MajorCategory; + public int MinorCategoryFlags; public string Note; public SupportTicketHorusChatLog HorusChatLog; public SupportTicketMailInfo? MailInfo; @@ -578,10 +582,12 @@ namespace Game.Networking.Packets MapID = packet.ReadUInt32(); Position = packet.ReadVector3(); Facing = packet.ReadFloat(); + Program = packet.ReadInt32(); } public uint MapID; public Vector3 Position; public float Facing; + public int Program; } } diff --git a/Source/Game/SupportSystem/SupportTickets.cs b/Source/Game/SupportSystem/SupportTickets.cs index 7406abeeb..11a5e480c 100644 --- a/Source/Game/SupportSystem/SupportTickets.cs +++ b/Source/Game/SupportSystem/SupportTickets.cs @@ -213,7 +213,9 @@ namespace Game.SupportSystem { float _facing; ObjectGuid _targetCharacterGuid; - GMSupportComplaintType _complaintType; + ReportType _reportType; + ReportMajorCategory _majorCategory; + ReportMinorCategory _minorCategoryFlags = ReportMinorCategory.TextChat; SupportTicketSubmitComplaint.SupportTicketChatLog _chatLog; string _note; @@ -239,7 +241,9 @@ namespace Game.SupportSystem _pos = new Vector3(fields.Read(++idx), fields.Read(++idx), fields.Read(++idx)); _facing = fields.Read(++idx); _targetCharacterGuid = ObjectGuid.Create(HighGuid.Player, fields.Read(++idx)); - _complaintType = (GMSupportComplaintType)fields.Read(++idx); + _reportType = (ReportType)fields.Read(++idx); + _majorCategory = (ReportMajorCategory)fields.Read(++idx); + _minorCategoryFlags = (ReportMinorCategory)fields.Read(++idx); int reportLineIndex = fields.Read(++idx); if (reportLineIndex != -1) _chatLog.ReportLineIndex = (uint)reportLineIndex; @@ -282,7 +286,9 @@ namespace Game.SupportSystem stmt.AddValue(++idx, _pos.Z); stmt.AddValue(++idx, _facing); stmt.AddValue(++idx, _targetCharacterGuid.GetCounter()); - stmt.AddValue(++idx, (byte)_complaintType); + stmt.AddValue(++idx, (int)_reportType); + stmt.AddValue(++idx, (int)_majorCategory); + stmt.AddValue(++idx, (int)_minorCategoryFlags); if (_chatLog.ReportLineIndex.HasValue) stmt.AddValue(++idx, _chatLog.ReportLineIndex.Value); else @@ -342,7 +348,9 @@ namespace Game.SupportSystem } ObjectGuid GetTargetCharacterGuid() { return _targetCharacterGuid; } - GMSupportComplaintType GetComplaintType() { return _complaintType; } + ReportType GetReportType() { return _reportType; } + ReportMajorCategory GetMajorCategory() { return _majorCategory; } + ReportMinorCategory GetMinorCategoryFlags() { return _minorCategoryFlags; } string GetNote() { return _note; } public void SetFacing(float facing) { _facing = facing; } @@ -350,7 +358,9 @@ namespace Game.SupportSystem { _targetCharacterGuid = targetCharacterGuid; } - public void SetComplaintType(GMSupportComplaintType type) { _complaintType = type; } + public void SetReportType(ReportType reportType) { _reportType = reportType; } + public void SetMajorCategory(ReportMajorCategory majorCategory) { _majorCategory = majorCategory; } + public void SetMinorCategoryFlags(ReportMinorCategory minorCategoryFlags) { _minorCategoryFlags = minorCategoryFlags; } public void SetChatLog(SupportTicketSubmitComplaint.SupportTicketChatLog log) { _chatLog = log; } public void SetNote(string note) { _note = note; } } diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql index 314b30994..8333e27a4 100644 --- a/sql/base/characters_database.sql +++ b/sql/base/characters_database.sql @@ -2063,7 +2063,9 @@ CREATE TABLE `gm_complaint` ( `posZ` float NOT NULL DEFAULT '0', `facing` float NOT NULL DEFAULT '0', `targetCharacterGuid` bigint unsigned NOT NULL, - `complaintType` smallint unsigned NOT NULL, + `reportType` int NOT NULL DEFAULT '0', + `reportMajorCategory` int NOT NULL DEFAULT '0', + `reportMinorCategoryFlags` int NOT NULL DEFAULT '0', `reportLineIndex` int NOT NULL, `closedBy` bigint NOT NULL DEFAULT '0', `assignedTo` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'GUID of admin to whom ticket is assigned', @@ -3667,7 +3669,8 @@ INSERT INTO `updates` VALUES ('2022_01_31_02_characters.sql','6E3A3F02276287DD540BC4C17E246DFB850260D8','ARCHIVED','2022-01-31 21:43:38',0), ('2022_02_28_00_characters_2020_09_27_00_characters.sql','2292A1ED0E7F46DEC41384F75FA6D9461464EEB8','ARCHIVED','2022-02-28 12:43:58',0), ('2022_03_06_00_characters.sql','474AAF9D03E6A56017899C968DC9875368301934','ARCHIVED','2022-03-06 15:12:24',0), -('2022_03_11_00_characters_2021_07_18_00_characters.sql','0BA579ED21F4E75AC2B4797421B5029568B3F6E2','RELEASED','2022-03-11 18:56:07',0); +('2022_03_11_00_characters_2021_07_18_00_characters.sql','0BA579ED21F4E75AC2B4797421B5029568B3F6E2','RELEASED','2022-03-11 18:56:07',0), +('2022_06_01_00_characters.sql','582AC6E256F8365F83AB70BA165CCC8B218E19FF','RELEASED','2022-06-01 21:16:56',0); /*!40000 ALTER TABLE `updates` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/updates/characters/master/2022_06_01_00_characters.sql b/sql/updates/characters/master/2022_06_01_00_characters.sql new file mode 100644 index 000000000..4da2051ad --- /dev/null +++ b/sql/updates/characters/master/2022_06_01_00_characters.sql @@ -0,0 +1,12 @@ +ALTER TABLE `gm_complaint` + ADD `reportType` int NOT NULL DEFAULT '0' AFTER `complaintType`, + ADD `reportMajorCategory` int NOT NULL DEFAULT '0' AFTER `reportType`, + ADD `reportMinorCategoryFlags` int NOT NULL DEFAULT '0' AFTER `reportMajorCategory`; + +UPDATE `gm_complaint` SET `reportType`=0,`reportMajorCategory`=0,`reportMinorCategoryFlags`=0x1 WHERE `complaintType`=2; +UPDATE `gm_complaint` SET `reportType`=1,`reportMajorCategory`=3,`reportMinorCategoryFlags`=0x800 WHERE `complaintType`=4; +UPDATE `gm_complaint` SET `reportType`=1,`reportMajorCategory`=2,`reportMinorCategoryFlags`=0x40 WHERE `complaintType`=15; +UPDATE `gm_complaint` SET `reportType`=1,`reportMajorCategory`=3,`reportMinorCategoryFlags`=0x1000 WHERE `complaintType`=23; +UPDATE `gm_complaint` SET `reportType`=0,`reportMajorCategory`=0,`reportMinorCategoryFlags`=0x4 WHERE `complaintType`=24; + +ALTER TABLE `gm_complaint` DROP `complaintType`;