diff --git a/api/src/main/java/com/velocitypowered/api/command/CommandSource.java b/api/src/main/java/com/velocitypowered/api/command/CommandSource.java index dba098709..addc666b6 100644 --- a/api/src/main/java/com/velocitypowered/api/command/CommandSource.java +++ b/api/src/main/java/com/velocitypowered/api/command/CommandSource.java @@ -16,6 +16,7 @@ import net.kyori.adventure.identity.Identified; import net.kyori.adventure.identity.Identity; import net.kyori.adventure.permission.PermissionChecker; import net.kyori.adventure.pointer.Pointer; +import net.kyori.adventure.pointer.Pointers; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.legacytext3.LegacyText3ComponentSerializer; import net.kyori.adventure.util.TriState; @@ -44,12 +45,8 @@ public interface CommandSource extends Audience, PermissionSubject, PermissionCh } @Override - @SuppressWarnings("unchecked") // safe casts - default @NotNull Optional get(final @NotNull Pointer pointer) { - if (pointer == PermissionChecker.POINTER) { - return Optional.of((T) this); - } - return Audience.super.get(pointer); + default @NotNull Pointers pointers() { + return Pointers.builder().withStatic(PermissionChecker.POINTER, this).build(); } @Override diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java index bfbd9038a..8479ae0e0 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java @@ -96,6 +96,7 @@ import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.identity.Identity; import net.kyori.adventure.permission.PermissionChecker; import net.kyori.adventure.pointer.Pointer; +import net.kyori.adventure.pointer.Pointers; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TranslatableComponent; import net.kyori.adventure.text.format.NamedTextColor; @@ -108,6 +109,7 @@ import org.apache.logging.log4j.Logger; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.jetbrains.annotations.NotNull; public class ConnectedPlayer implements MinecraftConnectionAssociation, Player { @@ -279,16 +281,12 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player { } @Override - @SuppressWarnings("unchecked") // safe casts - public Optional get(final Pointer pointer) { - if (pointer == Identity.UUID) { - return Optional.of((T) this.getUniqueId()); - } else if (pointer == Identity.NAME) { - return Optional.of((T) this.getGameProfile().getName()); - } else if (pointer == Identity.DISPLAY_NAME) { - return Optional.of((T) asComponent()); - } - return Player.super.get(pointer); + public @NotNull Pointers pointers() { + return Player.super.pointers().toBuilder() + .withDynamic(Identity.UUID, this::getUniqueId) + .withDynamic(Identity.NAME, this::getUsername) + .withDynamic(Identity.DISPLAY_NAME, this::asComponent) + .build(); } @Override