Show / Hide Table of Contents

# Class SocketGuildChannel

Represents a WebSocket-based guild channel.

##### Inheritance

System.Object
SocketEntity<System.UInt64>
SocketChannel
SocketGuildChannel
SocketCategoryChannel
SocketTextChannel
SocketVoiceChannel

##### Implements

IGuildChannel
IChannel
ISnowflakeEntity
IEntity<System.UInt64>
IDeletable

##### Inherited Members

SocketChannel.CreatedAt
SocketChannel.IChannel.Name
SocketEntity<UInt64>.Id
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()

###### Namespace: Discord.WebSocket

###### Assembly: Discord.Net.WebSocket.dll

##### Syntax

    public class SocketGuildChannel : SocketChannel, IGuildChannel, IChannel, ISnowflakeEntity, IEntity<ulong>, IDeletable

### Properties

| Improve this Doc View Source

#### Guild

Gets the guild associated with this channel.

##### Declaration

    public SocketGuild Guild { get; }

##### Property Value

Type | Description
--- | ---
SocketGuild | A guild object that this channel belongs to.

| Improve this Doc View Source

#### Name

Gets the name of this channel.

##### Declaration

    public string Name { get; }

##### Property Value

Type | Description
--- | ---
System.String | A string containing the name of this channel.

| Improve this Doc View Source

#### PermissionOverwrites

Gets a collection of permission overwrites for this channel.

##### Declaration

    public virtual IReadOnlyCollection<Overwrite> PermissionOverwrites { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<Overwrite> | A collection of overwrites associated with this channel.

| Improve this Doc View Source

#### Position

Gets the position of this channel.

##### Declaration

    public int Position { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | An System.Int32 representing the position of this channel in the guild's channel list relative to others of the same type.

| Improve this Doc View Source

#### Users

Gets a collection of users that are able to view the channel.

##### Declaration

    public virtual IReadOnlyCollection<SocketGuildUser> Users { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<SocketGuildUser> | A read-only collection of users that can access the channel (i.e. the users seen in the user list).

### Methods

| Improve this Doc View Source

#### AddPermissionOverwriteAsync(IRole, OverwritePermissions, RequestOptions)

Adds or updates the permission overwrite for the given role.

##### Declaration

    public virtual Task AddPermissionOverwriteAsync(IRole role, OverwritePermissions permissions, RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
IRole | role | The role to add the overwrite to.
OverwritePermissions | permissions | The overwrite to add to the role.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task representing the asynchronous permission operation for adding the specified permissions to the channel.

| Improve this Doc View Source

#### AddPermissionOverwriteAsync(IUser, OverwritePermissions, RequestOptions)

Adds or updates the permission overwrite for the given user.

##### Declaration

    public virtual Task AddPermissionOverwriteAsync(IUser user, OverwritePermissions permissions, RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
IUser | user | The user to add the overwrite to.
OverwritePermissions | permissions | The overwrite to add to the user.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task representing the asynchronous permission operation for adding the specified permissions to the channel.

| Improve this Doc View Source

#### DeleteAsync(RequestOptions)

Deletes this object and all its children.

##### Declaration

    public Task DeleteAsync(RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task |

| Improve this Doc View Source

#### GetPermissionOverwrite(IRole)

Gets the permission overwrite for a specific role.

##### Declaration

    public virtual OverwritePermissions? GetPermissionOverwrite(IRole role)

##### Parameters

Type | Name | Description
--- | --- | ---
IRole | role | The role to get the overwrite from.

##### Returns

Type | Description
--- | ---
System.Nullable<OverwritePermissions> | An overwrite object for the targeted role; `null` if none is set.

| Improve this Doc View Source

#### GetPermissionOverwrite(IUser)

Gets the permission overwrite for a specific user.

##### Declaration

    public virtual OverwritePermissions? GetPermissionOverwrite(IUser user)

##### Parameters

Type | Name | Description
--- | --- | ---
IUser | user | The user to get the overwrite from.

##### Returns

Type | Description
--- | ---
System.Nullable<OverwritePermissions> | An overwrite object for the targeted user; `null` if none is set.

| Improve this Doc View Source

#### GetUser(UInt64)

##### Declaration

    public virtual SocketGuildUser GetUser(ulong id)

##### Parameters

Type | Name | Description
--- | --- | ---
System.UInt64 | id |

##### Returns

Type | Description
--- | ---
SocketGuildUser |

| Improve this Doc View Source

#### ModifyAsync(Action<GuildChannelProperties>, RequestOptions)

Modifies this guild channel.

##### Declaration

    public Task ModifyAsync(Action<GuildChannelProperties> func, RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Action<GuildChannelProperties> | func | The delegate containing the properties to modify the channel with.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task that represents the asynchronous modification operation.

##### Remarks

This method modifies the current guild channel with the specified properties. To see an example of this method and what properties are available, please refer to GuildChannelProperties.

| Improve this Doc View Source

#### RemovePermissionOverwriteAsync(IRole, RequestOptions)

Removes the permission overwrite for the given role, if one exists.

##### Declaration

    public virtual Task RemovePermissionOverwriteAsync(IRole role, RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
IRole | role | The role to remove the overwrite from.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task representing the asynchronous operation for removing the specified permissions from the channel.

| Improve this Doc View Source

#### RemovePermissionOverwriteAsync(IUser, RequestOptions)

Removes the permission overwrite for the given user, if one exists.

##### Declaration

    public virtual Task RemovePermissionOverwriteAsync(IUser user, RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
IUser | user | The user to remove the overwrite from.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task representing the asynchronous operation for removing the specified permissions from the channel.

| Improve this Doc View Source

#### ToString()

Gets the name of the channel.

##### Declaration

    public override string ToString()

##### Returns

Type | Description
--- | ---
System.String | A string that resolves to Name.

##### Overrides

System.Object.ToString()

### Explicit Interface Implementations

| Improve this Doc View Source

#### IChannel.GetUserAsync(UInt64, CacheMode, RequestOptions)

Gets a user in this channel.

##### Declaration

    Task<IUser> IChannel.GetUserAsync(ulong id, CacheMode mode, RequestOptions options)

##### Parameters

Type | Name | Description
--- | --- | ---
System.UInt64 | id | The snowflake identifier of the user (e.g. `168693960628371456`).
CacheMode | mode | The CacheMode that determines whether the object should be fetched from cache.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<IUser> | A task that represents the asynchronous get operation. The task result contains a user object that represents the found user; `null` if none is found.

| Improve this Doc View Source

#### IGuildChannel.AddPermissionOverwriteAsync(IRole, OverwritePermissions, RequestOptions)

Adds or updates the permission overwrite for the given role.

##### Declaration

    Task IGuildChannel.AddPermissionOverwriteAsync(IRole role, OverwritePermissions permissions, RequestOptions options)

##### Parameters

Type | Name | Description
--- | --- | ---
IRole | role | The role to add the overwrite to.
OverwritePermissions | permissions | The overwrite to add to the role.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task representing the asynchronous permission operation for adding the specified permissions to the channel.

| Improve this Doc View Source

#### IGuildChannel.AddPermissionOverwriteAsync(IUser, OverwritePermissions, RequestOptions)

Adds or updates the permission overwrite for the given user.

##### Declaration

    Task IGuildChannel.AddPermissionOverwriteAsync(IUser user, OverwritePermissions permissions, RequestOptions options)

##### Parameters

Type | Name | Description
--- | --- | ---
IUser | user | The user to add the overwrite to.
OverwritePermissions | permissions | The overwrite to add to the user.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task representing the asynchronous permission operation for adding the specified permissions to the channel.

| Improve this Doc View Source

#### IGuildChannel.GetPermissionOverwrite(IRole)

Gets the permission overwrite for a specific role.

##### Declaration

    OverwritePermissions? IGuildChannel.GetPermissionOverwrite(IRole role)

##### Parameters

Type | Name | Description
--- | --- | ---
IRole | role | The role to get the overwrite from.

##### Returns

Type | Description
--- | ---
System.Nullable<OverwritePermissions> | An overwrite object for the targeted role; `null` if none is set.

| Improve this Doc View Source

#### IGuildChannel.GetPermissionOverwrite(IUser)

Gets the permission overwrite for a specific user.

##### Declaration

    OverwritePermissions? IGuildChannel.GetPermissionOverwrite(IUser user)

##### Parameters

Type | Name | Description
--- | --- | ---
IUser | user | The user to get the overwrite from.

##### Returns

Type | Description
--- | ---
System.Nullable<OverwritePermissions> | An overwrite object for the targeted user; `null` if none is set.

| Improve this Doc View Source

#### IGuildChannel.GetUserAsync(UInt64, CacheMode, RequestOptions)

Gets a user in this channel.

##### Declaration

    Task<IGuildUser> IGuildChannel.GetUserAsync(ulong id, CacheMode mode, RequestOptions options)

##### Parameters

Type | Name | Description
--- | --- | ---
System.UInt64 | id | The snowflake identifier of the user.
CacheMode | mode | The CacheMode that determines whether the object should be fetched from cache.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<IGuildUser> | A task representing the asynchronous get operation. The task result contains a guild user object that represents the user; `null` if none is found.

| Improve this Doc View Source

#### IGuildChannel.Guild

Gets the guild associated with this channel.

##### Declaration

    IGuild IGuildChannel.Guild { get; }

##### Returns

Type | Description
--- | ---
IGuild | A guild object that this channel belongs to.

| Improve this Doc View Source

#### IGuildChannel.GuildId

Gets the guild ID associated with this channel.

##### Declaration

    ulong IGuildChannel.GuildId { get; }

##### Returns

Type | Description
--- | ---
System.UInt64 | An System.UInt64 representing the guild snowflake identifier for the guild that this channel belongs to.

| Improve this Doc View Source

#### IGuildChannel.RemovePermissionOverwriteAsync(IRole, RequestOptions)

Removes the permission overwrite for the given role, if one exists.

##### Declaration

    Task IGuildChannel.RemovePermissionOverwriteAsync(IRole role, RequestOptions options)

##### Parameters

Type | Name | Description
--- | --- | ---
IRole | role | The role to remove the overwrite from.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task representing the asynchronous operation for removing the specified permissions from the channel.

| Improve this Doc View Source

#### IGuildChannel.RemovePermissionOverwriteAsync(IUser, RequestOptions)

Removes the permission overwrite for the given user, if one exists.

##### Declaration

    Task IGuildChannel.RemovePermissionOverwriteAsync(IUser user, RequestOptions options)

##### Parameters

Type | Name | Description
--- | --- | ---
IUser | user | The user to remove the overwrite from.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task representing the asynchronous operation for removing the specified permissions from the channel.

### Implements

IGuildChannel
IChannel
ISnowflakeEntity
IEntity<TId>
IDeletable