53 PLAYER(
"Player",
"000000", 0, -1, 4111),
54 MODERATOR(
"Moderator",
"245EFF", 1, -1, 4116),
55 ADMINISTRATOR(
"Administrator",
"D17417", 2, -1, 4116),
56 MANAGER(
"Manager",
"D17417", 3, -1, 4116),
57 OWNER(
"Owner",
"ED0C0C", 2, -1, 4117),
58 DEVELOPER(
"Developer",
"7D0CED", 4, -1, 4117),
60 DONATOR(
"Donator",
"9C4B2F", 5, 10, 4112),
61 SUPER_DONATOR(
"Super Donator",
"2F809C", 6, 50, 4112),
62 EXTREME_DONATOR(
"Extreme Donator",
"158A76", 7, 250, 4113),
63 ELITE_DONATOR(
"Elite Donator",
"2CA395", 8, 500, 4114),
64 KING_DONATOR(
"King Donator",
"8F7A42", 9, 1000, 4115),
65 VETERAN(
"Veteran",
"B1800A", 10, -1, 4115),
66 YOUTUBER(
"Youtuber",
"91111A", 11, -1, 4112),
67 IRONMAN(
"Ironman",
"7A6F74", 12, -1, 4112),
68 ULTIMATE_IRONMAN(
"Ultimate Ironman",
"7A6F74", 13, -1, 4113),
69 HARDCORE_IRONMAN(
"Hardcore Ironman",
"7A6F74", 14, -1, 4114),
70 HELPER(
"Helper",
"5C5858", 15, -1, 4115),
71 GRAPHIC(
"Graphic",
"CE795A", 17, -1, 4112);
76 private final String name;
81 private final int crown;
83 private final int moneyRequired;
88 private final String color;
93 private final int restAnimation;
98 PlayerRight(String name, String color,
int crown,
int moneyRequired,
int restAnimation) {
102 this.moneyRequired = moneyRequired;
103 this.restAnimation = restAnimation;
106 public static Optional<PlayerRight> lookup(
int id) {
107 return Arrays.stream(values()).filter(it -> it.crown ==
id).findFirst();
110 public static boolean isOwner(
Player player) {
111 return player.right.equals(OWNER);
118 return player.right.equals(OWNER) || player.right.equals(DEVELOPER);
125 return isDeveloper(player) || player.right.equals(MANAGER);
132 return isManager(player) || player.right.equals(ADMINISTRATOR);
146 return isModerator(player) || player.right.equals(HELPER);
153 return isModerator(player) ||
isHelper(player) || player.donation.getSpent() >= DONATOR.getMoneyRequired();
160 return isModerator(player) ||
isHelper(player) || player.donation.getSpent() >= SUPER_DONATOR.getMoneyRequired();
167 return isAdministrator(player) || player.donation.getSpent() >= EXTREME_DONATOR.getMoneyRequired();
174 return isAdministrator(player) || player.donation.getSpent() >= ELITE_DONATOR.getMoneyRequired();
181 return isAdministrator(player) || player.donation.getSpent() >= KING_DONATOR.getMoneyRequired();
188 return player.right.equals(IRONMAN) || player.right.equals(ULTIMATE_IRONMAN) || player.right.equals(HARDCORE_IRONMAN);
202 return right.equals(PLAYER) ?
"" :
"<img=" + (right.
getCrown() - 1) +
">";
206 return "<col=" + right.getColor() +
"><img=" + (right.
getCrown() - 1) +
">";
209 public String getCrownText() {
210 return this == PLAYER ?
"" :
"<img=" + (crown - 1) +
"> ";
213 public static int getForumGroupId(
PlayerRight right) {
222 case EXTREME_DONATOR:
253 public static int getPresetAmount(
Player player) {
256 else if (isElite(player))
258 else if (isExtreme(player))
260 else if (isSuper(player))
262 else if (isDonator(player))
267 public static int getBloodMoney(
Player player) {
270 else if (isElite(player))
272 else if (isExtreme(player))
274 else if (isSuper(player))
276 else if (isDonator(player))
281 public static int dropRateIncrease(
Player player,
int roll) {
282 if (isKing(player))
return roll * 9 / 10;
283 else if (isElite(player))
return roll * 37 / 40;
284 else if (isExtreme(player))
return roll * 47 / 50;
285 else if (isSuper(player))
return roll * 189 / 200;
286 else if (isDonator(player))
return roll * 191 / 200;
287 else return roll * 97 / 100;
290 public static double getDropRateBonus(
Player player) {
291 if (isKing(player))
return 10;
292 else if (isElite(player))
return 7.5;
293 else if (isExtreme(player))
return 6;
294 else if (isSuper(player))
return 5.5;
295 else if (isDonator(player))
return 4.5;
299 public static PlayerRight forSpent(
int spent) {
300 if (spent >= PlayerRight.KING_DONATOR.getMoneyRequired())
301 return PlayerRight.KING_DONATOR;
302 if (spent >= PlayerRight.EXTREME_DONATOR.getMoneyRequired())
303 return PlayerRight.EXTREME_DONATOR;
304 if (spent >= PlayerRight.ELITE_DONATOR.getMoneyRequired())
305 return PlayerRight.ELITE_DONATOR;
306 if (spent >= PlayerRight.SUPER_DONATOR.getMoneyRequired())
307 return PlayerRight.SUPER_DONATOR;
308 if (spent >= PlayerRight.DONATOR.getMoneyRequired())
309 return PlayerRight.DONATOR;
327 public int getMoneyRequired() {
328 return moneyRequired;
342 return restAnimation;
346 return ordinal() > other.ordinal();
349 public final boolean greaterOrEqual(
PlayerRight other) {
350 return ordinal() >= other.ordinal();
354 return ordinal() < other.ordinal();
357 public final boolean lessOrEqual(
PlayerRight other) {
358 return ordinal() <= other.ordinal();