188 {
190 if (!iece)
191 {
194 return false;
195 }
196
198
199 if (!item)
200 {
203 return false;
204 }
205
207 {
208 if (!target->HasItemCount(itemId, 1, true))
209 {
212 return false;
213 }
214
216 {
219 {
223 return false;
224 }
225
226 target->SetHonorPoints(honor);
229 }
230
232 {
235 {
239 return false;
240 }
241
242 target->SetArenaPoints(arenapoints);
245 }
246
249 {
250 if (reqItem)
251 {
253 }
254
255 ++count;
256 }
257
258 target->DestroyItemCount(itemId, 1, true);
259 }
260 else
261 {
264
266
270
272
273 if (result)
274 {
276 {
279
281
282 if (queryResult)
283 {
284 Field* fields = queryResult->Fetch();
286 {
289 return false;
290 }
291 }
292
296 trans->Append(stmt);
298 }
299
301 {
304
306
307 if (queryResult)
308 {
309 Field* fields = queryResult->Fetch();
311 {
314 return false;
315 }
316 }
317
321 trans->Append(stmt);
323 }
324
326
327 std::string msg =
"Your item " + item->
Name1 +
" has been removed and the used currency restored. This mail contains any items used as currency.";
329
331 bool foundItems = false;
333 {
334 if (reqItem)
335 {
336
338 {
339 continue;
340 }
341
343 {
344 item->SaveToDB(trans);
345 draft.AddItem(item);
346 foundItems = true;
347 }
348 }
349
350 ++count;
351 }
352
353 if (foundItems)
354 {
355 draft.SendMailTo(trans,
MailReceiver(
nullptr, guid), sender);
356 }
357
358 Field* fields = result->Fetch();
359
361 stmt->
SetData(0, fields[0].Get<uint32>());
362 trans->Append(stmt);
363
365 stmt->
SetData(0, fields[0].Get<uint32>());
366 trans->Append(stmt);
367
369 }
370 else
371 {
374 return false;
375 }
376 }
377
378 return true;
379 }
std::uint8_t uint8
Definition: Define.h:110
std::uint32_t uint32
Definition: Define.h:108
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
Definition: DatabaseEnv.cpp:21
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
Definition: DatabaseEnvFwd.h:70
std::shared_ptr< PreparedResultSet > PreparedQueryResult
Definition: DatabaseEnvFwd.h:46
@ CHAR_DEL_ITEM_INSTANCE
Definition: CharacterDatabase.h:127
@ CHAR_DEL_CHAR_INVENTORY_BY_ITEM
Definition: CharacterDatabase.h:430
@ CHAR_SEL_HONORPOINTS
Definition: CharacterDatabase.h:509
@ CHAR_SEL_CHAR_INVENTORY_ITEM_BY_ENTRY_AND_OWNER
Definition: CharacterDatabase.h:359
@ CHAR_UDP_CHAR_HONOR_POINTS_ACCUMULATIVE
Definition: CharacterDatabase.h:421
@ CHAR_SEL_ARENAPOINTS
Definition: CharacterDatabase.h:510
@ CHAR_UDP_CHAR_ARENA_POINTS_ACCUMULATIVE
Definition: CharacterDatabase.h:423
DBCStorage< ItemExtendedCostEntry > sItemExtendedCostStore(ItemExtendedCostEntryfmt)
#define sObjectMgr
Definition: ObjectMgr.h:1640
@ MAIL_STATIONERY_GM
Definition: Mail.h:60
@ MAIL_NORMAL
Definition: Mail.h:38
@ LANG_CMD_ITEM_REFUND_MAX_HONOR
Definition: Language.h:1135
@ LANG_CMD_ITEM_REFUNDED_HONOR
Definition: Language.h:1137
@ LANG_CMD_ITEM_REFUND_MAX_AP
Definition: Language.h:1138
@ LANG_CMD_ITEM_REFUND_HONOR_FAILED
Definition: Language.h:1136
@ LANG_CMD_ITEM_REFUND_AP_FAILED
Definition: Language.h:1139
@ LANG_CMD_ITEM_REFUND_NOT_FOUND
Definition: Language.h:1141
@ LANG_CMD_ITEM_REFUNDED_AP
Definition: Language.h:1140
@ LANG_CMD_ITEM_REFUND_BAD_EXTENDED_COST
Definition: Language.h:1134
@ LANG_COMMAND_ITEMIDINVALID
Definition: Language.h:450
@ CONFIG_MAX_HONOR_POINTS
Definition: IWorld.h:241
@ CONFIG_MAX_ARENA_POINTS
Definition: IWorld.h:244
#define sWorld
Definition: World.h:449
Definition: PreparedStatement.h:158
Class used to access individual fields of database query result.
Definition: Field.h:99
Acore::Types::is_default< T > SetData(const uint8 index, T value)
Definition: PreparedStatement.h:78
void SetSentErrorMessage(bool val)
Definition: Chat.h:118
void PSendSysMessage(char const *fmt, Args &&... args)
Definition: Chat.h:60
ObjectGuid GetGUID() const
Definition: ChatCommandTags.h:181
Player * GetConnectedPlayer() const
Definition: ChatCommandTags.h:183
static Item * CreateItem(uint32 item, uint32 count, Player const *player=nullptr, bool clone=false, uint32 randomPropertyId=0)
Definition: Item.cpp:1089
Definition: ItemTemplate.h:628
std::string Name1
Definition: ItemTemplate.h:633
uint32 ItemId
Definition: ItemTemplate.h:629
LowType GetCounter() const
Definition: ObjectGuid.h:147
uint32 LowType
Definition: ObjectGuid.h:124
Definition: Player.h:1056
Definition: DBCStructure.h:1176
uint32 reqarenapoints
Definition: DBCStructure.h:1179
uint32 reqitemcount[MAX_ITEM_EXTENDED_COST_REQUIREMENTS]
Definition: DBCStructure.h:1182
uint32 reqitem[MAX_ITEM_EXTENDED_COST_REQUIREMENTS]
Definition: DBCStructure.h:1181
uint32 reqhonorpoints
Definition: DBCStructure.h:1178