mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-07-07 06:23:05 +00:00
LuckPerms Integration (1/2)
This is part 1 of 2 of the luckperms integration for our switch to permissions.
This commit is contained in:
@ -0,0 +1,141 @@
|
||||
package me.totalfreedom.totalfreedommod.rank;
|
||||
|
||||
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
||||
import net.luckperms.api.model.group.Group;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class DisplayableGroup implements Displayable
|
||||
{
|
||||
private final Group group;
|
||||
|
||||
private final String name;
|
||||
|
||||
private final String abbr;
|
||||
private final String plural;
|
||||
private final String article;
|
||||
|
||||
private final String tag;
|
||||
|
||||
private final String coloredTag;
|
||||
|
||||
private final ChatColor color;
|
||||
|
||||
private final org.bukkit.ChatColor teamColor;
|
||||
|
||||
private final boolean hasTeam;
|
||||
|
||||
private final boolean hasDefaultLoginMessage;
|
||||
|
||||
public DisplayableGroup(String group,
|
||||
String plural,
|
||||
String tag,
|
||||
ChatColor color,
|
||||
org.bukkit.ChatColor teamColor,
|
||||
boolean hasTeam,
|
||||
boolean hasDefaultLoginMessage)
|
||||
{
|
||||
Group matched = TotalFreedomMod.getPlugin().lpb.getAPI().getGroupManager().getGroup(group);
|
||||
|
||||
if (matched == null) {
|
||||
throw new IllegalArgumentException("Group " + group + " does not exist!");
|
||||
}
|
||||
|
||||
this.group = matched;
|
||||
this.name = (matched.getDisplayName() != null) ? matched.getDisplayName() : matched.getName();
|
||||
this.plural = plural;
|
||||
this.article = StringUtils.startsWithAny(this.name.toLowerCase(Locale.ROOT), new String[]{"a", "e", "i", "o", "u"}) ? "an" : "a";
|
||||
this.abbr = tag;
|
||||
this.tag = "[" + tag + "]";
|
||||
this.color = color;
|
||||
this.teamColor = teamColor;
|
||||
this.hasTeam = hasTeam;
|
||||
this.coloredTag = ChatColor.DARK_GRAY + "[" + getColor() + getTag() + ChatColor.DARK_GRAY + "]" + getColor();
|
||||
this.hasDefaultLoginMessage = hasDefaultLoginMessage;
|
||||
}
|
||||
|
||||
public boolean isAtLeast(@NotNull DisplayableGroup rank)
|
||||
{
|
||||
return rank.getLuckPermsGroup().getWeight().orElse(0)
|
||||
<= getLuckPermsGroup().getWeight().orElse(0);
|
||||
}
|
||||
|
||||
public Group getLuckPermsGroup() {
|
||||
return this.group;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getArticle()
|
||||
{
|
||||
return this.article;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTag()
|
||||
{
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAbbr()
|
||||
{
|
||||
return abbr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPlural()
|
||||
{
|
||||
return plural;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChatColor getColor()
|
||||
{
|
||||
return color;
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.bukkit.ChatColor getTeamColor()
|
||||
{
|
||||
return teamColor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getColoredName()
|
||||
{
|
||||
return color + name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getColoredTag()
|
||||
{
|
||||
return coloredTag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getColoredLoginMessage()
|
||||
{
|
||||
return article + ' ' + color + name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasTeam()
|
||||
{
|
||||
return hasTeam;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasDefaultLoginMessage()
|
||||
{
|
||||
return hasDefaultLoginMessage;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user