Interface TopLevelGuildChannel

All Superinterfaces:
Channel, DiscordObject, Entity, GuildChannel
All Known Subinterfaces:
AudioChannel, CategorizableChannel, TopLevelGuildMessageChannel
All Known Implementing Classes:
Category, ForumChannel, NewsChannel, StageChannel, StoreChannel, TextChannel, VoiceChannel

public interface TopLevelGuildChannel extends GuildChannel
A Discord channel in a guild that isn't a thread.
  • Method Details

    • getPermissionOverwrites

      default Set<ExtendedPermissionOverwrite> getPermissionOverwrites()
      Gets the permission overwrites for this channel.
      Returns:
      The permission overwrites for this channel.
    • getOverwriteForMember

      default Optional<ExtendedPermissionOverwrite> getOverwriteForMember(Snowflake memberId)
      Gets the permission overwrite targeting the given member.
      Parameters:
      memberId - The ID of the member to get the overwrite for.
      Returns:
      The permission overwrite targeting the given member.
    • getOverwriteForRole

      default Optional<ExtendedPermissionOverwrite> getOverwriteForRole(Snowflake roleId)
      Gets the permission overwrite targeting the given role.
      Parameters:
      roleId - The ID of the role to get the overwrite for.
      Returns:
      The permission overwrite targeting the given role.
    • addMemberOverwrite

      default Mono<Void> addMemberOverwrite(Snowflake memberId, PermissionOverwrite overwrite)
      Requests to add a permission overwrite for the given member.
      Parameters:
      memberId - The ID of the member to add the overwrite for.
      overwrite - The overwrite to add.
      Returns:
      A Mono where, upon successful completion, emits nothing; If an error is received, it is emitted through the Mono.
    • addMemberOverwrite

      default Mono<Void> addMemberOverwrite(Snowflake memberId, PermissionOverwrite overwrite, @Nullable String reason)
      Requests to add a permission overwrite for the given member while optionally specifying a reason.
      Parameters:
      memberId - The ID of the member to add the overwrite for.
      overwrite - The overwrite to add.
      reason - The reason, if present.
      Returns:
      A Mono where, upon successful completion, emits nothing; If an error is received, it is emitted through the Mono.
    • addRoleOverwrite

      default Mono<Void> addRoleOverwrite(Snowflake roleId, PermissionOverwrite overwrite)
      Requests to add a permission overwrite for the given role.
      Parameters:
      roleId - The ID of the role to add the overwrite for.
      overwrite - The overwrite to add.
      Returns:
      A Mono where, upon successful completion, emits nothing; If an error is received, it is emitted through the Mono.
    • addRoleOverwrite

      default Mono<Void> addRoleOverwrite(Snowflake roleId, PermissionOverwrite overwrite, @Nullable String reason)
      Requests to add a permission overwrite for the given role while optionally specifying a reason.
      Parameters:
      roleId - The ID of the role to add the overwrite for.
      overwrite - The overwrite to add.
      reason - The reason, if present.
      Returns:
      A Mono where, upon successful completion, emits nothing; If an error is received, it is emitted through the Mono.
    • getRawPosition

      default int getRawPosition()
      Gets the raw position of the channel as exposed by Discord. This may or may not be accurate with relativity to other channels in the guild.
      Returns:
      The raw position of the channel.
    • getPosition

      default Mono<Integer> getPosition()
      Requests to retrieve the position of the channel relative to other channels in the guild.

      This is determined by the index of this channel in the sorted list of channels of the guild.

      Warning: Because this method must sort the guild channels, it is inefficient to make repeated invocations for the same set of channels (meaning that channels haven't been added or removed). For example, instead of writing:

       
       guild.getChannels()
         .flatMap(c -> c.getPosition().map(pos -> c.getName() + " : " + pos))
       
       
      It would be much more efficient to write:
       
       guild.getChannels()
         .transform(OrderUtil::orderGuildChannels)
         .index((pos, c) -> c.getName() + " : " + pos)
       
       
      Returns:
      A Mono where, upon successful completion, emits the position of the channel. If an error is received, it is emitted through the Mono.