LuckPerms Integration (1/2)

This is part 1 of 2 of the luckperms integration for our switch to permissions.
This commit is contained in:
Paul Reilly
2023-03-29 00:46:32 -05:00
parent f91c21cc81
commit 65540b7f3a
96 changed files with 567 additions and 724 deletions

View File

@ -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;
}
}