From 036970a3da216b83510f614693acf9d2c085f912 Mon Sep 17 00:00:00 2001 From: 0utplay Date: Mon, 16 Jun 2025 00:11:40 +0200 Subject: [PATCH] fix: minestom permission checking --- .../platform/minestom/MinestomBridgeManagement.java | 11 ++++++----- .../minestom/MinestomDirectPlayerExecutor.java | 7 ++++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/modules/bridge/impl/src/main/java/eu/cloudnetservice/modules/bridge/impl/platform/minestom/MinestomBridgeManagement.java b/modules/bridge/impl/src/main/java/eu/cloudnetservice/modules/bridge/impl/platform/minestom/MinestomBridgeManagement.java index 24c87422bf..f906fb7a80 100644 --- a/modules/bridge/impl/src/main/java/eu/cloudnetservice/modules/bridge/impl/platform/minestom/MinestomBridgeManagement.java +++ b/modules/bridge/impl/src/main/java/eu/cloudnetservice/modules/bridge/impl/platform/minestom/MinestomBridgeManagement.java @@ -39,6 +39,7 @@ import eu.cloudnetservice.wrapper.event.ServiceInfoPropertiesConfigureEvent; import eu.cloudnetservice.wrapper.holder.ServiceInfoHolder; import jakarta.inject.Inject; +import jakarta.inject.Provider; import jakarta.inject.Singleton; import java.util.Collections; import java.util.Optional; @@ -61,7 +62,7 @@ public final class MinestomBridgeManagement extends PlatformBridgeManagement permissionChecker; @Inject public MinestomBridgeManagement( @@ -76,7 +77,7 @@ public MinestomBridgeManagement( @NonNull ServiceInfoHolder serviceInfoHolder, @NonNull CloudServiceProvider serviceProvider, @NonNull WrapperConfiguration wrapperConfiguration, - @NonNull @Service MinestomPermissionChecker permissionChecker + @NonNull @Service Provider permissionChecker ) { super( rpcFactory, @@ -93,7 +94,7 @@ public MinestomBridgeManagement( this.permissionChecker = permissionChecker; this.directGlobalExecutor = new MinestomDirectPlayerExecutor( - this.permissionChecker, + this.permissionFunction(), commandManager, PlayerExecutor.GLOBAL_UNIQUE_ID, connectionManager::getOnlinePlayers); @@ -129,7 +130,7 @@ public void registerServices(@NonNull ServiceRegistry registry) { @Override public @NonNull BiFunction permissionFunction() { - return this.permissionChecker::hasPermission; + return (player, permission) -> this.permissionChecker.get().hasPermission(player, permission); } @Override @@ -165,7 +166,7 @@ public void removeFallbackProfile(@NonNull Player player) { return uniqueId.equals(PlayerExecutor.GLOBAL_UNIQUE_ID) ? this.directGlobalExecutor : new MinestomDirectPlayerExecutor( - this.permissionChecker, + this.permissionFunction(), this.commandManager, uniqueId, () -> Collections.singleton(this.connectionManager.getOnlinePlayerByUuid(uniqueId))); diff --git a/modules/bridge/impl/src/main/java/eu/cloudnetservice/modules/bridge/impl/platform/minestom/MinestomDirectPlayerExecutor.java b/modules/bridge/impl/src/main/java/eu/cloudnetservice/modules/bridge/impl/platform/minestom/MinestomDirectPlayerExecutor.java index 216b0f2ce6..8f6a396554 100644 --- a/modules/bridge/impl/src/main/java/eu/cloudnetservice/modules/bridge/impl/platform/minestom/MinestomDirectPlayerExecutor.java +++ b/modules/bridge/impl/src/main/java/eu/cloudnetservice/modules/bridge/impl/platform/minestom/MinestomDirectPlayerExecutor.java @@ -20,6 +20,7 @@ import eu.cloudnetservice.modules.bridge.player.executor.ServerSelectorType; import java.util.Collection; import java.util.UUID; +import java.util.function.BiFunction; import java.util.function.Supplier; import lombok.NonNull; import net.kyori.adventure.text.Component; @@ -31,10 +32,10 @@ final class MinestomDirectPlayerExecutor extends PlatformPlayerExecutorAdapter { private final CommandManager commandManager; - private final MinestomPermissionChecker permissionChecker; + private final BiFunction permissionChecker; public MinestomDirectPlayerExecutor( - @NonNull MinestomPermissionChecker permissionChecker, + @NonNull BiFunction permissionChecker, @NonNull CommandManager commandManager, @NonNull UUID uniqueId, @NonNull Supplier> supplier @@ -82,7 +83,7 @@ public void sendTitle(@NonNull Title title) { @Override public void sendChatMessage(@NonNull Component message, @Nullable String permission) { this.forEach(player -> { - if (permission == null || this.permissionChecker.hasPermission(player, permission)) { + if (permission == null || this.permissionChecker.apply(player, permission)) { player.sendMessage(message); } });