Skip to content

Commit

Permalink
Implement MinecraftServerAudiencesImpl#permission(String)
Browse files Browse the repository at this point in the history
  • Loading branch information
jpenilla committed Jul 29, 2024
1 parent e9f9d0c commit 9367145
Showing 1 changed file with 15 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,15 @@

import com.google.common.collect.Iterables;
import java.util.Collections;
import java.util.Optional;
import java.util.Set;
import java.util.UUID;
import java.util.WeakHashMap;
import java.util.function.Consumer;
import java.util.function.Function;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.key.Key;
import net.kyori.adventure.permission.PermissionChecker;
import net.kyori.adventure.platform.modcommon.AdventureCommandSourceStack;
import net.kyori.adventure.platform.modcommon.MinecraftAudiences;
import net.kyori.adventure.platform.modcommon.MinecraftServerAudiences;
Expand Down Expand Up @@ -125,7 +127,19 @@ private Iterable<Audience> audiences(final Iterable<? extends ServerPlayer> play

@Override
public @NotNull Audience permission(final @NotNull String permission) {
return Audience.empty(); // TODO: permissions api
return Audience.audience(
Iterables.transform(
this.server().getPlayerList().getPlayers(),
player -> {
final Audience audience = this.audience(player);
final Optional<PermissionChecker> permissionChecker = audience.get(PermissionChecker.POINTER);
if (permissionChecker.isPresent() && permissionChecker.get().test(permission)) {
return audience;
}
return Audience.empty();
}
)
);
}

@Override
Expand Down

0 comments on commit 9367145

Please sign in to comment.