Или сделай как я к примеру сделал когда мне потребовалось что-то подобное - дай возможность задавать несколько типов для инстанса
т.е. к примеру возможность зайти в соло или в пати
вот к примеру так задается и разбирается параметр типа входа
String[] entryType = params.getString("entryType", "AUTO").toUpperCase().split(";");
if (entryType[0].equalsIgnoreCase("AUTO"))
{
if (getMinPlayers() == 1)
_entryType = new InstantZoneEntryType[] { InstantZoneEntryType.SOLO };
else if (getMinPlayers() > 1 && getMaxPlayers() <= OtherConfig.PARTY_MAX_SIZE)
_entryType = new InstantZoneEntryType[] { InstantZoneEntryType.PARTY };
else if (getMaxPlayers() > OtherConfig.PARTY_MAX_SIZE)
_entryType = new InstantZoneEntryType[] { InstantZoneEntryType.COMMAND_CHANNEL };
else
throw new IllegalArgumentException("Invalid type?: " + _name);
}
else
{
_entryType = new InstantZoneEntryType[entryType.length];
for (int i = 0; i < entryType.length; i++)
_entryType[i] = InstantZoneEntryType.valueOf(InstantZoneEntryType.class, entryType[i]);
}
ну и само собой в проверке canReenterInstance и в enterReflection идет перебор всех разрешенных вариантов входа
т.е. к примеру указано "PARTY;SOLO" - сначала проверит, в пати ли игрок и если да, то вернет что инстанс для пати и надо сделать проверки входа как для пати, а если игрок не в пати - сделать проверки как для соло.
тогда в итоге к примеру количество игроков 5-9 будет означать что вход для одного игрока без пати или же в пати 5-9 человек