Mostly javadoc, and also some fixes there and there

This commit is contained in:
2022-08-10 03:04:12 +02:00
parent f976350ee1
commit 54bc8ab99a
42 changed files with 1671 additions and 733 deletions

View File

@@ -8,6 +8,8 @@ import java.util.concurrent.ExecutionException;
import java.util.function.Function;
import java.util.function.Predicate;
import fr.pandacube.lib.db.DB;
import fr.pandacube.lib.db.DBConnection;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.event.EventHandler;
@@ -23,12 +25,26 @@ import org.bukkit.plugin.java.JavaPlugin;
import fr.pandacube.lib.permissions.Permissions;
import fr.pandacube.lib.util.Log;
/**
* Class that integrates the {@code pandalib-permissions} system into a Bukkit/Spigot/Paper instance.
* The integration is made when calling {@link #init(JavaPlugin, String)}.
* The permission system must be initialized first, using {@link Permissions#init(Function)}.
* Dont forget that the permission system also needs a connection to a database, so dont forget to call
* {@link DB#init(DBConnection, String)} with the appropriate parameters before anything.
*/
public class PandalibPaperPermissions implements Listener {
/* package */ static JavaPlugin plugin;
/* package */ static String serverName;
/* package */ static final Map<String, String> permissionMap = new HashMap<>();
/**
* Integrates the {@code pandalib-permissions} system into the Bukkit server.
* @param plugin a Bukkit plugin.
* @param serverName the name of the current server, used to fetch server specific permissions. Cannot be null.
* If this server in not in a multi-server configuration, use a dummy server name, like
* {@code ""} (empty string).
*/
public static void init(JavaPlugin plugin, String serverName) {
PandalibPaperPermissions.plugin = plugin;
PandalibPaperPermissions.serverName = serverName;
@@ -58,6 +74,10 @@ public class PandalibPaperPermissions implements Listener {
}
}
/**
* Player login event handler.
* @param event the event.
*/
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerLogin(PlayerLoginEvent event) {
Permissions.clearPlayerCache(event.getPlayer().getUniqueId());
@@ -67,6 +87,10 @@ public class PandalibPaperPermissions implements Listener {
}
/**
* Player quit event handler.
* @param event the event.
*/
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerQuit(PlayerQuitEvent event) {
PermissionsInjectorBukkit.uninject(event.getPlayer());

View File

@@ -29,7 +29,7 @@ import fr.pandacube.lib.permissions.Permissions;
import fr.pandacube.lib.reflect.Reflect;
import fr.pandacube.lib.util.Log;
public class PermissionsInjectorBukkit
/* package */ class PermissionsInjectorBukkit
{
// to be called : onEnable for console, onPlayerLogin (not Join) (Priority LOWEST) for players

View File

@@ -10,7 +10,7 @@ import fr.pandacube.lib.permissions.PermGroup;
import fr.pandacube.lib.permissions.Permissions;
import fr.pandacube.lib.util.Log;
public class PermissionsInjectorVault {
/* package */ class PermissionsInjectorVault {
public static PandaVaultPermission permInstance;
@@ -27,12 +27,12 @@ public class PermissionsInjectorVault {
Log.warning("Vault plugin not detected. Not using it to provide permissions and prefix/suffix." + e.getMessage());
}
}
public static class PandaVaultPermission extends net.milkbowl.vault.permission.Permission {
/* package */ static class PandaVaultPermission extends net.milkbowl.vault.permission.Permission {
private PandaVaultPermission() { }

View File

@@ -13,13 +13,11 @@ import fr.pandacube.lib.permissions.PermPlayer;
import fr.pandacube.lib.permissions.Permissions;
import fr.pandacube.lib.util.Log;
public class PermissionsInjectorWEPIF {
public static PandaWEPIFPermissionsProvider permInstance;
/* package */ class PermissionsInjectorWEPIF {
public static void inject() {
try {
permInstance = new PandaWEPIFPermissionsProvider();
PandaWEPIFPermissionsProvider permInstance = new PandaWEPIFPermissionsProvider();
Bukkit.getServicesManager().register(com.sk89q.wepif.PermissionsProvider.class, permInstance,
PandalibPaperPermissions.plugin, ServicePriority.Highest);
Log.info("Providing permissions through WEPIF");
@@ -32,11 +30,11 @@ public class PermissionsInjectorWEPIF {
}
}
public static class PandaWEPIFPermissionsProvider implements com.sk89q.wepif.PermissionsProvider {
/* package */ static class PandaWEPIFPermissionsProvider implements com.sk89q.wepif.PermissionsProvider {
private PandaWEPIFPermissionsProvider() { }
private PermPlayer getPlayer(OfflinePlayer player) {