void StructurePermissionList::sendTo(CreatureObject* creature, const String& listName) { ZoneServer* zoneServer = creature->getZoneServer(); ReadLocker locker(&lock); if (!permissionLists.contains(listName)) { return; } PermissionListCreateMessage* listMsg = new PermissionListCreateMessage(listName); SortedVector<String>* list = &permissionLists.get(listName); for (int i = 0; i < list->size(); ++i) listMsg->addName(list->get(i)); listMsg->generateMessage(); creature->sendMessage(listMsg); }
void StructurePermissionList::sendTo(CreatureObject* creature, const String& listName) { ZoneServer* zoneServer = creature->getZoneServer(); ReadLocker locker(&lock); if (!idPermissionLists.contains(listName)) { return; } PermissionListCreateMessage* listMsg = new PermissionListCreateMessage(listName); SortedVector<uint64>* list = &idPermissionLists.get(listName); Vector<uint64> invalidIDs; for (int i = 0; i < list->size(); ++i) { Reference<SceneObject*> object = zoneServer->getObject(list->get(i)); if (object != NULL && object->isPlayerCreature()) { CreatureObject* player = object.castTo<CreatureObject*>(); String name = player->getFirstName(); listMsg->addName(name); } else if (object != NULL && object->isGuildObject()) { GuildObject* guild = object.castTo<GuildObject*>(); String name = "guild:" + guild->getGuildAbbrev(); listMsg->addName(name); } else { invalidIDs.add(list->get(i)); } } for (int i = 0; i < invalidIDs.size(); i++) { list->drop(invalidIDs.get(i)); } listMsg->generateMessage(); creature->sendMessage(listMsg); }