mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-04-18 08:23:01 +00:00
51 lines
2.3 KiB
Java
51 lines
2.3 KiB
Java
package me.totalfreedom.totalfreedommod.rank;
|
|
|
|
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
|
import net.kyori.adventure.text.Component;
|
|
import net.kyori.adventure.text.format.NamedTextColor;
|
|
import net.luckperms.api.model.user.User;
|
|
import net.luckperms.api.track.TrackManager;
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.entity.Player;
|
|
|
|
import java.util.Set;
|
|
|
|
@FunctionalInterface
|
|
public interface GroupProvider<T extends DisplayableGroup>
|
|
{
|
|
Component OPEN = Component.text("[", NamedTextColor.DARK_GRAY);
|
|
Component CLOSE = Component.text("]", NamedTextColor.DARK_GRAY);
|
|
|
|
GroupProvider<DisplayableGroup> NON_OP = () -> new DisplayableGroup("default", null, Component.text("Non-Ops"), Component.empty(), 0, NamedTextColor.WHITE, null, false, false);
|
|
GroupProvider<DisplayableGroup> OP = () -> new DisplayableGroup("op", "default", Component.text("Operators"), Component.text("Op"), 1, NamedTextColor.GREEN, null, false, false);
|
|
GroupProvider<DisplayableGroup> MASTER_BUILDER = () -> new DisplayableGroup("builder", "op", Component.text("Master Builders"), Component.text("MB"), 2, NamedTextColor.DARK_AQUA, ChatColor.DARK_AQUA, true, true);
|
|
GroupProvider<DisplayableGroup> ADMIN = () -> new DisplayableGroup("admin", "builder", Component.text("Administrators"), Component.text("Admin"), 3, NamedTextColor.DARK_GREEN, ChatColor.DARK_GREEN, true, true);
|
|
GroupProvider<DisplayableGroup> SENIOR_ADMIN = () -> new DisplayableGroup("senior", "admin", Component.text("Senior Administrators"), Component.text("SrA"), 4, NamedTextColor.GOLD, ChatColor.GOLD, true, true);
|
|
|
|
static User getUser(Player player)
|
|
{
|
|
return TotalFreedomMod.getPlugin()
|
|
.lpb.getAPI()
|
|
.getPlayerAdapter(Player.class)
|
|
.getUser(player);
|
|
}
|
|
|
|
static GroupProvider<DisplayableGroup> fromArgument(String arg)
|
|
{
|
|
return switch (arg.toLowerCase())
|
|
{
|
|
case "op" -> OP;
|
|
case "builder" -> MASTER_BUILDER;
|
|
case "admin" -> ADMIN;
|
|
case "senior" -> SENIOR_ADMIN;
|
|
default -> NON_OP;
|
|
};
|
|
}
|
|
|
|
static Set<GroupProvider<DisplayableGroup>> providerSet()
|
|
{
|
|
return Set.of(NON_OP, OP, MASTER_BUILDER, ADMIN, SENIOR_ADMIN);
|
|
}
|
|
|
|
T getGroup();
|
|
} |