#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->GetTargetDescription(target, TargetDescriptionType::UCYou), c == target ? "are" : "is" ).c_str() ); return; } std::string popup_title = fmt::format( "Group Info for {}", c->GetTargetDescription(target, TargetDescriptionType::UCSelf) ); std::string popup_text = ""; popup_text += fmt::format( "", target_group->GetID(), target_group->GroupCount() ); popup_text += "

"; popup_text += ""; popup_text += ""; popup_text += ""; popup_text += ""; popup_text += ""; popup_text += ""; popup_text += ""; popup_text += ""; for (int group_member = 0; group_member < MAX_GROUP_MEMBERS; group_member++) { if (target_group->membername[group_member][0] == '\0') { continue; } 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; popup_text += fmt::format( "", group_member, ( strcmp(target_group->membername[group_member], c->GetCleanName()) ? target_group->membername[group_member] : fmt::format( "{} (You)", target_group->membername[group_member] ) ), target_group->members[group_member] ? "Y" : "N", is_assist ? "Y" : "N", is_puller ? "Y" : "N", is_tank ? "Y" : "N" ); } popup_text += "
Group ID{}Members{}
IndexNameIn ZoneAssistPullerTank
{}{}{}{}{}{}
"; c->SendPopupToClient( popup_title.c_str(), popup_text.c_str() ); }