LoParkour/src/main/java/dev/loki/loparkour/menu/ParkourOption.java
2026-02-24 22:07:03 +01:00

81 lines
2.8 KiB
Java

package dev.loki.loparkour.menu;
import dev.loki.loparkour.config.Config;
import dev.loki.loparkour.config.Option;
import org.bukkit.permissions.Permissible;
/**
* An enum for all Parkour Menu Options
*/
public enum ParkourOption {
// main
MAIN("main", "LoParkour.main"),
// play
PLAY("play", "LoParkour.play"),
SINGLE("play.single", "LoParkour.play.single"),
SPECTATOR("play.spectator", "LoParkour.play.spectator"),
// community
COMMUNITY("community", "LoParkour.community"),
LEADERBOARDS("community.leaderboards", "LoParkour.community.leaderboards"),
// settings
SETTINGS("settings", "LoParkour.settings"),
PARKOUR_SETTINGS("settings.parkour_settings.item", "LoParkour.settings.parkour_settings"),
STYLES("settings.parkour_settings.items.styles", "LoParkour.settings.styles"),
LEADS("settings.parkour_settings.items.leads", "LoParkour.settings.leads"),
TIME("settings.parkour_settings.items.time", "LoParkour.settings.time"),
SCHEMATICS("settings.parkour_settings.items.schematics", "LoParkour.settings.schematics"),
SCOREBOARD("settings.parkour_settings.items.scoreboard", "LoParkour.settings.show_scoreboard"),
FALL_MESSAGE("settings.parkour_settings.items.fall_message", "LoParkour.settings.fall_message"),
PARTICLES("settings.parkour_settings.items.particles", "LoParkour.settings.particles"),
SOUND("settings.parkour_settings.items.sound", "LoParkour.settings.sound"),
SPECIAL_BLOCKS("settings.parkour_settings.items.special_blocks", "LoParkour.settings.special_blocks"),
LANG("settings.lang", "LoParkour.settings.lang"),
CHAT("settings.chat", "LoParkour.settings.chat"),
// lobby
LOBBY("lobby", "LoParkour.lobby"),
VISIBILITY("lobby.visibility", "LoParkour.lobby.visibility"),
PLAYER_MANAGEMENT("lobby.player_management", "LoParkour.lobby.player_management"),
// other
JOIN("join", "LoParkour.join"),
QUIT("quit", "LoParkour.quit"),
ADMIN("admin", "LoParkour.admin");
/**
* The path in config files for this option.
*/
public final String path;
/**
* The permission for this option.
*/
public final String permission;
ParkourOption(String path, String permission) {
this.path = path;
this.permission = permission;
}
/**
* @param permissible The player
* @return True if the player is allowed to view/perform this option, false if not.
*/
public boolean mayPerform(Permissible permissible) {
boolean value = Option.OPTIONS_ENABLED.getOrDefault(this, true);
if (value) {
if (Config.CONFIG.getBoolean("permissions.enabled")) {
return permissible.hasPermission(permission);
}
return true;
}
return false;
}
}