[Commands] Cleanup #hatelist Command. (#1976)

- Cleanup messages and logic.
This commit is contained in:
Kinglykrab 2022-02-10 16:14:17 -05:00 committed by GitHub
parent 7bf466cf3f
commit 968ae26c99
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 51 additions and 15 deletions

View File

@ -209,7 +209,7 @@ int command_init(void)
command_add("hair", "- Change the hair style of your target", AccountStatus::QuestTroupe, command_hair) || command_add("hair", "- Change the hair style of your target", AccountStatus::QuestTroupe, command_hair) ||
command_add("haircolor", "- Change the hair color of your target", AccountStatus::QuestTroupe, command_haircolor) || command_add("haircolor", "- Change the hair color of your target", AccountStatus::QuestTroupe, command_haircolor) ||
command_add("haste", "[percentage] - Set your haste percentage", AccountStatus::GMAdmin, command_haste) || command_add("haste", "[percentage] - Set your haste percentage", AccountStatus::GMAdmin, command_haste) ||
command_add("hatelist", " - Display hate list for target.", AccountStatus::QuestTroupe, command_hatelist) || command_add("hatelist", "- Display hate list for NPC.", AccountStatus::QuestTroupe, command_hatelist) ||
command_add("heal", "- Completely heal your target", AccountStatus::Steward, command_heal) || command_add("heal", "- Completely heal your target", AccountStatus::Steward, command_heal) ||
command_add("helm", "- Change the helm of your target", AccountStatus::QuestTroupe, command_helm) || command_add("helm", "- Change the helm of your target", AccountStatus::QuestTroupe, command_helm) ||
command_add("help", "[search term] - List available commands and their description, specify partial command as argument to search", AccountStatus::Player, command_help) || command_add("help", "[search term] - List available commands and their description, specify partial command as argument to search", AccountStatus::Player, command_help) ||

View File

@ -2,14 +2,12 @@
void command_hatelist(Client *c, const Seperator *sep) void command_hatelist(Client *c, const Seperator *sep)
{ {
Mob *target = c->GetTarget(); if (!c->GetTarget() || !c->GetTarget()->IsNPC()) {
if (target == nullptr) { c->Message(Chat::White, "You must target an NPC to use this command.");
c->Message(Chat::White, "Error: you must have a target.");
return; return;
} }
c->Message(Chat::White, "Display hate list for %s..", target->GetName()); auto target = c->GetTarget();
target->PrintHateListToClient(c); target->PrintHateListToClient(c);
} }

View File

@ -645,15 +645,53 @@ bool HateList::IsHateListEmpty() {
void HateList::PrintHateListToClient(Client *c) void HateList::PrintHateListToClient(Client *c)
{ {
auto iterator = list.begin(); if (list.size()) {
while (iterator != list.end()) c->Message(
{ Chat::White,
struct_HateList *e = (*iterator); fmt::format(
c->Message(Chat::White, "- name: %s, damage: %d, hate: %d", "Displaying hate list for {} ({}).",
(e->entity_on_hatelist && e->entity_on_hatelist->GetName()) ? e->entity_on_hatelist->GetName() : "(null)", hate_owner->GetCleanName(),
e->hatelist_damage, e->stored_hate_amount); hate_owner->GetID()
).c_str()
);
++iterator; auto entity_number = 1;
for (const auto& hate_entity : list) {
if (hate_entity->entity_on_hatelist) {
c->Message(
Chat::White,
fmt::format(
"Hate Entity {} | Name: {} ({}) Damage: {} Hate: {}",
entity_number,
hate_entity->entity_on_hatelist->GetName(),
hate_entity->entity_on_hatelist->GetID(),
hate_entity->hatelist_damage,
hate_entity->stored_hate_amount
).c_str()
);
} else {
c->Message(
Chat::White,
fmt::format(
"Hate Entity {} | Damage: {} Hate: {}",
entity_number,
hate_entity->hatelist_damage,
hate_entity->stored_hate_amount
).c_str()
);
}
entity_number++;
}
} else {
c->Message(
Chat::White,
fmt::format(
"{} ({}) has nothing on its hatelist.",
hate_owner->GetCleanName(),
hate_owner->GetID()
).c_str()
);
} }
} }