Advertisement
Guest User

Role.java

a guest
Dec 18th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.66 KB | None | 0 0
  1. package ru.wayofwar.ggsp.players;
  2.  
  3. import org.apache.commons.lang.Validate;
  4. import ru.wayofwar.ggsp.config.LocaleModule;
  5.  
  6. /**
  7.  * Уровень доступа игрока.
  8.  */
  9. public enum Role {
  10.     NORMAL,
  11.     BOOSTER,
  12.     YOUTUBE,
  13.     ADMIN_FIRST,
  14.     ADMIN_SECOND,
  15.     ADMIN_THIRD,
  16.     ADMIN_FOURTH,
  17.     ADMIN_MAIN;
  18.  
  19.     public static final String LOCALE_PREFIX = "role-";
  20.  
  21.     public final int level;
  22.  
  23.     private final String localeKey;
  24.  
  25.     Role() {
  26.         this.level = ordinal();
  27.         localeKey = LOCALE_PREFIX + name().toLowerCase().replace('_', '-');
  28.     }
  29.  
  30.     public static Role getByLevel(int level) {
  31.         switch (level) {
  32.             case 0:
  33.                 return NORMAL;
  34.             case 1:
  35.                 return BOOSTER;
  36.             case 2:
  37.                 return YOUTUBE;
  38.             case 3:
  39.                 return ADMIN_FIRST;
  40.             case 4:
  41.                 return ADMIN_SECOND;
  42.             case 5:
  43.                 return ADMIN_THIRD;
  44.             case 6:
  45.                 return ADMIN_FOURTH;
  46.             case 7:
  47.                 return ADMIN_MAIN;
  48.             default:
  49.                 return null;
  50.         }
  51.     }
  52.  
  53.     /**
  54.      * Локализует роль в соответствии с модулем локализации.
  55.      *
  56.      * @param locale Молуль локализации.
  57.      *
  58.      * @return Локализованное название роли.
  59.      */
  60.     public String localize(LocaleModule locale) {
  61.         Validate.notNull(locale, "Locale module cannot be null!");
  62.         return locale.lc(localeKey);
  63.     }
  64.  
  65.     /**
  66.      * Проверяет, доступны ли требуемые права данному уровню.
  67.      *
  68.      * @param required Минимальный требуемый уровень.
  69.      *
  70.      * @return true, если права доступны.
  71.      */
  72.     public boolean hasPermissions(Role required) {
  73.         return required.level <= level;
  74.     }
  75.  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement