From 5c02d6b00764638516e9cc64ba6b0bb208ede886 Mon Sep 17 00:00:00 2001 From: Andrew Steinborn Date: Sun, 28 Jun 2020 22:01:45 -0400 Subject: [PATCH] RegisteredServer and ProxyServer now implement MultiAudience --- .../java/com/velocitypowered/api/proxy/ProxyServer.java | 3 ++- .../api/proxy/server/RegisteredServer.java | 3 ++- .../java/com/velocitypowered/proxy/VelocityServer.java | 8 +++----- .../proxy/server/VelocityRegisteredServer.java | 7 +++---- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/api/src/main/java/com/velocitypowered/api/proxy/ProxyServer.java b/api/src/main/java/com/velocitypowered/api/proxy/ProxyServer.java index 0c76500b8..188592f26 100644 --- a/api/src/main/java/com/velocitypowered/api/proxy/ProxyServer.java +++ b/api/src/main/java/com/velocitypowered/api/proxy/ProxyServer.java @@ -17,13 +17,14 @@ import java.net.InetSocketAddress; import java.util.Collection; import java.util.Optional; import java.util.UUID; +import net.kyori.adventure.audience.MultiAudience; import net.kyori.adventure.text.Component; import org.checkerframework.checker.nullness.qual.NonNull; /** * Provides an interface to a Minecraft server proxy. */ -public interface ProxyServer extends ProxyAudience { +public interface ProxyServer extends MultiAudience { /** * Retrieves the player currently connected to this proxy by their Minecraft username. The search diff --git a/api/src/main/java/com/velocitypowered/api/proxy/server/RegisteredServer.java b/api/src/main/java/com/velocitypowered/api/proxy/server/RegisteredServer.java index 6451a47b6..c335cf62c 100644 --- a/api/src/main/java/com/velocitypowered/api/proxy/server/RegisteredServer.java +++ b/api/src/main/java/com/velocitypowered/api/proxy/server/RegisteredServer.java @@ -5,13 +5,14 @@ import com.velocitypowered.api.proxy.ProxyAudience; import com.velocitypowered.api.proxy.messages.ChannelMessageSink; import java.util.Collection; import java.util.concurrent.CompletableFuture; +import net.kyori.adventure.audience.MultiAudience; /** * Represents a server that has been registered with the proxy. The {@code Audience} associated with * a {@code RegisteredServer} represent all players on the server connected to this proxy and do not * interact with the server in any way. */ -public interface RegisteredServer extends ChannelMessageSink, ProxyAudience { +public interface RegisteredServer extends ChannelMessageSink, MultiAudience { /** * Returns the {@link ServerInfo} for this server. diff --git a/proxy/src/main/java/com/velocitypowered/proxy/VelocityServer.java b/proxy/src/main/java/com/velocitypowered/proxy/VelocityServer.java index 5d3377ac6..56815944f 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/VelocityServer.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/VelocityServer.java @@ -69,6 +69,7 @@ import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.IntFunction; import java.util.stream.Collectors; +import net.kyori.adventure.audience.Audience; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.kyori.text.Component; import net.kyori.text.TextComponent; @@ -605,11 +606,8 @@ public class VelocityServer implements ProxyServer { } @Override - public void sendMessage(net.kyori.adventure.text.@NonNull Component message) { - Preconditions.checkNotNull(message, "message"); - for (ConnectedPlayer player : connectionsByUuid.values()) { - player.sendMessage(message); - } + public @NonNull Iterable audiences() { + return this.getAllPlayers(); } public static Gson getGsonInstance(ProtocolVersion version) { diff --git a/proxy/src/main/java/com/velocitypowered/proxy/server/VelocityRegisteredServer.java b/proxy/src/main/java/com/velocitypowered/proxy/server/VelocityRegisteredServer.java index 7aedd4c98..1051efd40 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/server/VelocityRegisteredServer.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/server/VelocityRegisteredServer.java @@ -37,6 +37,7 @@ import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; +import net.kyori.adventure.audience.Audience; import net.kyori.adventure.text.Component; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -149,9 +150,7 @@ public class VelocityRegisteredServer implements RegisteredServer { } @Override - public void sendMessage(@NonNull Component message) { - for (ConnectedPlayer player : players) { - player.sendMessage(message); - } + public @NonNull Iterable audiences() { + return this.getPlayersConnected(); } }