aboutsummaryrefslogtreecommitdiff
path: root/src/game/Level3.cpp
diff options
context:
space:
mode:
authormaximius <none@none>2009-10-17 15:35:07 -0700
committermaximius <none@none>2009-10-17 15:35:07 -0700
commit26b5e033ffde3d161382fc9addbfa99738379641 (patch)
treea344f369ca32945f787a02dee35c3dbe342bed7e /src/game/Level3.cpp
parentf21f47005dcb6b76e1abc9f35fbcd03eed191bff (diff)
*Massive cleanup (\n\n -> \n, *\n -> \n, cleanup for(...) to for (...), and some other cleanups by hand)
*Fix a possible crash in Spell::DoAllEffectOnTarget --HG-- branch : trunk
Diffstat (limited to 'src/game/Level3.cpp')
-rw-r--r--src/game/Level3.cpp1130
1 files changed, 0 insertions, 1130 deletions
diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp
index 21f3c995dce..d77d5424bd0 100644
--- a/src/game/Level3.cpp
+++ b/src/game/Level3.cpp
@@ -17,7 +17,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-
#include "Common.h"
#include "Database/DatabaseEnv.h"
#include "WorldPacket.h"
@@ -54,7 +53,6 @@
#include "InstanceData.h"
#include "AuctionHouseBot.h"
#include "CreatureEventAIMgr.h"
-
bool ChatHandler::HandleAHBotOptionsCommand(const char* args)
{
uint32 ahMapID = 0;
@@ -81,7 +79,6 @@ bool ChatHandler::HandleAHBotOptionsCommand(const char* args)
return false;
}
int l = strlen(opt);
-
if (strncmp(opt,"help",l) == 0)
{
PSendSysMessage("AHBot commands:");
@@ -542,12 +539,10 @@ bool ChatHandler::HandleAHBotOptionsCommand(const char* args)
}
return true;
}
-
//reload commands
bool ChatHandler::HandleReloadAllCommand(const char*)
{
HandleReloadSkillFishingBaseLevelCommand("");
-
HandleReloadAllAchievementCommand("");
HandleReloadAllAreaCommand("");
HandleReloadAllEventAICommand("");
@@ -557,24 +552,20 @@ bool ChatHandler::HandleReloadAllCommand(const char*)
HandleReloadAllSpellCommand("");
HandleReloadAllItemCommand("");
HandleReloadAllLocalesCommand("");
-
HandleReloadAccessRequirementCommand("");
HandleReloadCommandCommand("");
HandleReloadReservedNameCommand("");
HandleReloadTrinityStringCommand("");
HandleReloadGameTeleCommand("");
-
HandleReloadAutobroadcastCommand("");
return true;
}
-
bool ChatHandler::HandleReloadAllAchievementCommand(const char*)
{
HandleReloadAchievementCriteriaDataCommand("");
HandleReloadAchievementRewardCommand("");
return true;
}
-
bool ChatHandler::HandleReloadAllAreaCommand(const char*)
{
//HandleReloadQuestAreaTriggersCommand(""); -- reloaded in HandleReloadAllQuestCommand
@@ -583,7 +574,6 @@ bool ChatHandler::HandleReloadAllAreaCommand(const char*)
HandleReloadGameGraveyardZoneCommand("");
return true;
}
-
bool ChatHandler::HandleReloadAllLootCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables..." );
@@ -591,7 +581,6 @@ bool ChatHandler::HandleReloadAllLootCommand(const char*)
SendGlobalGMSysMessage("DB tables `*_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadAllNpcCommand(const char* /*args*/)
{
HandleReloadNpcGossipCommand("a");
@@ -602,18 +591,15 @@ bool ChatHandler::HandleReloadAllNpcCommand(const char* /*args*/)
HandleReloadSpellClickSpellsCommand("a");
return true;
}
-
bool ChatHandler::HandleReloadAllQuestCommand(const char* /*args*/)
{
HandleReloadQuestAreaTriggersCommand("a");
HandleReloadQuestTemplateCommand("a");
-
sLog.outString( "Re-Loading Quests Relations..." );
objmgr.LoadQuestRelations();
SendGlobalGMSysMessage("DB tables `*_questrelation` and `*_involvedrelation` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadAllScriptsCommand(const char*)
{
if(sWorld.IsScriptScheduled())
@@ -622,7 +608,6 @@ bool ChatHandler::HandleReloadAllScriptsCommand(const char*)
SetSentErrorMessage(true);
return false;
}
-
sLog.outString( "Re-Loading Scripts..." );
HandleReloadGameObjectScriptsCommand("a");
HandleReloadEventScriptsCommand("a");
@@ -634,7 +619,6 @@ bool ChatHandler::HandleReloadAllScriptsCommand(const char*)
HandleReloadWpScriptsCommand("a");
return true;
}
-
bool ChatHandler::HandleReloadAllEventAICommand(const char*)
{
HandleReloadEventAITextsCommand("a");
@@ -642,7 +626,6 @@ bool ChatHandler::HandleReloadAllEventAICommand(const char*)
HandleReloadEventAIScriptsCommand("a");
return true;
}
-
bool ChatHandler::HandleReloadAllSpellCommand(const char*)
{
HandleReloadSkillDiscoveryTemplateCommand("a");
@@ -661,7 +644,6 @@ bool ChatHandler::HandleReloadAllSpellCommand(const char*)
HandleReloadSpellDisabledCommand("a");
return true;
}
-
bool ChatHandler::HandleReloadAllItemCommand(const char*)
{
HandleReloadPageTextsCommand("a");
@@ -669,7 +651,6 @@ bool ChatHandler::HandleReloadAllItemCommand(const char*)
HandleReloadItemRequiredTragetCommand("a");
return true;
}
-
bool ChatHandler::HandleReloadAllLocalesCommand(const char* /*args*/)
{
HandleReloadLocalesAchievementRewardCommand("a");
@@ -682,7 +663,6 @@ bool ChatHandler::HandleReloadAllLocalesCommand(const char* /*args*/)
HandleReloadLocalesQuestCommand("a");
return true;
}
-
bool ChatHandler::HandleReloadConfigCommand(const char* /*args*/)
{
sLog.outString( "Re-Loading config settings..." );
@@ -691,7 +671,6 @@ bool ChatHandler::HandleReloadConfigCommand(const char* /*args*/)
SendGlobalGMSysMessage("World config settings reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadAccessRequirementCommand(const char*)
{
sLog.outString( "Re-Loading Access Requirement definitions..." );
@@ -699,7 +678,6 @@ bool ChatHandler::HandleReloadAccessRequirementCommand(const char*)
SendGlobalGMSysMessage("DB table `access_requirement` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadAchievementCriteriaDataCommand(const char*)
{
sLog.outString( "Re-Loading Additional Achievement Criteria Data..." );
@@ -707,7 +685,6 @@ bool ChatHandler::HandleReloadAchievementCriteriaDataCommand(const char*)
SendGlobalGMSysMessage("DB table `achievement_criteria_data` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadAchievementRewardCommand(const char*)
{
sLog.outString( "Re-Loading Achievement Reward Data..." );
@@ -715,7 +692,6 @@ bool ChatHandler::HandleReloadAchievementRewardCommand(const char*)
SendGlobalGMSysMessage("DB table `achievement_reward` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadAreaTriggerTavernCommand(const char*)
{
sLog.outString( "Re-Loading Tavern Area Triggers..." );
@@ -723,7 +699,6 @@ bool ChatHandler::HandleReloadAreaTriggerTavernCommand(const char*)
SendGlobalGMSysMessage("DB table `areatrigger_tavern` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadAreaTriggerTeleportCommand(const char*)
{
sLog.outString( "Re-Loading AreaTrigger teleport definitions..." );
@@ -731,7 +706,6 @@ bool ChatHandler::HandleReloadAreaTriggerTeleportCommand(const char*)
SendGlobalGMSysMessage("DB table `areatrigger_teleport` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadAutobroadcastCommand(const char*)
{
sLog.outString("Re-Loading Autobroadcast...");
@@ -739,14 +713,12 @@ bool ChatHandler::HandleReloadAutobroadcastCommand(const char*)
SendGlobalGMSysMessage("DB table `autobroadcast` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadCommandCommand(const char*)
{
load_command_table = true;
SendGlobalGMSysMessage("DB table `command` will be reloaded at next chat command use.");
return true;
}
-
bool ChatHandler::HandleReloadCreatureQuestRelationsCommand(const char*)
{
sLog.outString( "Loading Quests Relations... (`creature_questrelation`)" );
@@ -754,7 +726,6 @@ bool ChatHandler::HandleReloadCreatureQuestRelationsCommand(const char*)
SendGlobalGMSysMessage("DB table `creature_questrelation` (creature quest givers) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadCreatureLinkedRespawnCommand(const char* args)
{
sLog.outString( "Loading Linked Respawns... (`creature_linked_respawn`)" );
@@ -762,7 +733,6 @@ bool ChatHandler::HandleReloadCreatureLinkedRespawnCommand(const char* args)
SendGlobalGMSysMessage("DB table `creature_linked_respawn` (creature linked respawns) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadCreatureQuestInvRelationsCommand(const char*)
{
sLog.outString( "Loading Quests Relations... (`creature_involvedrelation`)" );
@@ -770,7 +740,6 @@ bool ChatHandler::HandleReloadCreatureQuestInvRelationsCommand(const char*)
SendGlobalGMSysMessage("DB table `creature_involvedrelation` (creature quest takers) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadGOQuestRelationsCommand(const char*)
{
sLog.outString( "Loading Quests Relations... (`gameobject_questrelation`)" );
@@ -778,7 +747,6 @@ bool ChatHandler::HandleReloadGOQuestRelationsCommand(const char*)
SendGlobalGMSysMessage("DB table `gameobject_questrelation` (gameobject quest givers) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadGOQuestInvRelationsCommand(const char*)
{
sLog.outString( "Loading Quests Relations... (`gameobject_involvedrelation`)" );
@@ -786,7 +754,6 @@ bool ChatHandler::HandleReloadGOQuestInvRelationsCommand(const char*)
SendGlobalGMSysMessage("DB table `gameobject_involvedrelation` (gameobject quest takers) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadQuestAreaTriggersCommand(const char*)
{
sLog.outString( "Re-Loading Quest Area Triggers..." );
@@ -794,20 +761,17 @@ bool ChatHandler::HandleReloadQuestAreaTriggersCommand(const char*)
SendGlobalGMSysMessage("DB table `areatrigger_involvedrelation` (quest area triggers) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadQuestTemplateCommand(const char*)
{
sLog.outString( "Re-Loading Quest Templates..." );
objmgr.LoadQuests();
SendGlobalGMSysMessage("DB table `quest_template` (quest definitions) reloaded.");
-
/// dependent also from `gameobject` but this table not reloaded anyway
sLog.outString( "Re-Loading GameObjects for quests..." );
objmgr.LoadGameObjectForQuests();
SendGlobalGMSysMessage("Data GameObjects for quests reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLootTemplatesCreatureCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`creature_loot_template`)" );
@@ -816,7 +780,6 @@ bool ChatHandler::HandleReloadLootTemplatesCreatureCommand(const char*)
SendGlobalGMSysMessage("DB table `creature_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLootTemplatesDisenchantCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`disenchant_loot_template`)" );
@@ -825,7 +788,6 @@ bool ChatHandler::HandleReloadLootTemplatesDisenchantCommand(const char*)
SendGlobalGMSysMessage("DB table `disenchant_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLootTemplatesFishingCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`fishing_loot_template`)" );
@@ -834,7 +796,6 @@ bool ChatHandler::HandleReloadLootTemplatesFishingCommand(const char*)
SendGlobalGMSysMessage("DB table `fishing_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLootTemplatesGameobjectCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`gameobject_loot_template`)" );
@@ -843,7 +804,6 @@ bool ChatHandler::HandleReloadLootTemplatesGameobjectCommand(const char*)
SendGlobalGMSysMessage("DB table `gameobject_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLootTemplatesItemCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`item_loot_template`)" );
@@ -852,7 +812,6 @@ bool ChatHandler::HandleReloadLootTemplatesItemCommand(const char*)
SendGlobalGMSysMessage("DB table `item_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLootTemplatesMillingCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`milling_loot_template`)" );
@@ -861,7 +820,6 @@ bool ChatHandler::HandleReloadLootTemplatesMillingCommand(const char*)
SendGlobalGMSysMessage("DB table `milling_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLootTemplatesPickpocketingCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`pickpocketing_loot_template`)" );
@@ -870,7 +828,6 @@ bool ChatHandler::HandleReloadLootTemplatesPickpocketingCommand(const char*)
SendGlobalGMSysMessage("DB table `pickpocketing_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLootTemplatesProspectingCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`prospecting_loot_template`)" );
@@ -879,7 +836,6 @@ bool ChatHandler::HandleReloadLootTemplatesProspectingCommand(const char*)
SendGlobalGMSysMessage("DB table `prospecting_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLootTemplatesQuestMailCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`quest_mail_loot_template`)" );
@@ -888,7 +844,6 @@ bool ChatHandler::HandleReloadLootTemplatesQuestMailCommand(const char*)
SendGlobalGMSysMessage("DB table `quest_mail_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLootTemplatesReferenceCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`reference_loot_template`)" );
@@ -896,7 +851,6 @@ bool ChatHandler::HandleReloadLootTemplatesReferenceCommand(const char*)
SendGlobalGMSysMessage("DB table `reference_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLootTemplatesSkinningCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`skinning_loot_template`)" );
@@ -905,7 +859,6 @@ bool ChatHandler::HandleReloadLootTemplatesSkinningCommand(const char*)
SendGlobalGMSysMessage("DB table `skinning_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLootTemplatesSpellCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`spell_loot_template`)" );
@@ -914,7 +867,6 @@ bool ChatHandler::HandleReloadLootTemplatesSpellCommand(const char*)
SendGlobalGMSysMessage("DB table `spell_loot_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadTrinityStringCommand(const char*)
{
sLog.outString( "Re-Loading trinity_string Table!" );
@@ -922,7 +874,6 @@ bool ChatHandler::HandleReloadTrinityStringCommand(const char*)
SendGlobalGMSysMessage("DB table `trinity_string` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadNpcOptionCommand(const char*)
{
sLog.outString( "Re-Loading `npc_option` Table!" );
@@ -930,7 +881,6 @@ bool ChatHandler::HandleReloadNpcOptionCommand(const char*)
SendGlobalGMSysMessage("DB table `npc_option` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadNpcGossipCommand(const char*)
{
sLog.outString( "Re-Loading `npc_gossip` Table!" );
@@ -938,7 +888,6 @@ bool ChatHandler::HandleReloadNpcGossipCommand(const char*)
SendGlobalGMSysMessage("DB table `npc_gossip` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadNpcTrainerCommand(const char*)
{
sLog.outString( "Re-Loading `npc_trainer` Table!" );
@@ -946,7 +895,6 @@ bool ChatHandler::HandleReloadNpcTrainerCommand(const char*)
SendGlobalGMSysMessage("DB table `npc_trainer` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadNpcVendorCommand(const char*)
{
sLog.outString( "Re-Loading `npc_vendor` Table!" );
@@ -954,7 +902,6 @@ bool ChatHandler::HandleReloadNpcVendorCommand(const char*)
SendGlobalGMSysMessage("DB table `npc_vendor` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadPointsOfInterestCommand(const char*)
{
sLog.outString( "Re-Loading `points_of_interest` Table!" );
@@ -962,7 +909,6 @@ bool ChatHandler::HandleReloadPointsOfInterestCommand(const char*)
SendGlobalGMSysMessage("DB table `points_of_interest` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSpellClickSpellsCommand(const char*)
{
sLog.outString( "Re-Loading `npc_spellclick_spells` Table!" );
@@ -970,7 +916,6 @@ bool ChatHandler::HandleReloadSpellClickSpellsCommand(const char*)
SendGlobalGMSysMessage("DB table `npc_spellclick_spells` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadReservedNameCommand(const char*)
{
sLog.outString( "Loading ReservedNames... (`reserved_name`)" );
@@ -978,7 +923,6 @@ bool ChatHandler::HandleReloadReservedNameCommand(const char*)
SendGlobalGMSysMessage("DB table `reserved_name` (player reserved names) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSkillDiscoveryTemplateCommand(const char* /*args*/)
{
sLog.outString( "Re-Loading Skill Discovery Table..." );
@@ -986,7 +930,6 @@ bool ChatHandler::HandleReloadSkillDiscoveryTemplateCommand(const char* /*args*/
SendGlobalGMSysMessage("DB table `skill_discovery_template` (recipes discovered at crafting) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSkillExtraItemTemplateCommand(const char* /*args*/)
{
sLog.outString( "Re-Loading Skill Extra Item Table..." );
@@ -994,7 +937,6 @@ bool ChatHandler::HandleReloadSkillExtraItemTemplateCommand(const char* /*args*/
SendGlobalGMSysMessage("DB table `skill_extra_item_template` (extra item creation when crafting) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSkillFishingBaseLevelCommand(const char* /*args*/)
{
sLog.outString( "Re-Loading Skill Fishing base level requirements..." );
@@ -1002,7 +944,6 @@ bool ChatHandler::HandleReloadSkillFishingBaseLevelCommand(const char* /*args*/)
SendGlobalGMSysMessage("DB table `skill_fishing_base_level` (fishing base level for zone/subzone) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSpellAreaCommand(const char*)
{
sLog.outString( "Re-Loading SpellArea Data..." );
@@ -1010,7 +951,6 @@ bool ChatHandler::HandleReloadSpellAreaCommand(const char*)
SendGlobalGMSysMessage("DB table `spell_area` (spell dependences from area/quest/auras state) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSpellRequiredCommand(const char*)
{
sLog.outString( "Re-Loading Spell Required Data... " );
@@ -1018,7 +958,6 @@ bool ChatHandler::HandleReloadSpellRequiredCommand(const char*)
SendGlobalGMSysMessage("DB table `spell_required` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSpellElixirCommand(const char*)
{
sLog.outString( "Re-Loading Spell Elixir types..." );
@@ -1026,7 +965,6 @@ bool ChatHandler::HandleReloadSpellElixirCommand(const char*)
SendGlobalGMSysMessage("DB table `spell_elixir` (spell elixir types) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSpellLearnSpellCommand(const char*)
{
sLog.outString( "Re-Loading Spell Learn Spells..." );
@@ -1034,7 +972,6 @@ bool ChatHandler::HandleReloadSpellLearnSpellCommand(const char*)
SendGlobalGMSysMessage("DB table `spell_learn_spell` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSpellLinkedSpellCommand(const char*)
{
sLog.outString( "Re-Loading Spell Linked Spells..." );
@@ -1042,7 +979,6 @@ bool ChatHandler::HandleReloadSpellLinkedSpellCommand(const char*)
SendGlobalGMSysMessage("DB table `spell_linked_spell` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSpellProcEventCommand(const char*)
{
sLog.outString( "Re-Loading Spell Proc Event conditions..." );
@@ -1050,7 +986,6 @@ bool ChatHandler::HandleReloadSpellProcEventCommand(const char*)
SendGlobalGMSysMessage("DB table `spell_proc_event` (spell proc trigger requirements) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSpellBonusesCommand(const char*)
{
sLog.outString( "Re-Loading Spell Bonus Data..." );
@@ -1058,7 +993,6 @@ bool ChatHandler::HandleReloadSpellBonusesCommand(const char*)
SendGlobalGMSysMessage("DB table `spell_bonus_data` (spell damage/healing coefficients) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSpellScriptTargetCommand(const char*)
{
sLog.outString( "Re-Loading SpellsScriptTarget..." );
@@ -1066,7 +1000,6 @@ bool ChatHandler::HandleReloadSpellScriptTargetCommand(const char*)
SendGlobalGMSysMessage("DB table `spell_script_target` (spell targets selection in case specific creature/GO requirements) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSpellTargetPositionCommand(const char*)
{
sLog.outString( "Re-Loading Spell target coordinates..." );
@@ -1074,7 +1007,6 @@ bool ChatHandler::HandleReloadSpellTargetPositionCommand(const char*)
SendGlobalGMSysMessage("DB table `spell_target_position` (destination coordinates for spell targets) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSpellThreatsCommand(const char*)
{
sLog.outString( "Re-Loading Aggro Spells Definitions...");
@@ -1082,7 +1014,6 @@ bool ChatHandler::HandleReloadSpellThreatsCommand(const char*)
SendGlobalGMSysMessage("DB table `spell_threat` (spell aggro definitions) reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadSpellPetAurasCommand(const char*)
{
sLog.outString( "Re-Loading Spell pet auras...");
@@ -1090,7 +1021,6 @@ bool ChatHandler::HandleReloadSpellPetAurasCommand(const char*)
SendGlobalGMSysMessage("DB table `spell_pet_auras` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadPageTextsCommand(const char*)
{
sLog.outString( "Re-Loading Page Texts..." );
@@ -1098,7 +1028,6 @@ bool ChatHandler::HandleReloadPageTextsCommand(const char*)
SendGlobalGMSysMessage("DB table `page_texts` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadItemEnchantementsCommand(const char*)
{
sLog.outString( "Re-Loading Item Random Enchantments Table..." );
@@ -1106,7 +1035,6 @@ bool ChatHandler::HandleReloadItemEnchantementsCommand(const char*)
SendGlobalGMSysMessage("DB table `item_enchantment_template` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadItemRequiredTragetCommand(const char*)
{
sLog.outString( "Re-Loading Item Required Targets Table..." );
@@ -1114,7 +1042,6 @@ bool ChatHandler::HandleReloadItemRequiredTragetCommand(const char*)
SendGlobalGMSysMessage("DB table `item_required_target` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadGameObjectScriptsCommand(const char* arg)
{
if(sWorld.IsScriptScheduled())
@@ -1123,18 +1050,13 @@ bool ChatHandler::HandleReloadGameObjectScriptsCommand(const char* arg)
SetSentErrorMessage(true);
return false;
}
-
if(*arg!='a')
sLog.outString( "Re-Loading Scripts from `gameobject_scripts`...");
-
objmgr.LoadGameObjectScripts();
-
if(*arg!='a')
SendGlobalGMSysMessage("DB table `gameobject_scripts` reloaded.");
-
return true;
}
-
bool ChatHandler::HandleReloadEventScriptsCommand(const char* arg)
{
if(sWorld.IsScriptScheduled())
@@ -1143,18 +1065,13 @@ bool ChatHandler::HandleReloadEventScriptsCommand(const char* arg)
SetSentErrorMessage(true);
return false;
}
-
if(*arg!='a')
sLog.outString( "Re-Loading Scripts from `event_scripts`...");
-
objmgr.LoadEventScripts();
-
if(*arg!='a')
SendGlobalGMSysMessage("DB table `event_scripts` reloaded.");
-
return true;
}
-
bool ChatHandler::HandleReloadWpScriptsCommand(const char* arg)
{
if(sWorld.IsScriptScheduled())
@@ -1163,27 +1080,20 @@ bool ChatHandler::HandleReloadWpScriptsCommand(const char* arg)
SetSentErrorMessage(true);
return false;
}
-
if(*arg!='a')
sLog.outString( "Re-Loading Scripts from `waypoint_scripts`...");
-
objmgr.LoadWaypointScripts();
-
if(*arg!='a')
SendGlobalGMSysMessage("DB table `waypoint_scripts` reloaded.");
-
return true;
}
-
bool ChatHandler::HandleReloadEventAITextsCommand(const char* arg)
{
-
sLog.outString( "Re-Loading Texts from `creature_ai_texts`...");
CreatureEAI_Mgr.LoadCreatureEventAI_Texts();
SendGlobalGMSysMessage("DB table `creature_ai_texts` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadEventAISummonsCommand(const char* arg)
{
sLog.outString( "Re-Loading Summons from `creature_ai_summons`...");
@@ -1191,7 +1101,6 @@ bool ChatHandler::HandleReloadEventAISummonsCommand(const char* arg)
SendGlobalGMSysMessage("DB table `creature_ai_summons` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadEventAIScriptsCommand(const char* arg)
{
sLog.outString( "Re-Loading Scripts from `creature_ai_scripts`...");
@@ -1199,7 +1108,6 @@ bool ChatHandler::HandleReloadEventAIScriptsCommand(const char* arg)
SendGlobalGMSysMessage("DB table `creature_ai_scripts` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadQuestEndScriptsCommand(const char* arg)
{
if(sWorld.IsScriptScheduled())
@@ -1208,18 +1116,13 @@ bool ChatHandler::HandleReloadQuestEndScriptsCommand(const char* arg)
SetSentErrorMessage(true);
return false;
}
-
if(*arg!='a')
sLog.outString( "Re-Loading Scripts from `quest_end_scripts`...");
-
objmgr.LoadQuestEndScripts();
-
if(*arg!='a')
SendGlobalGMSysMessage("DB table `quest_end_scripts` reloaded.");
-
return true;
}
-
bool ChatHandler::HandleReloadQuestStartScriptsCommand(const char* arg)
{
if(sWorld.IsScriptScheduled())
@@ -1228,18 +1131,13 @@ bool ChatHandler::HandleReloadQuestStartScriptsCommand(const char* arg)
SetSentErrorMessage(true);
return false;
}
-
if(*arg!='a')
sLog.outString( "Re-Loading Scripts from `quest_start_scripts`...");
-
objmgr.LoadQuestStartScripts();
-
if(*arg!='a')
SendGlobalGMSysMessage("DB table `quest_start_scripts` reloaded.");
-
return true;
}
-
bool ChatHandler::HandleReloadSpellScriptsCommand(const char* arg)
{
if(sWorld.IsScriptScheduled())
@@ -1248,18 +1146,13 @@ bool ChatHandler::HandleReloadSpellScriptsCommand(const char* arg)
SetSentErrorMessage(true);
return false;
}
-
if(*arg!='a')
sLog.outString( "Re-Loading Scripts from `spell_scripts`...");
-
objmgr.LoadSpellScripts();
-
if(*arg!='a')
SendGlobalGMSysMessage("DB table `spell_scripts` reloaded.");
-
return true;
}
-
bool ChatHandler::HandleReloadDbScriptStringCommand(const char* /*arg*/)
{
sLog.outString( "Re-Loading Script strings from `db_script_string`...");
@@ -1267,40 +1160,27 @@ bool ChatHandler::HandleReloadDbScriptStringCommand(const char* /*arg*/)
SendGlobalGMSysMessage("DB table `db_script_string` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadGameGraveyardZoneCommand(const char* /*arg*/)
{
sLog.outString( "Re-Loading Graveyard-zone links...");
-
objmgr.LoadGraveyardZones();
-
SendGlobalGMSysMessage("DB table `game_graveyard_zone` reloaded.");
-
return true;
}
-
bool ChatHandler::HandleReloadGameTeleCommand(const char* /*arg*/)
{
sLog.outString( "Re-Loading Game Tele coordinates...");
-
objmgr.LoadGameTele();
-
SendGlobalGMSysMessage("DB table `game_tele` reloaded.");
-
return true;
}
-
bool ChatHandler::HandleReloadSpellDisabledCommand(const char* /*arg*/)
{
sLog.outString( "Re-Loading spell disabled table...");
-
objmgr.LoadSpellDisabledEntrys();
-
SendGlobalGMSysMessage("DB table `spell_disabled` reloaded.");
-
return true;
}
-
bool ChatHandler::HandleReloadLocalesAchievementRewardCommand(const char*)
{
sLog.outString( "Re-Loading Locales Achievement Reward Data..." );
@@ -1308,7 +1188,6 @@ bool ChatHandler::HandleReloadLocalesAchievementRewardCommand(const char*)
SendGlobalGMSysMessage("DB table `locales_achievement_reward` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLocalesCreatureCommand(const char* /*arg*/)
{
sLog.outString( "Re-Loading Locales Creature ...");
@@ -1316,7 +1195,6 @@ bool ChatHandler::HandleReloadLocalesCreatureCommand(const char* /*arg*/)
SendGlobalGMSysMessage("DB table `locales_creature` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLocalesGameobjectCommand(const char* /*arg*/)
{
sLog.outString( "Re-Loading Locales Gameobject ... ");
@@ -1324,7 +1202,6 @@ bool ChatHandler::HandleReloadLocalesGameobjectCommand(const char* /*arg*/)
SendGlobalGMSysMessage("DB table `locales_gameobject` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLocalesItemCommand(const char* /*arg*/)
{
sLog.outString( "Re-Loading Locales Item ... ");
@@ -1332,7 +1209,6 @@ bool ChatHandler::HandleReloadLocalesItemCommand(const char* /*arg*/)
SendGlobalGMSysMessage("DB table `locales_item` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLocalesNpcTextCommand(const char* /*arg*/)
{
sLog.outString( "Re-Loading Locales NPC Text ... ");
@@ -1340,7 +1216,6 @@ bool ChatHandler::HandleReloadLocalesNpcTextCommand(const char* /*arg*/)
SendGlobalGMSysMessage("DB table `locales_npc_text` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLocalesPageTextCommand(const char* /*arg*/)
{
sLog.outString( "Re-Loading Locales Page Text ... ");
@@ -1348,7 +1223,6 @@ bool ChatHandler::HandleReloadLocalesPageTextCommand(const char* /*arg*/)
SendGlobalGMSysMessage("DB table `locales_page_text` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLocalesPointsOfInterestCommand(const char* /*arg*/)
{
sLog.outString( "Re-Loading Locales Points Of Interest ... ");
@@ -1356,7 +1230,6 @@ bool ChatHandler::HandleReloadLocalesPointsOfInterestCommand(const char* /*arg*/
SendGlobalGMSysMessage("DB table `locales_points_of_interest` reloaded.");
return true;
}
-
bool ChatHandler::HandleReloadLocalesQuestCommand(const char* /*arg*/)
{
sLog.outString( "Re-Loading Locales Quest ... ");
@@ -1364,15 +1237,12 @@ bool ChatHandler::HandleReloadLocalesQuestCommand(const char* /*arg*/)
SendGlobalGMSysMessage("DB table `locales_quest` reloaded.");
return true;
}
-
bool ChatHandler::HandleLoadScriptsCommand(const char* args)
{
if(!LoadScriptingModule(args)) return true;
-
sWorld.SendGMText(LANG_SCRIPTS_RELOADED);
return true;
}
-
bool ChatHandler::HandleReloadAuctionsCommand(const char* args)
{
///- Reload dynamic data tables from the database
@@ -1382,26 +1252,22 @@ bool ChatHandler::HandleReloadAuctionsCommand(const char* args)
SendGlobalGMSysMessage("Auctions reloaded.");
return true;
}
-
bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
{
if(!*args)
return false;
-
std::string targetAccountName;
uint32 targetAccountId = 0;
uint32 targetSecurity = 0;
uint32 gm = 0;
char* arg1 = strtok((char*)args, " ");
char* arg2 = strtok(NULL, " ");
-
if (getSelectedPlayer() && arg1 && !arg2)
{
targetAccountId = getSelectedPlayer()->GetSession()->GetAccountId();
accmgr.GetName(targetAccountId, targetAccountName);
Player* targetPlayer = getSelectedPlayer();
gm = atoi(arg1);
-
// Check for invalid specified GM level.
if (gm < SEC_PLAYER || gm > SEC_ADMINISTRATOR)
{
@@ -1409,7 +1275,6 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
// Check if targets GM level and specified GM level is not higher than current gm level
targetSecurity = targetPlayer->GetSession()->GetSecurity();
if (targetSecurity >= m_session->GetSecurity() || gm >= m_session->GetSecurity())
@@ -1418,13 +1283,11 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
// Decide which string to show
if (m_session->GetPlayer() != targetPlayer)
PSendSysMessage(LANG_YOU_CHANGE_SECURITY, targetAccountName.c_str(), gm);
else
PSendSysMessage(LANG_YOURS_SECURITY_CHANGED, m_session->GetPlayer()->GetName(), gm);
-
loginDatabase.PExecute("UPDATE account SET gmlevel = '%d' WHERE id = '%u'", gm, targetAccountId);
return true;
}
@@ -1433,7 +1296,6 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
// Check for second parameter
if (!arg2)
return false;
-
// Check for account
targetAccountName = arg1;
if (!AccountMgr::normalizeString(targetAccountName))
@@ -1442,7 +1304,6 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
// Check for invalid specified GM level.
gm = atoi(arg2);
if (gm < SEC_PLAYER || gm > SEC_ADMINISTRATOR)
@@ -1451,11 +1312,9 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
targetAccountId = accmgr.GetId(arg1);
/// m_session==NULL only for console
uint32 plSecurity = m_session ? m_session->GetSecurity() : SEC_CONSOLE;
-
/// can set security level only for target with less security and to less security that we have
/// This is also reject self apply in fact
targetSecurity = accmgr.GetSecurity(targetAccountId);
@@ -1465,27 +1324,22 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
PSendSysMessage(LANG_YOU_CHANGE_SECURITY, targetAccountName.c_str(), gm);
loginDatabase.PExecute("UPDATE account SET gmlevel = '%d' WHERE id = '%u'", gm, targetAccountId);
return true;
}
}
-
/// Set password for account
bool ChatHandler::HandleAccountSetPasswordCommand(const char* args)
{
if(!*args)
return false;
-
///- Get the command line arguments
char *szAccount = strtok ((char*)args," ");
char *szPassword1 = strtok (NULL," ");
char *szPassword2 = strtok (NULL," ");
-
if (!szAccount||!szPassword1 || !szPassword2)
return false;
-
std::string account_name = szAccount;
if (!AccountMgr::normalizeString(account_name))
{
@@ -1493,7 +1347,6 @@ bool ChatHandler::HandleAccountSetPasswordCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
uint32 targetAccountId = accmgr.GetId(account_name);
if (!targetAccountId)
{
@@ -1501,21 +1354,17 @@ bool ChatHandler::HandleAccountSetPasswordCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
/// can set password only for target with less security
/// This is also reject self apply in fact
if (HasLowerSecurityAccount (NULL,targetAccountId,true))
return false;
-
if (strcmp(szPassword1,szPassword2))
{
SendSysMessage (LANG_NEW_PASSWORDS_NOT_MATCH);
SetSentErrorMessage (true);
return false;
}
-
AccountOpResult result = accmgr.ChangePassword(targetAccountId, szPassword1);
-
switch (result)
{
case AOR_OK:
@@ -1534,10 +1383,8 @@ bool ChatHandler::HandleAccountSetPasswordCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
return true;
}
-
bool ChatHandler::HandleMaxSkillCommand(const char* /*args*/)
{
Player* SelectedPlayer = getSelectedPlayer();
@@ -1547,26 +1394,20 @@ bool ChatHandler::HandleMaxSkillCommand(const char* /*args*/)
SetSentErrorMessage(true);
return false;
}
-
// each skills that have max skill value dependent from level seted to current level max skill value
SelectedPlayer->UpdateSkillsToMaxSkillsForLevel();
return true;
}
-
bool ChatHandler::HandleSetSkillCommand(const char* args)
{
// number or [name] Shift-click form |color|Hskill:skill_id|h[name]|h|r
char* skill_p = extractKeyFromLink((char*)args,"Hskill");
if (!skill_p)
return false;
-
char *level_p = strtok (NULL, " ");
-
if (!level_p)
return false;
-
char *max_p = strtok (NULL, " ");
-
int32 skill = atoi(skill_p);
if (skill <= 0)
{
@@ -1574,9 +1415,7 @@ bool ChatHandler::HandleSetSkillCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
int32 level = atol (level_p);
-
Player * target = getSelectedPlayer();
if (!target)
{
@@ -1584,7 +1423,6 @@ bool ChatHandler::HandleSetSkillCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
SkillLineEntry const* sl = sSkillLineStore.LookupEntry(skill);
if (!sl)
{
@@ -1592,40 +1430,30 @@ bool ChatHandler::HandleSetSkillCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
std::string tNameLink = GetNameLink(target);
-
if (!target->GetSkillValue(skill))
{
PSendSysMessage(LANG_SET_SKILL_ERROR, tNameLink.c_str(), skill, sl->name[0]);
SetSentErrorMessage(true);
return false;
}
-
int32 max = max_p ? atol (max_p) : target->GetPureMaxSkillValue(skill);
-
if (level <= 0 || level > max || max <= 0)
return false;
-
target->SetSkill(skill, level, max);
PSendSysMessage(LANG_SET_SKILL, skill, sl->name[0], tNameLink.c_str(), level, max);
-
return true;
}
-
bool ChatHandler::HandleUnLearnCommand(const char* args)
{
if (!*args)
return false;
-
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r
uint32 spell_id = extractSpellIdFromLink((char*)args);
if (!spell_id)
return false;
-
char const* allStr = strtok(NULL," ");
bool allRanks = allStr ? (strncmp(allStr, "all", strlen(allStr)) == 0) : false;
-
Player* target = getSelectedPlayer();
if (!target)
{
@@ -1633,21 +1461,16 @@ bool ChatHandler::HandleUnLearnCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
if (allRanks)
spell_id = spellmgr.GetFirstSpellInChain (spell_id);
-
if (target->HasSpell(spell_id))
target->removeSpell(spell_id,false,!allRanks);
else
SendSysMessage(LANG_FORGET_SPELL);
-
if (GetTalentSpellCost(spell_id))
target->SendTalentsInfoData(false);
-
return true;
}
-
bool ChatHandler::HandleCooldownCommand(const char* args)
{
Player* target = getSelectedPlayer();
@@ -1657,9 +1480,7 @@ bool ChatHandler::HandleCooldownCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
std::string tNameLink = GetNameLink(target);
-
if (!*args)
{
target->RemoveAllSpellCooldown();
@@ -1671,20 +1492,17 @@ bool ChatHandler::HandleCooldownCommand(const char* args)
uint32 spell_id = extractSpellIdFromLink((char*)args);
if (!spell_id)
return false;
-
if (!sSpellStore.LookupEntry(spell_id))
{
PSendSysMessage(LANG_UNKNOWN_SPELL, target==m_session->GetPlayer() ? GetMangosString(LANG_YOU) : tNameLink.c_str());
SetSentErrorMessage(true);
return false;
}
-
target->RemoveSpellCooldown(spell_id,true);
PSendSysMessage(LANG_REMOVE_COOLDOWN, spell_id, target==m_session->GetPlayer() ? GetMangosString(LANG_YOU) : tNameLink.c_str());
}
return true;
}
-
bool ChatHandler::HandleLearnAllCommand(const char* /*args*/)
{
static const char *allSpellList[] =
@@ -2287,30 +2105,23 @@ bool ChatHandler::HandleLearnAllCommand(const char* /*args*/)
"202",
"0"
};
-
int loop = 0;
while(strcmp(allSpellList[loop], "0"))
{
uint32 spell = atol((char*)allSpellList[loop++]);
-
if (m_session->GetPlayer()->HasSpell(spell))
continue;
-
SpellEntry const* spellInfo = sSpellStore.LookupEntry(spell);
if(!spellInfo || !SpellMgr::IsSpellValid(spellInfo,m_session->GetPlayer()))
{
PSendSysMessage(LANG_COMMAND_SPELL_BROKEN,spell);
continue;
}
-
m_session->GetPlayer()->learnSpell(spell,false);
}
-
SendSysMessage(LANG_COMMAND_LEARN_MANY_SPELLS);
-
return true;
}
-
bool ChatHandler::HandleLearnAllGMCommand(const char* /*args*/)
{
static const char *gmSpellList[] =
@@ -2325,97 +2136,77 @@ bool ChatHandler::HandleLearnAllGMCommand(const char* /*args*/)
"31924", // Kill
"29878", // Kill My Self
"26644", // More Kill
-
"28550", //Invisible 24
"23452", //Invisible + Target
"0"
};
-
uint16 gmSpellIter = 0;
while( strcmp(gmSpellList[gmSpellIter], "0") )
{
uint32 spell = atol((char*)gmSpellList[gmSpellIter++]);
-
SpellEntry const* spellInfo = sSpellStore.LookupEntry(spell);
if(!spellInfo || !SpellMgr::IsSpellValid(spellInfo,m_session->GetPlayer()))
{
PSendSysMessage(LANG_COMMAND_SPELL_BROKEN,spell);
continue;
}
-
m_session->GetPlayer()->learnSpell(spell,false);
}
-
SendSysMessage(LANG_LEARNING_GM_SKILLS);
return true;
}
-
bool ChatHandler::HandleLearnAllMyClassCommand(const char* /*args*/)
{
HandleLearnAllMySpellsCommand("");
HandleLearnAllMyTalentsCommand("");
return true;
}
-
bool ChatHandler::HandleLearnAllMySpellsCommand(const char* /*args*/)
{
ChrClassesEntry const* clsEntry = sChrClassesStore.LookupEntry(m_session->GetPlayer()->getClass());
if(!clsEntry)
return true;
uint32 family = clsEntry->spellfamily;
-
for (uint32 i = 0; i < sSpellStore.GetNumRows(); ++i)
{
SpellEntry const *spellInfo = sSpellStore.LookupEntry(i);
if(!spellInfo)
continue;
-
// skip server-side/triggered spells
if(spellInfo->spellLevel==0)
continue;
-
// skip wrong class/race skills
if(!m_session->GetPlayer()->IsSpellFitByClassAndRace(spellInfo->Id))
continue;
-
// skip other spell families
if( spellInfo->SpellFamilyName != family)
continue;
-
// skip spells with first rank learned as talent (and all talents then also)
uint32 first_rank = spellmgr.GetFirstSpellInChain(spellInfo->Id);
if(GetTalentSpellCost(first_rank) > 0 )
continue;
-
// skip broken spells
if(!SpellMgr::IsSpellValid(spellInfo,m_session->GetPlayer(),false))
continue;
-
m_session->GetPlayer()->learnSpell(i,false);
}
-
SendSysMessage(LANG_COMMAND_LEARN_CLASS_SPELLS);
return true;
}
-
bool ChatHandler::HandleLearnAllMyTalentsCommand(const char* /*args*/)
{
Player* player = m_session->GetPlayer();
uint32 classMask = player->getClassMask();
-
for (uint32 i = 0; i < sTalentStore.GetNumRows(); ++i)
{
TalentEntry const *talentInfo = sTalentStore.LookupEntry(i);
if(!talentInfo)
continue;
-
TalentTabEntry const *talentTabInfo = sTalentTabStore.LookupEntry( talentInfo->TalentTab );
if(!talentTabInfo)
continue;
-
if( (classMask & talentTabInfo->ClassMask) == 0 )
continue;
-
// search highest talent rank
uint32 spellId = 0;
for(int8 rank = MAX_TALENT_RANK-1; rank >= 0; --rank)
@@ -2426,26 +2217,20 @@ bool ChatHandler::HandleLearnAllMyTalentsCommand(const char* /*args*/)
break;
}
}
-
if(!spellId) // ??? none spells in talent
continue;
-
SpellEntry const* spellInfo = sSpellStore.LookupEntry(spellId);
if(!spellInfo || !SpellMgr::IsSpellValid(spellInfo,m_session->GetPlayer(),false))
continue;
-
// learn highest rank of talent and learn all non-talent spell ranks (recursive by tree)
player->learnSpellHighRank(spellId);
}
-
SendSysMessage(LANG_COMMAND_LEARN_CLASS_TALENTS);
return true;
}
-
bool ChatHandler::HandleLearnAllMyPetTalentsCommand(const char* /*args*/)
{
Player* player = m_session->GetPlayer();
-
Pet* pet = player->GetPet();
if(!pet)
{
@@ -2453,7 +2238,6 @@ bool ChatHandler::HandleLearnAllMyPetTalentsCommand(const char* /*args*/)
SetSentErrorMessage(true);
return false;
}
-
CreatureInfo const *ci = pet->GetCreatureInfo();
if(!ci)
{
@@ -2461,7 +2245,6 @@ bool ChatHandler::HandleLearnAllMyPetTalentsCommand(const char* /*args*/)
SetSentErrorMessage(true);
return false;
}
-
CreatureFamilyEntry const *pet_family = sCreatureFamilyStore.LookupEntry(ci->family);
if(!pet_family)
{
@@ -2469,31 +2252,25 @@ bool ChatHandler::HandleLearnAllMyPetTalentsCommand(const char* /*args*/)
SetSentErrorMessage(true);
return false;
}
-
if(pet_family->petTalentType < 0) // not hunter pet
{
SendSysMessage(LANG_WRONG_PET_TYPE);
SetSentErrorMessage(true);
return false;
}
-
for (uint32 i = 0; i < sTalentStore.GetNumRows(); ++i)
{
TalentEntry const *talentInfo = sTalentStore.LookupEntry(i);
if(!talentInfo)
continue;
-
TalentTabEntry const *talentTabInfo = sTalentTabStore.LookupEntry( talentInfo->TalentTab );
if(!talentTabInfo)
continue;
-
// prevent learn talent for different family (cheating)
if(((1 << pet_family->petTalentType) & talentTabInfo->petTalentMask)==0)
continue;
-
// search highest talent rank
uint32 spellid = 0;
-
for(int8 rank = MAX_TALENT_RANK-1; rank >= 0; --rank)
{
if(talentInfo->RankID[rank]!=0)
@@ -2502,64 +2279,50 @@ bool ChatHandler::HandleLearnAllMyPetTalentsCommand(const char* /*args*/)
break;
}
}
-
if(!spellid) // ??? none spells in talent
continue;
-
SpellEntry const* spellInfo = sSpellStore.LookupEntry(spellid);
if(!spellInfo || !SpellMgr::IsSpellValid(spellInfo,m_session->GetPlayer(),false))
continue;
-
// learn highest rank of talent and learn all non-talent spell ranks (recursive by tree)
pet->learnSpellHighRank(spellid);
}
-
SendSysMessage(LANG_COMMAND_LEARN_PET_TALENTS);
return true;
}
-
bool ChatHandler::HandleLearnAllLangCommand(const char* /*args*/)
{
// skipping UNIVERSAL language (0)
for(uint8 i = 1; i < LANGUAGES_COUNT; ++i)
m_session->GetPlayer()->learnSpell(lang_description[i].spell_id,false);
-
SendSysMessage(LANG_COMMAND_LEARN_ALL_LANG);
return true;
}
-
bool ChatHandler::HandleLearnAllDefaultCommand(const char* args)
{
Player* target;
if(!extractPlayerTarget((char*)args,&target))
return false;
-
target->learnDefaultSpells();
target->learnQuestRewardedSpells();
-
PSendSysMessage(LANG_COMMAND_LEARN_ALL_DEFAULT_AND_QUEST,GetNameLink(target).c_str());
return true;
}
-
bool ChatHandler::HandleLearnCommand(const char* args)
{
Player* targetPlayer = getSelectedPlayer();
-
if(!targetPlayer)
{
SendSysMessage(LANG_PLAYER_NOT_FOUND);
SetSentErrorMessage(true);
return false;
}
-
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spell = extractSpellIdFromLink((char*)args);
if(!spell || !sSpellStore.LookupEntry(spell))
return false;
-
char const* allStr = strtok(NULL," ");
bool allRanks = allStr ? (strncmp(allStr, "all", strlen(allStr)) == 0) : false;
-
SpellEntry const* spellInfo = sSpellStore.LookupEntry(spell);
if(!spellInfo || !SpellMgr::IsSpellValid(spellInfo,m_session->GetPlayer()))
{
@@ -2567,7 +2330,6 @@ bool ChatHandler::HandleLearnCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
if (!allRanks && targetPlayer->HasSpell(spell))
{
if(targetPlayer == m_session->GetPlayer())
@@ -2577,30 +2339,23 @@ bool ChatHandler::HandleLearnCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
if(allRanks)
targetPlayer->learnSpellHighRank(spell);
else
targetPlayer->learnSpell(spell,false);
-
uint32 first_spell = spellmgr.GetFirstSpellInChain(spell);
if(GetTalentSpellCost(first_spell))
targetPlayer->SendTalentsInfoData(false);
-
return true;
}
-
bool ChatHandler::HandleAddItemCommand(const char* args)
{
if (!*args)
return false;
-
uint32 itemId = 0;
-
if(args[0]=='[') // [name] manual form
{
char* citemName = strtok((char*)args, "]");
-
if(citemName && citemName[0])
{
std::string itemName = citemName+1;
@@ -2625,24 +2380,17 @@ bool ChatHandler::HandleAddItemCommand(const char* args)
return false;
itemId = atol(cId);
}
-
char* ccount = strtok(NULL, " ");
-
int32 count = 1;
-
if (ccount)
count = strtol(ccount, NULL, 10);
-
if (count == 0)
count = 1;
-
Player* pl = m_session->GetPlayer();
Player* plTarget = getSelectedPlayer();
if(!plTarget)
plTarget = pl;
-
sLog.outDetail(GetTrinityString(LANG_ADDITEM), itemId, count);
-
ItemPrototype const *pProto = objmgr.GetItemPrototype(itemId);
if(!pProto)
{
@@ -2650,7 +2398,6 @@ bool ChatHandler::HandleAddItemCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
//Subtract
if (count < 0)
{
@@ -2658,55 +2405,43 @@ bool ChatHandler::HandleAddItemCommand(const char* args)
PSendSysMessage(LANG_REMOVEITEM, itemId, -count, GetNameLink(plTarget).c_str());
return true;
}
-
//Adding items
uint32 noSpaceForCount = 0;
-
// check space and find places
ItemPosCountVec dest;
uint8 msg = plTarget->CanStoreNewItem( NULL_BAG, NULL_SLOT, dest, itemId, count, &noSpaceForCount );
if( msg != EQUIP_ERR_OK ) // convert to possible store amount
count -= noSpaceForCount;
-
if( count == 0 || dest.empty()) // can't add any
{
PSendSysMessage(LANG_ITEM_CANNOT_CREATE, itemId, noSpaceForCount );
SetSentErrorMessage(true);
return false;
}
-
Item* item = plTarget->StoreNewItem( dest, itemId, true, Item::GenerateItemRandomPropertyId(itemId));
-
// remove binding (let GM give it to another player later)
if(pl==plTarget)
for(ItemPosCountVec::const_iterator itr = dest.begin(); itr != dest.end(); ++itr)
if(Item* item1 = pl->GetItemByPos(itr->pos))
item1->SetBinding( false );
-
if(count > 0 && item)
{
pl->SendNewItem(item,count,false,true);
if(pl!=plTarget)
plTarget->SendNewItem(item,count,true,false);
}
-
if(noSpaceForCount > 0)
PSendSysMessage(LANG_ITEM_CANNOT_CREATE, itemId, noSpaceForCount);
-
return true;
}
-
bool ChatHandler::HandleAddItemSetCommand(const char* args)
{
if (!*args)
return false;
-
char* cId = extractKeyFromLink((char*)args,"Hitemset"); // number or [name] Shift-click form |color|Hitemset:itemset_id|h[name]|h|r
if (!cId)
return false;
-
uint32 itemsetId = atol(cId);
-
// prevent generation all items with itemset field value '0'
if (itemsetId == 0)
{
@@ -2714,21 +2449,17 @@ bool ChatHandler::HandleAddItemSetCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
Player* pl = m_session->GetPlayer();
Player* plTarget = getSelectedPlayer();
if(!plTarget)
plTarget = pl;
-
sLog.outDetail(GetTrinityString(LANG_ADDITEMSET), itemsetId);
-
bool found = false;
for (uint32 id = 0; id < sItemStorage.MaxEntry; id++)
{
ItemPrototype const *pProto = sItemStorage.LookupEntry<ItemPrototype>(id);
if (!pProto)
continue;
-
if (pProto->ItemSet == itemsetId)
{
found = true;
@@ -2737,11 +2468,9 @@ bool ChatHandler::HandleAddItemSetCommand(const char* args)
if (msg == EQUIP_ERR_OK)
{
Item* item = plTarget->StoreNewItem( dest, pProto->ItemId, true);
-
// remove binding (let GM give it to another player later)
if (pl==plTarget)
item->SetBinding( false );
-
pl->SendNewItem(item,1,false,true);
if (pl!=plTarget)
plTarget->SendNewItem(item,1,true,false);
@@ -2753,27 +2482,21 @@ bool ChatHandler::HandleAddItemSetCommand(const char* args)
}
}
}
-
if (!found)
{
PSendSysMessage(LANG_NO_ITEMS_FROM_ITEMSET_FOUND,itemsetId);
-
SetSentErrorMessage(true);
return false;
}
-
return true;
}
-
bool ChatHandler::HandleListItemCommand(const char* args)
{
if(!*args)
return false;
-
char* cId = extractKeyFromLink((char*)args,"Hitem");
if(!cId)
return false;
-
uint32 item_id = atol(cId);
if(!item_id)
{
@@ -2781,7 +2504,6 @@ bool ChatHandler::HandleListItemCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
ItemPrototype const* itemProto = objmgr.GetItemPrototype(item_id);
if(!itemProto)
{
@@ -2789,15 +2511,11 @@ bool ChatHandler::HandleListItemCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
char* c_count = strtok(NULL, " ");
int count = c_count ? atol(c_count) : 10;
-
if(count < 0)
return false;
-
QueryResult *result;
-
// inventory case
uint32 inv_count = 0;
result=CharacterDatabase.PQuery("SELECT COUNT(item_template) FROM character_inventory WHERE item_template='%u'",item_id);
@@ -2806,14 +2524,12 @@ bool ChatHandler::HandleListItemCommand(const char* args)
inv_count = (*result)[0].GetUInt32();
delete result;
}
-
result=CharacterDatabase.PQuery(
// 0 1 2 3 4 5
"SELECT ci.item, cibag.slot AS bag, ci.slot, ci.guid, characters.account,characters.name "
"FROM character_inventory AS ci LEFT JOIN character_inventory AS cibag ON (cibag.item=ci.bag),characters "
"WHERE ci.item_template='%u' AND ci.guid = characters.guid LIMIT %u ",
item_id,uint32(count));
-
if(result)
{
do
@@ -2825,7 +2541,6 @@ bool ChatHandler::HandleListItemCommand(const char* args)
uint32 owner_guid = fields[3].GetUInt32();
uint32 owner_acc = fields[4].GetUInt32();
std::string owner_name = fields[5].GetCppString();
-
char const* item_pos = 0;
if(Player::IsEquipmentPos(item_bag,item_slot))
item_pos = "[equipped]";
@@ -2835,21 +2550,16 @@ bool ChatHandler::HandleListItemCommand(const char* args)
item_pos = "[in bank]";
else
item_pos = "";
-
PSendSysMessage(LANG_ITEMLIST_SLOT,
item_guid,owner_name.c_str(),owner_guid,owner_acc,item_pos);
} while (result->NextRow());
-
int64 res_count = result->GetRowCount();
-
delete result;
-
if(count > res_count)
count-=res_count;
else if(count)
count = 0;
}
-
// mail case
uint32 mail_count = 0;
result=CharacterDatabase.PQuery("SELECT COUNT(item_template) FROM mail_items WHERE item_template='%u'", item_id);
@@ -2858,7 +2568,6 @@ bool ChatHandler::HandleListItemCommand(const char* args)
mail_count = (*result)[0].GetUInt32();
delete result;
}
-
if(count > 0)
{
result=CharacterDatabase.PQuery(
@@ -2870,7 +2579,6 @@ bool ChatHandler::HandleListItemCommand(const char* args)
}
else
result = NULL;
-
if(result)
{
do
@@ -2883,23 +2591,17 @@ bool ChatHandler::HandleListItemCommand(const char* args)
std::string item_s_name = fields[4].GetCppString();
uint32 item_r_acc = fields[5].GetUInt32();
std::string item_r_name = fields[6].GetCppString();
-
char const* item_pos = "[in mail]";
-
PSendSysMessage(LANG_ITEMLIST_MAIL,
item_guid,item_s_name.c_str(),item_s,item_s_acc,item_r_name.c_str(),item_r,item_r_acc,item_pos);
} while (result->NextRow());
-
int64 res_count = result->GetRowCount();
-
delete result;
-
if(count > res_count)
count-=res_count;
else if(count)
count = 0;
}
-
// auction case
uint32 auc_count = 0;
result=CharacterDatabase.PQuery("SELECT COUNT(item_template) FROM auctionhouse WHERE item_template='%u'",item_id);
@@ -2908,7 +2610,6 @@ bool ChatHandler::HandleListItemCommand(const char* args)
auc_count = (*result)[0].GetUInt32();
delete result;
}
-
if(count > 0)
{
result=CharacterDatabase.PQuery(
@@ -2919,7 +2620,6 @@ bool ChatHandler::HandleListItemCommand(const char* args)
}
else
result = NULL;
-
if(result)
{
do
@@ -2929,15 +2629,11 @@ bool ChatHandler::HandleListItemCommand(const char* args)
uint32 owner = fields[1].GetUInt32();
uint32 owner_acc = fields[2].GetUInt32();
std::string owner_name = fields[3].GetCppString();
-
char const* item_pos = "[in auction]";
-
PSendSysMessage(LANG_ITEMLIST_AUCTION, item_guid, owner_name.c_str(), owner, owner_acc,item_pos);
} while (result->NextRow());
-
delete result;
}
-
// guild bank case
uint32 guild_count = 0;
result=CharacterDatabase.PQuery("SELECT COUNT(item_entry) FROM guild_bank_item WHERE item_entry='%u'",item_id);
@@ -2946,13 +2642,11 @@ bool ChatHandler::HandleListItemCommand(const char* args)
guild_count = (*result)[0].GetUInt32();
delete result;
}
-
result=CharacterDatabase.PQuery(
// 0 1 2
"SELECT gi.item_guid, gi.guildid, guild.name "
"FROM guild_bank_item AS gi, guild WHERE gi.item_entry='%u' AND gi.guildid = guild.guildid LIMIT %u ",
item_id,uint32(count));
-
if(result)
{
do
@@ -2961,44 +2655,33 @@ bool ChatHandler::HandleListItemCommand(const char* args)
uint32 item_guid = fields[0].GetUInt32();
uint32 guild_guid = fields[1].GetUInt32();
std::string guild_name = fields[2].GetCppString();
-
char const* item_pos = "[in guild bank]";
-
PSendSysMessage(LANG_ITEMLIST_GUILD,item_guid,guild_name.c_str(),guild_guid,item_pos);
} while (result->NextRow());
-
int64 res_count = result->GetRowCount();
-
delete result;
-
if(count > res_count)
count-=res_count;
else if(count)
count = 0;
}
-
if(inv_count+mail_count+auc_count+guild_count == 0)
{
SendSysMessage(LANG_COMMAND_NOITEMFOUND);
SetSentErrorMessage(true);
return false;
}
-
PSendSysMessage(LANG_COMMAND_LISTITEMMESSAGE,item_id,inv_count+mail_count+auc_count+guild_count,inv_count,mail_count,auc_count,guild_count);
-
return true;
}
-
bool ChatHandler::HandleListObjectCommand(const char* args)
{
if(!*args)
return false;
-
// number or [name] Shift-click form |color|Hgameobject_entry:go_id|h[name]|h|r
char* cId = extractKeyFromLink((char*)args,"Hgameobject_entry");
if(!cId)
return false;
-
uint32 go_id = atol(cId);
if(!go_id)
{
@@ -3006,7 +2689,6 @@ bool ChatHandler::HandleListObjectCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
GameObjectInfo const * gInfo = objmgr.GetGameObjectInfo(go_id);
if(!gInfo)
{
@@ -3014,15 +2696,11 @@ bool ChatHandler::HandleListObjectCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
char* c_count = strtok(NULL, " ");
int count = c_count ? atol(c_count) : 10;
-
if(count < 0)
return false;
-
QueryResult *result;
-
uint32 obj_count = 0;
result=WorldDatabase.PQuery("SELECT COUNT(guid) FROM gameobject WHERE id='%u'",go_id);
if(result)
@@ -3030,7 +2708,6 @@ bool ChatHandler::HandleListObjectCommand(const char* args)
obj_count = (*result)[0].GetUInt32();
delete result;
}
-
if(m_session)
{
Player* pl = m_session->GetPlayer();
@@ -3040,7 +2717,6 @@ bool ChatHandler::HandleListObjectCommand(const char* args)
else
result = WorldDatabase.PQuery("SELECT guid, position_x, position_y, position_z, map FROM gameobject WHERE id = '%u' LIMIT %u",
go_id,uint32(count));
-
if (result)
{
do
@@ -3051,47 +2727,37 @@ bool ChatHandler::HandleListObjectCommand(const char* args)
float y = fields[2].GetFloat();
float z = fields[3].GetFloat();
int mapid = fields[4].GetUInt16();
-
if (m_session)
PSendSysMessage(LANG_GO_LIST_CHAT, guid, guid, gInfo->name, x, y, z, mapid);
else
PSendSysMessage(LANG_GO_LIST_CONSOLE, guid, gInfo->name, x, y, z, mapid);
} while (result->NextRow());
-
delete result;
}
-
PSendSysMessage(LANG_COMMAND_LISTOBJMESSAGE,go_id,obj_count);
return true;
}
-
bool ChatHandler::HandleGameObjectStateCommand(const char* args)
{
// number or [name] Shift-click form |color|Hgameobject:go_id|h[name]|h|r
char* cId = extractKeyFromLink((char*)args, "Hgameobject");
if(!cId)
return false;
-
uint32 lowguid = atoi(cId);
if(!lowguid)
return false;
-
GameObject* gobj = NULL;
-
if(GameObjectData const* goData = objmgr.GetGOData(lowguid))
gobj = GetObjectGlobalyWithGuidOrNearWithDbGuid(lowguid, goData->id);
-
if(!gobj)
{
PSendSysMessage(LANG_COMMAND_OBJNOTFOUND, lowguid);
SetSentErrorMessage(true);
return false;
}
-
char* ctype = strtok(NULL, " ");
if(!ctype)
return false;
-
int32 type = atoi(ctype);
if(type < 0)
{
@@ -3105,13 +2771,10 @@ bool ChatHandler::HandleGameObjectStateCommand(const char* args)
}
return true;
}
-
char* cstate = strtok(NULL, " ");
if(!cstate)
return false;
-
int32 state = atoi(cstate);
-
if(type < 4)
gobj->SetByteValue(GAMEOBJECT_BYTES_1, type, state);
else if(type == 4)
@@ -3122,20 +2785,16 @@ bool ChatHandler::HandleGameObjectStateCommand(const char* args)
gobj->SendMessageToSet(&data, true);
}
PSendSysMessage("Set gobject type %d state %d", type, state);
-
return true;
}
-
bool ChatHandler::HandleListCreatureCommand(const char* args)
{
if(!*args)
return false;
-
// number or [name] Shift-click form |color|Hcreature_entry:creature_id|h[name]|h|r
char* cId = extractKeyFromLink((char*)args,"Hcreature_entry");
if(!cId)
return false;
-
uint32 cr_id = atol(cId);
if(!cr_id)
{
@@ -3143,7 +2802,6 @@ bool ChatHandler::HandleListCreatureCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
CreatureInfo const* cInfo = objmgr.GetCreatureTemplate(cr_id);
if(!cInfo)
{
@@ -3151,15 +2809,11 @@ bool ChatHandler::HandleListCreatureCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
char* c_count = strtok(NULL, " ");
int count = c_count ? atol(c_count) : 10;
-
if(count < 0)
return false;
-
QueryResult *result;
-
uint32 cr_count = 0;
result=WorldDatabase.PQuery("SELECT COUNT(guid) FROM creature WHERE id='%u'",cr_id);
if(result)
@@ -3167,7 +2821,6 @@ bool ChatHandler::HandleListCreatureCommand(const char* args)
cr_count = (*result)[0].GetUInt32();
delete result;
}
-
if(m_session)
{
Player* pl = m_session->GetPlayer();
@@ -3177,7 +2830,6 @@ bool ChatHandler::HandleListCreatureCommand(const char* args)
else
result = WorldDatabase.PQuery("SELECT guid, position_x, position_y, position_z, map FROM creature WHERE id = '%u' LIMIT %u",
cr_id,uint32(count));
-
if (result)
{
do
@@ -3188,43 +2840,33 @@ bool ChatHandler::HandleListCreatureCommand(const char* args)
float y = fields[2].GetFloat();
float z = fields[3].GetFloat();
int mapid = fields[4].GetUInt16();
-
if (m_session)
PSendSysMessage(LANG_CREATURE_LIST_CHAT, guid, guid, cInfo->Name, x, y, z, mapid);
else
PSendSysMessage(LANG_CREATURE_LIST_CONSOLE, guid, cInfo->Name, x, y, z, mapid);
} while (result->NextRow());
-
delete result;
}
-
PSendSysMessage(LANG_COMMAND_LISTCREATUREMESSAGE,cr_id,cr_count);
return true;
}
-
bool ChatHandler::HandleLookupItemCommand(const char* args)
{
if(!*args)
return false;
-
std::string namepart = args;
std::wstring wnamepart;
-
// converting string that we try to find to lower case
if(!Utf8toWStr(namepart,wnamepart))
return false;
-
wstrToLower(wnamepart);
-
bool found = false;
-
// Search in `item_template`
for (uint32 id = 0; id < sItemStorage.MaxEntry; id++)
{
ItemPrototype const *pProto = sItemStorage.LookupEntry<ItemPrototype >(id);
if(!pProto)
continue;
-
int loc_idx = GetSessionDbLocaleIndex();
if ( loc_idx >= 0 )
{
@@ -3234,61 +2876,47 @@ bool ChatHandler::HandleLookupItemCommand(const char* args)
if (il->Name.size() > loc_idx && !il->Name[loc_idx].empty())
{
std::string name = il->Name[loc_idx];
-
if (Utf8FitTo(name, wnamepart))
{
if (m_session)
PSendSysMessage(LANG_ITEM_LIST_CHAT, id, id, name.c_str());
else
PSendSysMessage(LANG_ITEM_LIST_CONSOLE, id, name.c_str());
-
if(!found)
found = true;
-
continue;
}
}
}
}
-
std::string name = pProto->Name1;
if(name.empty())
continue;
-
if (Utf8FitTo(name, wnamepart))
{
if (m_session)
PSendSysMessage(LANG_ITEM_LIST_CHAT, id, id, name.c_str());
else
PSendSysMessage(LANG_ITEM_LIST_CONSOLE, id, name.c_str());
-
if(!found)
found = true;
}
}
-
if (!found)
SendSysMessage(LANG_COMMAND_NOITEMFOUND);
-
return true;
}
-
bool ChatHandler::HandleLookupItemSetCommand(const char* args)
{
if(!*args)
return false;
-
std::string namepart = args;
std::wstring wnamepart;
-
if(!Utf8toWStr(namepart,wnamepart))
return false;
-
// converting string that we try to find to lower case
wstrToLower( wnamepart );
-
bool found = false;
-
// Search in ItemSet.dbc
for (uint32 id = 0; id < sItemSetStore.GetNumRows(); id++)
{
@@ -3299,7 +2927,6 @@ bool ChatHandler::HandleLookupItemSetCommand(const char* args)
std::string name = set->name[loc];
if(name.empty())
continue;
-
if (!Utf8FitTo(name, wnamepart))
{
loc = 0;
@@ -3307,16 +2934,13 @@ bool ChatHandler::HandleLookupItemSetCommand(const char* args)
{
if(loc==GetSessionDbcLocale())
continue;
-
name = set->name[loc];
if(name.empty())
continue;
-
if (Utf8FitTo(name, wnamepart))
break;
}
}
-
if(loc < MAX_LOCALE)
{
// send item set in "id - [namedlink locale]" format
@@ -3324,7 +2948,6 @@ bool ChatHandler::HandleLookupItemSetCommand(const char* args)
PSendSysMessage(LANG_ITEMSET_LIST_CHAT,id,id,name.c_str(),localeNames[loc]);
else
PSendSysMessage(LANG_ITEMSET_LIST_CONSOLE,id,name.c_str(),localeNames[loc]);
-
if(!found)
found = true;
}
@@ -3334,26 +2957,19 @@ bool ChatHandler::HandleLookupItemSetCommand(const char* args)
SendSysMessage(LANG_COMMAND_NOITEMSETFOUND);
return true;
}
-
bool ChatHandler::HandleLookupSkillCommand(const char* args)
{
if(!*args)
return false;
-
// can be NULL in console call
Player* target = getSelectedPlayer();
-
std::string namepart = args;
std::wstring wnamepart;
-
if(!Utf8toWStr(namepart,wnamepart))
return false;
-
// converting string that we try to find to lower case
wstrToLower( wnamepart );
-
bool found = false;
-
// Search in SkillLine.dbc
for (uint32 id = 0; id < sSkillLineStore.GetNumRows(); id++)
{
@@ -3364,7 +2980,6 @@ bool ChatHandler::HandleLookupSkillCommand(const char* args)
std::string name = skillInfo->name[loc];
if(name.empty())
continue;
-
if (!Utf8FitTo(name, wnamepart))
{
loc = 0;
@@ -3372,16 +2987,13 @@ bool ChatHandler::HandleLookupSkillCommand(const char* args)
{
if(loc==GetSessionDbcLocale())
continue;
-
name = skillInfo->name[loc];
if(name.empty())
continue;
-
if (Utf8FitTo(name, wnamepart))
break;
}
}
-
if(loc < MAX_LOCALE)
{
char valStr[50] = "";
@@ -3393,17 +3005,14 @@ bool ChatHandler::HandleLookupSkillCommand(const char* args)
uint32 maxValue = target->GetPureMaxSkillValue(id);
uint32 permValue = target->GetSkillPermBonusValue(id);
uint32 tempValue = target->GetSkillTempBonusValue(id);
-
char const* valFormat = GetTrinityString(LANG_SKILL_VALUES);
snprintf(valStr,50,valFormat,curValue,maxValue,permValue,tempValue);
}
-
// send skill in "id - [namedlink locale]" format
if (m_session)
PSendSysMessage(LANG_SKILL_LIST_CHAT,id,id,name.c_str(),localeNames[loc],knownStr,valStr);
else
PSendSysMessage(LANG_SKILL_LIST_CONSOLE,id,name.c_str(),localeNames[loc],knownStr,valStr);
-
if(!found)
found = true;
}
@@ -3413,26 +3022,19 @@ bool ChatHandler::HandleLookupSkillCommand(const char* args)
SendSysMessage(LANG_COMMAND_NOSKILLFOUND);
return true;
}
-
bool ChatHandler::HandleLookupSpellCommand(const char* args)
{
if(!*args)
return false;
-
// can be NULL at console call
Player* target = getSelectedPlayer();
-
std::string namepart = args;
std::wstring wnamepart;
-
if(!Utf8toWStr(namepart,wnamepart))
return false;
-
// converting string that we try to find to lower case
wstrToLower( wnamepart );
-
bool found = false;
-
// Search in Spell.dbc
for (uint32 id = 0; id < sSpellStore.GetNumRows(); id++)
{
@@ -3443,7 +3045,6 @@ bool ChatHandler::HandleLookupSpellCommand(const char* args)
std::string name = spellInfo->SpellName[loc];
if(name.empty())
continue;
-
if (!Utf8FitTo(name, wnamepart))
{
loc = 0;
@@ -3451,47 +3052,37 @@ bool ChatHandler::HandleLookupSpellCommand(const char* args)
{
if(loc==GetSessionDbcLocale())
continue;
-
name = spellInfo->SpellName[loc];
if(name.empty())
continue;
-
if (Utf8FitTo(name, wnamepart))
break;
}
}
-
if(loc < MAX_LOCALE)
{
bool known = target && target->HasSpell(id);
bool learn = (spellInfo->Effect[0] == SPELL_EFFECT_LEARN_SPELL);
-
uint32 talentCost = GetTalentSpellCost(id);
-
bool talent = (talentCost > 0);
bool passive = IsPassiveSpell(id);
bool active = target && target->HasAura(id);
-
// unit32 used to prevent interpreting uint8 as char at output
// find rank of learned spell for learning spell, or talent rank
uint32 rank = talentCost ? talentCost : spellmgr.GetSpellRank(learn ? spellInfo->EffectTriggerSpell[0] : id);
-
// send spell in "id - [name, rank N] [talent] [passive] [learn] [known]" format
std::ostringstream ss;
if (m_session)
ss << id << " - |cffffffff|Hspell:" << id << "|h[" << name;
else
ss << id << " - " << name;
-
// include rank in link name
if(rank)
ss << GetTrinityString(LANG_SPELL_RANK) << rank;
-
if (m_session)
ss << " " << localeNames[loc] << "]|h|r";
else
ss << " " << localeNames[loc];
-
if(talent)
ss << GetTrinityString(LANG_TALENT);
if(passive)
@@ -3502,9 +3093,7 @@ bool ChatHandler::HandleLookupSpellCommand(const char* args)
ss << GetTrinityString(LANG_KNOWN);
if(active)
ss << GetTrinityString(LANG_ACTIVE);
-
SendSysMessage(ss.str().c_str());
-
if(!found)
found = true;
}
@@ -3514,31 +3103,23 @@ bool ChatHandler::HandleLookupSpellCommand(const char* args)
SendSysMessage(LANG_COMMAND_NOSPELLFOUND);
return true;
}
-
bool ChatHandler::HandleLookupQuestCommand(const char* args)
{
if(!*args)
return false;
-
// can be NULL at console call
Player* target = getSelectedPlayer();
-
std::string namepart = args;
std::wstring wnamepart;
-
// converting string that we try to find to lower case
if(!Utf8toWStr(namepart,wnamepart))
return false;
-
wstrToLower(wnamepart);
-
bool found = false;
-
ObjectMgr::QuestMap const& qTemplates = objmgr.GetQuestTemplates();
for (ObjectMgr::QuestMap::const_iterator iter = qTemplates.begin(); iter != qTemplates.end(); ++iter)
{
Quest * qinfo = iter->second;
-
int loc_idx = GetSessionDbLocaleIndex();
if ( loc_idx >= 0 )
{
@@ -3548,15 +3129,12 @@ bool ChatHandler::HandleLookupQuestCommand(const char* args)
if (il->Title.size() > loc_idx && !il->Title[loc_idx].empty())
{
std::string title = il->Title[loc_idx];
-
if (Utf8FitTo(title, wnamepart))
{
char const* statusStr = "";
-
if(target)
{
QuestStatus status = target->GetQuestStatus(qinfo->GetQuestId());
-
if(status == QUEST_STATUS_COMPLETE)
{
if(target->GetQuestRewardStatus(qinfo->GetQuestId()))
@@ -3567,33 +3145,26 @@ bool ChatHandler::HandleLookupQuestCommand(const char* args)
else if(status == QUEST_STATUS_INCOMPLETE)
statusStr = GetTrinityString(LANG_COMMAND_QUEST_ACTIVE);
}
-
if (m_session)
PSendSysMessage(LANG_QUEST_LIST_CHAT,qinfo->GetQuestId(),qinfo->GetQuestId(),qinfo->GetQuestLevel(),title.c_str(),statusStr);
else
PSendSysMessage(LANG_QUEST_LIST_CONSOLE,qinfo->GetQuestId(),title.c_str(),statusStr);
-
if(!found)
found = true;
-
continue;
}
}
}
}
-
std::string title = qinfo->GetTitle();
if(title.empty())
continue;
-
if (Utf8FitTo(title, wnamepart))
{
char const* statusStr = "";
-
if(target)
{
QuestStatus status = target->GetQuestStatus(qinfo->GetQuestId());
-
if(status == QUEST_STATUS_COMPLETE)
{
if(target->GetQuestRewardStatus(qinfo->GetQuestId()))
@@ -3604,45 +3175,34 @@ bool ChatHandler::HandleLookupQuestCommand(const char* args)
else if(status == QUEST_STATUS_INCOMPLETE)
statusStr = GetTrinityString(LANG_COMMAND_QUEST_ACTIVE);
}
-
if (m_session)
PSendSysMessage(LANG_QUEST_LIST_CHAT,qinfo->GetQuestId(),qinfo->GetQuestId(),qinfo->GetQuestLevel(),title.c_str(),statusStr);
else
PSendSysMessage(LANG_QUEST_LIST_CONSOLE,qinfo->GetQuestId(),title.c_str(),statusStr);
-
if(!found)
found = true;
}
}
-
if (!found)
SendSysMessage(LANG_COMMAND_NOQUESTFOUND);
-
return true;
}
-
bool ChatHandler::HandleLookupCreatureCommand(const char* args)
{
if (!*args)
return false;
-
std::string namepart = args;
std::wstring wnamepart;
-
// converting string that we try to find to lower case
if (!Utf8toWStr (namepart,wnamepart))
return false;
-
wstrToLower (wnamepart);
-
bool found = false;
-
for (uint32 id = 0; id< sCreatureStorage.MaxEntry; ++id)
{
CreatureInfo const* cInfo = sCreatureStorage.LookupEntry<CreatureInfo> (id);
if(!cInfo)
continue;
-
int loc_idx = GetSessionDbLocaleIndex();
if (loc_idx >= 0)
{
@@ -3652,67 +3212,52 @@ bool ChatHandler::HandleLookupCreatureCommand(const char* args)
if (cl->Name.size() > loc_idx && !cl->Name[loc_idx].empty ())
{
std::string name = cl->Name[loc_idx];
-
if (Utf8FitTo (name, wnamepart))
{
if (m_session)
PSendSysMessage (LANG_CREATURE_ENTRY_LIST_CHAT, id, id, name.c_str ());
else
PSendSysMessage (LANG_CREATURE_ENTRY_LIST_CONSOLE, id, name.c_str ());
-
if(!found)
found = true;
-
continue;
}
}
}
}
-
std::string name = cInfo->Name;
if (name.empty ())
continue;
-
if (Utf8FitTo(name, wnamepart))
{
if (m_session)
PSendSysMessage (LANG_CREATURE_ENTRY_LIST_CHAT, id, id, name.c_str ());
else
PSendSysMessage (LANG_CREATURE_ENTRY_LIST_CONSOLE, id, name.c_str ());
-
if(!found)
found = true;
}
}
-
if (!found)
SendSysMessage (LANG_COMMAND_NOCREATUREFOUND);
-
return true;
}
-
bool ChatHandler::HandleLookupObjectCommand(const char* args)
{
if(!*args)
return false;
-
std::string namepart = args;
std::wstring wnamepart;
-
// converting string that we try to find to lower case
if(!Utf8toWStr(namepart,wnamepart))
return false;
-
wstrToLower(wnamepart);
-
bool found = false;
-
for (uint32 id = 0; id< sGOStorage.MaxEntry; id++ )
{
GameObjectInfo const* gInfo = sGOStorage.LookupEntry<GameObjectInfo>(id);
if(!gInfo)
continue;
-
int loc_idx = GetSessionDbLocaleIndex();
if ( loc_idx >= 0 )
{
@@ -3722,76 +3267,59 @@ bool ChatHandler::HandleLookupObjectCommand(const char* args)
if (gl->Name.size() > loc_idx && !gl->Name[loc_idx].empty())
{
std::string name = gl->Name[loc_idx];
-
if (Utf8FitTo(name, wnamepart))
{
if (m_session)
PSendSysMessage(LANG_GO_ENTRY_LIST_CHAT, id, id, name.c_str());
else
PSendSysMessage(LANG_GO_ENTRY_LIST_CONSOLE, id, name.c_str());
-
if(!found)
found = true;
-
continue;
}
}
}
}
-
std::string name = gInfo->name;
if(name.empty())
continue;
-
if(Utf8FitTo(name, wnamepart))
{
if (m_session)
PSendSysMessage(LANG_GO_ENTRY_LIST_CHAT, id, id, name.c_str());
else
PSendSysMessage(LANG_GO_ENTRY_LIST_CONSOLE, id, name.c_str());
-
if(!found)
found = true;
}
}
-
if(!found)
SendSysMessage(LANG_COMMAND_NOGAMEOBJECTFOUND);
-
return true;
}
-
bool ChatHandler::HandleLookupFactionCommand(const char* args)
{
if (!*args)
return false;
-
// Can be NULL at console call
Player *target = getSelectedPlayer ();
-
std::string namepart = args;
std::wstring wnamepart;
-
if (!Utf8toWStr (namepart,wnamepart))
return false;
-
// converting string that we try to find to lower case
wstrToLower (wnamepart);
-
bool found = false;
-
for (uint32 id = 0; id < sFactionStore.GetNumRows(); ++id)
{
FactionEntry const *factionEntry = sFactionStore.LookupEntry (id);
if (factionEntry)
{
FactionState const* repState = target ? target->GetReputationMgr().GetState(factionEntry) : NULL;
-
int loc = GetSessionDbcLocale();
std::string name = factionEntry->name[loc];
if(name.empty())
continue;
-
if (!Utf8FitTo(name, wnamepart))
{
loc = 0;
@@ -3799,16 +3327,13 @@ bool ChatHandler::HandleLookupFactionCommand(const char* args)
{
if(loc==GetSessionDbcLocale())
continue;
-
name = factionEntry->name[loc];
if(name.empty())
continue;
-
if (Utf8FitTo(name, wnamepart))
break;
}
}
-
if(loc < MAX_LOCALE)
{
// send faction in "id - [faction] rank reputation [visible] [at war] [own team] [unknown] [invisible] [inactive]" format
@@ -3818,14 +3343,11 @@ bool ChatHandler::HandleLookupFactionCommand(const char* args)
ss << id << " - |cffffffff|Hfaction:" << id << "|h[" << name << " " << localeNames[loc] << "]|h|r";
else
ss << id << " - " << name << " " << localeNames[loc];
-
if (repState) // and then target!=NULL also
{
ReputationRank rank = target->GetReputationMgr().GetRank(factionEntry);
std::string rankName = GetMangosString(ReputationRankStrIndex[rank]);
-
ss << " " << rankName << "|h|r (" << target->GetReputationMgr().GetReputation(factionEntry) << ")";
-
if(repState->Flags & FACTION_FLAG_VISIBLE)
ss << GetTrinityString(LANG_FACTION_VISIBLE);
if(repState->Flags & FACTION_FLAG_AT_WAR)
@@ -3841,36 +3363,27 @@ bool ChatHandler::HandleLookupFactionCommand(const char* args)
}
else
ss << GetTrinityString(LANG_FACTION_NOREPUTATION);
-
SendSysMessage(ss.str().c_str());
-
if(!found)
found = true;
}
}
}
-
if (!found)
SendSysMessage(LANG_COMMAND_FACTION_NOTFOUND);
return true;
}
-
bool ChatHandler::HandleLookupTaxiNodeCommand(const char * args)
{
if(!*args)
return false;
-
std::string namepart = args;
std::wstring wnamepart;
-
if(!Utf8toWStr(namepart,wnamepart))
return false;
-
// converting string that we try to find to lower case
wstrToLower( wnamepart );
-
bool found = false;
-
// Search in TaxiNodes.dbc
for (uint32 id = 0; id < sTaxiNodesStore.GetNumRows(); id++)
{
@@ -3881,7 +3394,6 @@ bool ChatHandler::HandleLookupTaxiNodeCommand(const char * args)
std::string name = nodeEntry->name[loc];
if(name.empty())
continue;
-
if (!Utf8FitTo(name, wnamepart))
{
loc = 0;
@@ -3889,16 +3401,13 @@ bool ChatHandler::HandleLookupTaxiNodeCommand(const char * args)
{
if(loc==GetSessionDbcLocale())
continue;
-
name = nodeEntry->name[loc];
if(name.empty())
continue;
-
if (Utf8FitTo(name, wnamepart))
break;
}
}
-
if(loc < MAX_LOCALE)
{
// send taxinode in "id - [name] (Map:m X:x Y:y Z:z)" format
@@ -3908,7 +3417,6 @@ bool ChatHandler::HandleLookupTaxiNodeCommand(const char * args)
else
PSendSysMessage (LANG_TAXINODE_ENTRY_LIST_CONSOLE, id, name.c_str(), localeNames[loc],
nodeEntry->map_id,nodeEntry->x,nodeEntry->y,nodeEntry->z);
-
if(!found)
found = true;
}
@@ -3918,23 +3426,17 @@ bool ChatHandler::HandleLookupTaxiNodeCommand(const char * args)
SendSysMessage(LANG_COMMAND_NOTAXINODEFOUND);
return true;
}
-
bool ChatHandler::HandleLookupMapCommand(const char* args)
{
if(!*args)
return false;
-
std::string namepart = args;
std::wstring wnamepart;
-
// converting string that we try to find to lower case
if(!Utf8toWStr(namepart, wnamepart))
return false;
-
wstrToLower(wnamepart);
-
bool found = false;
-
// search in Map.dbc
for(uint32 id = 0; id < sMapStore.GetNumRows(); id++)
{
@@ -3942,11 +3444,9 @@ bool ChatHandler::HandleLookupMapCommand(const char* args)
if(MapInfo)
{
uint8 loc = m_session ? m_session->GetSessionDbcLocale() : sWorld.GetDefaultDbcLocale();
-
std::string name = MapInfo->name[loc];
if(name.empty())
continue;
-
if(!Utf8FitTo(name, wnamepart))
{
loc = LOCALE_enUS;
@@ -3954,55 +3454,43 @@ bool ChatHandler::HandleLookupMapCommand(const char* args)
{
if(m_session && loc == m_session->GetSessionDbcLocale())
continue;
-
name = MapInfo->name[loc];
if(name.empty())
continue;
-
if(Utf8FitTo(name, wnamepart))
break;
}
}
-
if(loc < MAX_LOCALE)
{
// send map in "id - [name][Continent][Instance/Battleground/Arena][Raid reset time:][Heroic reset time:][Mountable]" format
std::ostringstream ss;
-
if(m_session)
ss << id << " - |cffffffff|Hmap:" << id << "|h[" << name << "]";
else // console
ss << id << " - [" << name << "]";
-
if(MapInfo->IsContinent())
ss << GetTrinityString(LANG_CONTINENT);
-
switch(MapInfo->map_type)
{
case MAP_INSTANCE: ss << GetTrinityString(LANG_INSTANCE); break;
case MAP_BATTLEGROUND: ss << GetTrinityString(LANG_BATTLEGROUND); break;
case MAP_ARENA: ss << GetTrinityString(LANG_ARENA); break;
}
-
if(MapInfo->IsRaid())
ss << GetTrinityString(LANG_RAID);
-
if(MapInfo->SupportsHeroicMode())
ss << GetTrinityString(LANG_HEROIC);
-
uint32 ResetTimeRaid = MapInfo->resetTimeRaid;
std::string ResetTimeRaidStr;
if(ResetTimeRaid)
ResetTimeRaidStr = secsToTimeString(ResetTimeRaid, true, false);
-
uint32 ResetTimeHeroic = MapInfo->resetTimeHeroic;
std::string ResetTimeHeroicStr;
if(ResetTimeHeroic)
ResetTimeHeroicStr = secsToTimeString(ResetTimeHeroic, true, false);
-
if(MapInfo->IsMountAllowed())
ss << GetTrinityString(LANG_MOUNTABLE);
-
if(ResetTimeRaid && !ResetTimeHeroic)
PSendSysMessage(ss.str().c_str(), ResetTimeRaidStr.c_str());
else if(!ResetTimeRaid && ResetTimeHeroic)
@@ -4011,19 +3499,15 @@ bool ChatHandler::HandleLookupMapCommand(const char* args)
PSendSysMessage(ss.str().c_str(), ResetTimeRaidStr.c_str(), ResetTimeHeroicStr.c_str());
else
SendSysMessage(ss.str().c_str());
-
if(!found)
found = true;
}
}
}
-
if(!found)
SendSysMessage(LANG_COMMAND_NOMAPFOUND);
-
return true;
}
-
/** \brief GM command level 3 - Create a guild.
*
* This command allows a GM (level 3) to create a guild.
@@ -4036,28 +3520,22 @@ bool ChatHandler::HandleGuildCreateCommand(const char* args)
{
if(!*args)
return false;
-
// if not guild name only (in "") then player name
Player* target;
if(!extractPlayerTarget(*args!='"' ? (char*)args : NULL, &target))
return false;
-
char* tailStr = *args!='"' ? strtok(NULL, "") : (char*)args;
if(!tailStr)
return false;
-
char* guildStr = extractQuotedArg(tailStr);
if(!guildStr)
return false;
-
std::string guildname = guildStr;
-
if (target->GetGuildId())
{
SendSysMessage (LANG_PLAYER_IN_GUILD);
return true;
}
-
Guild *guild = new Guild;
if (!guild->Create (target,guildname))
{
@@ -4066,60 +3544,47 @@ bool ChatHandler::HandleGuildCreateCommand(const char* args)
SetSentErrorMessage (true);
return false;
}
-
objmgr.AddGuild (guild);
return true;
}
-
bool ChatHandler::HandleGuildInviteCommand(const char *args)
{
if(!*args)
return false;
-
// if not guild name only (in "") then player name
uint64 target_guid;
if(!extractPlayerTarget(*args!='"' ? (char*)args : NULL, NULL, &target_guid))
return false;
-
char* tailStr = *args!='"' ? strtok(NULL, "") : (char*)args;
if(!tailStr)
return false;
-
char* guildStr = extractQuotedArg(tailStr);
if(!guildStr)
return false;
-
std::string glName = guildStr;
Guild* targetGuild = objmgr.GetGuildByName (glName);
if (!targetGuild)
return false;
-
// player's guild membership checked in AddMember before add
if (!targetGuild->AddMember (target_guid,targetGuild->GetLowestRank ()))
return false;
-
return true;
}
-
bool ChatHandler::HandleGuildUninviteCommand(const char *args)
{
Player* target;
uint64 target_guid;
if(!extractPlayerTarget((char*)args,&target,&target_guid))
return false;
-
uint32 glId = target ? target->GetGuildId () : Player::GetGuildIdFromDB (target_guid);
if (!glId)
return false;
-
Guild* targetGuild = objmgr.GetGuildById (glId);
if (!targetGuild)
return false;
-
targetGuild->DelMember (target_guid);
return true;
}
-
bool ChatHandler::HandleGuildRankCommand(const char *args)
{
char* nameStr;
@@ -4127,59 +3592,45 @@ bool ChatHandler::HandleGuildRankCommand(const char *args)
extractOptFirstArg((char*)args,&nameStr,&rankStr);
if(!rankStr)
return false;
-
Player* target;
uint64 target_guid;
std::string target_name;
if(!extractPlayerTarget(nameStr,&target,&target_guid,&target_name))
return false;
-
uint32 glId = target ? target->GetGuildId () : Player::GetGuildIdFromDB (target_guid);
if (!glId)
return false;
-
Guild* targetGuild = objmgr.GetGuildById (glId);
if (!targetGuild)
return false;
-
uint32 newrank = uint32 (atoi (rankStr));
if (newrank > targetGuild->GetLowestRank ())
return false;
-
targetGuild->ChangeRank (target_guid,newrank);
return true;
}
-
bool ChatHandler::HandleGuildDeleteCommand(const char* args)
{
if (!*args)
return false;
-
char* guildStr = extractQuotedArg((char*)args);
if(!guildStr)
return false;
-
std::string gld = guildStr;
-
Guild* targetGuild = objmgr.GetGuildByName (gld);
if (!targetGuild)
return false;
-
targetGuild->Disband ();
-
return true;
}
-
bool ChatHandler::HandleGetDistanceCommand(const char* args)
{
WorldObject* obj = NULL;
-
if (*args)
{
uint64 guid = extractGuidFromLink((char*)args);
if(guid)
obj = (WorldObject*)ObjectAccessor::GetObjectByTypeMask(*m_session->GetPlayer(),guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT);
-
if(!obj)
{
SendSysMessage(LANG_PLAYER_NOT_FOUND);
@@ -4190,7 +3641,6 @@ bool ChatHandler::HandleGetDistanceCommand(const char* args)
else
{
obj = getSelectedUnit();
-
if(!obj)
{
SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
@@ -4198,29 +3648,23 @@ bool ChatHandler::HandleGetDistanceCommand(const char* args)
return false;
}
}
-
PSendSysMessage(LANG_DISTANCE, m_session->GetPlayer()->GetDistance(obj),m_session->GetPlayer()->GetDistance2d(obj));
-
return true;
}
-
bool ChatHandler::HandleDieCommand(const char* /*args*/)
{
Unit* target = getSelectedUnit();
-
if(!target || !m_session->GetPlayer()->GetSelection())
{
SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
SetSentErrorMessage(true);
return false;
}
-
if(target->GetTypeId()==TYPEID_PLAYER)
{
if(HasLowerSecurity((Player*)target,0,false))
return false;
}
-
if( target->isAlive() )
{
if(sWorld.getConfig(CONFIG_DIE_COMMAND_MODE))
@@ -4228,39 +3672,29 @@ bool ChatHandler::HandleDieCommand(const char* /*args*/)
else
m_session->GetPlayer()->DealDamage(target, target->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
}
-
return true;
}
-
bool ChatHandler::HandleDamageCommand(const char * args)
{
if (!*args)
return false;
-
Unit* target = getSelectedUnit();
-
if (!target || !m_session->GetPlayer()->GetSelection())
{
SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
SetSentErrorMessage(true);
return false;
}
-
if (!target->isAlive())
return true;
-
char* damageStr = strtok((char*)args, " ");
if (!damageStr)
return false;
-
int32 damage_int = atoi((char*)damageStr);
if(damage_int <=0)
return true;
-
uint32 damage = damage_int;
-
char* schoolStr = strtok((char*)NULL, " ");
-
// flat melee damage without resistence/etc reduction
if (!schoolStr)
{
@@ -4269,53 +3703,39 @@ bool ChatHandler::HandleDamageCommand(const char * args)
m_session->GetPlayer()->SendAttackStateUpdate (HITINFO_NORMALSWING2, target, 1, SPELL_SCHOOL_MASK_NORMAL, damage, 0, 0, VICTIMSTATE_NORMAL, 0);
return true;
}
-
uint32 school = schoolStr ? atoi((char*)schoolStr) : SPELL_SCHOOL_NORMAL;
if(school >= MAX_SPELL_SCHOOL)
return false;
-
SpellSchoolMask schoolmask = SpellSchoolMask(1 << school);
-
if ( schoolmask & SPELL_SCHOOL_MASK_NORMAL )
damage = m_session->GetPlayer()->CalcArmorReducedDamage(target, damage, NULL, BASE_ATTACK);
-
char* spellStr = strtok((char*)NULL, " ");
-
// melee damage by specific school
if (!spellStr)
{
uint32 absorb = 0;
uint32 resist = 0;
-
m_session->GetPlayer()->CalcAbsorbResist(target,schoolmask, SPELL_DIRECT_DAMAGE, damage, &absorb, &resist);
-
if (damage <= absorb + resist)
return true;
-
damage -= absorb + resist;
-
m_session->GetPlayer()->DealDamageMods(target,damage,&absorb);
m_session->GetPlayer()->DealDamage(target, damage, NULL, DIRECT_DAMAGE, schoolmask, NULL, false);
m_session->GetPlayer()->SendAttackStateUpdate (HITINFO_NORMALSWING2, target, 1, schoolmask, damage, absorb, resist, VICTIMSTATE_NORMAL, 0);
return true;
}
-
// non-melee damage
-
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spellid = extractSpellIdFromLink((char*)args);
if (!spellid || !sSpellStore.LookupEntry(spellid))
return false;
-
m_session->GetPlayer()->SpellNonMeleeDamageLog(target, spellid, damage);
return true;
}
-
bool ChatHandler::HandleModifyArenaCommand(const char * args)
{
if (!*args)
return false;
-
Player *target = getSelectedPlayer();
if(!target)
{
@@ -4323,23 +3743,17 @@ bool ChatHandler::HandleModifyArenaCommand(const char * args)
SetSentErrorMessage(true);
return false;
}
-
int32 amount = (uint32)atoi(args);
-
target->ModifyArenaPoints(amount);
-
PSendSysMessage(LANG_COMMAND_MODIFY_ARENA, GetNameLink(target).c_str(), target->GetArenaPoints());
-
return true;
}
-
bool ChatHandler::HandleReviveCommand(const char* args)
{
Player* target;
uint64 target_guid;
if(!extractPlayerTarget((char*)args,&target,&target_guid))
return false;
-
if (target)
{
target->ResurrectPlayer(0.5f);
@@ -4349,10 +3763,8 @@ bool ChatHandler::HandleReviveCommand(const char* args)
else
// will resurrected at login without corpse
ObjectAccessor::Instance().ConvertCorpseForPlayer(target_guid);
-
return true;
}
-
bool ChatHandler::HandleAuraCommand(const char* args)
{
Unit *target = getSelectedUnit();
@@ -4362,10 +3774,8 @@ bool ChatHandler::HandleAuraCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spellID = extractSpellIdFromLink((char*)args);
-
SpellEntry const *spellInfo = sSpellStore.LookupEntry( spellID );
uint8 eff_mask=0;
if(spellInfo)
@@ -4385,10 +3795,8 @@ bool ChatHandler::HandleAuraCommand(const char* args)
Aura *Aur = new Aura(spellInfo, eff_mask, target, target, target);
target->AddAura(Aur);
}
-
return true;
}
-
bool ChatHandler::HandleUnAuraCommand(const char* args)
{
Unit *target = getSelectedUnit();
@@ -4398,39 +3806,29 @@ bool ChatHandler::HandleUnAuraCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
std::string argstr = args;
if (argstr == "all")
{
target->RemoveAllAuras();
return true;
}
-
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spellID = extractSpellIdFromLink((char*)args);
if(!spellID)
return false;
-
target->RemoveAurasDueToSpell(spellID);
-
return true;
}
-
bool ChatHandler::HandleLinkGraveCommand(const char* args)
{
if(!*args)
return false;
-
char* px = strtok((char*)args, " ");
if (!px)
return false;
-
uint32 g_id = (uint32)atoi(px);
-
uint32 g_team;
-
char* px2 = strtok(NULL, " ");
-
if (!px2)
g_team = 0;
else if (strncmp(px2,"horde",6)==0)
@@ -4439,20 +3837,15 @@ bool ChatHandler::HandleLinkGraveCommand(const char* args)
g_team = ALLIANCE;
else
return false;
-
WorldSafeLocsEntry const* graveyard = sWorldSafeLocsStore.LookupEntry(g_id);
-
if(!graveyard )
{
PSendSysMessage(LANG_COMMAND_GRAVEYARDNOEXIST, g_id);
SetSentErrorMessage(true);
return false;
}
-
Player* player = m_session->GetPlayer();
-
uint32 zoneId = player->GetZoneId();
-
AreaTableEntry const *areaEntry = GetAreaEntryByAreaID(zoneId);
if(!areaEntry || areaEntry->zone !=0 )
{
@@ -4460,21 +3853,16 @@ bool ChatHandler::HandleLinkGraveCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
if(objmgr.AddGraveYardLink(g_id,zoneId,g_team))
PSendSysMessage(LANG_COMMAND_GRAVEYARDLINKED, g_id,zoneId);
else
PSendSysMessage(LANG_COMMAND_GRAVEYARDALRLINKED, g_id,zoneId);
-
return true;
}
-
bool ChatHandler::HandleNearGraveCommand(const char* args)
{
uint32 g_team;
-
size_t argslen = strlen(args);
-
if(!*args)
g_team = 0;
else if (strncmp((char*)args,"horde",argslen)==0)
@@ -4483,17 +3871,13 @@ bool ChatHandler::HandleNearGraveCommand(const char* args)
g_team = ALLIANCE;
else
return false;
-
Player* player = m_session->GetPlayer();
uint32 zone_id = player->GetZoneId();
-
WorldSafeLocsEntry const* graveyard = objmgr.GetClosestGraveYard(
player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(),player->GetMapId(),g_team);
-
if(graveyard)
{
uint32 g_id = graveyard->ID;
-
GraveYardData const* data = objmgr.FindGraveYardData(g_id,zone_id);
if (!data)
{
@@ -4501,40 +3885,32 @@ bool ChatHandler::HandleNearGraveCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
g_team = data->team;
-
std::string team_name = GetTrinityString(LANG_COMMAND_GRAVEYARD_NOTEAM);
-
if(g_team == 0)
team_name = GetTrinityString(LANG_COMMAND_GRAVEYARD_ANY);
else if(g_team == HORDE)
team_name = GetTrinityString(LANG_COMMAND_GRAVEYARD_HORDE);
else if(g_team == ALLIANCE)
team_name = GetTrinityString(LANG_COMMAND_GRAVEYARD_ALLIANCE);
-
PSendSysMessage(LANG_COMMAND_GRAVEYARDNEAREST, g_id,team_name.c_str(),zone_id);
}
else
{
std::string team_name;
-
if(g_team == 0)
team_name = GetTrinityString(LANG_COMMAND_GRAVEYARD_ANY);
else if(g_team == HORDE)
team_name = GetTrinityString(LANG_COMMAND_GRAVEYARD_HORDE);
else if(g_team == ALLIANCE)
team_name = GetTrinityString(LANG_COMMAND_GRAVEYARD_ALLIANCE);
-
if(g_team == ~uint32(0))
PSendSysMessage(LANG_COMMAND_ZONENOGRAVEYARDS, zone_id);
else
PSendSysMessage(LANG_COMMAND_ZONENOGRAFACTION, zone_id,team_name.c_str());
}
-
return true;
}
-
//-----------------------Npc Commands-----------------------
bool ChatHandler::HandleNpcAllowMovementCommand(const char* /*args*/)
{
@@ -4550,16 +3926,13 @@ bool ChatHandler::HandleNpcAllowMovementCommand(const char* /*args*/)
}
return true;
}
-
bool ChatHandler::HandleNpcChangeEntryCommand(const char *args)
{
if (!*args)
return false;
-
uint32 newEntryNum = atoi(args);
if(!newEntryNum)
return false;
-
Unit* unit = getSelectedUnit();
if(!unit || unit->GetTypeId() != TYPEID_UNIT)
{
@@ -4574,31 +3947,26 @@ bool ChatHandler::HandleNpcChangeEntryCommand(const char *args)
SendSysMessage(LANG_ERROR);
return true;
}
-
bool ChatHandler::HandleNpcInfoCommand(const char* /*args*/)
{
Creature* target = getSelectedCreature();
-
if(!target)
{
SendSysMessage(LANG_SELECT_CREATURE);
SetSentErrorMessage(true);
return false;
}
-
uint32 faction = target->getFaction();
uint32 npcflags = target->GetUInt32Value(UNIT_NPC_FLAGS);
uint32 displayid = target->GetDisplayId();
uint32 nativeid = target->GetNativeDisplayId();
uint32 Entry = target->GetEntry();
CreatureInfo const* cInfo = target->GetCreatureInfo();
-
int32 curRespawnDelay = target->GetRespawnTimeEx()-time(NULL);
if(curRespawnDelay < 0)
curRespawnDelay = 0;
std::string curRespawnDelayStr = secsToTimeString(curRespawnDelay,true);
std::string defRespawnDelayStr = secsToTimeString(target->GetRespawnDelay(),true);
-
PSendSysMessage(LANG_NPCINFO_CHAR, target->GetDBTableGUIDLow(), faction, npcflags, Entry, displayid, nativeid);
PSendSysMessage(LANG_NPCINFO_LEVEL, target->getLevel());
PSendSysMessage(LANG_NPCINFO_HEALTH,target->GetCreateHealth(), target->GetMaxHealth(), target->GetHealth());
@@ -4610,7 +3978,6 @@ bool ChatHandler::HandleNpcInfoCommand(const char* /*args*/)
if(const CreatureData* const linked = target->GetLinkedRespawnCreatureData())
if(CreatureInfo const *master = GetCreatureInfo(linked->id))
PSendSysMessage(LANG_NPCINFO_LINKGUID, objmgr.GetLinkedRespawnGuid(target->GetDBTableGUIDLow()), linked->id, master->Name);
-
if ((npcflags & UNIT_NPC_FLAG_VENDOR) )
{
SendSysMessage(LANG_NPCINFO_VENDOR);
@@ -4619,15 +3986,12 @@ bool ChatHandler::HandleNpcInfoCommand(const char* /*args*/)
{
SendSysMessage(LANG_NPCINFO_TRAINER);
}
-
return true;
}
-
//play npc emote
bool ChatHandler::HandleNpcPlayEmoteCommand(const char* args)
{
uint32 emote = atoi((char*)args);
-
Creature* target = getSelectedCreature();
if(!target)
{
@@ -4635,47 +3999,35 @@ bool ChatHandler::HandleNpcPlayEmoteCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
target->SetUInt32Value(UNIT_NPC_EMOTESTATE,emote);
-
return true;
}
-
//TODO: NpcCommands that needs to be fixed :
-
bool ChatHandler::HandleNpcAddWeaponCommand(const char* /*args*/)
{
/*if (!*args)
return false;
-
uint64 guid = m_session->GetPlayer()->GetSelection();
if (guid == 0)
{
SendSysMessage(LANG_NO_SELECTION);
return true;
}
-
Creature *pCreature = ObjectAccessor::GetCreature(*m_session->GetPlayer(), guid);
-
if(!pCreature)
{
SendSysMessage(LANG_SELECT_CREATURE);
return true;
}
-
char* pSlotID = strtok((char*)args, " ");
if (!pSlotID)
return false;
-
char* pItemID = strtok(NULL, " ");
if (!pItemID)
return false;
-
uint32 ItemID = atoi(pItemID);
uint32 SlotID = atoi(pSlotID);
-
ItemPrototype* tmpItem = objmgr.GetItemPrototype(ItemID);
-
bool added = false;
if(tmpItem)
{
@@ -4698,7 +4050,6 @@ bool ChatHandler::HandleNpcAddWeaponCommand(const char* /*args*/)
added = false;
break;
}
-
if(added)
PSendSysMessage(LANG_ITEM_ADDED_TO_SLOT,ItemID,tmpItem->Name1,SlotID);
}
@@ -4711,14 +4062,11 @@ bool ChatHandler::HandleNpcAddWeaponCommand(const char* /*args*/)
return true;
}
//----------------------------------------------------------
-
bool ChatHandler::HandleExploreCheatCommand(const char* args)
{
if (!*args)
return false;
-
int flag = atoi((char*)args);
-
Player *chr = getSelectedPlayer();
if (chr == NULL)
{
@@ -4726,7 +4074,6 @@ bool ChatHandler::HandleExploreCheatCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
if (flag != 0)
{
PSendSysMessage(LANG_YOU_SET_EXPLORE_ALL, GetNameLink(chr).c_str());
@@ -4739,7 +4086,6 @@ bool ChatHandler::HandleExploreCheatCommand(const char* args)
if (needReportToTarget(chr))
ChatHandler(chr).PSendSysMessage(LANG_YOURS_EXPLORE_SET_NOTHING,GetNameLink().c_str());
}
-
for (uint8 i=0; i<128; ++i)
{
if (flag != 0)
@@ -4751,10 +4097,8 @@ bool ChatHandler::HandleExploreCheatCommand(const char* args)
m_session->GetPlayer()->SetFlag(PLAYER_EXPLORED_ZONES_1+i,0);
}
}
-
return true;
}
-
bool ChatHandler::HandleHoverCommand(const char* args)
{
char* px = strtok((char*)args, " ");
@@ -4763,17 +4107,13 @@ bool ChatHandler::HandleHoverCommand(const char* args)
flag = 1;
else
flag = atoi(px);
-
m_session->GetPlayer()->SetHover(flag);
-
if (flag)
SendSysMessage(LANG_HOVER_ENABLED);
else
SendSysMessage(LANG_HOVER_DISABLED);
-
return true;
}
-
void ChatHandler::HandleCharacterLevel(Player* player, uint64 player_guid, uint32 oldlevel, uint32 newlevel)
{
if(player)
@@ -4781,7 +4121,6 @@ void ChatHandler::HandleCharacterLevel(Player* player, uint64 player_guid, uint3
player->GiveLevel(newlevel);
player->InitTalentForLevel();
player->SetUInt32Value(PLAYER_XP,0);
-
if(needReportToTarget(player))
{
if(oldlevel == newlevel)
@@ -4798,7 +4137,6 @@ void ChatHandler::HandleCharacterLevel(Player* player, uint64 player_guid, uint3
CharacterDatabase.PExecute("UPDATE characters SET level = '%u', xp = 0 WHERE guid = '%u'", newlevel, GUID_LOPART(player_guid));
}
}
-
bool ChatHandler::HandleCharacterLevelCommand(const char* args)
{
char* nameStr;
@@ -4806,85 +4144,66 @@ bool ChatHandler::HandleCharacterLevelCommand(const char* args)
extractOptFirstArg((char*)args,&nameStr,&levelStr);
if(!levelStr)
return false;
-
// exception opt second arg: .character level $name
if(isalpha(levelStr[0]))
{
nameStr = levelStr;
levelStr = NULL; // current level will used
}
-
Player* target;
uint64 target_guid;
std::string target_name;
if(!extractPlayerTarget(nameStr,&target,&target_guid,&target_name))
return false;
-
int32 oldlevel = target ? target->getLevel() : Player::GetLevelFromDB(target_guid);
int32 newlevel = levelStr ? atoi(levelStr) : oldlevel;
-
if(newlevel < 1)
return false; // invalid level
-
if(newlevel > STRONG_MAX_LEVEL) // hardcoded maximum level
newlevel = STRONG_MAX_LEVEL;
-
HandleCharacterLevel(target,target_guid,oldlevel,newlevel);
-
if(!m_session || m_session->GetPlayer() != target) // including player==NULL
{
std::string nameLink = playerLink(target_name);
PSendSysMessage(LANG_YOU_CHANGE_LVL,nameLink.c_str(),newlevel);
}
-
return true;
}
-
bool ChatHandler::HandleLevelUpCommand(const char* args)
{
char* nameStr;
char* levelStr;
extractOptFirstArg((char*)args,&nameStr,&levelStr);
-
// exception opt second arg: .character level $name
if(levelStr && isalpha(levelStr[0]))
{
nameStr = levelStr;
levelStr = NULL; // current level will used
}
-
Player* target;
uint64 target_guid;
std::string target_name;
if(!extractPlayerTarget(nameStr,&target,&target_guid,&target_name))
return false;
-
int32 oldlevel = target ? target->getLevel() : Player::GetLevelFromDB(target_guid);
int32 addlevel = levelStr ? atoi(levelStr) : 1;
int32 newlevel = oldlevel + addlevel;
-
if(newlevel < 1)
newlevel = 1;
-
if(newlevel > STRONG_MAX_LEVEL) // hardcoded maximum level
newlevel = STRONG_MAX_LEVEL;
-
HandleCharacterLevel(target,target_guid,oldlevel,newlevel);
-
if(!m_session || m_session->GetPlayer() != target) // including chr==NULL
{
std::string nameLink = playerLink(target_name);
PSendSysMessage(LANG_YOU_CHANGE_LVL,nameLink.c_str(),newlevel);
}
-
return true;
}
-
bool ChatHandler::HandleShowAreaCommand(const char* args)
{
if (!*args)
return false;
-
Player *chr = getSelectedPlayer();
if (chr == NULL)
{
@@ -4892,30 +4211,24 @@ bool ChatHandler::HandleShowAreaCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
int area = GetAreaFlagByAreaID(atoi((char*)args));
int offset = area / 32;
uint32 val = (uint32)(1 << (area % 32));
-
if(area<0 || offset >= 128)
{
SendSysMessage(LANG_BAD_VALUE);
SetSentErrorMessage(true);
return false;
}
-
uint32 currFields = chr->GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + offset);
chr->SetUInt32Value(PLAYER_EXPLORED_ZONES_1 + offset, (uint32)(currFields | val));
-
SendSysMessage(LANG_EXPLORE_AREA);
return true;
}
-
bool ChatHandler::HandleHideAreaCommand(const char* args)
{
if (!*args)
return false;
-
Player *chr = getSelectedPlayer();
if (chr == NULL)
{
@@ -4923,37 +4236,29 @@ bool ChatHandler::HandleHideAreaCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
int area = GetAreaFlagByAreaID(atoi((char*)args));
int offset = area / 32;
uint32 val = (uint32)(1 << (area % 32));
-
if(area<0 || offset >= 128)
{
SendSysMessage(LANG_BAD_VALUE);
SetSentErrorMessage(true);
return false;
}
-
uint32 currFields = chr->GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + offset);
chr->SetUInt32Value(PLAYER_EXPLORED_ZONES_1 + offset, (uint32)(currFields ^ val));
-
SendSysMessage(LANG_UNEXPLORE_AREA);
return true;
}
-
bool ChatHandler::HandleBankCommand(const char* /*args*/)
{
m_session->SendShowBank( m_session->GetPlayer()->GetGUID() );
-
return true;
}
-
bool ChatHandler::HandleChangeWeather(const char* args)
{
if(!*args)
return false;
-
//Weather is OFF
if (!sWorld.getConfig(CONFIG_WEATHER))
{
@@ -4961,22 +4266,16 @@ bool ChatHandler::HandleChangeWeather(const char* args)
SetSentErrorMessage(true);
return false;
}
-
//*Change the weather of a cell
char* px = strtok((char*)args, " ");
char* py = strtok(NULL, " ");
-
if (!px || !py)
return false;
-
uint32 type = (uint32)atoi(px); //0 to 3, 0: fine, 1: rain, 2: snow, 3: sand
float grade = (float)atof(py); //0 to 1, sending -1 is instand good weather
-
Player *player = m_session->GetPlayer();
uint32 zoneid = player->GetZoneId();
-
Weather* wth = sWorld.FindWeather(zoneid);
-
if(!wth)
wth = sWorld.AddWeather(zoneid);
if(!wth)
@@ -4985,17 +4284,13 @@ bool ChatHandler::HandleChangeWeather(const char* args)
SetSentErrorMessage(true);
return false;
}
-
wth->SetWeather(WeatherType(type), grade);
-
return true;
}
-
bool ChatHandler::HandleDebugSet32Bit(const char* args)
{
if(!*args)
return false;
-
WorldObject* target = getSelectedObject();
if(!target)
{
@@ -5003,45 +4298,34 @@ bool ChatHandler::HandleDebugSet32Bit(const char* args)
SetSentErrorMessage(true);
return false;
}
-
char* px = strtok((char*)args, " ");
char* py = strtok(NULL, " ");
-
if (!px || !py)
return false;
-
uint32 Opcode = (uint32)atoi(px);
uint32 Value = (uint32)atoi(py);
if (Value > 32) //uint32 = 32 bits
return false;
-
sLog.outDebug(GetTrinityString(LANG_SET_32BIT), Opcode, Value);
-
uint32 iValue = Value ? 1 << (Value - 1) : 0;
target->SetUInt32Value( Opcode , iValue);
-
PSendSysMessage(LANG_SET_32BIT_FIELD, Opcode, iValue);
return true;
}
-
bool ChatHandler::HandleTeleAddCommand(const char * args)
{
if(!*args)
return false;
-
Player *player=m_session->GetPlayer();
if (!player)
return false;
-
std::string name = args;
-
if(objmgr.GetGameTele(name))
{
SendSysMessage(LANG_COMMAND_TP_ALREADYEXIST);
SetSentErrorMessage(true);
return false;
}
-
GameTele tele;
tele.position_x = player->GetPositionX();
tele.position_y = player->GetPositionY();
@@ -5049,7 +4333,6 @@ bool ChatHandler::HandleTeleAddCommand(const char * args)
tele.orientation = player->GetOrientation();
tele.mapId = player->GetMapId();
tele.name = name;
-
if(objmgr.AddGameTele(tele))
{
SendSysMessage(LANG_COMMAND_TP_ADDED);
@@ -5060,28 +4343,22 @@ bool ChatHandler::HandleTeleAddCommand(const char * args)
SetSentErrorMessage(true);
return false;
}
-
return true;
}
-
bool ChatHandler::HandleTeleDelCommand(const char * args)
{
if(!*args)
return false;
-
std::string name = args;
-
if(!objmgr.DeleteGameTele(name))
{
SendSysMessage(LANG_COMMAND_TELE_NOTFOUND);
SetSentErrorMessage(true);
return false;
}
-
SendSysMessage(LANG_COMMAND_TP_DELETED);
return true;
}
-
bool ChatHandler::HandleListAurasCommand (const char * /*args*/)
{
Unit *unit = getSelectedUnit();
@@ -5091,23 +4368,18 @@ bool ChatHandler::HandleListAurasCommand (const char * /*args*/)
SetSentErrorMessage(true);
return false;
}
-
char const* talentStr = GetTrinityString(LANG_TALENT);
char const* passiveStr = GetTrinityString(LANG_PASSIVE);
-
Unit::AuraMap const& uAuras = unit->GetAuras();
PSendSysMessage(LANG_COMMAND_TARGET_LISTAURAS, uAuras.size());
for (Unit::AuraMap::const_iterator itr = uAuras.begin(); itr != uAuras.end(); ++itr)
{
bool talent = GetTalentSpellCost(itr->second->GetId()) > 0;
-
char const* name = itr->second->GetSpellProto()->SpellName[GetSessionDbcLocale()];
-
if (m_session)
{
std::ostringstream ss_name;
ss_name << "|cffffffff|Hspell:" << itr->second->GetId() << "|h[" << name << "]|h|r";
-
PSendSysMessage(LANG_COMMAND_TARGET_AURADETAIL, itr->second->GetId(), itr->second->GetEffectMask(),
itr->second->GetAuraCharges(), itr->second->GetStackAmount(),itr->second->GetAuraSlot(),
itr->second->GetAuraDuration(), itr->second->GetAuraMaxDuration(),
@@ -5133,50 +4405,40 @@ bool ChatHandler::HandleListAurasCommand (const char * /*args*/)
for (Unit::AuraEffectList::const_iterator itr = uAuraList.begin(); itr != uAuraList.end(); ++itr)
{
bool talent = GetTalentSpellCost((*itr)->GetId()) > 0;
-
char const* name = (*itr)->GetSpellProto()->SpellName[GetSessionDbcLocale()];
-
std::ostringstream ss_name;
ss_name << "|cffffffff|Hspell:" << (*itr)->GetId() << "|h[" << name << "]|h|r";
-
PSendSysMessage(LANG_COMMAND_TARGET_AURASIMPLE, (*itr)->GetId(), (*itr)->GetEffIndex(),
(*itr)->GetAmount());
}
}
return true;
}
-
bool ChatHandler::HandleResetAchievementsCommand (const char * args)
{
Player* target;
uint64 target_guid;
if (!extractPlayerTarget((char*)args,&target,&target_guid))
return false;
-
if(target)
target->GetAchievementMgr().Reset();
else
AchievementMgr::DeleteFromDB(GUID_LOPART(target_guid));
-
return true;
}
-
bool ChatHandler::HandleResetHonorCommand (const char * args)
{
Player* target;
if (!extractPlayerTarget((char*)args,&target))
return false;
-
target->SetUInt32Value(PLAYER_FIELD_KILLS, 0);
target->SetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS, 0);
target->SetUInt32Value(PLAYER_FIELD_HONOR_CURRENCY, 0);
target->SetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION, 0);
target->SetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION, 0);
target->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL);
-
return true;
}
-
static bool HandleResetStatsOrLevelHelper(Player* player)
{
ChrClassesEntry const* cEntry = sChrClassesStore.LookupEntry(player->getClass());
@@ -5185,52 +4447,37 @@ static bool HandleResetStatsOrLevelHelper(Player* player)
sLog.outError("Class %u not found in DBC (Wrong DBC files?)",player->getClass());
return false;
}
-
uint8 powertype = cEntry->powerType;
-
// reset m_form if no aura
if(!player->HasAuraType(SPELL_AURA_MOD_SHAPESHIFT))
player->m_form = FORM_NONE;
-
player->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, DEFAULT_WORLD_OBJECT_SIZE );
player->SetFloatValue(UNIT_FIELD_COMBATREACH, DEFAULT_COMBAT_REACH );
-
player->setFactionForRace(player->getRace());
-
player->SetUInt32Value(UNIT_FIELD_BYTES_0, ( ( player->getRace() ) | ( player->getClass() << 8 ) | ( player->getGender() << 16 ) | ( powertype << 24 ) ) );
-
// reset only if player not in some form;
if(player->m_form==FORM_NONE)
player->InitDisplayIds();
-
player->SetByteValue(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_PVP );
player->SetByteValue(UNIT_FIELD_BYTES_2, 3, player->m_form);
-
player->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE);
-
//-1 is default value
player->SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, uint32(-1));
-
//player->SetUInt32Value(PLAYER_FIELD_BYTES, 0xEEE00000 );
return true;
}
-
bool ChatHandler::HandleResetLevelCommand(const char * args)
{
Player* target;
if(!extractPlayerTarget((char*)args,&target))
return false;
-
if(!HandleResetStatsOrLevelHelper(target))
return false;
-
// set starting level
uint32 start_level = target->getClass() != CLASS_DEATH_KNIGHT
? sWorld.getConfig(CONFIG_START_PLAYER_LEVEL)
: sWorld.getConfig(CONFIG_START_HEROIC_PLAYER_LEVEL);
-
target->_ApplyAllLevelScaleItemMods(false);
-
target->SetLevel(start_level);
target->InitRunes();
target->InitStatsForLevel(true);
@@ -5238,34 +4485,26 @@ bool ChatHandler::HandleResetLevelCommand(const char * args)
target->InitGlyphsForLevel();
target->InitTalentForLevel();
target->SetUInt32Value(PLAYER_XP,0);
-
target->_ApplyAllLevelScaleItemMods(true);
-
// reset level for pet
if(Pet* pet = target->GetPet())
pet->SynchronizeLevelWithOwner();
-
return true;
}
-
bool ChatHandler::HandleResetStatsCommand(const char * args)
{
Player* target;
if (!extractPlayerTarget((char*)args,&target))
return false;
-
if (!HandleResetStatsOrLevelHelper(target))
return false;
-
target->InitRunes();
target->InitStatsForLevel(true);
target->InitTaxiNodesForLevel();
target->InitGlyphsForLevel();
target->InitTalentForLevel();
-
return true;
}
-
bool ChatHandler::HandleResetSpellsCommand(const char * args)
{
Player* target;
@@ -5273,11 +4512,9 @@ bool ChatHandler::HandleResetSpellsCommand(const char * args)
std::string target_name;
if(!extractPlayerTarget((char*)args,&target,&target_guid,&target_name))
return false;
-
if(target)
{
target->resetSpells(/* bool myClassOnly */);
-
ChatHandler(target).SendSysMessage(LANG_RESET_SPELLS);
if(!m_session || m_session->GetPlayer() != target)
PSendSysMessage(LANG_RESET_SPELLS_ONLINE,GetNameLink(target).c_str());
@@ -5287,10 +4524,8 @@ bool ChatHandler::HandleResetSpellsCommand(const char * args)
CharacterDatabase.PExecute("UPDATE characters SET at_login = at_login | '%u' WHERE guid = '%u'",uint32(AT_LOGIN_RESET_SPELLS), GUID_LOPART(target_guid));
PSendSysMessage(LANG_RESET_SPELLS_OFFLINE,target_name.c_str());
}
-
return true;
}
-
bool ChatHandler::HandleResetTalentsCommand(const char * args)
{
Player* target;
@@ -5307,19 +4542,16 @@ bool ChatHandler::HandleResetTalentsCommand(const char * args)
{
((Pet *)creature)->resetTalents(true);
((Player*)owner)->SendTalentsInfoData(true);
-
ChatHandler((Player*)owner).SendSysMessage(LANG_RESET_PET_TALENTS);
if(!m_session || m_session->GetPlayer()!=((Player*)owner))
PSendSysMessage(LANG_RESET_PET_TALENTS_ONLINE,GetNameLink((Player*)owner).c_str());
}
return true;
}
-
SendSysMessage(LANG_NO_CHAR_SELECTED);
SetSentErrorMessage(true);
return false;
}
-
if (target)
{
target->resetTalents(true);
@@ -5327,7 +4559,6 @@ bool ChatHandler::HandleResetTalentsCommand(const char * args)
ChatHandler(target).SendSysMessage(LANG_RESET_TALENTS);
if (!m_session || m_session->GetPlayer()!=target)
PSendSysMessage(LANG_RESET_TALENTS_ONLINE,GetNameLink(target).c_str());
-
Pet* pet = target->GetPet();
Pet::resetTalentsForAllPetsOf(target,pet);
if(pet)
@@ -5342,21 +4573,16 @@ bool ChatHandler::HandleResetTalentsCommand(const char * args)
PSendSysMessage(LANG_RESET_TALENTS_OFFLINE,nameLink.c_str());
return true;
}
-
SendSysMessage(LANG_NO_CHAR_SELECTED);
SetSentErrorMessage(true);
return false;
}
-
bool ChatHandler::HandleResetAllCommand(const char * args)
{
if(!*args)
return false;
-
std::string casename = args;
-
AtLoginFlags atLogin;
-
// Command specially created as single command to prevent using short case names
if(casename=="spells")
{
@@ -5378,161 +4604,125 @@ bool ChatHandler::HandleResetAllCommand(const char * args)
SetSentErrorMessage(true);
return false;
}
-
CharacterDatabase.PExecute("UPDATE characters SET at_login = at_login | '%u' WHERE (at_login & '%u') = '0'",atLogin,atLogin);
HashMapHolder<Player>::MapType const& plist = ObjectAccessor::Instance().GetPlayers();
for(HashMapHolder<Player>::MapType::const_iterator itr = plist.begin(); itr != plist.end(); ++itr)
itr->second->SetAtLoginFlag(atLogin);
-
return true;
}
-
bool ChatHandler::HandleServerShutDownCancelCommand(const char* /*args*/)
{
sWorld.ShutdownCancel();
return true;
}
-
bool ChatHandler::HandleServerShutDownCommand(const char* args)
{
if(!*args)
return false;
-
char* time_str = strtok ((char*) args, " ");
char* exitcode_str = strtok (NULL, "");
-
int32 time = atoi (time_str);
-
///- Prevent interpret wrong arg value as 0 secs shutdown time
if ((time == 0 && (time_str[0]!='0' || time_str[1]!='\0')) || time < 0)
return false;
-
if (exitcode_str)
{
int32 exitcode = atoi (exitcode_str);
-
// Handle atoi() errors
if (exitcode == 0 && (exitcode_str[0] != '0' || exitcode_str[1] != '\0'))
return false;
-
// Exit code should be in range of 0-125, 126-255 is used
// in many shells for their own return codes and code > 255
// is not supported in many others
if (exitcode < 0 || exitcode > 125)
return false;
-
sWorld.ShutdownServ (time, 0, exitcode);
}
else
sWorld.ShutdownServ(time,0,SHUTDOWN_EXIT_CODE);
return true;
}
-
bool ChatHandler::HandleServerRestartCommand(const char* args)
{
if(!*args)
return false;
-
char* time_str = strtok ((char*) args, " ");
char* exitcode_str = strtok (NULL, "");
-
int32 time = atoi (time_str);
-
///- Prevent interpret wrong arg value as 0 secs shutdown time
if ((time == 0 && (time_str[0]!='0' || time_str[1]!='\0') || time < 0))
return false;
-
if (exitcode_str)
{
int32 exitcode = atoi (exitcode_str);
-
// Handle atoi() errors
if (exitcode == 0 && (exitcode_str[0] != '0' || exitcode_str[1] != '\0'))
return false;
-
// Exit code should be in range of 0-125, 126-255 is used
// in many shells for their own return codes and code > 255
// is not supported in many others
if (exitcode < 0 || exitcode > 125)
return false;
-
sWorld.ShutdownServ (time, SHUTDOWN_MASK_RESTART, exitcode);
}
else
sWorld.ShutdownServ(time, SHUTDOWN_MASK_RESTART, RESTART_EXIT_CODE);
return true;
}
-
bool ChatHandler::HandleServerIdleRestartCommand(const char* args)
{
if(!*args)
return false;
-
char* time_str = strtok ((char*) args, " ");
char* exitcode_str = strtok (NULL, "");
-
int32 time = atoi (time_str);
-
///- Prevent interpret wrong arg value as 0 secs shutdown time
if ((time == 0 && (time_str[0]!='0' || time_str[1]!='\0') || time < 0))
return false;
-
if (exitcode_str)
{
int32 exitcode = atoi (exitcode_str);
-
// Handle atoi() errors
if (exitcode == 0 && (exitcode_str[0] != '0' || exitcode_str[1] != '\0'))
return false;
-
// Exit code should be in range of 0-125, 126-255 is used
// in many shells for their own return codes and code > 255
// is not supported in many others
if (exitcode < 0 || exitcode > 125)
return false;
-
sWorld.ShutdownServ (time, SHUTDOWN_MASK_RESTART|SHUTDOWN_MASK_IDLE, exitcode);
}
else
sWorld.ShutdownServ(time,SHUTDOWN_MASK_RESTART|SHUTDOWN_MASK_IDLE,RESTART_EXIT_CODE);
return true;
}
-
bool ChatHandler::HandleServerIdleShutDownCommand(const char* args)
{
if(!*args)
return false;
-
char* time_str = strtok ((char*) args, " ");
char* exitcode_str = strtok (NULL, "");
-
int32 time = atoi (time_str);
-
///- Prevent interpret wrong arg value as 0 secs shutdown time
if(time == 0 && (time_str[0]!='0' || time_str[1]!='\0') || time < 0)
return false;
-
if (exitcode_str)
{
int32 exitcode = atoi (exitcode_str);
-
// Handle atoi() errors
if (exitcode == 0 && (exitcode_str[0] != '0' || exitcode_str[1] != '\0'))
return false;
-
// Exit code should be in range of 0-125, 126-255 is used
// in many shells for their own return codes and code > 255
// is not supported in many others
if (exitcode < 0 || exitcode > 125)
return false;
-
sWorld.ShutdownServ (time, SHUTDOWN_MASK_IDLE, exitcode);
}
else
sWorld.ShutdownServ(time,SHUTDOWN_MASK_IDLE,SHUTDOWN_EXIT_CODE);
return true;
}
-
bool ChatHandler::HandleQuestAdd(const char* args)
{
Player* player = getSelectedPlayer();
@@ -5542,31 +4732,25 @@ bool ChatHandler::HandleQuestAdd(const char* args)
SetSentErrorMessage(true);
return false;
}
-
// .addquest #entry'
// number or [name] Shift-click form |color|Hquest:quest_id:quest_level|h[name]|h|r
char* cId = extractKeyFromLink((char*)args,"Hquest");
if(!cId)
return false;
-
uint32 entry = atol(cId);
-
Quest const* pQuest = objmgr.GetQuestTemplate(entry);
-
if(!pQuest)
{
PSendSysMessage(LANG_COMMAND_QUEST_NOTFOUND,entry);
SetSentErrorMessage(true);
return false;
}
-
// check item starting quest (it can work incorrectly if added without item in inventory)
for (uint32 id = 0; id < sItemStorage.MaxEntry; id++)
{
ItemPrototype const *pProto = sItemStorage.LookupEntry<ItemPrototype>(id);
if (!pProto)
continue;
-
if (pProto->StartQuest == entry)
{
PSendSysMessage(LANG_COMMAND_QUEST_STARTFROMITEM, entry, pProto->ItemId);
@@ -5574,19 +4758,15 @@ bool ChatHandler::HandleQuestAdd(const char* args)
return false;
}
}
-
// ok, normal (creature/GO starting) quest
if( player->CanAddQuest( pQuest, true ) )
{
player->AddQuest( pQuest, NULL );
-
if ( player->CanCompleteQuest( entry ) )
player->CompleteQuest( entry );
}
-
return true;
}
-
bool ChatHandler::HandleQuestRemove(const char* args)
{
Player* player = getSelectedPlayer();
@@ -5596,24 +4776,19 @@ bool ChatHandler::HandleQuestRemove(const char* args)
SetSentErrorMessage(true);
return false;
}
-
// .removequest #entry'
// number or [name] Shift-click form |color|Hquest:quest_id:quest_level|h[name]|h|r
char* cId = extractKeyFromLink((char*)args,"Hquest");
if(!cId)
return false;
-
uint32 entry = atol(cId);
-
Quest const* pQuest = objmgr.GetQuestTemplate(entry);
-
if(!pQuest)
{
PSendSysMessage(LANG_COMMAND_QUEST_NOTFOUND, entry);
SetSentErrorMessage(true);
return false;
}
-
// remove all quest entries for 'entry' from quest log
for(uint8 slot = 0; slot < MAX_QUEST_LOG_SIZE; ++slot )
{
@@ -5621,22 +4796,17 @@ bool ChatHandler::HandleQuestRemove(const char* args)
if(quest==entry)
{
player->SetQuestSlot(slot,0);
-
// we ignore unequippable quest items in this case, its' still be equipped
player->TakeQuestSourceItem( quest, false );
}
}
-
// set quest status to not started (will updated in DB at next save)
player->SetQuestStatus( entry, QUEST_STATUS_NONE);
-
// reset rewarded for restart repeatable quest
player->getQuestStatusMap()[entry].m_rewarded = false;
-
SendSysMessage(LANG_COMMAND_QUEST_REMOVED);
return true;
}
-
bool ChatHandler::HandleQuestComplete(const char* args)
{
Player* player = getSelectedPlayer();
@@ -5646,17 +4816,13 @@ bool ChatHandler::HandleQuestComplete(const char* args)
SetSentErrorMessage(true);
return false;
}
-
// .quest complete #entry
// number or [name] Shift-click form |color|Hquest:quest_id:quest_level|h[name]|h|r
char* cId = extractKeyFromLink((char*)args,"Hquest");
if(!cId)
return false;
-
uint32 entry = atol(cId);
-
Quest const* pQuest = objmgr.GetQuestTemplate(entry);
-
// If player doesn't have the quest
if(!pQuest || player->GetQuestStatus(entry) == QUEST_STATUS_NONE)
{
@@ -5664,7 +4830,6 @@ bool ChatHandler::HandleQuestComplete(const char* args)
SetSentErrorMessage(true);
return false;
}
-
// Add quest items for quests that require items
for(uint8 x = 0; x < QUEST_OBJECTIVES_COUNT; ++x)
{
@@ -5672,9 +4837,7 @@ bool ChatHandler::HandleQuestComplete(const char* args)
uint32 count = pQuest->ReqItemCount[x];
if(!id || !count)
continue;
-
uint32 curItemCount = player->GetItemCount(id,true);
-
ItemPosCountVec dest;
uint8 msg = player->CanStoreNewItem( NULL_BAG, NULL_SLOT, dest, id, count-curItemCount );
if( msg == EQUIP_ERR_OK )
@@ -5683,13 +4846,11 @@ bool ChatHandler::HandleQuestComplete(const char* args)
player->SendNewItem(item,count-curItemCount,true,false);
}
}
-
// All creature/GO slain/casted (not required, but otherwise it will display "Creature slain 0/10")
for(uint8 i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
{
uint32 creature = pQuest->ReqCreatureOrGOId[i];
uint32 creaturecount = pQuest->ReqCreatureOrGOCount[i];
-
if(uint32 spell_id = pQuest->ReqSpell[i])
{
for(uint16 z = 0; z < creaturecount; ++z)
@@ -5707,7 +4868,6 @@ bool ChatHandler::HandleQuestComplete(const char* args)
player->CastedCreatureOrGO(creature,0,0);
}
}
-
// If the quest requires reputation to complete
if(uint32 repFaction = pQuest->GetRepObjectiveFaction())
{
@@ -5717,50 +4877,39 @@ bool ChatHandler::HandleQuestComplete(const char* args)
if(FactionEntry const *factionEntry = sFactionStore.LookupEntry(repFaction))
player->GetReputationMgr().SetReputation(factionEntry,repValue);
}
-
// If the quest requires money
int32 ReqOrRewMoney = pQuest->GetRewOrReqMoney();
if(ReqOrRewMoney < 0)
player->ModifyMoney(-ReqOrRewMoney);
-
player->CompleteQuest(entry);
return true;
}
-
bool ChatHandler::HandleBanAccountCommand(const char* args)
{
return HandleBanHelper(BAN_ACCOUNT,args);
}
-
bool ChatHandler::HandleBanCharacterCommand(const char* args)
{
return HandleBanHelper(BAN_CHARACTER,args);
}
-
bool ChatHandler::HandleBanIPCommand(const char* args)
{
return HandleBanHelper(BAN_IP,args);
}
-
bool ChatHandler::HandleBanHelper(BanMode mode, const char* args)
{
if (!*args)
return false;
-
char* cnameOrIP = strtok ((char*)args, " ");
if (!cnameOrIP)
return false;
-
std::string nameOrIP = cnameOrIP;
-
char* duration = strtok (NULL," ");
if(!duration || !atoi(duration))
return false;
-
char* reason = strtok (NULL,"");
if(!reason)
return false;
-
switch(mode)
{
case BAN_ACCOUNT:
@@ -5784,7 +4933,6 @@ bool ChatHandler::HandleBanHelper(BanMode mode, const char* args)
return false;
break;
}
-
switch(sWorld.BanAccount(mode, nameOrIP, duration, reason,m_session ? m_session->GetPlayerName() : ""))
{
case BAN_SUCCESS:
@@ -5811,36 +4959,28 @@ bool ChatHandler::HandleBanHelper(BanMode mode, const char* args)
SetSentErrorMessage(true);
return false;
}
-
return true;
}
-
bool ChatHandler::HandleUnBanAccountCommand(const char* args)
{
return HandleUnBanHelper(BAN_ACCOUNT,args);
}
-
bool ChatHandler::HandleUnBanCharacterCommand(const char* args)
{
return HandleUnBanHelper(BAN_CHARACTER,args);
}
-
bool ChatHandler::HandleUnBanIPCommand(const char* args)
{
return HandleUnBanHelper(BAN_IP,args);
}
-
bool ChatHandler::HandleUnBanHelper(BanMode mode, const char* args)
{
if (!*args)
return false;
-
char* cnameOrIP = strtok ((char*)args, " ");
if(!cnameOrIP)
return false;
-
std::string nameOrIP = cnameOrIP;
-
switch(mode)
{
case BAN_ACCOUNT:
@@ -5864,24 +5004,19 @@ bool ChatHandler::HandleUnBanHelper(BanMode mode, const char* args)
return false;
break;
}
-
if(sWorld.RemoveBanAccount(mode,nameOrIP))
PSendSysMessage(LANG_UNBAN_UNBANNED,nameOrIP.c_str());
else
PSendSysMessage(LANG_UNBAN_ERROR,nameOrIP.c_str());
-
return true;
}
-
bool ChatHandler::HandleBanInfoAccountCommand(const char* args)
{
if (!*args)
return false;
-
char* cname = strtok((char*)args, "");
if(!cname)
return false;
-
std::string account_name = cname;
if(!AccountMgr::normalizeString(account_name))
{
@@ -5889,36 +5024,29 @@ bool ChatHandler::HandleBanInfoAccountCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
uint32 accountid = accmgr.GetId(account_name);
if(!accountid)
{
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,account_name.c_str());
return true;
}
-
return HandleBanInfoHelper(accountid,account_name.c_str());
}
-
bool ChatHandler::HandleBanInfoCharacterCommand(const char* args)
{
Player* target;
uint64 target_guid;
if(!extractPlayerTarget((char*)args,&target,&target_guid))
return false;
-
uint32 accountid = target ? target->GetSession()->GetAccountId() : objmgr.GetPlayerAccountIdByGUID(target_guid);
-
std::string accountname;
if(!accmgr.GetName(accountid,accountname))
{
PSendSysMessage(LANG_BANINFO_NOCHARACTER);
return true;
}
-
return HandleBanInfoHelper(accountid,accountname.c_str());
}
-
bool ChatHandler::HandleBanInfoHelper(uint32 accountid, char const* accountname)
{
QueryResult *result = loginDatabase.PQuery("SELECT FROM_UNIXTIME(bandate), unbandate-bandate, active, unbandate,banreason,bannedby FROM account_banned WHERE id = '%u' ORDER BY bandate ASC",accountid);
@@ -5927,12 +5055,10 @@ bool ChatHandler::HandleBanInfoHelper(uint32 accountid, char const* accountname)
PSendSysMessage(LANG_BANINFO_NOACCOUNTBAN, accountname);
return true;
}
-
PSendSysMessage(LANG_BANINFO_BANHISTORY,accountname);
do
{
Field* fields = result->Fetch();
-
time_t unbandate = time_t(fields[3].GetUInt64());
bool active = false;
if(fields[2].GetBool() && (fields[1].GetUInt64() == (uint64)0 ||unbandate >= time(NULL)) )
@@ -5942,25 +5068,19 @@ bool ChatHandler::HandleBanInfoHelper(uint32 accountid, char const* accountname)
PSendSysMessage(LANG_BANINFO_HISTORYENTRY,
fields[0].GetString(), bantime.c_str(), active ? GetTrinityString(LANG_BANINFO_YES):GetTrinityString(LANG_BANINFO_NO), fields[4].GetString(), fields[5].GetString());
}while (result->NextRow());
-
delete result;
return true;
}
-
bool ChatHandler::HandleBanInfoIPCommand(const char* args)
{
if (!*args)
return false;
-
char* cIP = strtok ((char*)args, "");
if(!cIP)
return false;
-
if (!IsIPAddress(cIP))
return false;
-
std::string IP = cIP;
-
loginDatabase.escape_string(IP);
QueryResult *result = loginDatabase.PQuery("SELECT ip, FROM_UNIXTIME(bandate), FROM_UNIXTIME(unbandate), unbandate-UNIX_TIMESTAMP(), banreason,bannedby,unbandate-bandate FROM ip_banned WHERE ip = '%s'",IP.c_str());
if(!result)
@@ -5968,7 +5088,6 @@ bool ChatHandler::HandleBanInfoIPCommand(const char* args)
PSendSysMessage(LANG_BANINFO_NOIP);
return true;
}
-
Field *fields = result->Fetch();
bool permanent = !fields[6].GetUInt64();
PSendSysMessage(LANG_BANINFO_IPENTRY,
@@ -5977,15 +5096,12 @@ bool ChatHandler::HandleBanInfoIPCommand(const char* args)
delete result;
return true;
}
-
bool ChatHandler::HandleBanListCharacterCommand(const char* args)
{
loginDatabase.Execute("DELETE FROM ip_banned WHERE unbandate<=UNIX_TIMESTAMP() AND unbandate<>bandate");
-
char* cFilter = strtok ((char*)args, " ");
if(!cFilter)
return false;
-
std::string filter = cFilter;
loginDatabase.escape_string(filter);
QueryResult* result = CharacterDatabase.PQuery("SELECT account FROM characters WHERE name "_LIKE_" "_CONCAT3_("'%%'","'%s'","'%%'"),filter.c_str());
@@ -5994,20 +5110,15 @@ bool ChatHandler::HandleBanListCharacterCommand(const char* args)
PSendSysMessage(LANG_BANLIST_NOCHARACTER);
return true;
}
-
return HandleBanListHelper(result);
}
-
bool ChatHandler::HandleBanListAccountCommand(const char* args)
{
loginDatabase.Execute("DELETE FROM ip_banned WHERE unbandate<=UNIX_TIMESTAMP() AND unbandate<>bandate");
-
char* cFilter = strtok((char*)args, " ");
std::string filter = cFilter ? cFilter : "";
loginDatabase.escape_string(filter);
-
QueryResult* result;
-
if(filter.empty())
{
result = loginDatabase.Query("SELECT account.id, username FROM account, account_banned"
@@ -6019,20 +5130,16 @@ bool ChatHandler::HandleBanListAccountCommand(const char* args)
" WHERE account.id = account_banned.id AND active = 1 AND username "_LIKE_" "_CONCAT3_("'%%'","'%s'","'%%'")" GROUP BY account.id",
filter.c_str());
}
-
if (!result)
{
PSendSysMessage(LANG_BANLIST_NOACCOUNT);
return true;
}
-
return HandleBanListHelper(result);
}
-
bool ChatHandler::HandleBanListHelper(QueryResult* result)
{
PSendSysMessage(LANG_BANLIST_MATCHINGACCOUNT);
-
// Chat short output
if(m_session)
{
@@ -6040,7 +5147,6 @@ bool ChatHandler::HandleBanListHelper(QueryResult* result)
{
Field* fields = result->Fetch();
uint32 accountid = fields[0].GetUInt32();
-
QueryResult* banresult = loginDatabase.PQuery("SELECT account.username FROM account,account_banned WHERE account_banned.id='%u' AND account_banned.id=account.id",accountid);
if(banresult)
{
@@ -6061,16 +5167,13 @@ bool ChatHandler::HandleBanListHelper(QueryResult* result)
SendSysMessage("-------------------------------------------------------------------------------");
Field *fields = result->Fetch();
uint32 account_id = fields[0].GetUInt32 ();
-
std::string account_name;
-
// "account" case, name can be get in same query
if(result->GetFieldCount() > 1)
account_name = fields[1].GetCppString();
// "character" case, name need extract from another DB
else
accmgr.GetName (account_id,account_name);
-
// No SQL injection. id is uint32.
QueryResult *banInfo = loginDatabase.PQuery("SELECT bandate,unbandate,bannedby,banreason FROM account_banned WHERE id = %u ORDER BY unbandate", account_id);
if (banInfo)
@@ -6080,7 +5183,6 @@ bool ChatHandler::HandleBanListHelper(QueryResult* result)
{
time_t t_ban = fields2[0].GetUInt64();
tm* aTm_ban = localtime(&t_ban);
-
if (fields2[0].GetUInt64() == fields2[1].GetUInt64())
{
PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d| permanent |%-15.15s|%-15.15s|",
@@ -6102,21 +5204,16 @@ bool ChatHandler::HandleBanListHelper(QueryResult* result)
}while( result->NextRow() );
SendSysMessage("===============================================================================");
}
-
delete result;
return true;
}
-
bool ChatHandler::HandleBanListIPCommand(const char* args)
{
loginDatabase.Execute("DELETE FROM ip_banned WHERE unbandate<=UNIX_TIMESTAMP() AND unbandate<>bandate");
-
char* cFilter = strtok((char*)args, " ");
std::string filter = cFilter ? cFilter : "";
loginDatabase.escape_string(filter);
-
QueryResult* result;
-
if(filter.empty())
{
result = loginDatabase.Query ("SELECT ip,bandate,unbandate,bannedby,banreason FROM ip_banned"
@@ -6129,13 +5226,11 @@ bool ChatHandler::HandleBanListIPCommand(const char* args)
" WHERE (bandate=unbandate OR unbandate>UNIX_TIMESTAMP()) AND ip "_LIKE_" "_CONCAT3_("'%%'","'%s'","'%%'")
" ORDER BY unbandate",filter.c_str() );
}
-
if(!result)
{
PSendSysMessage(LANG_BANLIST_NOIP);
return true;
}
-
PSendSysMessage(LANG_BANLIST_MATCHINGIP);
// Chat short output
if(m_session)
@@ -6176,15 +5271,12 @@ bool ChatHandler::HandleBanListIPCommand(const char* args)
}while( result->NextRow() );
SendSysMessage("===============================================================================");
}
-
delete result;
return true;
}
-
bool ChatHandler::HandleRespawnCommand(const char* /*args*/)
{
Player* pl = m_session->GetPlayer();
-
// accept only explicitly selected target (not implicitly self targeting case)
Unit* target = getSelectedUnit();
if(pl->GetSelection() && target)
@@ -6195,36 +5287,28 @@ bool ChatHandler::HandleRespawnCommand(const char* /*args*/)
SetSentErrorMessage(true);
return false;
}
-
if(target->isDead())
((Creature*)target)->Respawn();
return true;
}
-
CellPair p(Trinity::ComputeCellPair(pl->GetPositionX(), pl->GetPositionY()));
Cell cell(p);
cell.data.Part.reserved = ALL_DISTRICT;
cell.SetNoCreate();
-
MaNGOS::RespawnDo u_do;
MaNGOS::WorldObjectWorker<MaNGOS::RespawnDo> worker(pl,u_do);
-
TypeContainerVisitor<Trinity::WorldObjectWorker<Trinity::RespawnDo>, GridTypeMapContainer > obj_worker(worker);
CellLock<GridReadGuard> cell_lock(cell, p);
cell_lock->Visit(cell_lock, obj_worker, *pl->GetMap());
-
return true;
}
-
bool ChatHandler::HandleGMFlyCommand(const char* args)
{
if (!*args)
return false;
-
Player *target = getSelectedPlayer();
if (!target)
target = m_session->GetPlayer();
-
WorldPacket data(12);
if (strncmp(args, "on", 3) == 0)
data.SetOpcode(SMSG_MOVE_SET_CAN_FLY);
@@ -6241,20 +5325,16 @@ bool ChatHandler::HandleGMFlyCommand(const char* args)
PSendSysMessage(LANG_COMMAND_FLYMODE_STATUS, GetNameLink(target).c_str(), args);
return true;
}
-
bool ChatHandler::HandlePDumpLoadCommand(const char *args)
{
if (!*args)
return false;
-
char * file = strtok((char*)args, " ");
if(!file)
return false;
-
char * account = strtok(NULL, " ");
if(!account)
return false;
-
std::string account_name = account;
if(!AccountMgr::normalizeString(account_name))
{
@@ -6262,7 +5342,6 @@ bool ChatHandler::HandlePDumpLoadCommand(const char *args)
SetSentErrorMessage(true);
return false;
}
-
uint32 account_id = accmgr.GetId(account_name);
if(!account_id)
{
@@ -6274,17 +5353,14 @@ bool ChatHandler::HandlePDumpLoadCommand(const char *args)
return false;
}
}
-
if(!accmgr.GetName(account_id,account_name))
{
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,account_name.c_str());
SetSentErrorMessage(true);
return false;
}
-
char* guid_str = NULL;
char* name_str = strtok(NULL, " ");
-
std::string name;
if (name_str)
{
@@ -6296,19 +5372,15 @@ bool ChatHandler::HandlePDumpLoadCommand(const char *args)
SetSentErrorMessage(true);
return false;
}
-
if (ObjectMgr::CheckPlayerName(name,true) != CHAR_NAME_SUCCESS)
{
PSendSysMessage(LANG_INVALID_CHARACTER_NAME);
SetSentErrorMessage(true);
return false;
}
-
guid_str = strtok(NULL, " ");
}
-
uint32 guid = 0;
-
if (guid_str)
{
guid = atoi(guid_str);
@@ -6318,7 +5390,6 @@ bool ChatHandler::HandlePDumpLoadCommand(const char *args)
SetSentErrorMessage(true);
return false;
}
-
if (objmgr.GetPlayerAccountIdByGUID(guid))
{
PSendSysMessage(LANG_CHARACTER_GUID_IN_USE,guid);
@@ -6326,7 +5397,6 @@ bool ChatHandler::HandlePDumpLoadCommand(const char *args)
return false;
}
}
-
switch(PlayerDumpReader().LoadDump(file, account_id, name, guid))
{
case DUMP_SUCCESS:
@@ -6349,21 +5419,16 @@ bool ChatHandler::HandlePDumpLoadCommand(const char *args)
SetSentErrorMessage(true);
return false;
}
-
return true;
}
-
bool ChatHandler::HandlePDumpWriteCommand(const char *args)
{
if (!*args)
return false;
-
char* file = strtok((char*)args, " ");
char* p2 = strtok(NULL, " ");
-
if(!file || !p2)
return false;
-
uint32 guid;
// character name can't start from number
if (isNumeric(p2[0]))
@@ -6377,17 +5442,14 @@ bool ChatHandler::HandlePDumpWriteCommand(const char *args)
SetSentErrorMessage(true);
return false;
}
-
guid = objmgr.GetPlayerGUIDByName(name);
}
-
if(!objmgr.GetPlayerAccountIdByGUID(guid))
{
PSendSysMessage(LANG_PLAYER_NOT_FOUND);
SetSentErrorMessage(true);
return false;
}
-
switch(PlayerDumpWriter().WriteDump(file, guid))
{
case DUMP_SUCCESS:
@@ -6402,10 +5464,8 @@ bool ChatHandler::HandlePDumpWriteCommand(const char *args)
SetSentErrorMessage(true);
return false;
}
-
return true;
}
-
bool ChatHandler::HandleMovegensCommand(const char* /*args*/)
{
Unit* unit = getSelectedUnit();
@@ -6415,9 +5475,7 @@ bool ChatHandler::HandleMovegensCommand(const char* /*args*/)
SetSentErrorMessage(true);
return false;
}
-
PSendSysMessage(LANG_MOVEGENS_LIST,(unit->GetTypeId()==TYPEID_PLAYER ? "Player" : "Creature" ),unit->GetGUIDLow());
-
MotionMaster* mm = unit->GetMotionMaster();
for(uint8 i = 0; i < MAX_MOTION_SLOT; ++i)
{
@@ -6483,7 +5541,6 @@ bool ChatHandler::HandleMovegensCommand(const char* /*args*/)
}
return true;
}
-
bool ChatHandler::HandleServerPLimitCommand(const char *args)
{
if(*args)
@@ -6491,9 +5548,7 @@ bool ChatHandler::HandleServerPLimitCommand(const char *args)
char* param = strtok((char*)args, " ");
if(!param)
return false;
-
int l = strlen(param);
-
if( strncmp(param,"player",l) == 0 )
sWorld.SetPlayerLimit(-SEC_PLAYER);
else if(strncmp(param,"moderator",l) == 0 )
@@ -6508,15 +5563,12 @@ bool ChatHandler::HandleServerPLimitCommand(const char *args)
{
int val = atoi(param);
if(val < -SEC_ADMINISTRATOR) val = -SEC_ADMINISTRATOR;
-
sWorld.SetPlayerLimit(val);
}
-
// kick all low security level players
if(sWorld.GetPlayerAmountLimit() > SEC_PLAYER)
sWorld.KickAllLess(sWorld.GetPlayerSecurityLimit());
}
-
uint32 pLimit = sWorld.GetPlayerAmountLimit();
AccountTypes allowedAccountType = sWorld.GetPlayerSecurityLimit();
char const* secName = "";
@@ -6528,42 +5580,33 @@ bool ChatHandler::HandleServerPLimitCommand(const char *args)
case SEC_ADMINISTRATOR: secName = "Administrator"; break;
default: secName = "<unknown>"; break;
}
-
PSendSysMessage("Player limits: amount %u, min. security level %s.",pLimit,secName);
-
return true;
}
-
bool ChatHandler::HandleCastCommand(const char* args)
{
if(!*args)
return false;
-
Unit* target = getSelectedUnit();
-
if(!target)
{
SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
SetSentErrorMessage(true);
return false;
}
-
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spell = extractSpellIdFromLink((char*)args);
if(!spell)
return false;
-
SpellEntry const* spellInfo = sSpellStore.LookupEntry(spell);
if(!spellInfo)
return false;
-
if(!SpellMgr::IsSpellValid(spellInfo,m_session->GetPlayer()))
{
PSendSysMessage(LANG_COMMAND_SPELL_BROKEN,spell);
SetSentErrorMessage(true);
return false;
}
-
char* trig_str = strtok(NULL, " ");
if(trig_str)
{
@@ -6571,31 +5614,24 @@ bool ChatHandler::HandleCastCommand(const char* args)
if(strncmp(trig_str,"triggered",l) != 0 )
return false;
}
-
bool triggered = (trig_str != NULL);
-
m_session->GetPlayer()->CastSpell(target,spell,triggered);
-
return true;
}
-
bool ChatHandler::HandleCastBackCommand(const char* args)
{
Creature* caster = getSelectedCreature();
-
if(!caster)
{
SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
SetSentErrorMessage(true);
return false;
}
-
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spell = extractSpellIdFromLink((char*)args);
if(!spell || !sSpellStore.LookupEntry(spell))
return false;
-
char* trig_str = strtok(NULL, " ");
if(trig_str)
{
@@ -6603,50 +5639,37 @@ bool ChatHandler::HandleCastBackCommand(const char* args)
if(strncmp(trig_str,"triggered",l) != 0 )
return false;
}
-
bool triggered = (trig_str != NULL);
-
// update orientation at server
caster->SetOrientation(caster->GetAngle(m_session->GetPlayer()));
-
// and client
WorldPacket data;
caster->BuildHeartBeatMsg(&data);
caster->SendMessageToSet(&data,true);
-
caster->CastSpell(m_session->GetPlayer(),spell,triggered);
-
return true;
}
-
bool ChatHandler::HandleCastDistCommand(const char* args)
{
if(!*args)
return false;
-
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spell = extractSpellIdFromLink((char*)args);
if(!spell)
return false;
-
SpellEntry const* spellInfo = sSpellStore.LookupEntry(spell);
if(!spellInfo)
return false;
-
if(!SpellMgr::IsSpellValid(spellInfo,m_session->GetPlayer()))
{
PSendSysMessage(LANG_COMMAND_SPELL_BROKEN,spell);
SetSentErrorMessage(true);
return false;
}
-
char *distStr = strtok(NULL, " ");
-
float dist = 0;
-
if(distStr)
sscanf(distStr, "%f", &dist);
-
char* trig_str = strtok(NULL, " ");
if(trig_str)
{
@@ -6654,39 +5677,31 @@ bool ChatHandler::HandleCastDistCommand(const char* args)
if(strncmp(trig_str,"triggered",l) != 0 )
return false;
}
-
bool triggered = (trig_str != NULL);
-
float x,y,z;
m_session->GetPlayer()->GetClosePoint(x,y,z,dist);
-
m_session->GetPlayer()->CastSpell(x,y,z,spell,triggered);
return true;
}
-
bool ChatHandler::HandleCastTargetCommand(const char* args)
{
Creature* caster = getSelectedCreature();
-
if(!caster)
{
SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
SetSentErrorMessage(true);
return false;
}
-
if(!caster->getVictim())
{
SendSysMessage(LANG_SELECTED_TARGET_NOT_HAVE_VICTIM);
SetSentErrorMessage(true);
return false;
}
-
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spell = extractSpellIdFromLink((char*)args);
if(!spell || !sSpellStore.LookupEntry(spell))
return false;
-
char* trig_str = strtok(NULL, " ");
if(trig_str)
{
@@ -6694,22 +5709,16 @@ bool ChatHandler::HandleCastTargetCommand(const char* args)
if(strncmp(trig_str,"triggered",l) != 0 )
return false;
}
-
bool triggered = (trig_str != NULL);
-
// update orientation at server
caster->SetOrientation(caster->GetAngle(m_session->GetPlayer()));
-
// and client
WorldPacket data;
caster->BuildHeartBeatMsg(&data);
caster->SendMessageToSet(&data,true);
-
caster->CastSpell(caster->getVictim(),spell,triggered);
-
return true;
}
-
/*
ComeToMe command REQUIRED for 3rd party scripting library to have access to PointMovementGenerator
Without this function 3rd party scripting library will get linking errors (unresolved external)
@@ -6718,12 +5727,9 @@ when attempting to use the PointMovementGenerator
bool ChatHandler::HandleComeToMeCommand(const char *args)
{
char* newFlagStr = strtok((char*)args, " ");
-
if(!newFlagStr)
return false;
-
uint32 newFlags = (uint32)strtoul(newFlagStr, NULL, 0);
-
Creature* caster = getSelectedCreature();
if(!caster)
{
@@ -6732,50 +5738,38 @@ bool ChatHandler::HandleComeToMeCommand(const char *args)
SetSentErrorMessage(true);
return false;
}
-
caster->SetUnitMovementFlags(newFlags);
-
Player* pl = m_session->GetPlayer();
-
caster->GetMotionMaster()->MovePoint(0, pl->GetPositionX(), pl->GetPositionY(), pl->GetPositionZ());
return true;
}
-
bool ChatHandler::HandleCastSelfCommand(const char* args)
{
if(!*args)
return false;
-
Unit* target = getSelectedUnit();
-
if(!target)
{
SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
SetSentErrorMessage(true);
return false;
}
-
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spell = extractSpellIdFromLink((char*)args);
if(!spell)
return false;
-
SpellEntry const* spellInfo = sSpellStore.LookupEntry(spell);
if(!spellInfo)
return false;
-
if(!SpellMgr::IsSpellValid(spellInfo,m_session->GetPlayer()))
{
PSendSysMessage(LANG_COMMAND_SPELL_BROKEN,spell);
SetSentErrorMessage(true);
return false;
}
-
target->CastSpell(target,spell,false);
-
return true;
}
-
std::string GetTimeString(uint32 time)
{
uint16 days = time / DAY, hours = (time % DAY) / HOUR, minute = (time % HOUR) / MINUTE;
@@ -6785,7 +5779,6 @@ std::string GetTimeString(uint32 time)
ss << minute << "m";
return ss.str();
}
-
bool ChatHandler::HandleInstanceListBindsCommand(const char* /*args*/)
{
Player* player = getSelectedPlayer();
@@ -6820,15 +5813,12 @@ bool ChatHandler::HandleInstanceListBindsCommand(const char* /*args*/)
}
}
PSendSysMessage("group binds: %d", counter);
-
return true;
}
-
bool ChatHandler::HandleInstanceUnbindCommand(const char* args)
{
if(!*args)
return false;
-
std::string cmd = args;
if(cmd == "all")
{
@@ -6856,7 +5846,6 @@ bool ChatHandler::HandleInstanceUnbindCommand(const char* args)
}
return true;
}
-
bool ChatHandler::HandleInstanceStatsCommand(const char* /*args*/)
{
PSendSysMessage("instances loaded: %d", MapManager::Instance().GetNumInstances());
@@ -6866,11 +5855,9 @@ bool ChatHandler::HandleInstanceStatsCommand(const char* /*args*/)
PSendSysMessage("groups bound: %d", sInstanceSaveManager.GetNumBoundGroupsTotal());
return true;
}
-
bool ChatHandler::HandleInstanceSaveDataCommand(const char * /*args*/)
{
Player* pl = m_session->GetPlayer();
-
Map* map = pl->GetMap();
if (!map->IsDungeon())
{
@@ -6878,18 +5865,15 @@ bool ChatHandler::HandleInstanceSaveDataCommand(const char * /*args*/)
SetSentErrorMessage(true);
return false;
}
-
if (!((InstanceMap*)map)->GetInstanceData())
{
PSendSysMessage("Map has no instance data.");
SetSentErrorMessage(true);
return false;
}
-
((InstanceMap*)map)->GetInstanceData()->SaveToDB();
return true;
}
-
/// Display the list of GMs
bool ChatHandler::HandleGMListFullCommand(const char* /*args*/)
{
@@ -6901,14 +5885,12 @@ bool ChatHandler::HandleGMListFullCommand(const char* /*args*/)
SendSysMessage("========================");
SendSysMessage(LANG_GMLIST_HEADER);
SendSysMessage("========================");
-
///- Circle through them. Display username and GM level
do
{
Field *fields = result->Fetch();
PSendSysMessage("|%15s|%6s|", fields[0].GetString(),fields[1].GetString());
}while( result->NextRow() );
-
PSendSysMessage("========================");
delete result;
}
@@ -6916,7 +5898,6 @@ bool ChatHandler::HandleGMListFullCommand(const char* /*args*/)
PSendSysMessage(LANG_GMLIST_EMPTY);
return true;
}
-
/// Define the 'Message of the day' for the realm
bool ChatHandler::HandleServerSetMotdCommand(const char* args)
{
@@ -6924,12 +5905,10 @@ bool ChatHandler::HandleServerSetMotdCommand(const char* args)
PSendSysMessage(LANG_MOTD_NEW, args);
return true;
}
-
/// Set whether we accept new clients
bool ChatHandler::HandleServerSetClosedCommand(const char* args)
{
std::string arg = args;
-
if(args == "on")
{
SendSysMessage(LANG_WORLD_CLOSED);
@@ -6942,31 +5921,25 @@ bool ChatHandler::HandleServerSetClosedCommand(const char* args)
sWorld.SetClosed(false);
return true;
}
-
SendSysMessage(LANG_USE_BOL);
SetSentErrorMessage(true);
return false;
}
-
/// Set/Unset the expansion level for an account
bool ChatHandler::HandleAccountSetAddonCommand(const char* args)
{
///- Get the command line arguments
char *szAcc = strtok((char*)args," ");
char *szExp = strtok(NULL," ");
-
if(!szAcc)
return false;
-
std::string account_name;
uint32 account_id;
-
if(!szExp)
{
Player* player = getSelectedPlayer();
if(!player)
return false;
-
account_id = player->GetSession()->GetAccountId();
accmgr.GetName(account_id,account_name);
szExp = szAcc;
@@ -6981,7 +5954,6 @@ bool ChatHandler::HandleAccountSetAddonCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
account_id = accmgr.GetId(account_name);
if(!account_id)
{
@@ -6989,25 +5961,20 @@ bool ChatHandler::HandleAccountSetAddonCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
}
-
// Let set addon state only for lesser (strong) security level
// or to self account
if (m_session && m_session->GetAccountId () != account_id &&
HasLowerSecurityAccount (NULL,account_id,true))
return false;
-
int expansion = atoi(szExp); //get int anyway (0 if error)
if(expansion < 0 || expansion > sWorld.getConfig(CONFIG_EXPANSION))
return false;
-
// No SQL injection
loginDatabase.PExecute("UPDATE account SET expansion = '%d' WHERE id = '%u'",expansion,account_id);
PSendSysMessage(LANG_ACCOUNT_SETADDON,account_name.c_str(),account_id,expansion);
return true;
}
-
//Send items by mail
bool ChatHandler::HandleSendItemsCommand(const char* args)
{
@@ -7017,49 +5984,38 @@ bool ChatHandler::HandleSendItemsCommand(const char* args)
std::string receiver_name;
if(!extractPlayerTarget((char*)args,&receiver,&receiver_guid,&receiver_name))
return false;
-
char* tail1 = strtok(NULL, "");
if(!tail1)
return false;
-
char* msgSubject = extractQuotedArg(tail1);
if (!msgSubject)
return false;
-
char* tail2 = strtok(NULL, "");
if(!tail2)
return false;
-
char* msgText = extractQuotedArg(tail2);
if (!msgText)
return false;
-
// msgSubject, msgText isn't NUL after prev. check
std::string subject = msgSubject;
std::string text = msgText;
-
// extract items
typedef std::pair<uint32,uint32> ItemPair;
typedef std::list< ItemPair > ItemPairs;
ItemPairs items;
-
// get all tail string
char* tail = strtok(NULL, "");
-
// get from tail next item str
while(char* itemStr = strtok(tail, " "))
{
// and get new tail
tail = strtok(NULL, "");
-
// parse item str
char* itemIdStr = strtok(itemStr, ":");
char* itemCountStr = strtok(NULL, " ");
-
uint32 item_id = atoi(itemIdStr);
if(!item_id)
return false;
-
ItemPrototype const* item_proto = objmgr.GetItemPrototype(item_id);
if(!item_proto)
{
@@ -7067,7 +6023,6 @@ bool ChatHandler::HandleSendItemsCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
uint32 item_count = itemCountStr ? atoi(itemCountStr) : 1;
if (item_count < 1 || (item_proto->MaxCount > 0 && item_count > uint32(item_proto->MaxCount)))
{
@@ -7075,15 +6030,12 @@ bool ChatHandler::HandleSendItemsCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
while(item_count > item_proto->GetMaxStackSize())
{
items.push_back(ItemPair(item_id,item_proto->GetMaxStackSize()));
item_count -= item_proto->GetMaxStackSize();
}
-
items.push_back(ItemPair(item_id,item_count));
-
if(items.size() > MAX_MAIL_ITEMS)
{
PSendSysMessage(LANG_COMMAND_MAIL_ITEMS_LIMIT, MAX_MAIL_ITEMS);
@@ -7091,17 +6043,13 @@ bool ChatHandler::HandleSendItemsCommand(const char* args)
return false;
}
}
-
// from console show not existed sender
uint32 sender_guidlo = m_session ? m_session->GetPlayer()->GetGUIDLow() : 0;
-
uint32 messagetype = MAIL_NORMAL;
uint32 stationery = MAIL_STATIONERY_GM;
uint32 itemTextId = !text.empty() ? objmgr.CreateItemText( text ) : 0;
-
// fill mail
MailItemsInfo mi; // item list preparing
-
for(ItemPairs::const_iterator itr = items.begin(); itr != items.end(); ++itr)
{
if(Item* item = Item::CreateItem(itr->first,itr->second,m_session ? m_session->GetPlayer() : 0))
@@ -7110,64 +6058,49 @@ bool ChatHandler::HandleSendItemsCommand(const char* args)
mi.AddItem(item->GetGUIDLow(), item->GetEntry(), item);
}
}
-
WorldSession::SendMailTo(receiver,messagetype, stationery, sender_guidlo, GUID_LOPART(receiver_guid), subject, itemTextId, &mi, 0, 0, MAIL_CHECK_MASK_NONE);
-
std::string nameLink = playerLink(receiver_name);
PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str());
return true;
}
-
///Send money by mail
bool ChatHandler::HandleSendMoneyCommand(const char* args)
{
/// format: name "subject text" "mail text" money
-
Player* receiver;
uint64 receiver_guid;
std::string receiver_name;
if(!extractPlayerTarget((char*)args,&receiver,&receiver_guid,&receiver_name))
return false;
-
char* tail1 = strtok(NULL, "");
if (!tail1)
return false;
-
char* msgSubject = extractQuotedArg(tail1);
if (!msgSubject)
return false;
-
char* tail2 = strtok(NULL, "");
if (!tail2)
return false;
-
char* msgText = extractQuotedArg(tail2);
if (!msgText)
return false;
-
char* money_str = strtok(NULL, "");
int32 money = money_str ? atoi(money_str) : 0;
if (money <= 0)
return false;
-
// msgSubject, msgText isn't NUL after prev. check
std::string subject = msgSubject;
std::string text = msgText;
-
// from console show not existed sender
uint32 sender_guidlo = m_session ? m_session->GetPlayer()->GetGUIDLow() : 0;
-
uint32 messagetype = MAIL_NORMAL;
uint32 stationery = MAIL_STATIONERY_GM;
uint32 itemTextId = !text.empty() ? objmgr.CreateItemText( text ) : 0;
-
WorldSession::SendMailTo(receiver,messagetype, stationery, sender_guidlo, GUID_LOPART(receiver_guid), subject, itemTextId, NULL, money, 0, MAIL_CHECK_MASK_NONE);
-
std::string nameLink = playerLink(receiver_name);
PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str());
return true;
}
-
/// Send a message to a player in game
bool ChatHandler::HandleSendMessageCommand(const char* args)
{
@@ -7175,11 +6108,9 @@ bool ChatHandler::HandleSendMessageCommand(const char* args)
Player *rPlayer;
if(!extractPlayerTarget((char*)args,&rPlayer))
return false;
-
char* msg_str = strtok(NULL, "");
if(!msg_str)
return false;
-
///- Check that he is not logging out.
if(rPlayer->GetSession()->isLogingOut())
{
@@ -7187,59 +6118,47 @@ bool ChatHandler::HandleSendMessageCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
-
///- Send the message
//Use SendAreaTriggerMessage for fastest delivery.
rPlayer->GetSession()->SendAreaTriggerMessage("%s", msg_str);
rPlayer->GetSession()->SendAreaTriggerMessage("|cffff0000[Message from administrator]:|r");
-
//Confirmation message
std::string nameLink = GetNameLink(rPlayer);
PSendSysMessage(LANG_SENDMESSAGE,nameLink.c_str(),msg_str);
return true;
}
-
bool ChatHandler::HandleFlushArenaPointsCommand(const char * /*args*/)
{
sBattleGroundMgr.DistributeArenaPoints();
return true;
}
-
bool ChatHandler::HandleModifyGenderCommand(const char *args)
{
if(!*args)
return false;
-
Player *player = getSelectedPlayer();
-
if(!player)
{
PSendSysMessage(LANG_PLAYER_NOT_FOUND);
SetSentErrorMessage(true);
return false;
}
-
PlayerInfo const* info = objmgr.GetPlayerInfo(player->getRace(), player->getClass());
if(!info)
return false;
-
char const* gender_str = (char*)args;
int gender_len = strlen(gender_str);
-
Gender gender;
-
if(!strncmp(gender_str, "male", gender_len)) // MALE
{
if(player->getGender() == GENDER_MALE)
return true;
-
gender = GENDER_MALE;
}
else if (!strncmp(gender_str, "female", gender_len)) // FEMALE
{
if(player->getGender() == GENDER_FEMALE)
return true;
-
gender = GENDER_FEMALE;
}
else
@@ -7248,50 +6167,37 @@ bool ChatHandler::HandleModifyGenderCommand(const char *args)
SetSentErrorMessage(true);
return false;
}
-
// Set gender
player->SetByteValue(UNIT_FIELD_BYTES_0, 2, gender);
player->SetByteValue(PLAYER_BYTES_3, 0, gender);
-
// Change display ID
player->InitDisplayIds();
-
char const* gender_full = gender ? "female" : "male";
-
PSendSysMessage(LANG_YOU_CHANGE_GENDER, GetNameLink(player).c_str(), gender_full);
-
if (needReportToTarget(player))
ChatHandler(player).PSendSysMessage(LANG_YOUR_GENDER_CHANGED, gender_full, GetNameLink().c_str());
-
return true;
}
-
/*------------------------------------------
*-------------TRINITY----------------------
*-------------------------------------*/
-
bool ChatHandler::HandlePlayAllCommand(const char* args)
{
if(!*args)
return false;
-
uint32 soundId = atoi((char*)args);
-
if(!sSoundEntriesStore.LookupEntry(soundId))
{
PSendSysMessage(LANG_SOUND_NOT_EXIST, soundId);
SetSentErrorMessage(true);
return false;
}
-
WorldPacket data(SMSG_PLAY_SOUND, 4);
data << uint32(soundId) << m_session->GetPlayer()->GetGUID();
sWorld.SendGlobalMessage(&data);
-
PSendSysMessage(LANG_COMMAND_PLAYED_TO_ALL, soundId);
return true;
}
-
bool ChatHandler::HandleFreezeCommand(const char *args)
{
std::string name;
@@ -7312,24 +6218,20 @@ bool ChatHandler::HandleFreezeCommand(const char *args)
normalizePlayerName(name);
player = objmgr.GetPlayer(name.c_str()); //get player by name
}
-
if (!player)
{
SendSysMessage(LANG_COMMAND_FREEZE_WRONG);
return true;
}
-
if (player==m_session->GetPlayer())
{
SendSysMessage(LANG_COMMAND_FREEZE_ERROR);
return true;
}
-
//effect
if ((player) && (!(player==m_session->GetPlayer())))
{
PSendSysMessage(LANG_COMMAND_FREEZE,name.c_str());
-
//stop combat + make player unattackable + duel stop + stop some spells
player->setFaction(35);
player->CombatStop();
@@ -7337,7 +6239,6 @@ bool ChatHandler::HandleFreezeCommand(const char *args)
player->InterruptNonMeleeSpells(true);
player->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
player->SetUInt32Value(PLAYER_DUEL_TEAM, 1);
-
//if player class = hunter || warlock remove pet if alive
if((player->getClass() == CLASS_HUNTER) || (player->getClass() == CLASS_WARLOCK))
{
@@ -7349,18 +6250,15 @@ bool ChatHandler::HandleFreezeCommand(const char *args)
player->RemovePet(pet,PET_SAVE_NOT_IN_SLOT);
}
}
-
//m_session->GetPlayer()->CastSpell(player,spellID,false);
SpellEntry const *spellInfo = sSpellStore.LookupEntry( 9454 );
Aura *Aur = new Aura(spellInfo, 1, player, player, player);
player->AddAura(Aur);
-
//save player
player->SaveToDB();
}
return true;
}
-
bool ChatHandler::HandleUnFreezeCommand(const char *args)
{
std::string name;
@@ -7374,30 +6272,24 @@ bool ChatHandler::HandleUnFreezeCommand(const char *args)
name = player->GetName();
}
}
-
else // if name entered
{
name = TargetName;
normalizePlayerName(name);
player = objmgr.GetPlayer(name.c_str()); //get player by name
}
-
//effect
if (player)
{
PSendSysMessage(LANG_COMMAND_UNFREEZE,name.c_str());
-
//Reset player faction + allow combat + allow duels
player->setFactionForRace(player->getRace());
player->RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
-
//allow movement and spells
player->RemoveAurasDueToSpell(9454);
-
//save player
player->SaveToDB();
}
-
if (!player)
{
if (TargetName)
@@ -7423,10 +6315,8 @@ bool ChatHandler::HandleUnFreezeCommand(const char *args)
return true;
}
}
-
return true;
}
-
bool ChatHandler::HandleListFreezeCommand(const char* args)
{
//Get names from DB
@@ -7438,7 +6328,6 @@ bool ChatHandler::HandleListFreezeCommand(const char* args)
}
//Header of the names
PSendSysMessage(LANG_COMMAND_LIST_FREEZE);
-
//Output of the results
do
{
@@ -7446,88 +6335,69 @@ bool ChatHandler::HandleListFreezeCommand(const char* args)
std::string fplayers = fields[0].GetCppString();
PSendSysMessage(LANG_COMMAND_FROZEN_PLAYERS,fplayers.c_str());
} while (result->NextRow());
-
delete result;
return true;
}
-
bool ChatHandler::HandleGroupLeaderCommand(const char* args)
{
Player* plr = NULL;
Group* group = NULL;
uint64 guid = 0;
char* cname = strtok((char*)args, " ");
-
if(GetPlayerGroupAndGUIDByName(cname, plr, group, guid))
if(group && group->GetLeaderGUID() != guid)
group->ChangeLeader(guid);
-
return true;
}
-
bool ChatHandler::HandleGroupDisbandCommand(const char* args)
{
Player* plr = NULL;
Group* group = NULL;
uint64 guid = 0;
char* cname = strtok((char*)args, " ");
-
if(GetPlayerGroupAndGUIDByName(cname, plr, group, guid))
if(group)
group->Disband();
-
return true;
}
-
bool ChatHandler::HandleGroupRemoveCommand(const char* args)
{
Player* plr = NULL;
Group* group = NULL;
uint64 guid = 0;
char* cname = strtok((char*)args, " ");
-
if(GetPlayerGroupAndGUIDByName(cname, plr, group, guid, true))
if(group)
group->RemoveMember(guid, 0);
-
return true;
}
-
bool ChatHandler::HandlePossessCommand(const char* args)
{
Unit* pUnit = getSelectedUnit();
if(!pUnit)
return false;
-
m_session->GetPlayer()->CastSpell(pUnit, 530, true);
return true;
}
-
bool ChatHandler::HandleUnPossessCommand(const char* args)
{
Unit* pUnit = getSelectedUnit();
if(!pUnit) pUnit = m_session->GetPlayer();
-
pUnit->RemoveCharmAuras();
-
return true;
}
-
bool ChatHandler::HandleBindSightCommand(const char* args)
{
Unit* pUnit = getSelectedUnit();
if (!pUnit)
return false;
-
m_session->GetPlayer()->CastSpell(pUnit, 6277, true);
return true;
}
-
bool ChatHandler::HandleUnbindSightCommand(const char* args)
{
if (m_session->GetPlayer()->isPossessing())
return false;
-
m_session->GetPlayer()->StopCastingBindSight();
return true;
}