aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/base/world_database.sql3
-rw-r--r--sql/updates/9427_world_command.sql5
-rw-r--r--src/server/game/Chat/Chat.cpp1
-rw-r--r--src/server/game/Chat/Chat.h1
-rw-r--r--src/server/game/Chat/Commands/Level3.cpp21
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())