diff --git a/src/main/java/net/dv8tion/jda/api/entities/Guild.java b/src/main/java/net/dv8tion/jda/api/entities/Guild.java index f9dd51d479..c409d0ab6e 100644 --- a/src/main/java/net/dv8tion/jda/api/entities/Guild.java +++ b/src/main/java/net/dv8tion/jda/api/entities/Guild.java @@ -904,7 +904,7 @@ default ImageProxy getBanner() * <p>This will only check cached members! * <br>See {@link net.dv8tion.jda.api.utils.MemberCachePolicy MemberCachePolicy} * - * @return Possibly-immutable list of members who boost this guild + * @return Immutable list of members who boost this guild */ @Nonnull List<Member> getBoosters(); diff --git a/src/main/java/net/dv8tion/jda/api/entities/Message.java b/src/main/java/net/dv8tion/jda/api/entities/Message.java index b0062f494f..d10b6cdd8d 100644 --- a/src/main/java/net/dv8tion/jda/api/entities/Message.java +++ b/src/main/java/net/dv8tion/jda/api/entities/Message.java @@ -60,6 +60,7 @@ import net.dv8tion.jda.internal.entities.ReceivedMessage; import net.dv8tion.jda.internal.requests.FunctionalCallback; import net.dv8tion.jda.internal.utils.Checks; +import net.dv8tion.jda.internal.utils.Helpers; import net.dv8tion.jda.internal.utils.IOUtil; import okhttp3.MultipartBody; import okhttp3.OkHttpClient; @@ -698,7 +699,7 @@ default List<ActionRow> getActionRows() .stream() .filter(ActionRow.class::isInstance) .map(ActionRow.class::cast) - .collect(Collectors.toList()); + .collect(Helpers.toUnmodifiableList()); } /** @@ -714,7 +715,7 @@ default List<Button> getButtons() return getComponents().stream() .map(LayoutComponent::getButtons) .flatMap(List::stream) - .collect(Collectors.toList()); + .collect(Helpers.toUnmodifiableList()); } /** @@ -765,7 +766,7 @@ default List<Button> getButtonsByLabel(@Nonnull String label, boolean ignoreCase filter = b -> label.equals(b.getLabel()); return getButtons().stream() .filter(filter) - .collect(Collectors.toList()); + .collect(Helpers.toUnmodifiableList()); } /** diff --git a/src/main/java/net/dv8tion/jda/api/entities/StageInstance.java b/src/main/java/net/dv8tion/jda/api/entities/StageInstance.java index 958ac4fa92..d3fb7aea85 100644 --- a/src/main/java/net/dv8tion/jda/api/entities/StageInstance.java +++ b/src/main/java/net/dv8tion/jda/api/entities/StageInstance.java @@ -21,12 +21,11 @@ import net.dv8tion.jda.api.entities.channel.concrete.StageChannel; import net.dv8tion.jda.api.managers.StageInstanceManager; import net.dv8tion.jda.api.requests.RestAction; +import net.dv8tion.jda.internal.utils.Helpers; import javax.annotation.CheckReturnValue; import javax.annotation.Nonnull; -import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; /** * A Stage Instance holds information about a live stage. @@ -77,15 +76,15 @@ public interface StageInstance extends ISnowflake * <p>Only {@link StageChannel#isModerator(Member) stage moderators} can promote or invite speakers. * A stage moderator can move between speaker and audience at any time. * - * @return {@link List} of {@link Member Members} which can speak in this stage instance + * @return Immutable {@link List} of {@link Member Members} which can speak in this stage instance */ @Nonnull default List<Member> getSpeakers() { - return Collections.unmodifiableList(getChannel().getMembers() + return getChannel().getMembers() .stream() .filter(member -> !member.getVoiceState().isSuppressed()) // voice states should not be null since getMembers() checks only for connected members in the channel - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } /** @@ -98,15 +97,15 @@ default List<Member> getSpeakers() * <p>Only {@link StageChannel#isModerator(Member) stage moderators} can promote or invite speakers. * A stage moderator can move between speaker and audience at any time. * - * @return {@link List} of {@link Member Members} which cannot speak in this stage instance + * @return Immutable {@link List} of {@link Member Members} which cannot speak in this stage instance */ @Nonnull default List<Member> getAudience() { - return Collections.unmodifiableList(getChannel().getMembers() + return getChannel().getMembers() .stream() .filter(member -> member.getVoiceState().isSuppressed()) // voice states should not be null since getMembers() checks only for connected members in the channel - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } /** diff --git a/src/main/java/net/dv8tion/jda/api/entities/channel/attribute/IPermissionContainer.java b/src/main/java/net/dv8tion/jda/api/entities/channel/attribute/IPermissionContainer.java index f0c0920838..fcd83467cf 100644 --- a/src/main/java/net/dv8tion/jda/api/entities/channel/attribute/IPermissionContainer.java +++ b/src/main/java/net/dv8tion/jda/api/entities/channel/attribute/IPermissionContainer.java @@ -21,13 +21,12 @@ import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.managers.channel.attribute.IPermissionContainerManager; import net.dv8tion.jda.api.requests.restaction.PermissionOverrideAction; +import net.dv8tion.jda.internal.utils.Helpers; import javax.annotation.CheckReturnValue; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; /** * Represents a {@link GuildChannel} that uses {@link net.dv8tion.jda.api.entities.PermissionOverride Permission Overrides}. @@ -89,9 +88,9 @@ public interface IPermissionContainer extends GuildChannel @Nonnull default List<PermissionOverride> getMemberPermissionOverrides() { - return Collections.unmodifiableList(getPermissionOverrides().stream() + return getPermissionOverrides().stream() .filter(PermissionOverride::isMemberOverride) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } /** @@ -105,9 +104,9 @@ default List<PermissionOverride> getMemberPermissionOverrides() @Nonnull default List<PermissionOverride> getRolePermissionOverrides() { - return Collections.unmodifiableList(getPermissionOverrides().stream() + return getPermissionOverrides().stream() .filter(PermissionOverride::isRoleOverride) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } /** diff --git a/src/main/java/net/dv8tion/jda/api/entities/channel/attribute/IThreadContainer.java b/src/main/java/net/dv8tion/jda/api/entities/channel/attribute/IThreadContainer.java index ff9db5180d..e2e1c6cfad 100644 --- a/src/main/java/net/dv8tion/jda/api/entities/channel/attribute/IThreadContainer.java +++ b/src/main/java/net/dv8tion/jda/api/entities/channel/attribute/IThreadContainer.java @@ -26,12 +26,11 @@ import net.dv8tion.jda.api.requests.restaction.pagination.ThreadChannelPaginationAction; import net.dv8tion.jda.api.utils.MiscUtil; import net.dv8tion.jda.api.utils.messages.MessageCreateData; +import net.dv8tion.jda.internal.utils.Helpers; import javax.annotation.CheckReturnValue; import javax.annotation.Nonnull; -import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; /** * Abstraction of all channel types, which can contain or manage {@link ThreadChannel ThreadChannels}. @@ -59,11 +58,10 @@ public interface IThreadContainer extends GuildChannel, IPermissionContainer @Nonnull default List<ThreadChannel> getThreadChannels() { - return Collections.unmodifiableList( - getGuild().getThreadChannelCache().applyStream(stream -> - stream.filter(thread -> thread.getParentChannel() == this) - .collect(Collectors.toList()) - )); + return getGuild().getThreadChannelCache().applyStream(stream -> + stream.filter(thread -> thread.getParentChannel() == this) + .collect(Helpers.toUnmodifiableList()) + ); } /** diff --git a/src/main/java/net/dv8tion/jda/api/entities/channel/concrete/Category.java b/src/main/java/net/dv8tion/jda/api/entities/channel/concrete/Category.java index f10a7719a8..790e8c8f6c 100644 --- a/src/main/java/net/dv8tion/jda/api/entities/channel/concrete/Category.java +++ b/src/main/java/net/dv8tion/jda/api/entities/channel/concrete/Category.java @@ -32,9 +32,7 @@ import javax.annotation.CheckReturnValue; import javax.annotation.Nonnull; -import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; /** * Represents a channel category in the official Discord API. @@ -80,11 +78,11 @@ default List<GuildChannel> getChannels() @Nonnull default List<TextChannel> getTextChannels() { - return Collections.unmodifiableList(getGuild().getTextChannelCache().applyStream(stream -> + return getGuild().getTextChannelCache().applyStream(stream -> stream.filter(channel -> equals(channel.getParentCategory())) .sorted() - .collect(Collectors.toList()) - )); + .collect(Helpers.toUnmodifiableList()) + ); } /** @@ -96,11 +94,11 @@ default List<TextChannel> getTextChannels() @Nonnull default List<NewsChannel> getNewsChannels() { - return Collections.unmodifiableList(getGuild().getNewsChannelCache().applyStream(stream -> + return getGuild().getNewsChannelCache().applyStream(stream -> stream.filter(channel -> equals(channel.getParentCategory())) .sorted() - .collect(Collectors.toList()) - )); + .collect(Helpers.toUnmodifiableList()) + ); } /** @@ -111,11 +109,11 @@ default List<NewsChannel> getNewsChannels() @Nonnull default List<ForumChannel> getForumChannels() { - return Collections.unmodifiableList(getGuild().getForumChannelCache().applyStream(stream -> + return getGuild().getForumChannelCache().applyStream(stream -> stream.filter(channel -> equals(channel.getParentCategory())) .sorted() - .collect(Collectors.toList()) - )); + .collect(Helpers.toUnmodifiableList()) + ); } /** @@ -126,11 +124,11 @@ default List<ForumChannel> getForumChannels() @Nonnull default List<MediaChannel> getMediaChannels() { - return Collections.unmodifiableList(getGuild().getMediaChannelCache().applyStream(stream -> + return getGuild().getMediaChannelCache().applyStream(stream -> stream.filter(channel -> equals(channel.getParentCategory())) .sorted() - .collect(Collectors.toList()) - )); + .collect(Helpers.toUnmodifiableList()) + ); } /** @@ -142,11 +140,11 @@ default List<MediaChannel> getMediaChannels() @Nonnull default List<VoiceChannel> getVoiceChannels() { - return Collections.unmodifiableList(getGuild().getVoiceChannelCache().applyStream(stream -> + return getGuild().getVoiceChannelCache().applyStream(stream -> stream.filter(channel -> equals(channel.getParentCategory())) .sorted() - .collect(Collectors.toList()) - )); + .collect(Helpers.toUnmodifiableList()) + ); } /** @@ -158,11 +156,11 @@ default List<VoiceChannel> getVoiceChannels() @Nonnull default List<StageChannel> getStageChannels() { - return Collections.unmodifiableList(getGuild().getStageChannelCache().applyStream(stream -> + return getGuild().getStageChannelCache().applyStream(stream -> stream.filter(channel -> equals(channel.getParentCategory())) .sorted() - .collect(Collectors.toList()) - )); + .collect(Helpers.toUnmodifiableList()) + ); } /** @@ -447,13 +445,13 @@ default List<StageChannel> getStageChannels() @Override default List<Member> getMembers() { - return Collections.unmodifiableList(getChannels().stream() + return getChannels().stream() .filter(IMemberContainer.class::isInstance) .map(IMemberContainer.class::cast) .map(IMemberContainer::getMembers) .flatMap(List::stream) .distinct() - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } @Nonnull diff --git a/src/main/java/net/dv8tion/jda/api/interactions/components/LayoutComponent.java b/src/main/java/net/dv8tion/jda/api/interactions/components/LayoutComponent.java index 69fd15f0e9..b68752ac39 100644 --- a/src/main/java/net/dv8tion/jda/api/interactions/components/LayoutComponent.java +++ b/src/main/java/net/dv8tion/jda/api/interactions/components/LayoutComponent.java @@ -20,6 +20,7 @@ import net.dv8tion.jda.api.interactions.components.buttons.ButtonStyle; import net.dv8tion.jda.api.utils.data.SerializableData; import net.dv8tion.jda.internal.utils.Checks; +import net.dv8tion.jda.internal.utils.Helpers; import javax.annotation.CheckReturnValue; import javax.annotation.Nonnull; @@ -74,7 +75,7 @@ default List<ActionComponent> getActionComponents() return getComponents().stream() .filter(ActionComponent.class::isInstance) .map(ActionComponent.class::cast) - .collect(Collectors.toList()); + .collect(Helpers.toUnmodifiableList()); } /** @@ -85,11 +86,10 @@ default List<ActionComponent> getActionComponents() @Nonnull default List<Button> getButtons() { - return Collections.unmodifiableList( - getComponents().stream() + return getComponents().stream() .filter(Button.class::isInstance) .map(Button.class::cast) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } /** diff --git a/src/main/java/net/dv8tion/jda/api/interactions/components/selections/StringSelectInteraction.java b/src/main/java/net/dv8tion/jda/api/interactions/components/selections/StringSelectInteraction.java index d85bbab88c..82e3c6e5bc 100644 --- a/src/main/java/net/dv8tion/jda/api/interactions/components/selections/StringSelectInteraction.java +++ b/src/main/java/net/dv8tion/jda/api/interactions/components/selections/StringSelectInteraction.java @@ -17,10 +17,10 @@ package net.dv8tion.jda.api.interactions.components.selections; import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent; +import net.dv8tion.jda.internal.utils.Helpers; import javax.annotation.Nonnull; import java.util.List; -import java.util.stream.Collectors; /** * Component Interaction for a {@link StringSelectMenu}. @@ -42,7 +42,7 @@ public interface StringSelectInteraction extends SelectMenuInteraction<String, S * This resolves the selected {@link #getValues() values} to the representative {@link SelectOption SelectOption} instances. * <br>It is recommended to check {@link #getValues()} directly instead of using the options. * - * @return {@link List} of the selected options + * @return Immutable {@link List} of the selected options */ @Nonnull default List<SelectOption> getSelectedOptions() @@ -52,6 +52,6 @@ default List<SelectOption> getSelectedOptions() return menu.getOptions() .stream() .filter(it -> values.contains(it.getValue())) - .collect(Collectors.toList()); + .collect(Helpers.toUnmodifiableList()); } } diff --git a/src/main/java/net/dv8tion/jda/api/sharding/ShardManager.java b/src/main/java/net/dv8tion/jda/api/sharding/ShardManager.java index 8378d08758..d14eb62dd6 100644 --- a/src/main/java/net/dv8tion/jda/api/sharding/ShardManager.java +++ b/src/main/java/net/dv8tion/jda/api/sharding/ShardManager.java @@ -39,6 +39,7 @@ import net.dv8tion.jda.internal.requests.CompletedRestAction; import net.dv8tion.jda.internal.requests.RestActionImpl; import net.dv8tion.jda.internal.utils.Checks; +import net.dv8tion.jda.internal.utils.Helpers; import net.dv8tion.jda.internal.utils.cache.UnifiedChannelCacheView; import javax.annotation.CheckReturnValue; @@ -428,11 +429,10 @@ default List<Guild> getGuilds() default List<Guild> getMutualGuilds(@Nonnull final Collection<User> users) { Checks.noneNull(users, "users"); - return Collections.unmodifiableList( - this.getGuildCache().stream() + return this.getGuildCache().stream() .filter(guild -> users.stream() .allMatch(guild::isMember)) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } /** diff --git a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageEditData.java b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageEditData.java index 818a3406f7..cce4f5913e 100644 --- a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageEditData.java +++ b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageEditData.java @@ -25,11 +25,11 @@ import net.dv8tion.jda.api.utils.data.DataArray; import net.dv8tion.jda.api.utils.data.DataObject; import net.dv8tion.jda.api.utils.data.SerializableData; +import net.dv8tion.jda.internal.utils.Helpers; import net.dv8tion.jda.internal.utils.IOUtil; import javax.annotation.Nonnull; import java.util.*; -import java.util.stream.Collectors; import static net.dv8tion.jda.api.utils.messages.MessageEditBuilder.*; @@ -351,12 +351,10 @@ public synchronized DataObject toData() @Nonnull public synchronized List<FileUpload> getFiles() { - return Collections.unmodifiableList( - files.stream() - .filter(FileUpload.class::isInstance) - .map(FileUpload.class::cast) - .collect(Collectors.toList()) - ); + return files.stream() + .filter(FileUpload.class::isInstance) + .map(FileUpload.class::cast) + .collect(Helpers.toUnmodifiableList()); } @Override diff --git a/src/main/java/net/dv8tion/jda/internal/JDAImpl.java b/src/main/java/net/dv8tion/jda/internal/JDAImpl.java index 30984d94cf..f55f980111 100644 --- a/src/main/java/net/dv8tion/jda/internal/JDAImpl.java +++ b/src/main/java/net/dv8tion/jda/internal/JDAImpl.java @@ -615,9 +615,9 @@ public List<Guild> getMutualGuilds(@Nonnull Collection<User> users) Checks.notNull(users, "users"); for(User u : users) Checks.notNull(u, "All users"); - return Collections.unmodifiableList(getGuilds().stream() + return getGuilds().stream() .filter(guild -> users.stream().allMatch(guild::isMember)) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } @Nonnull diff --git a/src/main/java/net/dv8tion/jda/internal/entities/GuildImpl.java b/src/main/java/net/dv8tion/jda/internal/entities/GuildImpl.java index de5c76df09..c13416bf14 100644 --- a/src/main/java/net/dv8tion/jda/internal/entities/GuildImpl.java +++ b/src/main/java/net/dv8tion/jda/internal/entities/GuildImpl.java @@ -92,7 +92,6 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; -import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -537,7 +536,7 @@ public List<Member> getBoosters() return memberCache.applyStream((members) -> members.filter(m -> m.getTimeBoosted() != null) .sorted(Comparator.comparing(Member::getTimeBoosted)) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList())); } @Override @@ -1147,11 +1146,10 @@ public JDAImpl getJDA() @Override public List<GuildVoiceState> getVoiceStates() { - return Collections.unmodifiableList( - getMembersView().stream() - .map(Member::getVoiceState) - .filter(Objects::nonNull) - .collect(Collectors.toList())); + return getMembersView().stream() + .map(Member::getVoiceState) + .filter(Objects::nonNull) + .collect(Helpers.toUnmodifiableList()); } @Nonnull diff --git a/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/ForumChannelImpl.java b/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/ForumChannelImpl.java index 42b46f53ec..ad478696f7 100644 --- a/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/ForumChannelImpl.java +++ b/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/ForumChannelImpl.java @@ -40,14 +40,13 @@ import net.dv8tion.jda.internal.entities.emoji.CustomEmojiImpl; import net.dv8tion.jda.internal.managers.channel.concrete.ForumChannelManagerImpl; import net.dv8tion.jda.internal.utils.Checks; +import net.dv8tion.jda.internal.utils.Helpers; import net.dv8tion.jda.internal.utils.cache.SortedSnowflakeCacheViewImpl; import javax.annotation.Nonnull; -import java.util.Collections; import java.util.Comparator; import java.util.EnumSet; import java.util.List; -import java.util.stream.Collectors; public class ForumChannelImpl extends AbstractGuildChannelImpl<ForumChannelImpl> implements ForumChannel, @@ -89,10 +88,10 @@ public ForumChannelManager getManager() @Override public List<Member> getMembers() { - return Collections.unmodifiableList(getGuild().getMembers() + return getGuild().getMembers() .stream() .filter(m -> m.hasPermission(this, Permission.VIEW_CHANNEL)) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } @Nonnull diff --git a/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/MediaChannelImpl.java b/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/MediaChannelImpl.java index 62bdb2dc37..7e3af61c2f 100644 --- a/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/MediaChannelImpl.java +++ b/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/MediaChannelImpl.java @@ -40,14 +40,13 @@ import net.dv8tion.jda.internal.entities.emoji.CustomEmojiImpl; import net.dv8tion.jda.internal.managers.channel.concrete.MediaChannelManagerImpl; import net.dv8tion.jda.internal.utils.Checks; +import net.dv8tion.jda.internal.utils.Helpers; import net.dv8tion.jda.internal.utils.cache.SortedSnowflakeCacheViewImpl; import javax.annotation.Nonnull; -import java.util.Collections; import java.util.Comparator; import java.util.EnumSet; import java.util.List; -import java.util.stream.Collectors; public class MediaChannelImpl extends AbstractGuildChannelImpl<MediaChannelImpl> implements MediaChannel, @@ -88,10 +87,10 @@ public MediaChannelManager getManager() @Override public List<Member> getMembers() { - return Collections.unmodifiableList(getGuild().getMembers() + return getGuild().getMembers() .stream() .filter(m -> m.hasPermission(this, Permission.VIEW_CHANNEL)) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } @Nonnull diff --git a/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/NewsChannelImpl.java b/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/NewsChannelImpl.java index a771c09ee0..a1bb4d9850 100644 --- a/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/NewsChannelImpl.java +++ b/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/NewsChannelImpl.java @@ -35,11 +35,10 @@ import net.dv8tion.jda.internal.managers.channel.concrete.NewsChannelManagerImpl; import net.dv8tion.jda.internal.requests.RestActionImpl; import net.dv8tion.jda.internal.utils.Checks; +import net.dv8tion.jda.internal.utils.Helpers; import javax.annotation.Nonnull; -import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; public class NewsChannelImpl extends AbstractStandardGuildMessageChannelImpl<NewsChannelImpl> implements NewsChannel, @@ -61,9 +60,9 @@ public ChannelType getType() @Override public List<Member> getMembers() { - return Collections.unmodifiableList(getGuild().getMembersView().stream() + return getGuild().getMembersView().stream() .filter(m -> m.hasPermission(this, Permission.VIEW_CHANNEL)) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } @Nonnull diff --git a/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/TextChannelImpl.java b/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/TextChannelImpl.java index 5f9b00cebf..ddcb583224 100644 --- a/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/TextChannelImpl.java +++ b/src/main/java/net/dv8tion/jda/internal/entities/channel/concrete/TextChannelImpl.java @@ -31,11 +31,10 @@ import net.dv8tion.jda.internal.entities.channel.mixin.attribute.ISlowmodeChannelMixin; import net.dv8tion.jda.internal.managers.channel.concrete.TextChannelManagerImpl; import net.dv8tion.jda.internal.utils.Checks; +import net.dv8tion.jda.internal.utils.Helpers; import javax.annotation.Nonnull; -import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; public class TextChannelImpl extends AbstractStandardGuildMessageChannelImpl<TextChannelImpl> implements TextChannel, @@ -60,9 +59,9 @@ public ChannelType getType() @Override public List<Member> getMembers() { - return Collections.unmodifiableList(getGuild().getMembersView().stream() + return getGuild().getMembersView().stream() .filter(m -> m.hasPermission(this, Permission.VIEW_CHANNEL)) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } @Override diff --git a/src/main/java/net/dv8tion/jda/internal/utils/cache/ChannelCacheViewImpl.java b/src/main/java/net/dv8tion/jda/internal/utils/cache/ChannelCacheViewImpl.java index 04bbb05e96..d8e56b08a6 100644 --- a/src/main/java/net/dv8tion/jda/internal/utils/cache/ChannelCacheViewImpl.java +++ b/src/main/java/net/dv8tion/jda/internal/utils/cache/ChannelCacheViewImpl.java @@ -193,7 +193,7 @@ public List<T> getElementsByName(@Nonnull String name, boolean ignoreCase) return applyStream(stream -> stream .filter((channel) -> Helpers.equals(channel.getName(), name, ignoreCase)) - .collect(Collectors.toList()) + .collect(Helpers.toUnmodifiableList()) ); } @@ -340,7 +340,7 @@ public List<C> getElementsByName(@Nonnull String name, boolean ignoreCase) return applyStream(stream -> stream .filter(channel -> Helpers.equals(channel.getName(), name, ignoreCase)) - .collect(Collectors.toList()) + .collect(Helpers.toUnmodifiableList()) ); } diff --git a/src/main/java/net/dv8tion/jda/internal/utils/cache/ShardCacheViewImpl.java b/src/main/java/net/dv8tion/jda/internal/utils/cache/ShardCacheViewImpl.java index 39b57c6fd1..701e128d20 100644 --- a/src/main/java/net/dv8tion/jda/internal/utils/cache/ShardCacheViewImpl.java +++ b/src/main/java/net/dv8tion/jda/internal/utils/cache/ShardCacheViewImpl.java @@ -27,6 +27,7 @@ import net.dv8tion.jda.api.utils.cache.ShardCacheView; import net.dv8tion.jda.internal.utils.ChainedClosableIterator; import net.dv8tion.jda.internal.utils.Checks; +import net.dv8tion.jda.internal.utils.Helpers; import net.dv8tion.jda.internal.utils.UnlockHook; import org.apache.commons.collections4.iterators.ObjectArrayIterator; @@ -35,7 +36,6 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.Consumer; import java.util.function.Supplier; -import java.util.stream.Collectors; import java.util.stream.Stream; import java.util.stream.StreamSupport; @@ -314,9 +314,9 @@ public ClosableIterator<JDA> lockedIterator() @Override public List<JDA> getElementsByName(@Nonnull String name, boolean ignoreCase) { - return Collections.unmodifiableList(distinctStream() + return distinctStream() .flatMap(view -> view.getElementsByName(name, ignoreCase).stream()) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } @Override diff --git a/src/main/java/net/dv8tion/jda/internal/utils/cache/UnifiedCacheViewImpl.java b/src/main/java/net/dv8tion/jda/internal/utils/cache/UnifiedCacheViewImpl.java index f13e308611..5a6a50830b 100644 --- a/src/main/java/net/dv8tion/jda/internal/utils/cache/UnifiedCacheViewImpl.java +++ b/src/main/java/net/dv8tion/jda/internal/utils/cache/UnifiedCacheViewImpl.java @@ -25,13 +25,13 @@ import net.dv8tion.jda.api.utils.cache.SnowflakeCacheView; import net.dv8tion.jda.api.utils.cache.UnifiedMemberCacheView; import net.dv8tion.jda.internal.utils.ChainedClosableIterator; +import net.dv8tion.jda.internal.utils.Helpers; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.*; import java.util.function.Consumer; import java.util.function.Supplier; -import java.util.stream.Collectors; import java.util.stream.Stream; public class UnifiedCacheViewImpl<T, E extends CacheView<T>> implements CacheView<T> @@ -100,10 +100,10 @@ public ChainedClosableIterator<T> lockedIterator() @Override public List<T> getElementsByName(@Nonnull String name, boolean ignoreCase) { - return Collections.unmodifiableList(distinctStream() + return distinctStream() .flatMap(view -> view.getElementsByName(name, ignoreCase).stream()) .distinct() - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } @Nonnull @@ -163,46 +163,46 @@ public UnifiedMemberCacheViewImpl(Supplier<? extends Stream<? extends MemberCach @Override public List<Member> getElementsById(long id) { - return Collections.unmodifiableList(distinctStream() + return distinctStream() .map(view -> view.getElementById(id)) .filter(Objects::nonNull) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } @Nonnull @Override public List<Member> getElementsByUsername(@Nonnull String name, boolean ignoreCase) { - return Collections.unmodifiableList(distinctStream() + return distinctStream() .flatMap(view -> view.getElementsByUsername(name, ignoreCase).stream()) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } @Nonnull @Override public List<Member> getElementsByNickname(@Nullable String name, boolean ignoreCase) { - return Collections.unmodifiableList(distinctStream() + return distinctStream() .flatMap(view -> view.getElementsByNickname(name, ignoreCase).stream()) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } @Nonnull @Override public List<Member> getElementsWithRoles(@Nonnull Role... roles) { - return Collections.unmodifiableList(distinctStream() + return distinctStream() .flatMap(view -> view.getElementsWithRoles(roles).stream()) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } @Nonnull @Override public List<Member> getElementsWithRoles(@Nonnull Collection<Role> roles) { - return Collections.unmodifiableList(distinctStream() + return distinctStream() .flatMap(view -> view.getElementsWithRoles(roles).stream()) - .collect(Collectors.toList())); + .collect(Helpers.toUnmodifiableList()); } } }