Package net.dv8tion.jda.api.entities
Interface IPermissionHolder
-
- All Superinterfaces:
ISnowflake
public interface IPermissionHolder extends ISnowflake
Marker for entities that hold Permissions within JDA
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description booleancanSync(GuildChannel channel)Whether the permissions of this PermissionHolder are good enough to sync the target channel with any other channel.booleancanSync(GuildChannel targetChannel, GuildChannel syncSource)Whether the permissions of this PermissionHolder are good enough to sync the target channel with the sync source.GuildgetGuild()The Guild to which this PermissionHolder is relatedjava.util.EnumSet<Permission>getPermissions()The Guild-Wide Permissions this PermissionHolder holds.java.util.EnumSet<Permission>getPermissions(GuildChannel channel)The Permissions this PermissionHolder holds in the specifiedGuildChannel.java.util.EnumSet<Permission>getPermissionsExplicit()The explicitly granted permissions for this permission holder in the guild.java.util.EnumSet<Permission>getPermissionsExplicit(GuildChannel channel)The explicitly granted permissions for this permission holder in the guild.default booleanhasAccess(GuildChannel channel)Checks whether or not this PermissionHolder hasVIEW_CHANNELandVOICE_CONNECTpermissions in theGuildChannel.booleanhasPermission(java.util.Collection<Permission> permissions)Checks whether or not this PermissionHolder has thePermissionsin the providedCollection<Permission>in the Guild.booleanhasPermission(GuildChannel channel, java.util.Collection<Permission> permissions)Checks whether or not this PermissionHolder has thePermissionsin the providedCollection<Permission>in the specified GuildChannel.booleanhasPermission(GuildChannel channel, Permission... permissions)Checks whether or not this PermissionHolder has the givenPermissionsin the specified GuildChannel.booleanhasPermission(Permission... permissions)Checks whether or not this PermissionHolder has the givenPermissionsin the Guild.-
Methods inherited from interface net.dv8tion.jda.api.entities.ISnowflake
getId, getIdLong, getTimeCreated
-
-
-
-
Method Detail
-
getGuild
@Nonnull Guild getGuild()
The Guild to which this PermissionHolder is related- Returns:
- A never-null Guild to which this PermissionHolder is linked
-
getPermissions
@Nonnull java.util.EnumSet<Permission> getPermissions()
The Guild-Wide Permissions this PermissionHolder holds.
Changes to the returned set do not affect this entity directly.- Returns:
- An EnumSet of Permissions granted to this PermissionHolder.
-
getPermissions
@Nonnull java.util.EnumSet<Permission> getPermissions(@Nonnull GuildChannel channel)
The Permissions this PermissionHolder holds in the specifiedGuildChannel.
Permissions returned by this may be different fromgetPermissions()due to the GuildChannel'sPermissionOverrides.
Changes to the returned set do not affect this entity directly.- Parameters:
channel- TheGuildChannelof which to get Permissions for- Returns:
- Set of Permissions granted to this Permission Holder in the specified channel.
- Throws:
java.lang.IllegalArgumentException- If the channel is null
-
getPermissionsExplicit
@Nonnull java.util.EnumSet<Permission> getPermissionsExplicit()
The explicitly granted permissions for this permission holder in the guild.
This disregards owner and administrator privileges. For a role this is identical togetPermissions()and members have all their roles taken into consideration.
Changes to the returned set do not affect this entity directly.- Returns:
- EnumSet of the explicitly granted permissions
-
getPermissionsExplicit
@Nonnull java.util.EnumSet<Permission> getPermissionsExplicit(@Nonnull GuildChannel channel)
The explicitly granted permissions for this permission holder in the guild.
This disregards owner and administrator privileges.
Permissions returned by this may be different fromgetPermissionsExplicit()due to the GuildChannel'sPermissionOverrides.
Changes to the returned set do not affect this entity directly.- Parameters:
channel- TheGuildChannelof which to get Permissions for- Returns:
- EnumSet of the explicitly granted permissions in the specified channel
- Throws:
java.lang.IllegalArgumentException- If the channel is null
-
hasPermission
boolean hasPermission(@Nonnull Permission... permissions)Checks whether or not this PermissionHolder has the givenPermissionsin the Guild.- Parameters:
permissions- Permissions to check for.- Returns:
- True, if all of the specified Permissions are granted to this PermissionHolder.
- Throws:
java.lang.IllegalArgumentException- If null is provided
-
hasPermission
boolean hasPermission(@Nonnull java.util.Collection<Permission> permissions)Checks whether or not this PermissionHolder has thePermissionsin the providedCollection<Permission>in the Guild.- Parameters:
permissions- Permissions to check for.- Returns:
- True, if all of the specified Permissions are granted to this PermissionHolder.
- Throws:
java.lang.IllegalArgumentException- If null is provided- See Also:
EnumSet
-
hasPermission
boolean hasPermission(@Nonnull GuildChannel channel, @Nonnull Permission... permissions)Checks whether or not this PermissionHolder has the givenPermissionsin the specified GuildChannel.- Parameters:
channel- TheGuildChannelin which to check.permissions- Permissions to check for.- Returns:
- True, if all of the specified Permissions are granted to this PermissionHolder in the provided GuildChannel.
- Throws:
java.lang.IllegalArgumentException- If null is provided- See Also:
EnumSet
-
hasPermission
boolean hasPermission(@Nonnull GuildChannel channel, @Nonnull java.util.Collection<Permission> permissions)Checks whether or not this PermissionHolder has thePermissionsin the providedCollection<Permission>in the specified GuildChannel.- Parameters:
channel- TheGuildChannelin which to check.permissions- Permissions to check for.- Returns:
- True, if all of the specified Permissions are granted to this PermissionHolder in the provided GuildChannel.
- Throws:
java.lang.IllegalArgumentException- If null is provided
-
hasAccess
default boolean hasAccess(@Nonnull GuildChannel channel)Checks whether or not this PermissionHolder hasVIEW_CHANNELandVOICE_CONNECTpermissions in theGuildChannel.- Parameters:
channel- The channel to check access for- Returns:
- True, if the PermissionHolder has access
- Throws:
java.lang.IllegalArgumentException- If null is provided
-
canSync
boolean canSync(@Nonnull GuildChannel targetChannel, @Nonnull GuildChannel syncSource)Whether the permissions of this PermissionHolder are good enough to sync the target channel with the sync source.
This checks what permissions would be changed by the overrides of the sync source and whether the permission holder is able to set them on the target channel.If the permission holder had
Permission.MANAGE_PERMISSIONSin an override on the target channel orPermission.ADMINISTRATORon one of its roles, then it can set any permission on the target channel. Otherwise, the permission holder can only set permissions it also has in the channel.- Parameters:
targetChannel- The target channel to checksyncSource- The sync source, for example the parent category (seeGuildChannel.getParent())- Returns:
- True, if the channels can be synced
- Throws:
java.lang.IllegalArgumentException- If either of the channels is null or not from the same guild as this permission holder
-
canSync
boolean canSync(@Nonnull GuildChannel channel)Whether the permissions of this PermissionHolder are good enough to sync the target channel with any other channel.
This checks whether the permission holder has local administrator.If the permission holder had
Permission.MANAGE_PERMISSIONSin an override on the target channel orPermission.ADMINISTRATORon one of its roles, then it can set any permission on the target channel.- Parameters:
channel- The target channel to check- Returns:
- True, if the channel can be synced
- Throws:
java.lang.IllegalArgumentException- If the channel is null or not from the same guild as this permission holder
-
-