pre6 - UltraPermissions hook & bstats
This commit is contained in:
@@ -51,6 +51,7 @@ public class PermissionList extends SubCommand {
|
|||||||
sender.sendMessage(Component.text("no permission handler"));
|
sender.sendMessage(Component.text("no permission handler"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
permissions.forEach(s -> {
|
permissions.forEach(s -> {
|
||||||
if(!s.toLowerCase(Locale.ROOT).contains("ajqueue")) return;
|
if(!s.toLowerCase(Locale.ROOT).contains("ajqueue")) return;
|
||||||
sender.sendMessage(Component.text(s));
|
sender.sendMessage(Component.text(s));
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ dependencies {
|
|||||||
implementation("net.kyori:adventure-platform-bungeecord:4.0.0-SNAPSHOT")
|
implementation("net.kyori:adventure-platform-bungeecord:4.0.0-SNAPSHOT")
|
||||||
compileOnly("net.kyori:adventure-text-serializer-plain: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(":common"))
|
||||||
implementation(project(":api"))
|
implementation(project(":api"))
|
||||||
}
|
}
|
||||||
|
|||||||
+7
@@ -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.Listener;
|
||||||
import net.md_5.bungee.api.plugin.Plugin;
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
import net.md_5.bungee.event.EventHandler;
|
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 org.checkerframework.checker.nullness.qual.NonNull;
|
||||||
import us.ajg0702.queue.api.commands.IBaseCommand;
|
import us.ajg0702.queue.api.commands.IBaseCommand;
|
||||||
import us.ajg0702.queue.api.util.QueueLogger;
|
import us.ajg0702.queue.api.util.QueueLogger;
|
||||||
@@ -61,6 +63,11 @@ public class BungeeQueue extends Plugin implements Listener {
|
|||||||
|
|
||||||
getProxy().getPluginManager().registerListener(this, this);
|
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;
|
private static BungeeAudiences adventure;
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ dependencies {
|
|||||||
annotationProcessor("com.velocitypowered:velocity-api:3.0.0")
|
annotationProcessor("com.velocitypowered:velocity-api:3.0.0")
|
||||||
compileOnly("net.kyori:adventure-text-minimessage:4.0.0-SNAPSHOT")
|
compileOnly("net.kyori:adventure-text-minimessage:4.0.0-SNAPSHOT")
|
||||||
|
|
||||||
|
implementation("org.bstats:bstats-velocity:2.2.1")
|
||||||
|
|
||||||
implementation(project(":common"))
|
implementation(project(":common"))
|
||||||
implementation(project(":api"))
|
implementation(project(":api"))
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-1
@@ -15,6 +15,8 @@ import com.velocitypowered.api.proxy.Player;
|
|||||||
import com.velocitypowered.api.proxy.ProxyServer;
|
import com.velocitypowered.api.proxy.ProxyServer;
|
||||||
import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier;
|
import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
|
import org.bstats.charts.SimplePie;
|
||||||
|
import org.bstats.velocity.Metrics;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import us.ajg0702.queue.api.commands.IBaseCommand;
|
import us.ajg0702.queue.api.commands.IBaseCommand;
|
||||||
import us.ajg0702.queue.commands.BaseCommand;
|
import us.ajg0702.queue.commands.BaseCommand;
|
||||||
@@ -50,12 +52,16 @@ public class VelocityQueue {
|
|||||||
|
|
||||||
final File dataFolder;
|
final File dataFolder;
|
||||||
|
|
||||||
|
private final Metrics.Factory metricsFactory;
|
||||||
|
|
||||||
@Inject
|
@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.proxyServer = proxyServer;
|
||||||
this.logger = new VelocityLogger(logger);
|
this.logger = new VelocityLogger(logger);
|
||||||
|
|
||||||
this.dataFolder = dataFolder.toFile();
|
this.dataFolder = dataFolder.toFile();
|
||||||
|
|
||||||
|
this.metricsFactory = metricsFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<IBaseCommand> commands;
|
List<IBaseCommand> commands;
|
||||||
@@ -90,6 +96,12 @@ public class VelocityQueue {
|
|||||||
new VelocityCommand(main, (BaseCommand) command)
|
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
|
@Subscribe
|
||||||
@@ -126,6 +138,7 @@ public class VelocityQueue {
|
|||||||
main.getEventHandler().onPlayerLeave(new VelocityPlayer(e.getPlayer()));
|
main.getEventHandler().onPlayerLeave(new VelocityPlayer(e.getPlayer()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("SimplifyOptionalCallChains")
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onKick(KickedFromServerEvent e) {
|
public void onKick(KickedFromServerEvent e) {
|
||||||
if(!e.getPlayer().getCurrentServer().isPresent()) return; // if the player is kicked on initial join, we dont care
|
if(!e.getPlayer().getCurrentServer().isPresent()) return; // if the player is kicked on initial join, we dont care
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ dependencies {
|
|||||||
|
|
||||||
compileOnly("net.kyori:adventure-api:4.8.1")
|
compileOnly("net.kyori:adventure-api:4.8.1")
|
||||||
|
|
||||||
|
compileOnly(fileTree(mapOf("dir" to "../libs", "include" to listOf("*.jar"))))
|
||||||
|
|
||||||
compileOnly("net.luckperms:api:5.0")
|
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.common.QueueMain;
|
||||||
import us.ajg0702.queue.logic.permissions.hooks.BuiltIn;
|
import us.ajg0702.queue.logic.permissions.hooks.BuiltIn;
|
||||||
import us.ajg0702.queue.logic.permissions.hooks.LuckPermsHook;
|
import us.ajg0702.queue.logic.permissions.hooks.LuckPermsHook;
|
||||||
|
import us.ajg0702.queue.logic.permissions.hooks.UltraPermissionsHook;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@@ -15,7 +16,8 @@ public class PermissionGetter {
|
|||||||
public PermissionGetter(QueueMain main) {
|
public PermissionGetter(QueueMain main) {
|
||||||
hooks = Arrays.asList(
|
hooks = Arrays.asList(
|
||||||
new BuiltIn(main),
|
new BuiltIn(main),
|
||||||
new LuckPermsHook(main)
|
new LuckPermsHook(main),
|
||||||
|
new UltraPermissionsHook(main)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,6 +32,7 @@ public class PermissionGetter {
|
|||||||
selected = hook;
|
selected = hook;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
main.getLogger().info("Using "+selected.getName()+" for permissions.");
|
||||||
return selected;
|
return selected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+44
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user