diff options
Diffstat (limited to 'src/game/Level3.cpp')
-rw-r--r-- | src/game/Level3.cpp | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 9b61f03e3f2..a095be0a531 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -559,6 +559,7 @@ bool ChatHandler::HandleReloadAllCommand(const char*) HandleReloadAllLocalesCommand(""); HandleReloadAccessRequirementCommand(""); + HandleReloadMailLevelRewardCommand(""); HandleReloadCommandCommand(""); HandleReloadReservedNameCommand(""); HandleReloadTrinityStringCommand(""); @@ -880,12 +881,12 @@ bool ChatHandler::HandleReloadLootTemplatesProspectingCommand(const char*) return true; } -bool ChatHandler::HandleReloadLootTemplatesQuestMailCommand(const char*) +bool ChatHandler::HandleReloadLootTemplatesMailCommand(const char*) { - sLog.outString( "Re-Loading Loot Tables... (`quest_mail_loot_template`)" ); - LoadLootTemplates_QuestMail(); - LootTemplates_QuestMail.CheckLootRefs(); - SendGlobalGMSysMessage("DB table `quest_mail_loot_template` reloaded."); + sLog.outString( "Re-Loading Loot Tables... (`mail_loot_template`)" ); + LoadLootTemplates_Mail(); + LootTemplates_Mail.CheckLootRefs(); + SendGlobalSysMessage("DB table `mail_loot_template` reloaded."); return true; } @@ -1365,6 +1366,14 @@ bool ChatHandler::HandleReloadLocalesQuestCommand(const char* /*arg*/) return true; } +bool ChatHandler::HandleReloadMailLevelRewardCommand(const char* /*arg*/) +{ + sLog.outString( "Re-Loading Player level dependent mail rewards..." ); + objmgr.LoadMailLevelRewards(); + SendGlobalSysMessage("DB table `mail_level_reward` reloaded."); + return true; +} + bool ChatHandler::HandleLoadScriptsCommand(const char *args) { if(!LoadScriptingModule(args)) return true; @@ -7093,25 +7102,23 @@ bool ChatHandler::HandleSendItemsCommand(const char *args) } // from console show not existed sender - uint32 sender_guidlo = m_session ? m_session->GetPlayer()->GetGUIDLow() : 0; + MailSender sender(MAIL_NORMAL,m_session ? m_session->GetPlayer()->GetGUIDLow() : 0, MAIL_STATIONERY_GM); - uint32 messagetype = MAIL_NORMAL; - uint32 stationery = MAIL_STATIONERY_GM; uint32 itemTextId = !text.empty() ? objmgr.CreateItemText( text ) : 0; // fill mail - MailItemsInfo mi; // item list preparing + MailDraft draft(subject, itemTextId); 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)) { item->SaveToDB(); // save for prevent lost at next mail load, if send fail then item will deleted - mi.AddItem(item->GetGUIDLow(), item->GetEntry(), item); + draft.AddItem(item); } } - WorldSession::SendMailTo(receiver,messagetype, stationery, sender_guidlo, GUID_LOPART(receiver_guid), subject, itemTextId, &mi, 0, 0, MAIL_CHECK_MASK_NONE); + draft.SendMailTo(MailReceiver(receiver,GUID_LOPART(receiver_guid)), sender); std::string nameLink = playerLink(receiver_name); PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str()); @@ -7155,13 +7162,13 @@ bool ChatHandler::HandleSendMoneyCommand(const char *args) std::string text = msgText; // from console show not existed sender - uint32 sender_guidlo = m_session ? m_session->GetPlayer()->GetGUIDLow() : 0; + MailSender sender(MAIL_NORMAL,m_session ? m_session->GetPlayer()->GetGUIDLow() : 0, MAIL_STATIONERY_GM); - 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); + MailDraft(subject, itemTextId) + .AddMoney(money) + .SendMailTo(MailReceiver(receiver,GUID_LOPART(receiver_guid)),sender); std::string nameLink = playerLink(receiver_name); PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str()); |