aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/base/world_database.sql3
-rw-r--r--sql/updates/9644_world_command.sql5
-rw-r--r--src/server/game/Chat/Chat.cpp3
-rw-r--r--src/server/game/Chat/Chat.h3
-rw-r--r--src/server/game/Chat/Commands/Level3.cpp35
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp4
7 files changed, 52 insertions, 3 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql
index d7153a86a60..b4af6b72227 100644
--- a/sql/base/world_database.sql
+++ b/sql/base/world_database.sql
@@ -555,6 +555,7 @@ INSERT INTO `command` VALUES
('recall',1,'Syntax: .recall [$playername]\r\n\r\nTeleport $playername or selected player to the place where he has been before last use of a teleportation command. If no $playername is entered and no player is selected, it will teleport you.'),
('reload',3,'Syntax: .reload $subcommand\nType .reload to see the list of possible subcommands or .help reload $subcommand to see info on subcommands'),
('reload all',3,'Syntax: .reload all\r\n\r\nReload all tables with reload support added and that can be _safe_ reloaded.'),
+('reload all_gossips',3,'Syntax: .reload all_gossips\nReload gossip_menu, gossip_menu_option, gossip_scripts, npc_gossip, points_of_interest tables.'),
('reload all_item',3,'Syntax: .reload all_item\nReload page_text, item_enchantment_table tables.'),
('reload all_locales',3,'Syntax: .reload all_locales\r\n\r\nReload all `locales_*` tables with reload support added and that can be _safe_ reloaded.'),
('reload all_loot',3,'Syntax: .reload all_loot\r\n\r\nReload all `*_loot_template` tables. This can be slow operation with lags for server run.'),
@@ -593,6 +594,7 @@ INSERT INTO `command` VALUES
('reload item_set_names',3,'Syntax: .reload item_set_names\nReload item_set_names table.'),
('reload locales_creature',3,'Syntax: .reload locales_creature\nReload locales_creature table.'),
('reload locales_gameobject',3,'Syntax: .reload locales_gameobject\nReload locales_gameobject table.'),
+('reload locales_gossip_menu_option',3, 'Syntax: .reload locales_gossip_menu_option\nReload locales_gossip_menu_option table.'),
('reload locales_item',3,'Syntax: .reload locales_item\nReload locales_item table.'),
('reload locales_item_set_name',3,'Syntax: .reload locales_item_set_name\nReload locales_item_set_name table.'),
('reload locales_npc_text',3,'Syntax: .reload locales_npc_text\nReload locales_npc_text table.'),
@@ -609,6 +611,7 @@ INSERT INTO `command` VALUES
('reload prospecting_loot_template',3,'Syntax: .reload prospecting_loot_template\nReload prospecting_loot_template table.'),
('reload quest_end_scripts',3,'Syntax: .reload quest_end_scripts\nReload quest_end_scripts table.'),
('reload mail_loot_template',3,'Syntax: .reload mail_loot_template\nReload mail_loot_template table.'),
+('reload quest_poi',3,'Syntax: .reload quest_poi\nReload quest_poi table.'),
('reload quest_start_scripts',3,'Syntax: .reload quest_start_scripts\nReload quest_start_scripts table.'),
('reload quest_template',3,'Syntax: .reload quest_template\nReload quest_template table.'),
('reload reference_loot_template',3,'Syntax: .reload reference_loot_template\nReload reference_loot_template table.'),
diff --git a/sql/updates/9644_world_command.sql b/sql/updates/9644_world_command.sql
new file mode 100644
index 00000000000..d1e5687f68e
--- /dev/null
+++ b/sql/updates/9644_world_command.sql
@@ -0,0 +1,5 @@
+DELETE FROM command WHERE name IN ('reload all_gossips', 'reload locales_gossip_menu_option', 'reload quest_poi');
+INSERT INTO command (name, security, help) VALUES
+('reload all_gossips',3,'Syntax: .reload all_gossips\nReload gossip_menu, gossip_menu_option, gossip_scripts, npc_gossip, points_of_interest tables.'),
+('reload locales_gossip_menu_option',3, 'Syntax: .reload locales_gossip_menu_option\nReload locales_gossip_menu_option table.'),
+('reload quest_poi',3,'Syntax: .reload quest_poi\nReload quest_poi table.'); \ No newline at end of file
diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp
index aed1818ca8b..373559b73cc 100644
--- a/src/server/game/Chat/Chat.cpp
+++ b/src/server/game/Chat/Chat.cpp
@@ -446,6 +446,7 @@ ChatCommand * ChatHandler::getCommandTable()
{ "all_achievement",SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllAchievementCommand,"", NULL },
{ "all_area", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllAreaCommand, "", NULL },
{ "all_eventai", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllEventAICommand, "", NULL },
+ { "all_gossips", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllGossipsCommand, "", NULL },
{ "all_item", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllItemCommand, "", NULL },
{ "all_locales", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllLocalesCommand, "", NULL },
{ "all_loot", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllLootCommand, "", NULL },
@@ -494,6 +495,7 @@ ChatCommand * ChatHandler::getCommandTable()
{ "locales_achievement_reward", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesAchievementRewardCommand,"", NULL },
{ "locales_creature", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesCreatureCommand, "", NULL },
{ "locales_gameobject", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesGameobjectCommand, "", NULL },
+ { "locales_gossip_menu_option", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesGossipMenuOptionCommand, "", NULL },
{ "locales_item", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesItemCommand, "", NULL },
{ "locales_item_set_name", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesItemSetNameCommand, "", NULL },
{ "locales_npc_text", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesNpcTextCommand, "", NULL },
@@ -513,6 +515,7 @@ ChatCommand * ChatHandler::getCommandTable()
{ "points_of_interest", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadPointsOfInterestCommand, "",NULL},
{ "prospecting_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesProspectingCommand,"", NULL },
{ "quest_end_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestEndScriptsCommand, "", NULL },
+ { "quest_poi", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestPOICommand, "", NULL },
{ "quest_start_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestStartScriptsCommand, "", NULL },
{ "quest_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestTemplateCommand, "", NULL },
{ "reference_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesReferenceCommand, "", NULL },
diff --git a/src/server/game/Chat/Chat.h b/src/server/game/Chat/Chat.h
index 630a8668e49..913e9b71360 100644
--- a/src/server/game/Chat/Chat.h
+++ b/src/server/game/Chat/Chat.h
@@ -348,6 +348,7 @@ class ChatHandler
bool HandleReloadAllCommand(const char* args);
bool HandleReloadAllAchievementCommand(const char* args);
bool HandleReloadAllAreaCommand(const char* args);
+ bool HandleReloadAllGossipsCommand(const char* args);
bool HandleReloadAllItemCommand(const char* args);
bool HandleReloadAllLootCommand(const char* args);
bool HandleReloadAllNpcCommand(const char* args);
@@ -389,6 +390,7 @@ class ChatHandler
bool HandleReloadLocalesAchievementRewardCommand(const char* args);
bool HandleReloadLocalesCreatureCommand(const char* args);
bool HandleReloadLocalesGameobjectCommand(const char* args);
+ bool HandleReloadLocalesGossipMenuOptionCommand(const char* args);
bool HandleReloadLocalesItemCommand(const char* args);
bool HandleReloadLocalesItemSetNameCommand(const char* args);
bool HandleReloadLocalesNpcTextCommand(const char* args);
@@ -418,6 +420,7 @@ class ChatHandler
bool HandleReloadSpellClickSpellsCommand(const char* args);
bool HandleReloadQuestAreaTriggersCommand(const char* args);
bool HandleReloadQuestEndScriptsCommand(const char* args);
+ bool HandleReloadQuestPOICommand(const char* args);
bool HandleReloadQuestStartScriptsCommand(const char* args);
bool HandleReloadQuestTemplateCommand(const char* args);
bool HandleReloadReservedNameCommand(const char*);
diff --git a/src/server/game/Chat/Commands/Level3.cpp b/src/server/game/Chat/Commands/Level3.cpp
index 30062e91619..3bc1c569889 100644
--- a/src/server/game/Chat/Commands/Level3.cpp
+++ b/src/server/game/Chat/Commands/Level3.cpp
@@ -73,6 +73,7 @@ bool ChatHandler::HandleReloadAllCommand(const char*)
HandleReloadAllQuestCommand("");
HandleReloadAllSpellCommand("");
HandleReloadAllItemCommand("");
+ HandleReloadAllGossipsCommand("");
HandleReloadAllLocalesCommand("");
HandleReloadAccessRequirementCommand("");
@@ -111,9 +112,10 @@ bool ChatHandler::HandleReloadAllLootCommand(const char*)
return true;
}
-bool ChatHandler::HandleReloadAllNpcCommand(const char* /*args*/)
+bool ChatHandler::HandleReloadAllNpcCommand(const char* args)
{
- HandleReloadNpcGossipCommand("a");
+ if(*args != 'a') // will be reloaded from all_gossips
+ HandleReloadNpcGossipCommand("a");
HandleReloadNpcTrainerCommand("a");
HandleReloadNpcVendorCommand("a");
HandleReloadPointsOfInterestCommand("a");
@@ -124,6 +126,7 @@ bool ChatHandler::HandleReloadAllNpcCommand(const char* /*args*/)
bool ChatHandler::HandleReloadAllQuestCommand(const char* /*args*/)
{
HandleReloadQuestAreaTriggersCommand("a");
+ HandleReloadQuestPOICommand("a");
HandleReloadQuestTemplateCommand("a");
sLog.outString("Re-Loading Quests Relations...");
@@ -180,6 +183,17 @@ bool ChatHandler::HandleReloadAllSpellCommand(const char*)
return true;
}
+bool ChatHandler::HandleReloadAllGossipsCommand(const char* args)
+{
+ HandleReloadGossipMenuCommand("a");
+ HandleReloadGossipMenuOptionCommand("a");
+ if(*args != 'a') // already reload from all_scripts
+ HandleReloadGossipScriptsCommand("a");
+ HandleReloadNpcGossipCommand("a");
+ HandleReloadPointsOfInterestCommand("a");
+ return true;
+}
+
bool ChatHandler::HandleReloadAllItemCommand(const char*)
{
HandleReloadPageTextsCommand("a");
@@ -192,6 +206,7 @@ bool ChatHandler::HandleReloadAllLocalesCommand(const char* /*args*/)
HandleReloadLocalesAchievementRewardCommand("a");
HandleReloadLocalesCreatureCommand("a");
HandleReloadLocalesGameobjectCommand("a");
+ HandleReloadLocalesGossipMenuOptionCommand("a");
HandleReloadLocalesItemCommand("a");
HandleReloadLocalesNpcTextCommand("a");
HandleReloadLocalesPageTextCommand("a");
@@ -651,6 +666,14 @@ bool ChatHandler::HandleReloadPointsOfInterestCommand(const char*)
return true;
}
+bool ChatHandler::HandleReloadQuestPOICommand(const char*)
+{
+ sLog.outString( "Re-Loading Quest POI ..." );
+ sObjectMgr.LoadQuestPOI();
+ SendGlobalGMSysMessage("DB Table `quest_poi` and `quest_poi_points` reloaded.");
+ return true;
+}
+
bool ChatHandler::HandleReloadSpellClickSpellsCommand(const char*)
{
sLog.outString("Re-Loading `npc_spellclick_spells` Table!");
@@ -1048,6 +1071,14 @@ bool ChatHandler::HandleReloadLocalesGameobjectCommand(const char* /*arg*/)
return true;
}
+bool ChatHandler::HandleReloadLocalesGossipMenuOptionCommand(const char* /*arg*/)
+{
+ sLog.outString( "Re-Loading Locales Gossip Menu Option ... ");
+ sObjectMgr.LoadGossipMenuItemsLocales();
+ SendGlobalGMSysMessage("DB table `locales_gossip_menu_option` reloaded.");
+ return true;
+}
+
bool ChatHandler::HandleReloadLocalesItemCommand(const char* /*arg*/)
{
sLog.outString("Re-Loading Locales Item ... ");
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 73bb481d0bc..06b5a7fd33b 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -20335,7 +20335,7 @@ bool Player::canSeeOrDetect(Unit const* u, bool detect, bool inVisibleList, bool
return true;
// Arena visibility before arena start
- if (InArena() && GetBattleground() && GetBattleground()->GetStatus() == STATUS_WAIT_JOIN)
+ if (InArena() && GetBattleground()->GetStatus() == STATUS_WAIT_JOIN)
if (const Player* target = u->GetCharmerOrOwnerPlayerOrPlayerItself())
return GetBGTeam() == target->GetBGTeam();
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 1e425dbe430..aecf48a4f1a 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -6986,6 +6986,8 @@ void ObjectMgr::LoadReputationSpilloverTemplate()
void ObjectMgr::LoadPointsOfInterest()
{
+ mPointsOfInterest.clear(); // need for reload case
+
uint32 count = 0;
// 0 1 2 3 4 5 6
@@ -7036,6 +7038,8 @@ void ObjectMgr::LoadPointsOfInterest()
void ObjectMgr::LoadQuestPOI()
{
+ mQuestPOIMap.clear(); // need for reload case
+
uint32 count = 0;
// 0 1 2 3