pre6 - UltraPermissions hook & bstats

This commit is contained in:
ajgeiss0702
2021-08-05 17:28:11 -07:00
parent cde8c0a49c
commit 4e6c10ccb2
8 changed files with 76 additions and 2 deletions
@@ -51,6 +51,7 @@ public class PermissionList extends SubCommand {
sender.sendMessage(Component.text("no permission handler"));
return;
}
permissions.forEach(s -> {
if(!s.toLowerCase(Locale.ROOT).contains("ajqueue")) return;
sender.sendMessage(Component.text(s));
+2
View File
@@ -24,6 +24,8 @@ dependencies {
implementation("net.kyori:adventure-platform-bungeecord:4.0.0-SNAPSHOT")
compileOnly("net.kyori:adventure-text-serializer-plain:4.0.0-SNAPSHOT")
implementation("org.bstats:bstats-bungeecord:2.2.1")
implementation(project(":common"))
implementation(project(":api"))
}
@@ -8,6 +8,8 @@ import net.md_5.bungee.api.event.*;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.event.EventHandler;
import org.bstats.bungeecord.Metrics;
import org.bstats.charts.SimplePie;
import org.checkerframework.checker.nullness.qual.NonNull;
import us.ajg0702.queue.api.commands.IBaseCommand;
import us.ajg0702.queue.api.util.QueueLogger;
@@ -61,6 +63,11 @@ public class BungeeQueue extends Plugin implements Listener {
getProxy().getPluginManager().registerListener(this, this);
Metrics metrics = new Metrics(this, 7404);
metrics.addCustomChart(new SimplePie("premium", () -> String.valueOf(main.getLogic().isPremium())));
metrics.addCustomChart(new SimplePie("implementation", () -> main.getPlatformMethods().getImplementationName()));
}
private static BungeeAudiences adventure;
+2
View File
@@ -21,6 +21,8 @@ dependencies {
annotationProcessor("com.velocitypowered:velocity-api:3.0.0")
compileOnly("net.kyori:adventure-text-minimessage:4.0.0-SNAPSHOT")
implementation("org.bstats:bstats-velocity:2.2.1")
implementation(project(":common"))
implementation(project(":api"))
}
@@ -15,6 +15,8 @@ import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ProxyServer;
import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier;
import net.kyori.adventure.text.Component;
import org.bstats.charts.SimplePie;
import org.bstats.velocity.Metrics;
import org.slf4j.Logger;
import us.ajg0702.queue.api.commands.IBaseCommand;
import us.ajg0702.queue.commands.BaseCommand;
@@ -50,12 +52,16 @@ public class VelocityQueue {
final File dataFolder;
private final Metrics.Factory metricsFactory;
@Inject
public VelocityQueue(ProxyServer proxyServer, Logger logger, @DataDirectory Path dataFolder) {
public VelocityQueue(ProxyServer proxyServer, Logger logger, @DataDirectory Path dataFolder, Metrics.Factory metricsFactory) {
this.proxyServer = proxyServer;
this.logger = new VelocityLogger(logger);
this.dataFolder = dataFolder.toFile();
this.metricsFactory = metricsFactory;
}
List<IBaseCommand> commands;
@@ -90,6 +96,12 @@ public class VelocityQueue {
new VelocityCommand(main, (BaseCommand) command)
);
}
Metrics metrics = metricsFactory.make(this, 7404);
metrics.addCustomChart(new SimplePie("premium", () -> String.valueOf(main.getLogic().isPremium())));
metrics.addCustomChart(new SimplePie("implementation", () -> main.getPlatformMethods().getImplementationName()));
}
@Subscribe
@@ -126,6 +138,7 @@ public class VelocityQueue {
main.getEventHandler().onPlayerLeave(new VelocityPlayer(e.getPlayer()));
}
@SuppressWarnings("SimplifyOptionalCallChains")
@Subscribe
public void onKick(KickedFromServerEvent e) {
if(!e.getPlayer().getCurrentServer().isPresent()) return; // if the player is kicked on initial join, we dont care
+2
View File
@@ -26,6 +26,8 @@ dependencies {
compileOnly("net.kyori:adventure-api:4.8.1")
compileOnly(fileTree(mapOf("dir" to "../libs", "include" to listOf("*.jar"))))
compileOnly("net.luckperms:api:5.0")
}
@@ -4,6 +4,7 @@ import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.common.QueueMain;
import us.ajg0702.queue.logic.permissions.hooks.BuiltIn;
import us.ajg0702.queue.logic.permissions.hooks.LuckPermsHook;
import us.ajg0702.queue.logic.permissions.hooks.UltraPermissionsHook;
import java.util.*;
@@ -15,7 +16,8 @@ public class PermissionGetter {
public PermissionGetter(QueueMain main) {
hooks = Arrays.asList(
new BuiltIn(main),
new LuckPermsHook(main)
new LuckPermsHook(main),
new UltraPermissionsHook(main)
);
}
@@ -30,6 +32,7 @@ public class PermissionGetter {
selected = hook;
}
}
main.getLogger().info("Using "+selected.getName()+" for permissions.");
return selected;
}
@@ -0,0 +1,44 @@
package us.ajg0702.queue.logic.permissions.hooks;
import me.TechsCode.UltraPermissions.UltraPermissions;
import me.TechsCode.UltraPermissions.UltraPermissionsAPI;
import me.TechsCode.UltraPermissions.storage.objects.User;
import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.common.QueueMain;
import us.ajg0702.queue.logic.permissions.PermissionHook;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@SuppressWarnings("SimplifyOptionalCallChains")
public class UltraPermissionsHook implements PermissionHook {
private final QueueMain main;
public UltraPermissionsHook(QueueMain main) {
this.main = main;
}
@Override
public String getName() {
return "UltraPermissions";
}
@Override
public boolean canUse() {
return main.getPlatformMethods().hasPlugin("UltraPermissions");
}
@Override
public List<String> getPermissions(AdaptedPlayer player) {
UltraPermissionsAPI ultraPermissionsAPI = UltraPermissions.getAPI();
Optional<User> userOptional = ultraPermissionsAPI.getUsers().uuid(player.getUniqueId());
if(!userOptional.isPresent()) return new ArrayList<>();
User user = userOptional.get();
List<String> permissions = new ArrayList<>();
user.getPermissions().bungee().forEach(permission -> permissions.add(permission.getName()));
return permissions;
}
}