/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license: http://github.com/azerothcore/azerothcore-wotlk/LICENSE-GPL2 * Copyright (C) 2008-2016 TrinityCore * Copyright (C) 2005-2009 MaNGOS */ /* ScriptData Name: honor_commandscript %Complete: 100 Comment: All honor related commands Category: commandscripts EndScriptData */ #include "Chat.h" #include "Language.h" #include "ObjectMgr.h" #include "Player.h" #include "ScriptMgr.h" class honor_commandscript : public CommandScript { public: honor_commandscript() : CommandScript("honor_commandscript") { } ChatCommand* GetCommands() const { static ChatCommand honorAddCommandTable[] = { { "kill", SEC_GAMEMASTER, false, &HandleHonorAddKillCommand, "", NULL }, { "", SEC_GAMEMASTER, false, &HandleHonorAddCommand, "", NULL }, { NULL, 0, false, NULL, "", NULL } }; static ChatCommand honorCommandTable[] = { { "add", SEC_GAMEMASTER, false, NULL, "", honorAddCommandTable }, { "update", SEC_GAMEMASTER, false, &HandleHonorUpdateCommand, "", NULL }, { NULL, 0, false, NULL, "", NULL } }; static ChatCommand commandTable[] = { { "honor", SEC_GAMEMASTER, false, NULL, "", honorCommandTable }, { NULL, 0, false, NULL, "", NULL } }; return commandTable; } static bool HandleHonorAddCommand(ChatHandler* handler, char const* args) { if (!*args) return false; Player* target = handler->getSelectedPlayer(); if (!target) { handler->SendSysMessage(LANG_PLAYER_NOT_FOUND); handler->SetSentErrorMessage(true); return false; } // check online security if (handler->HasLowerSecurity(target, 0)) return false; uint32 amount = (uint32)atoi(args); target->RewardHonor(NULL, 1, amount); return true; } static bool HandleHonorAddKillCommand(ChatHandler* handler, char const* /*args*/) { Unit* target = handler->getSelectedUnit(); if (!target) { handler->SendSysMessage(LANG_PLAYER_NOT_FOUND); handler->SetSentErrorMessage(true); return false; } // check online security if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), 0)) return false; handler->GetSession()->GetPlayer()->RewardHonor(target, 1); return true; } static bool HandleHonorUpdateCommand(ChatHandler* handler, char const* /*args*/) { Player* target = handler->getSelectedPlayer(); if (!target) { handler->SendSysMessage(LANG_PLAYER_NOT_FOUND); handler->SetSentErrorMessage(true); return false; } // check online security if (handler->HasLowerSecurity(target, 0)) return false; target->UpdateHonorFields(); return true; } }; void AddSC_honor_commandscript() { new honor_commandscript(); }