diff options
-rw-r--r-- | sql/base/world_database.sql | 3 | ||||
-rw-r--r-- | sql/updates/9427_world_command.sql | 5 | ||||
-rw-r--r-- | src/server/game/Chat/Chat.cpp | 1 | ||||
-rw-r--r-- | src/server/game/Chat/Chat.h | 1 | ||||
-rw-r--r-- | src/server/game/Chat/Commands/Level3.cpp | 21 |
5 files changed, 31 insertions, 0 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql index 16ecbc9399e..6099d56ce93 100644 --- a/sql/base/world_database.sql +++ b/sql/base/world_database.sql @@ -584,6 +584,9 @@ INSERT INTO `command` VALUES ('reload gameobject_scripts',3,'Syntax: .reload gameobject_scripts\nReload gameobject_scripts table.'), ('reload game_graveyard_zone',3,'Syntax: .reload game_graveyard_zone\nReload game_graveyard_zone table.'), ('reload game_tele',3,'Syntax: .reload game_tele\nReload game_tele table.'), +('reload gossip_menu',3,'Syntax: .reload gossip_menu\nReload gossip_menu table.'), +('reload gossip_menu_option',3,'Syntax: .reload gossip_menu_option\nReload gossip_menu_option table.'), +('reload gossip_scripts',3,'Syntax: .reload gossip_scripts\nReload gossip_scripts table.'), ('reload gm_tickets',3,'Syntax: .reload gm_tickets\nReload gm_tickets table.'), ('reload item_enchantment_template',3,'Syntax: .reload item_enchantment_template\nReload item_enchantment_template table.'), ('reload item_loot_template',3,'Syntax: .reload item_loot_template\nReload item_loot_template table.'), diff --git a/sql/updates/9427_world_command.sql b/sql/updates/9427_world_command.sql new file mode 100644 index 00000000000..3f294a387c6 --- /dev/null +++ b/sql/updates/9427_world_command.sql @@ -0,0 +1,5 @@ +DELETE FROM `command` WHERE `name` IN ('reload gossip_menu','reload gossip_menu_option','reload gossip_scripts'); +INSERT INTO `command` (`name`,`security`,`help`) VALUES +('reload gossip_menu',3, 'Syntax: .reload gossip_menu\nReload gossip_menu table.'), +('reload gossip_menu_option',3, 'Syntax: .reload gossip_menu_option\nReload gossip_menu_option table.'), +('reload gossip_scripts',3, 'Syntax: .reload gossip_scripts\nReload gossip_scripts table.'), diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp index 26a8da94ec8..9ee79281e5a 100644 --- a/src/server/game/Chat/Chat.cpp +++ b/src/server/game/Chat/Chat.cpp @@ -487,6 +487,7 @@ ChatCommand * ChatHandler::getCommandTable() { "gameobject_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadGameObjectScriptsCommand, "", NULL }, { "gossip_menu", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadGossipMenuCommand, "", NULL }, { "gossip_menu_option", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadGossipMenuOptionCommand, "", NULL }, + { "gossip_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadGossipScriptsCommand, "", NULL }, { "item_enchantment_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadItemEnchantementsCommand, "", NULL }, { "item_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesItemCommand, "", NULL }, { "item_set_names", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadItemSetNamesCommand, "", NULL }, diff --git a/src/server/game/Chat/Chat.h b/src/server/game/Chat/Chat.h index d4fd0dc3038..630a8668e49 100644 --- a/src/server/game/Chat/Chat.h +++ b/src/server/game/Chat/Chat.h @@ -381,6 +381,7 @@ class ChatHandler bool HandleReloadGameTeleCommand(const char* args); bool HandleReloadGossipMenuCommand(const char* args); bool HandleReloadGossipMenuOptionCommand(const char* args); + bool HandleReloadGossipScriptsCommand(const char* args); bool HandleReloadGOQuestRelationsCommand(const char* args); bool HandleReloadGOQuestInvRelationsCommand(const char* args); bool HandleReloadItemEnchantementsCommand(const char* args); diff --git a/src/server/game/Chat/Commands/Level3.cpp b/src/server/game/Chat/Commands/Level3.cpp index b1eb5aac6fa..b56c97d9886 100644 --- a/src/server/game/Chat/Commands/Level3.cpp +++ b/src/server/game/Chat/Commands/Level3.cpp @@ -143,6 +143,7 @@ bool ChatHandler::HandleReloadAllScriptsCommand(const char*) sLog.outString("Re-Loading Scripts..."); HandleReloadGameObjectScriptsCommand("a"); + HandleReloadGossipScriptsCommand("a"); HandleReloadEventScriptsCommand("a"); HandleReloadQuestEndScriptsCommand("a"); HandleReloadQuestStartScriptsCommand("a"); @@ -818,6 +819,26 @@ bool ChatHandler::HandleReloadItemSetNamesCommand(const char*) return true; } +bool ChatHandler::HandleReloadGossipScriptsCommand(const char* arg) +{ + if (sWorld.IsScriptScheduled()) + { + SendSysMessage("DB scripts used currently, please attempt reload later."); + SetSentErrorMessage(true); + return false; + } + + if (*arg != 'a') + sLog.outString("Re-Loading Scripts from `gossip_scripts`..."); + + sObectMgr.LoadGossipScripts(); + + if (*arg != 'a') + SendGlobalGMSysMessage("DB table `gossip_scripts` reloaded."); + + return true; +} + bool ChatHandler::HandleReloadGameObjectScriptsCommand(const char* arg) { if (sWorld.IsScriptScheduled()) |