mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 17:51:28 +00:00
- Cleanup message and logic. - Cleanup other spots using similar logic so they're all uniform.
97 lines
1.9 KiB
C++
Executable File
97 lines
1.9 KiB
C++
Executable File
#include "../client.h"
|
|
#include "../groups.h"
|
|
|
|
void command_ginfo(Client *c, const Seperator *sep)
|
|
{
|
|
Client *target = c;
|
|
if (c->GetTarget() && c->GetTarget()->IsClient()) {
|
|
target = c->GetTarget()->CastToClient();
|
|
}
|
|
|
|
auto target_group = target->GetGroup();
|
|
if (!target_group) {
|
|
c->Message(
|
|
Chat::White,
|
|
fmt::format(
|
|
"{} not in a group.",
|
|
(
|
|
c == target ?
|
|
"You are" :
|
|
fmt::format(
|
|
"{} ({}) is",
|
|
target->GetCleanName(),
|
|
target->GetID()
|
|
)
|
|
)
|
|
).c_str()
|
|
);
|
|
return;
|
|
}
|
|
|
|
c->Message(
|
|
Chat::White,
|
|
fmt::format(
|
|
"Group Info for {} | ID: {} Members: {}",
|
|
(
|
|
c == target ?
|
|
"Yourself" :
|
|
fmt::format(
|
|
"{} ({})",
|
|
target->GetCleanName(),
|
|
target->GetID()
|
|
)
|
|
),
|
|
target_group->GetID(),
|
|
target_group->GroupCount()
|
|
).c_str()
|
|
);
|
|
|
|
for (int group_member = 0; group_member < MAX_GROUP_MEMBERS; group_member++) {
|
|
if (target_group->membername[group_member][0] == '\0') {
|
|
continue;
|
|
}
|
|
|
|
int member_number = (group_member + 1);
|
|
bool is_assist = target_group->MemberRoles[group_member] & RoleAssist;
|
|
bool is_puller = target_group->MemberRoles[group_member] & RolePuller;
|
|
bool is_tank = target_group->MemberRoles[group_member] & RoleTank;
|
|
auto member_string = (
|
|
strcmp(target_group->membername[group_member], c->GetCleanName()) ?
|
|
(
|
|
fmt::format(
|
|
"Name: {} In Zone: {}",
|
|
target_group->membername[group_member],
|
|
target_group->members[group_member] ? "Yes" : "No"
|
|
)
|
|
) :
|
|
"You"
|
|
);
|
|
c->Message(
|
|
Chat::White,
|
|
fmt::format(
|
|
"Member {} | {}",
|
|
member_number,
|
|
member_string
|
|
).c_str()
|
|
);
|
|
|
|
if (
|
|
is_assist ||
|
|
is_puller ||
|
|
is_tank
|
|
) {
|
|
c->Message(
|
|
Chat::White,
|
|
fmt::format(
|
|
"Member {} Roles | Assist: {} Puller: {} Tank: {}",
|
|
member_number,
|
|
is_assist ? "Yes" : "No",
|
|
is_puller ? "Yes" : "No",
|
|
is_tank ? "Yes" : "No"
|
|
).c_str()
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|