178 {
180 if (!iece)
181 {
183 return false;
184 }
185
187
188 if (!item)
189 {
191 return false;
192 }
193
195 {
196 if (!target->HasItemCount(itemId, 1, true))
197 {
199 return false;
200 }
201
203 {
206 {
209 return false;
210 }
211
212 target->SetHonorPoints(honor);
215 }
216
218 {
221 {
224 return false;
225 }
226
227 target->SetArenaPoints(arenapoints);
230 }
231
233 for (
uint32 const& reqItem : iece->reqitem)
234 {
235 if (reqItem)
236 {
238 }
239
240 ++count;
241 }
242
243 target->DestroyItemCount(itemId, 1, true);
244 }
245 else
246 {
249
251
255
257
258 if (result)
259 {
261 {
264
266
267 if (queryResult)
268 {
269 Field* fields = queryResult->Fetch();
271 {
273 return false;
274 }
275 }
276
280 trans->Append(stmt);
282 }
283
285 {
288
290
291 if (queryResult)
292 {
293 Field* fields = queryResult->Fetch();
295 {
297 return false;
298 }
299 }
300
304 trans->Append(stmt);
306 }
307
309
310 std::string msg =
"Your item " + item->
Name1 +
" has been removed and the used currency restored. This mail contains any items used as currency.";
312
314 bool foundItems = false;
315 for (
uint32 const& reqItem : iece->reqitem)
316 {
317 if (reqItem)
318 {
319
321 {
322 continue;
323 }
324
326 {
327 item->SaveToDB(trans);
328 draft.AddItem(item);
329 foundItems = true;
330 }
331 }
332
333 ++count;
334 }
335
336 if (foundItems)
337 {
338 draft.SendMailTo(trans,
MailReceiver(
nullptr, guid), sender);
339 }
340
341 Field* fields = result->Fetch();
342
344 stmt->
SetData(0, fields[0].Get<uint32>());
345 trans->Append(stmt);
346
348 stmt->
SetData(0, fields[0].Get<uint32>());
349 trans->Append(stmt);
350
352 }
353 else
354 {
356 return false;
357 }
358 }
359
360 return true;
361 }
@ CHAR_DEL_ITEM_INSTANCE
Definition CharacterDatabase.h:127
@ CHAR_DEL_CHAR_INVENTORY_BY_ITEM
Definition CharacterDatabase.h:439
@ CHAR_SEL_HONORPOINTS
Definition CharacterDatabase.h:520
@ CHAR_SEL_CHAR_INVENTORY_ITEM_BY_ENTRY_AND_OWNER
Definition CharacterDatabase.h:363
@ CHAR_UDP_CHAR_HONOR_POINTS_ACCUMULATIVE
Definition CharacterDatabase.h:428
@ CHAR_SEL_ARENAPOINTS
Definition CharacterDatabase.h:521
@ CHAR_UDP_CHAR_ARENA_POINTS_ACCUMULATIVE
Definition CharacterDatabase.h:430
DBCStorage< ItemExtendedCostEntry > sItemExtendedCostStore(ItemExtendedCostEntryfmt)
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
Definition DatabaseEnvFwd.h:69
std::shared_ptr< PreparedResultSet > PreparedQueryResult
Definition DatabaseEnvFwd.h:45
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
Definition DatabaseEnv.cpp:21
std::uint8_t uint8
Definition Define.h:109
std::uint32_t uint32
Definition Define.h:107
@ LANG_CMD_ITEM_REFUND_MAX_HONOR
Definition Language.h:1143
@ LANG_CMD_ITEM_REFUNDED_HONOR
Definition Language.h:1145
@ LANG_CMD_ITEM_REFUND_MAX_AP
Definition Language.h:1146
@ LANG_CMD_ITEM_REFUND_HONOR_FAILED
Definition Language.h:1144
@ LANG_CMD_ITEM_REFUND_AP_FAILED
Definition Language.h:1147
@ LANG_CMD_ITEM_REFUND_NOT_FOUND
Definition Language.h:1149
@ LANG_CMD_ITEM_REFUNDED_AP
Definition Language.h:1148
@ LANG_CMD_ITEM_REFUND_BAD_EXTENDED_COST
Definition Language.h:1142
@ LANG_COMMAND_ITEMIDINVALID
Definition Language.h:476
@ MAIL_STATIONERY_GM
Definition Mail.h:59
@ MAIL_NORMAL
Definition Mail.h:37
#define sObjectMgr
Definition ObjectMgr.h:1723
@ CONFIG_MAX_HONOR_POINTS
Definition WorldConfig.h:195
@ CONFIG_MAX_ARENA_POINTS
Definition WorldConfig.h:198
void PSendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:219
void SendErrorMessage(uint32 entry)
Definition Chat.cpp:224
Class used to access individual fields of database query result.
Definition Field.h:98
static Item * CreateItem(uint32 item, uint32 count, Player const *player=nullptr, bool clone=false, uint32 randomPropertyId=0)
Definition Item.cpp:1087
LowType GetCounter() const
Definition ObjectGuid.h:145
uint32 LowType
Definition ObjectGuid.h:122
Acore::Types::is_default< T > SetData(const uint8 index, T value)
Definition PreparedStatement.h:77
Definition PreparedStatement.h:157
#define sWorld
Definition World.h:317
ObjectGuid GetGUID() const
Definition ChatCommandTags.h:181
Player * GetConnectedPlayer() const
Definition ChatCommandTags.h:183
Definition DBCStructure.h:1188
uint32 reqarenapoints
Definition DBCStructure.h:1191
uint32 reqitemcount[MAX_ITEM_EXTENDED_COST_REQUIREMENTS]
Definition DBCStructure.h:1194
uint32 reqhonorpoints
Definition DBCStructure.h:1190
Definition ItemTemplate.h:619
std::string Name1
Definition ItemTemplate.h:624
uint32 ItemId
Definition ItemTemplate.h:620