package me.totalfreedom.totalfreedommod.bridge; import me.totalfreedom.totalfreedommod.rank.GroupProvider; import net.luckperms.api.LuckPerms; import net.luckperms.api.track.TrackManager; import org.bukkit.Bukkit; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.UnknownDependencyException; public class LuckPermsBridge { private final LuckPerms luckPerms; public LuckPermsBridge() { RegisteredServiceProvider provider = Bukkit.getServicesManager() .getRegistration(LuckPerms.class); if (provider == null) throw new UnknownDependencyException("LuckPerms must be present!"); this.luckPerms = provider.getProvider(); setupTracks(); } public LuckPerms getAPI() { return luckPerms; } public void setupTracks() { TrackManager trackManager = getAPI().getTrackManager(); if (!trackManager.isLoaded("fakeOp")) { trackManager.createAndLoadTrack("fakeOp").whenComplete((track, exception) -> { track.appendGroup(GroupProvider.NON_OP.getGroup().getLuckPermsGroup()); track.appendGroup(GroupProvider.OP.getGroup().getLuckPermsGroup()); }); } if (!trackManager.isLoaded("admin")) { trackManager.createAndLoadTrack("admin").whenComplete((track, exception) -> { track.appendGroup(GroupProvider.ADMIN.getGroup().getLuckPermsGroup()); track.appendGroup(GroupProvider.SENIOR_ADMIN.getGroup().getLuckPermsGroup()); }); } if (!trackManager.isLoaded("builder")) { trackManager.createAndLoadTrack("builder").whenComplete((track, exception) -> track.appendGroup(GroupProvider.MASTER_BUILDER.getGroup().getLuckPermsGroup())); } } }