diff --git a/pom.xml b/pom.xml index a06f87a..af19b5d 100644 --- a/pom.xml +++ b/pom.xml @@ -206,8 +206,8 @@ 1.0.0.M3 --> - com.github.lucko - LuckPerms + com.github.lucko.LuckPerms + bukkit master-SNAPSHOT provided diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlayer.java b/src/main/java/buttondevteam/discordplugin/DiscordPlayer.java index 99d84cf..b6b8d99 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordPlayer.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordPlayer.java @@ -16,7 +16,7 @@ public class DiscordPlayer extends ChromaGamerBase { public String getDiscordID() { if (did == null) - did = plugindata.getString(getFolder() + "_id"); + did = getFileName(); return did; } diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/perm/LPInjector.java b/src/main/java/buttondevteam/discordplugin/playerfaker/perm/LPInjector.java index 54522ae..055c5e8 100644 --- a/src/main/java/buttondevteam/discordplugin/playerfaker/perm/LPInjector.java +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/perm/LPInjector.java @@ -13,6 +13,7 @@ import me.lucko.luckperms.common.config.ConfigKeys; import me.lucko.luckperms.common.locale.Message; import me.lucko.luckperms.common.locale.TranslationManager; import me.lucko.luckperms.common.model.User; +import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; @@ -136,11 +137,14 @@ public final class LPInjector implements Listener { //Disable login event for Lu // User instance is there, now we can inject our custom Permissible into the player. // Care should be taken at this stage to ensure that async tasks which manipulate bukkit data check that the player is still online. try { + // get the existing PermissibleBase held by the player + PermissibleBase oldPermissible = player.getPerm(); + // Make a new permissible for the user LuckPermsPermissible lpPermissible = new LuckPermsPermissible(player, user, this.plugin); // Inject into the player - inject(player, lpPermissible); + inject(player, lpPermissible, oldPermissible); } catch (Throwable t) { plugin.getLogger().warn("Exception thrown when setting up permissions for " + @@ -163,14 +167,14 @@ public final class LPInjector implements Listener { //Disable login event for Lu final DiscordConnectedPlayer player = (DiscordConnectedPlayer) e.getPlayer(); - handleDisconnect(player.getUniqueId()); + connectionListener.handleDisconnect(player.getUniqueId()); // perform unhooking from bukkit objects 1 tick later. // this allows plugins listening after us on MONITOR to still have intact permissions data this.plugin.getBootstrap().getServer().getScheduler().runTaskLater(this.plugin.getBootstrap(), () -> { // Remove the custom permissible try { - uninject(player, true); + uninject(player); } catch (Exception ex) { ex.printStackTrace(); }