71 lines
1.5 KiB
C++
Executable File

#include "../../client.h"
#include "../../groups.h"
#include "../../raids.h"
#include "../../raids.h"
void SetAAEXP(Client *c, const Seperator *sep)
{
const auto arguments = sep->argnum;
if (arguments < 3 || !sep->IsNumber(3)) {
c->Message(Chat::White, "Usage: #set aa_exp [aa|group|raid] [Amount]");
return;
}
auto t = c;
if (c->GetTarget() && c->GetTarget()->IsClient()) {
t = c->GetTarget()->CastToClient();
}
const std::string& aa_type = Strings::ToLower(sep->arg[2]);
const uint32 aa_experience = Strings::ToUnsignedInt(sep->arg[3]);
std::string group_raid_string;
const bool is_aa = Strings::EqualFold(aa_type, "aa");
const bool is_group = Strings::EqualFold(aa_type, "group");
const bool is_raid = Strings::EqualFold(aa_type, "raid");
if (
!is_aa &&
!is_group &&
!is_raid
) {
c->Message(Chat::White, "Usage: #set aa_exp [aa|group|raid] [Amount]");
return;
}
if (is_aa) {
t->SetEXP(
ExpSource::GM,
t->GetEXP(),
aa_experience,
false
);
} else if (is_group) {
group_raid_string = "Group ";
t->SetLeadershipEXP(
aa_experience,
t->GetRaidEXP()
);
} else if (is_raid) {
group_raid_string = "Raid ";
t->SetLeadershipEXP(
t->GetGroupEXP(),
aa_experience
);
}
c->Message(
Chat::White,
fmt::format(
"{} now {} {} {}AA Experience.",
c->GetTargetDescription(t, TargetDescriptionType::UCYou),
c == t ? "have" : "has",
Strings::Commify(aa_experience),
group_raid_string
).c_str()
);
}