Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.wayofwar.ggsp.players;
- import org.apache.commons.lang.Validate;
- import ru.wayofwar.ggsp.config.LocaleModule;
- /**
- * Уровень доступа игрока.
- */
- public enum Role {
- NORMAL,
- BOOSTER,
- YOUTUBE,
- ADMIN_FIRST,
- ADMIN_SECOND,
- ADMIN_THIRD,
- ADMIN_FOURTH,
- ADMIN_MAIN;
- public static final String LOCALE_PREFIX = "role-";
- public final int level;
- private final String localeKey;
- Role() {
- this.level = ordinal();
- localeKey = LOCALE_PREFIX + name().toLowerCase().replace('_', '-');
- }
- public static Role getByLevel(int level) {
- switch (level) {
- case 0:
- return NORMAL;
- case 1:
- return BOOSTER;
- case 2:
- return YOUTUBE;
- case 3:
- return ADMIN_FIRST;
- case 4:
- return ADMIN_SECOND;
- case 5:
- return ADMIN_THIRD;
- case 6:
- return ADMIN_FOURTH;
- case 7:
- return ADMIN_MAIN;
- default:
- return null;
- }
- }
- /**
- * Локализует роль в соответствии с модулем локализации.
- *
- * @param locale Молуль локализации.
- *
- * @return Локализованное название роли.
- */
- public String localize(LocaleModule locale) {
- Validate.notNull(locale, "Locale module cannot be null!");
- return locale.lc(localeKey);
- }
- /**
- * Проверяет, доступны ли требуемые права данному уровню.
- *
- * @param required Минимальный требуемый уровень.
- *
- * @return true, если права доступны.
- */
- public boolean hasPermissions(Role required) {
- return required.level <= level;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement