177 {
179 if (!iece)
180 {
182 return false;
183 }
184
186
187 if (!item)
188 {
190 return false;
191 }
192
194 {
195 if (!target->HasItemCount(itemId, 1, true))
196 {
198 return false;
199 }
200
202 {
205 {
208 return false;
209 }
210
211 target->SetHonorPoints(honor);
214 }
215
217 {
220 {
223 return false;
224 }
225
226 target->SetArenaPoints(arenapoints);
229 }
230
232 for (
uint32 const& reqItem : iece->reqitem)
233 {
234 if (reqItem)
235 {
237 }
238
239 ++count;
240 }
241
242 target->DestroyItemCount(itemId, 1, true);
243 }
244 else
245 {
248
250
254
256
257 if (result)
258 {
260 {
263
265
266 if (queryResult)
267 {
268 Field* fields = queryResult->Fetch();
270 {
272 return false;
273 }
274 }
275
279 trans->Append(stmt);
281 }
282
284 {
287
289
290 if (queryResult)
291 {
292 Field* fields = queryResult->Fetch();
294 {
296 return false;
297 }
298 }
299
303 trans->Append(stmt);
305 }
306
308
309 std::string msg =
"Your item " + item->
Name1 +
" has been removed and the used currency restored. This mail contains any items used as currency.";
311
313 bool foundItems = false;
314 for (
uint32 const& reqItem : iece->reqitem)
315 {
316 if (reqItem)
317 {
318
320 {
321 continue;
322 }
323
325 {
326 item->SaveToDB(trans);
327 draft.AddItem(item);
328 foundItems = true;
329 }
330 }
331
332 ++count;
333 }
334
335 if (foundItems)
336 {
337 draft.SendMailTo(trans,
MailReceiver(
nullptr, guid), sender);
338 }
339
340 Field* fields = result->Fetch();
341
343 stmt->
SetData(0, fields[0].Get<uint32>());
344 trans->Append(stmt);
345
347 stmt->
SetData(0, fields[0].Get<uint32>());
348 trans->Append(stmt);
349
351 }
352 else
353 {
355 return false;
356 }
357 }
358
359 return true;
360 }
@ CHAR_DEL_ITEM_INSTANCE
Definition CharacterDatabase.h:127
@ CHAR_DEL_CHAR_INVENTORY_BY_ITEM
Definition CharacterDatabase.h:435
@ CHAR_SEL_HONORPOINTS
Definition CharacterDatabase.h:516
@ CHAR_SEL_CHAR_INVENTORY_ITEM_BY_ENTRY_AND_OWNER
Definition CharacterDatabase.h:361
@ CHAR_UDP_CHAR_HONOR_POINTS_ACCUMULATIVE
Definition CharacterDatabase.h:426
@ CHAR_SEL_ARENAPOINTS
Definition CharacterDatabase.h:517
@ CHAR_UDP_CHAR_ARENA_POINTS_ACCUMULATIVE
Definition CharacterDatabase.h:428
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
@ CONFIG_MAX_HONOR_POINTS
Definition IWorld.h:242
@ CONFIG_MAX_ARENA_POINTS
Definition IWorld.h:245
@ LANG_CMD_ITEM_REFUND_MAX_HONOR
Definition Language.h:1129
@ LANG_CMD_ITEM_REFUNDED_HONOR
Definition Language.h:1131
@ LANG_CMD_ITEM_REFUND_MAX_AP
Definition Language.h:1132
@ LANG_CMD_ITEM_REFUND_HONOR_FAILED
Definition Language.h:1130
@ LANG_CMD_ITEM_REFUND_AP_FAILED
Definition Language.h:1133
@ LANG_CMD_ITEM_REFUND_NOT_FOUND
Definition Language.h:1135
@ LANG_CMD_ITEM_REFUNDED_AP
Definition Language.h:1134
@ LANG_CMD_ITEM_REFUND_BAD_EXTENDED_COST
Definition Language.h:1128
@ LANG_COMMAND_ITEMIDINVALID
Definition Language.h:468
@ MAIL_STATIONERY_GM
Definition Mail.h:59
@ MAIL_NORMAL
Definition Mail.h:37
#define sObjectMgr
Definition ObjectMgr.h:1650
void PSendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:211
void SendErrorMessage(uint32 entry)
Definition Chat.cpp:216
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:357
ObjectGuid GetGUID() const
Definition ChatCommandTags.h:176
Player * GetConnectedPlayer() const
Definition ChatCommandTags.h:178
Definition DBCStructure.h:1186
uint32 reqarenapoints
Definition DBCStructure.h:1189
uint32 reqitemcount[MAX_ITEM_EXTENDED_COST_REQUIREMENTS]
Definition DBCStructure.h:1192
uint32 reqhonorpoints
Definition DBCStructure.h:1188
Definition ItemTemplate.h:619
std::string Name1
Definition ItemTemplate.h:624
uint32 ItemId
Definition ItemTemplate.h:620