/* * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Affero General Public License as published by the * Free Software Foundation; either version 3 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #include "AchievementMgr.h" #include "AuctionHouseMgr.h" #include "AutobroadcastMgr.h" #include "BattlegroundMgr.h" #include "Chat.h" #include "CommandScript.h" #include "CreatureTextMgr.h" #include "DisableMgr.h" #include "GameGraveyard.h" #include "ItemEnchantmentMgr.h" #include "LFGMgr.h" #include "Language.h" #include "MapMgr.h" #include "MotdMgr.h" #include "ObjectMgr.h" #include "ScriptMgr.h" #include "ServerMailMgr.h" #include "SkillDiscovery.h" #include "SkillExtraItems.h" #include "SmartAI.h" #include "SpellMgr.h" #include "StringConvert.h" #include "TicketMgr.h" #include "Tokenize.h" #include "WardenCheckMgr.h" #include "WaypointMgr.h" #include "WorldGlobals.h" using namespace Acore::ChatCommands; class reload_commandscript : public CommandScript { public: reload_commandscript() : CommandScript("reload_commandscript") { } ChatCommandTable GetCommands() const override { static ChatCommandTable reloadAllCommandTable = { { "achievement", HandleReloadAllAchievementCommand, SEC_ADMINISTRATOR, Console::Yes }, { "area", HandleReloadAllAreaCommand, SEC_ADMINISTRATOR, Console::Yes }, { "gossips", HandleReloadAllGossipsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "item", HandleReloadAllItemCommand, SEC_ADMINISTRATOR, Console::Yes }, { "locales", HandleReloadAllLocalesCommand, SEC_ADMINISTRATOR, Console::Yes }, { "loot", HandleReloadAllLootCommand, SEC_ADMINISTRATOR, Console::Yes }, { "npc", HandleReloadAllNpcCommand, SEC_ADMINISTRATOR, Console::Yes }, { "quest", HandleReloadAllQuestCommand, SEC_ADMINISTRATOR, Console::Yes }, { "scripts", HandleReloadAllScriptsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell", HandleReloadAllSpellCommand, SEC_ADMINISTRATOR, Console::Yes }, { "", HandleReloadAllCommand, SEC_ADMINISTRATOR, Console::Yes }, }; static ChatCommandTable reloadCommandTable = { { "antidos_opcode_policies", HandleReloadAntiDosOpcodePoliciesCommand, SEC_ADMINISTRATOR, Console::Yes }, { "auctions", HandleReloadAuctionsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "dungeon_access_template", HandleReloadDungeonAccessCommand, SEC_ADMINISTRATOR, Console::Yes }, { "dungeon_access_requirements", HandleReloadDungeonAccessCommand, SEC_ADMINISTRATOR, Console::Yes }, { "achievement_criteria_data", HandleReloadAchievementCriteriaDataCommand, SEC_ADMINISTRATOR, Console::Yes }, { "achievement_reward", HandleReloadAchievementRewardCommand, SEC_ADMINISTRATOR, Console::Yes }, { "all", reloadAllCommandTable }, { "areatrigger", HandleReloadQuestAreaTriggersCommand, SEC_ADMINISTRATOR, Console::Yes }, { "areatrigger_involvedrelation", HandleReloadQuestAreaTriggersCommand, SEC_ADMINISTRATOR, Console::Yes }, { "areatrigger_tavern", HandleReloadAreaTriggerTavernCommand, SEC_ADMINISTRATOR, Console::Yes }, { "areatrigger_teleport", HandleReloadAreaTriggerTeleportCommand, SEC_ADMINISTRATOR, Console::Yes }, { "autobroadcast", HandleReloadAutobroadcastCommand, SEC_ADMINISTRATOR, Console::Yes }, { "motd", HandleReloadMotdCommand, SEC_ADMINISTRATOR, Console::Yes }, { "broadcast_text", HandleReloadBroadcastTextCommand, SEC_ADMINISTRATOR, Console::Yes }, { "battleground_template", HandleReloadBattlegroundTemplate, SEC_ADMINISTRATOR, Console::Yes }, { "command", HandleReloadCommandCommand, SEC_ADMINISTRATOR, Console::Yes }, { "conditions", HandleReloadConditions, SEC_ADMINISTRATOR, Console::Yes }, { "config", HandleReloadConfigCommand, SEC_ADMINISTRATOR, Console::Yes }, { "creature_text", HandleReloadCreatureText, SEC_ADMINISTRATOR, Console::Yes }, { "creature_questender", HandleReloadCreatureQuestEnderCommand, SEC_ADMINISTRATOR, Console::Yes }, { "creature_linked_respawn", HandleReloadLinkedRespawnCommand, SEC_ADMINISTRATOR, Console::Yes }, { "creature_loot_template", HandleReloadLootTemplatesCreatureCommand, SEC_ADMINISTRATOR, Console::Yes }, { "creature_movement_override", HandleReloadCreatureMovementOverrideCommand, SEC_ADMINISTRATOR, Console::Yes}, { "creature_onkill_reputation", HandleReloadOnKillReputationCommand, SEC_ADMINISTRATOR, Console::Yes }, { "creature_queststarter", HandleReloadCreatureQuestStarterCommand, SEC_ADMINISTRATOR, Console::Yes }, { "creature_template", HandleReloadCreatureTemplateCommand, SEC_ADMINISTRATOR, Console::Yes }, { "disables", HandleReloadDisablesCommand, SEC_ADMINISTRATOR, Console::Yes }, { "disenchant_loot_template", HandleReloadLootTemplatesDisenchantCommand, SEC_ADMINISTRATOR, Console::Yes }, { "event_scripts", HandleReloadEventScriptsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "fishing_loot_template", HandleReloadLootTemplatesFishingCommand, SEC_ADMINISTRATOR, Console::Yes }, { "game_graveyard", HandleReloadGameGraveyardCommand, SEC_ADMINISTRATOR, Console::Yes }, { "graveyard_zone", HandleReloadGameGraveyardZoneCommand, SEC_ADMINISTRATOR, Console::Yes }, { "game_tele", HandleReloadGameTeleCommand, SEC_ADMINISTRATOR, Console::Yes }, { "gameobject_questender", HandleReloadGOQuestEnderCommand, SEC_ADMINISTRATOR, Console::Yes }, { "gameobject_loot_template", HandleReloadLootTemplatesGameobjectCommand, SEC_ADMINISTRATOR, Console::Yes }, { "gameobject_queststarter", HandleReloadGOQuestStarterCommand, SEC_ADMINISTRATOR, Console::Yes }, { "gm_tickets", HandleReloadGMTicketsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "gossip_menu", HandleReloadGossipMenuCommand, SEC_ADMINISTRATOR, Console::Yes }, { "gossip_menu_option", HandleReloadGossipMenuOptionCommand, SEC_ADMINISTRATOR, Console::Yes }, { "item_enchantment_template", HandleReloadItemEnchantementsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "item_loot_template", HandleReloadLootTemplatesItemCommand, SEC_ADMINISTRATOR, Console::Yes }, { "item_set_names", HandleReloadItemSetNamesCommand, SEC_ADMINISTRATOR, Console::Yes }, { "lfg_dungeon_rewards", HandleReloadLfgRewardsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "achievement_reward_locale", HandleReloadLocalesAchievementRewardCommand, SEC_ADMINISTRATOR, Console::Yes }, { "creature_template_locale", HandleReloadLocalesCreatureCommand, SEC_ADMINISTRATOR, Console::Yes }, { "creature_text_locale", HandleReloadLocalesCreatureTextCommand, SEC_ADMINISTRATOR, Console::Yes }, { "gameobject_template_locale", HandleReloadLocalesGameobjectCommand, SEC_ADMINISTRATOR, Console::Yes }, { "gossip_menu_option_locale", HandleReloadLocalesGossipMenuOptionCommand, SEC_ADMINISTRATOR, Console::Yes }, { "item_template_locale", HandleReloadLocalesItemCommand, SEC_ADMINISTRATOR, Console::Yes }, { "item_set_name_locale", HandleReloadLocalesItemSetNameCommand, SEC_ADMINISTRATOR, Console::Yes }, { "npc_text_locale", HandleReloadLocalesNpcTextCommand, SEC_ADMINISTRATOR, Console::Yes }, { "page_text_locale", HandleReloadLocalesPageTextCommand, SEC_ADMINISTRATOR, Console::Yes }, { "points_of_interest_locale", HandleReloadLocalesPointsOfInterestCommand, SEC_ADMINISTRATOR, Console::Yes }, { "quest_template_locale", HandleReloadLocalesQuestCommand, SEC_ADMINISTRATOR, Console::Yes }, { "quest_offer_reward_locale", HandleReloadLocalesQuestOfferRewardCommand, SEC_ADMINISTRATOR, Console::Yes }, { "quest_request_item_locale", HandleReloadLocalesQuestRequestItemsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "mail_level_reward", HandleReloadMailLevelRewardCommand, SEC_ADMINISTRATOR, Console::Yes }, { "mail_loot_template", HandleReloadLootTemplatesMailCommand, SEC_ADMINISTRATOR, Console::Yes }, { "mail_server_template", HandleReloadMailServerTemplateCommand, SEC_ADMINISTRATOR, Console::Yes }, { "milling_loot_template", HandleReloadLootTemplatesMillingCommand, SEC_ADMINISTRATOR, Console::Yes }, { "npc_spellclick_spells", HandleReloadSpellClickSpellsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "npc_trainer", HandleReloadNpcTrainerCommand, SEC_ADMINISTRATOR, Console::Yes }, { "npc_vendor", HandleReloadNpcVendorCommand, SEC_ADMINISTRATOR, Console::Yes }, { "game_event_npc_vendor", HandleReloadGameEventNPCVendorCommand, SEC_ADMINISTRATOR, Console::Yes }, { "page_text", HandleReloadPageTextsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "pickpocketing_loot_template", HandleReloadLootTemplatesPickpocketingCommand, SEC_ADMINISTRATOR, Console::Yes }, { "points_of_interest", HandleReloadPointsOfInterestCommand, SEC_ADMINISTRATOR, Console::Yes }, { "prospecting_loot_template", HandleReloadLootTemplatesProspectingCommand, SEC_ADMINISTRATOR, Console::Yes }, { "quest_greeting", HandleReloadQuestGreetingCommand, SEC_ADMINISTRATOR, Console::Yes }, { "quest_poi", HandleReloadQuestPOICommand, SEC_ADMINISTRATOR, Console::Yes }, { "quest_template", HandleReloadQuestTemplateCommand, SEC_ADMINISTRATOR, Console::Yes }, { "reference_loot_template", HandleReloadLootTemplatesReferenceCommand, SEC_ADMINISTRATOR, Console::Yes }, { "reserved_name", HandleReloadReservedNameCommand, SEC_ADMINISTRATOR, Console::Yes }, { "profanity_name", HandleReloadProfanityNameCommand, SEC_ADMINISTRATOR, Console::Yes }, { "reputation_reward_rate", HandleReloadReputationRewardRateCommand, SEC_ADMINISTRATOR, Console::Yes }, { "reputation_spillover_template", HandleReloadReputationRewardRateCommand, SEC_ADMINISTRATOR, Console::Yes }, { "skill_discovery_template", HandleReloadSkillDiscoveryTemplateCommand, SEC_ADMINISTRATOR, Console::Yes }, { "skill_extra_item_template", HandleReloadSkillExtraItemTemplateCommand, SEC_ADMINISTRATOR, Console::Yes }, { "skill_fishing_base_level", HandleReloadSkillFishingBaseLevelCommand, SEC_ADMINISTRATOR, Console::Yes }, { "skinning_loot_template", HandleReloadLootTemplatesSkinningCommand, SEC_ADMINISTRATOR, Console::Yes }, { "smart_scripts", HandleReloadSmartScripts, SEC_ADMINISTRATOR, Console::Yes }, { "spell_required", HandleReloadSpellRequiredCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell_area", HandleReloadSpellAreaCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell_bonus_data", HandleReloadSpellBonusesCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell_group", HandleReloadSpellGroupsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell_loot_template", HandleReloadLootTemplatesSpellCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell_linked_spell", HandleReloadSpellLinkedSpellCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell_pet_auras", HandleReloadSpellPetAurasCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell_proc_event", HandleReloadSpellProcEventCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell_proc", HandleReloadSpellProcsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell_scripts", HandleReloadSpellScriptsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell_target_position", HandleReloadSpellTargetPositionCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell_threats", HandleReloadSpellThreatsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "spell_group_stack_rules", HandleReloadSpellGroupStackRulesCommand, SEC_ADMINISTRATOR, Console::Yes }, { "player_loot_template", HandleReloadLootTemplatesPlayerCommand, SEC_ADMINISTRATOR, Console::Yes }, { "module_string", HandleReloadModuleStringCommand, SEC_ADMINISTRATOR, Console::Yes }, { "acore_string", HandleReloadAcoreStringCommand, SEC_ADMINISTRATOR, Console::Yes }, { "warden_action", HandleReloadWardenactionCommand, SEC_ADMINISTRATOR, Console::Yes }, { "waypoint_scripts", HandleReloadWpScriptsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "waypoint_data", HandleReloadWpCommand, SEC_ADMINISTRATOR, Console::Yes }, { "vehicle_accessory", HandleReloadVehicleAccessoryCommand, SEC_ADMINISTRATOR, Console::Yes }, { "vehicle_template_accessory", HandleReloadVehicleTemplateAccessoryCommand, SEC_ADMINISTRATOR, Console::Yes }, }; static ChatCommandTable commandTable = { { "reload", reloadCommandTable } }; return commandTable; } //reload commands static bool HandleReloadGMTicketsCommand(ChatHandler* /*handler*/) { sTicketMgr->LoadTickets(); return true; } static bool HandleReloadAllCommand(ChatHandler* handler) { HandleReloadSkillFishingBaseLevelCommand(handler); HandleReloadAllAchievementCommand(handler); HandleReloadAllAreaCommand(handler); HandleReloadAllLootCommand(handler); HandleReloadAllNpcCommand(handler); HandleReloadAllQuestCommand(handler); HandleReloadAllSpellCommand(handler); HandleReloadAllItemCommand(handler); HandleReloadAllGossipsCommand(handler); HandleReloadAllLocalesCommand(handler); HandleReloadDungeonAccessCommand(handler); HandleReloadMailLevelRewardCommand(handler); HandleReloadMailServerTemplateCommand(handler); HandleReloadCommandCommand(handler); HandleReloadReservedNameCommand(handler); HandleReloadProfanityNameCommand(handler); HandleReloadAcoreStringCommand(handler); HandleReloadGameTeleCommand(handler); HandleReloadCreatureMovementOverrideCommand(handler); HandleReloadVehicleAccessoryCommand(handler); HandleReloadVehicleTemplateAccessoryCommand(handler); HandleReloadAutobroadcastCommand(handler); HandleReloadMotdCommand(handler); HandleReloadBroadcastTextCommand(handler); HandleReloadBattlegroundTemplate(handler); return true; } static bool HandleReloadBattlegroundTemplate(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Battleground Templates..."); sBattlegroundMgr->LoadBattlegroundTemplates(); handler->SendGlobalGMSysMessage("DB table `battleground_template` reloaded."); return true; } static bool HandleReloadAllAchievementCommand(ChatHandler* handler) { HandleReloadAchievementCriteriaDataCommand(handler); HandleReloadAchievementRewardCommand(handler); return true; } static bool HandleReloadAllAreaCommand(ChatHandler* handler) { //HandleReloadQuestAreaTriggersCommand(handler); -- reloaded in HandleReloadAllQuestCommand HandleReloadAreaTriggerTeleportCommand(handler); HandleReloadAreaTriggerTavernCommand(handler); HandleReloadGameGraveyardZoneCommand(handler); return true; } static bool HandleReloadAllLootCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables..."); LoadLootTables(); handler->SendGlobalGMSysMessage("DB tables `*_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadAllNpcCommand(ChatHandler* handler) { HandleReloadNpcTrainerCommand(handler); HandleReloadNpcVendorCommand(handler); HandleReloadPointsOfInterestCommand(handler); HandleReloadSpellClickSpellsCommand(handler); return true; } static bool HandleReloadAllQuestCommand(ChatHandler* handler) { HandleReloadQuestGreetingCommand(handler); HandleReloadQuestAreaTriggersCommand(handler); HandleReloadQuestPOICommand(handler); HandleReloadQuestTemplateCommand(handler); LOG_INFO("server.loading", "Reloading Quests Relations..."); sObjectMgr->LoadQuestStartersAndEnders(); handler->SendGlobalGMSysMessage("DB tables `*_queststarter` and `*_questender` reloaded."); return true; } static bool HandleReloadAllScriptsCommand(ChatHandler* handler) { if (sScriptMgr->IsScriptScheduled()) { handler->SendErrorMessage("DB scripts used currently, please attempt reload later."); return false; } LOG_INFO("server.loading", "Reloading Scripts..."); HandleReloadEventScriptsCommand(handler); HandleReloadSpellScriptsCommand(handler); handler->SendGlobalGMSysMessage("DB tables `*_scripts` reloaded."); HandleReloadWpScriptsCommand(handler); HandleReloadWpCommand(handler); return true; } static bool HandleReloadAllSpellCommand(ChatHandler* handler) { HandleReloadSkillDiscoveryTemplateCommand(handler); HandleReloadSkillExtraItemTemplateCommand(handler); HandleReloadSpellRequiredCommand(handler); HandleReloadSpellAreaCommand(handler); HandleReloadSpellGroupsCommand(handler); HandleReloadSpellLinkedSpellCommand(handler); HandleReloadSpellProcEventCommand(handler); HandleReloadSpellProcsCommand(handler); HandleReloadSpellBonusesCommand(handler); HandleReloadSpellTargetPositionCommand(handler); HandleReloadSpellThreatsCommand(handler); HandleReloadSpellGroupStackRulesCommand(handler); HandleReloadSpellPetAurasCommand(handler); return true; } static bool HandleReloadAllGossipsCommand(ChatHandler* handler) { HandleReloadGossipMenuCommand(handler); HandleReloadGossipMenuOptionCommand(handler); HandleReloadPointsOfInterestCommand(handler); return true; } static bool HandleReloadAllItemCommand(ChatHandler* handler) { HandleReloadPageTextsCommand(handler); HandleReloadItemEnchantementsCommand(handler); return true; } static bool HandleReloadAllLocalesCommand(ChatHandler* handler) { HandleReloadLocalesAchievementRewardCommand(handler); HandleReloadLocalesCreatureCommand(handler); HandleReloadLocalesCreatureTextCommand(handler); HandleReloadLocalesGameobjectCommand(handler); HandleReloadLocalesGossipMenuOptionCommand(handler); HandleReloadLocalesItemCommand(handler); HandleReloadLocalesNpcTextCommand(handler); HandleReloadLocalesPageTextCommand(handler); HandleReloadLocalesPointsOfInterestCommand(handler); HandleReloadLocalesQuestCommand(handler); HandleReloadLocalesQuestOfferRewardCommand(handler); HandleReloadLocalesQuestRequestItemsCommand(handler); return true; } static bool HandleReloadConfigCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading config settings..."); sWorld->LoadConfigSettings(true); sMapMgr->InitializeVisibilityDistanceInfo(); handler->SendGlobalGMSysMessage("World config settings reloaded."); return true; } static bool HandleReloadDungeonAccessCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Dungeon Access Requirement definitions..."); sObjectMgr->LoadAccessRequirements(); handler->SendGlobalGMSysMessage("DB tables `dungeon_access_template` AND `dungeon_access_requirements` reloaded."); return true; } static bool HandleReloadAchievementCriteriaDataCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Additional Achievement Criteria Data..."); sAchievementMgr->LoadAchievementCriteriaData(); handler->SendGlobalGMSysMessage("DB table `achievement_criteria_data` reloaded."); return true; } static bool HandleReloadAchievementRewardCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Achievement Reward Data..."); sAchievementMgr->LoadRewards(); handler->SendGlobalGMSysMessage("DB table `achievement_reward` reloaded."); return true; } static bool HandleReloadAreaTriggerTavernCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Tavern Area Triggers..."); sObjectMgr->LoadTavernAreaTriggers(); handler->SendGlobalGMSysMessage("DB table `areatrigger_tavern` reloaded."); return true; } static bool HandleReloadAreaTriggerCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Area Trigger definitions..."); sObjectMgr->LoadAreaTriggers(); handler->SendGlobalGMSysMessage("DB table `areatrigger` reloaded."); return true; } static bool HandleReloadAreaTriggerTeleportCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Area Trigger teleport definitions..."); sObjectMgr->LoadAreaTriggerTeleports(); handler->SendGlobalGMSysMessage("DB table `areatrigger_teleport` reloaded."); return true; } static bool HandleReloadAutobroadcastCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Autobroadcasts..."); sAutobroadcastMgr->LoadAutobroadcasts(); handler->SendGlobalGMSysMessage("DB table `autobroadcast` reloaded."); return true; } static bool HandleReloadMotdCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Motd..."); sMotdMgr->LoadMotd(); handler->SendGlobalGMSysMessage("DB table `motd` reloaded."); LocaleConstant locale = DEFAULT_LOCALE; if (Player* player = handler->GetPlayer()) locale = player->GetSession()->GetSessionDbLocaleIndex(); handler->SendGlobalSysMessage(sMotdMgr->GetMotd(locale)); return true; } static bool HandleReloadBroadcastTextCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Broadcast texts..."); sObjectMgr->LoadBroadcastTexts(); sObjectMgr->LoadBroadcastTextLocales(); handler->SendGlobalGMSysMessage("DB table `broadcast_text` reloaded."); return true; } static bool HandleReloadCommandCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading .command information..."); Acore::ChatCommands::LoadCommandMap(); handler->SendGlobalGMSysMessage("DB table `command` reloaded."); // do not log this invocation, otherwise we might crash (the command table we used to get here is no longer valid!) handler->SetSentErrorMessage(true); return false; } static bool HandleReloadOnKillReputationCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading creature award reputation definitions..."); sObjectMgr->LoadReputationOnKill(); handler->SendGlobalGMSysMessage("DB table `creature_onkill_reputation` reloaded."); return true; } static bool HandleReloadCreatureTemplateCommand(ChatHandler* handler, std::string_view args) { if (args.empty()) return false; for (std::string_view entryStr : Acore::Tokenize(args, ' ', false)) { uint32 entry = Acore::StringTo(entryStr).value_or(0); WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_CREATURE_TEMPLATE); stmt->SetData(0, entry); PreparedQueryResult result = WorldDatabase.Query(stmt); if (!result) { handler->PSendSysMessage(LANG_COMMAND_CREATURETEMPLATE_NOTFOUND, entry); continue; } CreatureTemplate* cInfo = const_cast(sObjectMgr->GetCreatureTemplate(entry)); if (!cInfo) { handler->PSendSysMessage(LANG_COMMAND_CREATURESTORAGE_NOTFOUND, entry); continue; } LOG_INFO("server.loading", "Reloading creature template entry {}", entry); Field* fields = result->Fetch(); sObjectMgr->LoadCreatureTemplate(fields, true); sObjectMgr->CheckCreatureTemplate(cInfo); } handler->SendGlobalGMSysMessage("Creature template reloaded."); return true; } static bool HandleReloadCreatureQuestStarterCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Loading Quests Relations... (`creature_queststarter`)"); sObjectMgr->LoadCreatureQuestStarters(); handler->SendGlobalGMSysMessage("DB table `creature_queststarter` reloaded."); return true; } static bool HandleReloadLinkedRespawnCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Loading Linked Respawns... (`creature_linked_respawn`)"); sObjectMgr->LoadLinkedRespawn(); handler->SendGlobalGMSysMessage("DB table `creature_linked_respawn` (creature linked respawns) reloaded."); return true; } static bool HandleReloadCreatureQuestEnderCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Loading Quests Relations... (`creature_questender`)"); sObjectMgr->LoadCreatureQuestEnders(); handler->SendGlobalGMSysMessage("DB table `creature_questender` reloaded."); return true; } static bool HandleReloadGossipMenuCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading `gossip_menu` Table!"); sObjectMgr->LoadGossipMenu(); handler->SendGlobalGMSysMessage("DB table `gossip_menu` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadGossipMenuOptionCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading `gossip_menu_option` Table!"); sObjectMgr->LoadGossipMenuItems(); handler->SendGlobalGMSysMessage("DB table `gossip_menu_option` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadGOQuestStarterCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Loading Quests Relations... (`gameobject_queststarter`)"); sObjectMgr->LoadGameobjectQuestStarters(); handler->SendGlobalGMSysMessage("DB table `gameobject_queststarter` reloaded."); return true; } static bool HandleReloadGOQuestEnderCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Loading Quests Relations... (`gameobject_questender`)"); sObjectMgr->LoadGameobjectQuestEnders(); handler->SendGlobalGMSysMessage("DB table `gameobject_questender` reloaded."); return true; } static bool HandleReloadQuestAreaTriggersCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Quest Area Triggers..."); sObjectMgr->LoadQuestAreaTriggers(); handler->SendGlobalGMSysMessage("DB table `areatrigger_involvedrelation` (quest area triggers) reloaded."); return true; } static bool HandleReloadQuestGreetingCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Quest Greeting ..."); sObjectMgr->LoadQuestGreetings(); handler->SendGlobalGMSysMessage("DB table `quest_greeting` reloaded."); LOG_INFO("server.loading", "Reloading Quest Greeting locales..."); sObjectMgr->LoadQuestGreetingsLocales(); // Must be after LoadQuestGreetings() handler->SendGlobalGMSysMessage("DB table `quest_greeting_locale` reloaded."); return true; } static bool HandleReloadQuestTemplateCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Quest Templates..."); sObjectMgr->LoadQuests(); handler->SendGlobalGMSysMessage("DB table `quest_template` (quest definitions) reloaded."); /// dependent also from `gameobject` but this table not reloaded anyway LOG_INFO("server.loading", "Reloading GameObjects for quests..."); sObjectMgr->LoadGameObjectForQuests(); handler->SendGlobalGMSysMessage("Data GameObjects for quests reloaded."); return true; } static bool HandleReloadLootTemplatesCreatureCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`creature_loot_template`)"); LoadLootTemplates_Creature(); LootTemplates_Creature.CheckLootRefs(); handler->SendGlobalGMSysMessage("DB table `creature_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadCreatureMovementOverrideCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Creature movement overrides..."); sObjectMgr->LoadCreatureMovementOverrides(); handler->SendGlobalGMSysMessage("DB table `creature_movement_override` reloaded."); return true; } static bool HandleReloadLootTemplatesDisenchantCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`disenchant_loot_template`)"); LoadLootTemplates_Disenchant(); LootTemplates_Disenchant.CheckLootRefs(); handler->SendGlobalGMSysMessage("DB table `disenchant_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadLootTemplatesFishingCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`fishing_loot_template`)"); LoadLootTemplates_Fishing(); LootTemplates_Fishing.CheckLootRefs(); handler->SendGlobalGMSysMessage("DB table `fishing_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadLootTemplatesGameobjectCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`gameobject_loot_template`)"); LoadLootTemplates_Gameobject(); LootTemplates_Gameobject.CheckLootRefs(); handler->SendGlobalGMSysMessage("DB table `gameobject_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadLootTemplatesItemCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`item_loot_template`)"); LoadLootTemplates_Item(); LootTemplates_Item.CheckLootRefs(); handler->SendGlobalGMSysMessage("DB table `item_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadLootTemplatesMillingCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`milling_loot_template`)"); LoadLootTemplates_Milling(); LootTemplates_Milling.CheckLootRefs(); handler->SendGlobalGMSysMessage("DB table `milling_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadLootTemplatesPickpocketingCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`pickpocketing_loot_template`)"); LoadLootTemplates_Pickpocketing(); LootTemplates_Pickpocketing.CheckLootRefs(); handler->SendGlobalGMSysMessage("DB table `pickpocketing_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadLootTemplatesProspectingCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`prospecting_loot_template`)"); LoadLootTemplates_Prospecting(); LootTemplates_Prospecting.CheckLootRefs(); handler->SendGlobalGMSysMessage("DB table `prospecting_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadLootTemplatesMailCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`mail_loot_template`)"); LoadLootTemplates_Mail(); LootTemplates_Mail.CheckLootRefs(); handler->SendGlobalGMSysMessage("DB table `mail_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadLootTemplatesReferenceCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`reference_loot_template`)"); LoadLootTemplates_Reference(); handler->SendGlobalGMSysMessage("DB table `reference_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadLootTemplatesSkinningCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`skinning_loot_template`)"); LoadLootTemplates_Skinning(); LootTemplates_Skinning.CheckLootRefs(); handler->SendGlobalGMSysMessage("DB table `skinning_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadLootTemplatesSpellCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`spell_loot_template`)"); LoadLootTemplates_Spell(); LootTemplates_Spell.CheckLootRefs(); handler->SendGlobalGMSysMessage("DB table `spell_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadLootTemplatesPlayerCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Loot Tables... (`player_loot_template`)"); LoadLootTemplates_Player(); LootTemplates_Player.CheckLootRefs(); handler->SendGlobalGMSysMessage("DB table `player_loot_template` reloaded."); sConditionMgr->LoadConditions(true); return true; } static bool HandleReloadModuleStringCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading module_string Table!"); sObjectMgr->LoadModuleStrings(); handler->SendGlobalGMSysMessage("DB table `module_string` reloaded."); LOG_INFO("server.loading", "Reloading module_string_locale Table!"); sObjectMgr->LoadModuleStringsLocale(); handler->SendGlobalGMSysMessage("DB table `module_string_locale` reloaded."); return true; } static bool HandleReloadAcoreStringCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading acore_string Table!"); sObjectMgr->LoadAcoreStrings(); handler->SendGlobalGMSysMessage("DB table `acore_string` reloaded."); return true; } static bool HandleReloadWardenactionCommand(ChatHandler* handler) { if (!sWorld->getBoolConfig(CONFIG_WARDEN_ENABLED)) { handler->SendErrorMessage("Warden system disabled by config - reloading warden_action skipped."); return false; } LOG_INFO("server.loading", "Reloading warden_action Table!"); sWardenCheckMgr->LoadWardenOverrides(); handler->SendGlobalGMSysMessage("DB table `warden_action` reloaded."); return true; } static bool HandleReloadNpcTrainerCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading `npc_trainer` Table!"); sObjectMgr->LoadTrainerSpell(); handler->SendGlobalGMSysMessage("DB table `npc_trainer` reloaded."); return true; } static bool HandleReloadNpcVendorCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading `npc_vendor` Table!"); sObjectMgr->LoadVendors(); handler->SendGlobalGMSysMessage("DB table `npc_vendor` reloaded."); return true; } static bool HandleReloadGameEventNPCVendorCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading `game_event_npc_vendor` Table!"); sGameEventMgr->LoadEventVendors(); handler->SendGlobalGMSysMessage("DB table `game_event_npc_vendor` reloaded."); return true; } static bool HandleReloadPointsOfInterestCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading `points_of_interest` Table!"); sObjectMgr->LoadPointsOfInterest(); handler->SendGlobalGMSysMessage("DB table `points_of_interest` reloaded."); return true; } static bool HandleReloadQuestPOICommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Quest POI ..." ); sObjectMgr->LoadQuestPOI(); handler->SendGlobalGMSysMessage("DB Table `quest_poi` and `quest_poi_points` reloaded."); return true; } static bool HandleReloadSpellClickSpellsCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading `npc_spellclick_spells` Table!"); sObjectMgr->LoadNPCSpellClickSpells(); handler->SendGlobalGMSysMessage("DB table `npc_spellclick_spells` reloaded."); return true; } static bool HandleReloadReservedNameCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Reserved Names!"); sObjectMgr->LoadReservedPlayerNamesDB(); sObjectMgr->LoadReservedPlayerNamesDBC(); // Needed because we clear the store in LoadReservedPlayerNamesDB() handler->SendGlobalGMSysMessage("Reserved Names reloaded."); return true; } static bool HandleReloadProfanityNameCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Profanity Names!"); sObjectMgr->LoadProfanityNamesFromDB(); sObjectMgr->LoadProfanityNamesFromDBC(); // Needed because we clear the store in LoadProfanityNamesFromDB() handler->SendGlobalGMSysMessage("Profanity Names reloaded."); return true; } static bool HandleReloadReputationRewardRateCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading `reputation_reward_rate` Table!" ); sObjectMgr->LoadReputationRewardRate(); handler->SendGlobalGMSysMessage("DB table `reputation_reward_rate` reloaded."); return true; } static bool HandleReloadReputationSpilloverTemplateCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading `reputation_spillover_template` Table!" ); sObjectMgr->LoadReputationSpilloverTemplate(); handler->SendGlobalGMSysMessage("DB table `reputation_spillover_template` reloaded."); return true; } static bool HandleReloadSkillDiscoveryTemplateCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Skill Discovery Table..."); LoadSkillDiscoveryTable(); handler->SendGlobalGMSysMessage("DB table `skill_discovery_template` (recipes discovered at crafting) reloaded."); return true; } static bool HandleReloadSkillPerfectItemTemplateCommand(ChatHandler* handler) { // latched onto HandleReloadSkillExtraItemTemplateCommand as it's part of that table group (and i don't want to chance all the command IDs) LOG_INFO("server.loading", "Reloading Skill Perfection Data Table..."); LoadSkillPerfectItemTable(); handler->SendGlobalGMSysMessage("DB table `skill_perfect_item_template` (perfect item procs when crafting) reloaded."); return true; } static bool HandleReloadSkillExtraItemTemplateCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Skill Extra Item Table..."); LoadSkillExtraItemTable(); handler->SendGlobalGMSysMessage("DB table `skill_extra_item_template` (extra item creation when crafting) reloaded."); return HandleReloadSkillPerfectItemTemplateCommand(handler); } static bool HandleReloadSkillFishingBaseLevelCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Skill Fishing base level requirements..."); sObjectMgr->LoadFishingBaseSkillLevel(); handler->SendGlobalGMSysMessage("DB table `skill_fishing_base_level` (fishing base level for zone/subzone) reloaded."); return true; } static bool HandleReloadSpellAreaCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading SpellArea Data..."); sSpellMgr->LoadSpellAreas(); handler->SendGlobalGMSysMessage("DB table `spell_area` (spell dependences from area/quest/auras state) reloaded."); return true; } static bool HandleReloadSpellRequiredCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Spell Required Data... "); sSpellMgr->LoadSpellRequired(); handler->SendGlobalGMSysMessage("DB table `spell_required` reloaded."); return true; } static bool HandleReloadSpellGroupsCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Spell Groups..."); sSpellMgr->LoadSpellGroups(); handler->SendGlobalGMSysMessage("DB table `spell_group` (spell groups) reloaded."); return true; } static bool HandleReloadSpellLinkedSpellCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Spell Linked Spells..."); sSpellMgr->LoadSpellLinked(); handler->SendGlobalGMSysMessage("DB table `spell_linked_spell` reloaded."); return true; } static bool HandleReloadSpellProcEventCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Spell Proc Event conditions..."); sSpellMgr->LoadSpellProcEvents(); handler->SendGlobalGMSysMessage("DB table `spell_proc_event` (spell proc trigger requirements) reloaded."); return true; } static bool HandleReloadSpellProcsCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Spell Proc conditions and data..."); sSpellMgr->LoadSpellProcs(); handler->SendGlobalGMSysMessage("DB table `spell_proc` (spell proc conditions and data) reloaded."); return true; } static bool HandleReloadSpellBonusesCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Spell Bonus Data..."); sSpellMgr->LoadSpellBonuses(); handler->SendGlobalGMSysMessage("DB table `spell_bonus_data` (spell damage/healing coefficients) reloaded."); return true; } static bool HandleReloadSpellTargetPositionCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Spell target coordinates..."); sSpellMgr->LoadSpellTargetPositions(); handler->SendGlobalGMSysMessage("DB table `spell_target_position` (destination coordinates for spell targets) reloaded."); return true; } static bool HandleReloadSpellThreatsCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Aggro Spells Definitions..."); sSpellMgr->LoadSpellThreats(); handler->SendGlobalGMSysMessage("DB table `spell_threat` (spell aggro definitions) reloaded."); return true; } static bool HandleReloadSpellGroupStackRulesCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Spell Group Stack Rules..."); sSpellMgr->LoadSpellGroupStackRules(); handler->SendGlobalGMSysMessage("DB table `spell_group_stack_rules` (spell stacking definitions) reloaded."); return true; } static bool HandleReloadSpellPetAurasCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Spell pet auras..."); sSpellMgr->LoadSpellPetAuras(); handler->SendGlobalGMSysMessage("DB table `spell_pet_auras` reloaded."); return true; } static bool HandleReloadPageTextsCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Page Texts..."); sObjectMgr->LoadPageTexts(); handler->SendGlobalGMSysMessage("DB table `page_texts` reloaded."); handler->SendGlobalGMSysMessage("You need to delete your client cache or change the cache number in config in order for your players see the changes."); return true; } static bool HandleReloadItemEnchantementsCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Item Random Enchantments Table..."); LoadRandomEnchantmentsTable(); handler->SendGlobalGMSysMessage("DB table `item_enchantment_template` reloaded."); return true; } static bool HandleReloadItemSetNamesCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Item set names..."); sObjectMgr->LoadItemSetNames(); handler->SendGlobalGMSysMessage("DB table `item_set_names` reloaded."); return true; } static bool HandleReloadEventScriptsCommand(ChatHandler* handler) { if (sScriptMgr->IsScriptScheduled()) { handler->SendErrorMessage("DB scripts used currently, please attempt reload later."); return false; } LOG_INFO("server.loading", "Reloading Scripts from `event_scripts`..."); sObjectMgr->LoadEventScripts(); handler->SendGlobalGMSysMessage("DB table `event_scripts` reloaded."); return true; } static bool HandleReloadWpScriptsCommand(ChatHandler* handler) { if (sScriptMgr->IsScriptScheduled()) { handler->SendErrorMessage("DB scripts used currently, please attempt reload later."); return false; } LOG_INFO("server.loading", "Reloading Scripts from `waypoint_scripts`..."); sObjectMgr->LoadWaypointScripts(); handler->SendGlobalGMSysMessage("DB table `waypoint_scripts` reloaded."); return true; } static bool HandleReloadWpCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Waypoints data from 'waypoints_data'"); sWaypointMgr->Load(); handler->SendGlobalGMSysMessage("DB Table 'waypoint_data' reloaded."); return true; } static bool HandleReloadSpellScriptsCommand(ChatHandler* handler) { if (sScriptMgr->IsScriptScheduled()) { handler->SendErrorMessage("DB scripts used currently, please attempt reload later."); return false; } LOG_INFO("server.loading", "Reloading Scripts from `spell_scripts`..."); sObjectMgr->LoadSpellScripts(); handler->SendGlobalGMSysMessage("DB table `spell_scripts` reloaded."); return true; } static bool HandleReloadGameGraveyardZoneCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Graveyard-zone links..."); sGraveyard->LoadGraveyardZones(); handler->SendGlobalGMSysMessage("DB table `graveyard_zone` reloaded."); return true; } static bool HandleReloadGameTeleCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Game Tele coordinates..."); sObjectMgr->LoadGameTele(); handler->SendGlobalGMSysMessage("DB table `game_tele` reloaded."); return true; } static bool HandleReloadDisablesCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading disables table..."); sDisableMgr->LoadDisables(); LOG_INFO("server.loading", "Checking quest disables..."); sDisableMgr->CheckQuestDisables(); handler->SendGlobalGMSysMessage("DB table `disables` reloaded."); return true; } static bool HandleReloadLocalesAchievementRewardCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Achievement Reward Data Locale..."); sAchievementMgr->LoadRewardLocales(); handler->SendGlobalGMSysMessage("DB table `achievement_reward_locale` reloaded."); return true; } static bool HandleReloadLfgRewardsCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading lfg dungeon rewards..."); sLFGMgr->LoadRewards(); handler->SendGlobalGMSysMessage("DB table `lfg_dungeon_rewards` reloaded."); return true; } static bool HandleReloadLocalesCreatureCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Creature Template Locale..."); sObjectMgr->LoadCreatureLocales(); handler->SendGlobalGMSysMessage("DB table `creature_template_locale` reloaded."); return true; } static bool HandleReloadLocalesCreatureTextCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Creature Texts Locale..."); sCreatureTextMgr->LoadCreatureTextLocales(); handler->SendGlobalGMSysMessage("DB table `creature_text_locale` reloaded."); return true; } static bool HandleReloadLocalesGameobjectCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Gameobject Template Locale ... "); sObjectMgr->LoadGameObjectLocales(); handler->SendGlobalGMSysMessage("DB table `gameobject_template_locale` reloaded."); return true; } static bool HandleReloadLocalesGossipMenuOptionCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Gossip Menu Option Locale ... "); sObjectMgr->LoadGossipMenuItemsLocales(); handler->SendGlobalGMSysMessage("DB table `gossip_menu_option_locale` reloaded."); return true; } static bool HandleReloadLocalesItemCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Item Template Locale ... "); sObjectMgr->LoadItemLocales(); handler->SendGlobalGMSysMessage("DB table `item_template_locale` reloaded."); return true; } static bool HandleReloadLocalesItemSetNameCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Item set name Locale... "); sObjectMgr->LoadItemSetNameLocales(); handler->SendGlobalGMSysMessage("DB table `item_set_name_locale` reloaded."); return true; } static bool HandleReloadLocalesNpcTextCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading NPC Text Locale ... "); sObjectMgr->LoadNpcTextLocales(); handler->SendGlobalGMSysMessage("DB table `npc_text_locale` reloaded."); return true; } static bool HandleReloadLocalesPageTextCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Page Text Locale ... "); sObjectMgr->LoadPageTextLocales(); handler->SendGlobalGMSysMessage("DB table `page_text_locale` reloaded."); handler->SendGlobalGMSysMessage("You need to delete your client cache or change the cache number in config in order for your players see the changes."); return true; } static bool HandleReloadLocalesPointsOfInterestCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Points Of Interest Locale ... "); sObjectMgr->LoadPointOfInterestLocales(); handler->SendGlobalGMSysMessage("DB table `points_of_interest_locale` reloaded."); return true; } static bool HandleReloadLocalesQuestCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Locales Quest ... "); sObjectMgr->LoadQuestLocales(); handler->SendGlobalGMSysMessage("DB table `quest_template_locale` reloaded."); return true; } static bool HandleReloadLocalesQuestOfferRewardCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Quest Offer Reward Locale... "); sObjectMgr->LoadQuestOfferRewardLocale(); handler->SendGlobalGMSysMessage("DB table `quest_offer_reward_locale` reloaded."); return true; } static bool HandleReloadLocalesQuestRequestItemsCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Quest Request Item Locale... "); sObjectMgr->LoadQuestRequestItemsLocale(); handler->SendGlobalGMSysMessage("DB table `quest_request_item_locale` reloaded."); return true; } static bool HandleReloadMailLevelRewardCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Player level dependent mail rewards..."); sObjectMgr->LoadMailLevelRewards(); handler->SendGlobalGMSysMessage("DB table `mail_level_reward` reloaded."); return true; } static bool HandleReloadMailServerTemplateCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading `server_mail_template` table"); sServerMailMgr->LoadMailServerTemplates(); handler->SendGlobalGMSysMessage("DB table `server_mail_template` reloaded."); return true; } static bool HandleReloadAntiDosOpcodePoliciesCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading AntiDos opcode policies..."); sWorldGlobals->LoadAntiDosOpcodePolicies(); handler->SendGlobalGMSysMessage("AntiDos opcode policies reloaded."); return true; } static bool HandleReloadAuctionsCommand(ChatHandler* handler) { ///- Reload dynamic data tables from the database LOG_INFO("server.loading", "Reloading Auctions..."); sAuctionMgr->LoadAuctionItems(); sAuctionMgr->LoadAuctions(); handler->SendGlobalGMSysMessage("Auctions reloaded."); return true; } static bool HandleReloadConditions(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Conditions..."); sConditionMgr->LoadConditions(true); handler->SendGlobalGMSysMessage("Conditions reloaded."); return true; } static bool HandleReloadCreatureText(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Creature Texts..."); sCreatureTextMgr->LoadCreatureTexts(); handler->SendGlobalGMSysMessage("Creature Texts reloaded."); return true; } static bool HandleReloadSmartScripts(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading Smart Scripts..."); sSmartScriptMgr->LoadSmartAIFromDB(); handler->SendGlobalGMSysMessage("Smart Scripts reloaded."); return true; } static bool HandleReloadVehicleAccessoryCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading vehicle_accessory table..."); sObjectMgr->LoadVehicleAccessories(); handler->SendGlobalGMSysMessage("Vehicle accessories reloaded."); return true; } static bool HandleReloadVehicleTemplateAccessoryCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading vehicle_template_accessory table..."); sObjectMgr->LoadVehicleTemplateAccessories(); handler->SendGlobalGMSysMessage("Vehicle template accessories reloaded."); return true; } static bool HandleReloadGameGraveyardCommand(ChatHandler* handler) { LOG_INFO("server.loading", "Reloading game_graveyard table..."); sGraveyard->LoadGraveyardFromDB(); handler->SendGlobalGMSysMessage("DB table `game_graveyard` reloaded."); return true; } }; void AddSC_reload_commandscript() { new reload_commandscript(); }