Make Audiences use PacketGroupingAudience where possible

This commit is contained in:
Kieran Wallbanks 2021-03-25 13:56:51 +00:00
parent cd06fbdfaa
commit 1f52761c39
3 changed files with 16 additions and 16 deletions

View File

@ -32,17 +32,17 @@ public class Audiences implements AudienceProvider<Audience> {
@Override
public @NotNull Audience all() {
return Audience.audience(this.collection().all());
return Audience.audience(this.players(), this.console(), this.custom());
}
@Override
public @NotNull Audience players() {
return Audience.audience(this.collection().players());
return PacketGroupingAudience.of(this.collection().players());
}
@Override
public @NotNull Audience players(@NotNull Predicate<Player> filter) {
return Audience.audience(this.collection().players(filter));
return PacketGroupingAudience.of(this.collection().players(filter));
}
@Override
@ -52,7 +52,7 @@ public class Audiences implements AudienceProvider<Audience> {
@Override
public @NotNull Audience server() {
return Audience.audience(this.collection().server());
return Audience.audience(this.players(), this.console());
}
@Override

View File

@ -29,12 +29,12 @@ public final class CollectionAudienceProvider implements AudienceProvider<Iterab
}
@Override
public @NotNull Iterable<? extends Audience> players() {
public @NotNull Iterable<Player> players() {
return MinecraftServer.getConnectionManager().getOnlinePlayers();
}
@Override
public @NotNull Iterable<? extends Audience> players(@NotNull Predicate<Player> filter) {
public @NotNull Iterable<Player> players(@NotNull Predicate<Player> filter) {
return MinecraftServer.getConnectionManager().getOnlinePlayers().stream().filter(filter).collect(Collectors.toList());
}

View File

@ -1,5 +1,6 @@
package net.minestom.server.adventure.audience;
import com.google.common.collect.ImmutableList;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.audience.ForwardingAudience;
import net.kyori.adventure.audience.MessageType;
@ -31,17 +32,16 @@ public interface PacketGroupingAudience extends ForwardingAudience {
* @return the audience
*/
static PacketGroupingAudience of(Collection<Player> players) {
return new PacketGroupingAudience() {
@Override
public @NotNull Collection<Player> getPlayers() {
return players;
}
return () -> players;
}
@Override
public @NotNull Iterable<? extends Audience> audiences() {
return players;
}
};
/**
* Creates a packet grouping audience that copies an iterable of players.
* @param players the players
* @return the audience
*/
static PacketGroupingAudience of(Iterable<Player> players) {
return () -> ImmutableList.copyOf(players);
}
/**