54 {
55 if (args.empty())
56 {
57 return false;
58 }
59
61 if (!player)
62 {
63 return false;
64 }
65
68 {
70 {
71 itemQuality = i;
72 break;
73 }
74 }
75
77 {
78 return false;
79 }
80
81 std::array<uint32, MAX_ITEM_QUALITY> removedItems = { };
82
83
85 {
87 {
88 if (
ItemTemplate const* itemTemplate = item->GetTemplate())
89 {
90 if (itemTemplate->Quality <= itemQuality)
91 {
93 ++removedItems[itemTemplate->Quality];
94 }
95 }
96 }
97 }
98
99
101 {
103 {
104 for (
uint32 j = 0; j < bag->GetBagSize(); j++)
105 {
106 if (
Item* item = bag->GetItemByPos(j))
107 {
108 if (
ItemTemplate const* itemTemplate = item->GetTemplate())
109 {
110 if (itemTemplate->Quality <= itemQuality)
111 {
113 ++removedItems[itemTemplate->Quality];
114 }
115 }
116 }
117 }
118 }
119 }
120
121 std::ostringstream str;
122 str << "Removed ";
124 {
125 str << "all";
126 }
127 else
128 {
129 bool initialize = true;
131 {
132 if (
uint32 itemCount = removedItems[i])
133 {
135
136 if (!initialize)
137 {
138 str << ", ";
139 }
140
141 str << "|c";
143 str << itemCount << " " << itemQualityString << "|r";
144
145 initialize = false;
146 }
147 }
148 }
149
150 str << " items from your bags.";
151
153
154 return true;
155 };
std::uint8_t uint8
Definition Define.h:109
std::uint32_t uint32
Definition Define.h:107
@ INVENTORY_SLOT_ITEM_START
Definition Player.h:691
@ INVENTORY_SLOT_ITEM_END
Definition Player.h:692
@ INVENTORY_SLOT_BAG_START
Definition Player.h:685
@ INVENTORY_SLOT_BAG_END
Definition Player.h:686
#define INVENTORY_SLOT_BAG_0
Definition Player.h:656
const uint32 ItemQualityColors[MAX_ITEM_QUALITY]
Definition SharedDefines.h:341
@ ITEM_QUALITY_HEIRLOOM
Definition SharedDefines.h:324
@ ITEM_QUALITY_POOR
Definition SharedDefines.h:317
#define MAX_ITEM_QUALITY
Definition SharedDefines.h:327
WorldSession * GetSession()
Definition Chat.h:242
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:168
Bag * GetBagByPos(uint8 slot) const
Definition PlayerStorage.cpp:460
Item * GetItemByPos(uint16 pos) const
Definition PlayerStorage.cpp:444
void DestroyItem(uint8 bag, uint8 slot, bool update)
Definition PlayerStorage.cpp:3090
Player * GetPlayer() const
Definition WorldSession.h:454
constexpr std::array< std::string_view, MAX_ITEM_QUALITY > itemQualityToString
Definition cs_bag.cpp:24
Definition ItemTemplate.h:619