Python discord.VoiceChannel() Examples
The following are 29
code examples of discord.VoiceChannel().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
discord
, or try the search function
.
Example #1
Source File: audio.py From MangoByte with MIT License | 10 votes |
def connect(self, channel): if not isinstance(channel, discord.VoiceChannel): channel = self.bot.get_channel(channel) voice = self.voice if voice is None: print(f"attempting connect to: {channel.id}") await channel.connect() print(f"finished connect to: {channel.id}") elif voice.channel and voice.channel.id == channel.id: print(f"doin a disconnect and reconnect for: {channel.id}") await voice.disconnect(force=True) await asyncio.sleep(1) await channel.connect() print(f"finished reconnect for: {channel.id}") # print(f"leaving this because we're supposedly already connected? ({channel.id})") else: print(f"attempting move to: {channel.id}") await voice.move_to(channel) print(f"finished move to: {channel.id}")
Example #2
Source File: mod.py From RemixBot with MIT License | 8 votes |
def mute(self, ctx, user: discord.Member, time: int=15): '''Mute a member in the guild''' secs = time * 60 for channel in ctx.guild.channels: if isinstance(channel, discord.TextChannel): await ctx.channel.set_permissions(user, send_messages=False) elif isinstance(channel, discord.VoiceChannel): await channel.set_permissions(user, connect=False) await ctx.send(f"{user.mention} has been muted for {time} minutes.") await asyncio.sleep(secs) for channel in ctx.guild.channels: if isinstance(channel, discord.TextChannel): await ctx.channel.set_permissions(user, send_messages=None) elif isinstance(channel, discord.VoiceChannel): await channel.set_permissions(user, connect=None) await ctx.send(f'{user.mention} has been unmuted from the guild.')
Example #3
Source File: modlog.py From bot with MIT License | 7 votes |
def on_guild_channel_delete(self, channel: GUILD_CHANNEL) -> None: """Log channel delete event to mod log.""" if channel.guild.id != GuildConstant.id: return if isinstance(channel, discord.CategoryChannel): title = "Category deleted" elif isinstance(channel, discord.VoiceChannel): title = "Voice channel deleted" else: title = "Text channel deleted" if channel.category and not isinstance(channel, discord.CategoryChannel): message = f"{channel.category}/{channel.name} (`{channel.id}`)" else: message = f"{channel.name} (`{channel.id}`)" await self.send_log_message( Icons.hash_red, Colours.soft_red, title, message )
Example #4
Source File: serverstats.py From Trusty-cogs with MIT License | 6 votes |
def channel_bitrate( self, ctx: commands.Context, channel: discord.VoiceChannel, bitrate: int ) -> None: """Edit a voice channels bitrate""" try: await channel.edit( bitrate=bitrate, reason=_("Requested by {author}").format(author=ctx.author) ) except Exception: await ctx.send( _( "`{bitrate}` is either too high or too low please " "provide a number between 8000 and 96000." ).format(bitrate=bitrate) ) return await ctx.tick()
Example #5
Source File: serverstats.py From Trusty-cogs with MIT License | 6 votes |
def channel_userlimit( self, ctx: commands.Context, channel: discord.VoiceChannel, limit: int ) -> None: """Edit a voice channels user limit""" try: await channel.edit( user_limit=limit, reason=_("Requested by {author}").format(author=ctx.author) ) except Exception: await ctx.send( _( "`{limit}` is either too high or too low please " "provide a number between 0 and 99." ).format(limit=limit) ) return await ctx.tick()
Example #6
Source File: converters.py From Trusty-cogs with MIT License | 6 votes |
def convert( self, ctx: commands.Context, argument: str ) -> Union[discord.TextChannel, discord.CategoryChannel, discord.VoiceChannel]: match = self._get_id_match(argument) or re.match(r"<#([0-9]+)>$", argument) result = None guild = ctx.guild if match is None: # not a mention result = discord.utils.get(guild.channels, name=argument) else: channel_id = int(match.group(1)) result = guild.get_channel(channel_id) if not result: raise BadArgument(f"Channel `{argument}` not found") return result
Example #7
Source File: extendedmodlog.py From Trusty-cogs with MIT License | 6 votes |
def ignore( self, ctx: commands.Context, channel: Union[discord.TextChannel, discord.CategoryChannel, discord.VoiceChannel], ) -> None: """ Ignore a channel from message delete/edit events and bot commands `channel` the channel or category to ignore events in """ if ctx.guild.id not in self.settings: self.settings[ctx.guild.id] = inv_settings guild = ctx.message.guild if channel is None: channel = ctx.channel cur_ignored = await self.config.guild(guild).ignored_channels() if channel.id not in cur_ignored: cur_ignored.append(channel.id) await self.config.guild(guild).ignored_channels.set(cur_ignored) self.settings[guild.id]["ignored_channels"] = cur_ignored await ctx.send(_(" Now ignoring events in ") + channel.mention) else: await ctx.send(channel.mention + _(" is already being ignored."))
Example #8
Source File: converter.py From discord.py with MIT License | 6 votes |
def convert(self, ctx, argument): bot = ctx.bot match = self._get_id_match(argument) or re.match(r'<#([0-9]+)>$', argument) result = None guild = ctx.guild if match is None: # not a mention if guild: result = discord.utils.get(guild.voice_channels, name=argument) else: def check(c): return isinstance(c, discord.VoiceChannel) and c.name == argument result = discord.utils.find(check, bot.get_all_channels()) else: channel_id = int(match.group(1)) if guild: result = guild.get_channel(channel_id) else: result = _get_from_guilds(bot, 'get_channel', channel_id) if not isinstance(result, discord.VoiceChannel): raise BadArgument('Channel "{}" not found.'.format(argument)) return result
Example #9
Source File: modlog.py From bot with MIT License | 6 votes |
def on_guild_channel_create(self, channel: GUILD_CHANNEL) -> None: """Log channel create event to mod log.""" if channel.guild.id != GuildConstant.id: return if isinstance(channel, discord.CategoryChannel): title = "Category created" message = f"{channel.name} (`{channel.id}`)" elif isinstance(channel, discord.VoiceChannel): title = "Voice channel created" if channel.category: message = f"{channel.category}/{channel.name} (`{channel.id}`)" else: message = f"{channel.name} (`{channel.id}`)" else: title = "Text channel created" if channel.category: message = f"{channel.category}/{channel.name} (`{channel.id}`)" else: message = f"{channel.name} (`{channel.id}`)" await self.send_log_message(Icons.hash_green, Colours.soft_green, title, message)
Example #10
Source File: basic.py From Wavelink with MIT License | 5 votes |
def connect_(self, ctx, *, channel: discord.VoiceChannel = None): if not channel: try: channel = ctx.author.voice.channel except AttributeError: raise discord.DiscordException('No channel to join. Please either specify a valid channel or join one.') player = self.bot.wavelink.get_player(ctx.guild.id) await ctx.send(f'Connecting to **`{channel.name}`**') await player.connect(channel.id)
Example #11
Source File: playlist.py From Wavelink with MIT License | 5 votes |
def connect_(self, ctx, *, channel: discord.VoiceChannel=None): """Connect to a valid voice channel.""" if not channel: try: channel = ctx.author.voice.channel except AttributeError: raise discord.DiscordException('No channel to join. Please either specify a valid channel or join one.') player = self.bot.wavelink.get_player(ctx.guild.id) await ctx.send(f'Connecting to **`{channel.name}`**', delete_after=15) await player.connect(channel.id) controller = self.get_controller(ctx) controller.channel = ctx.channel
Example #12
Source File: advanced.py From Wavelink with MIT License | 5 votes |
def connect(self, ctx: commands.Context, *, channel: discord.VoiceChannel = None): """Connect to a voice channel.""" player: Player = self.bot.wavelink.get_player(guild_id=ctx.guild.id, cls=Player, context=ctx) if player.is_connected: return channel = getattr(ctx.author.voice, 'channel', channel) if channel is None: raise NoChannelProvided await player.connect(channel.id)
Example #13
Source File: bot.py From MusicBot with MIT License | 5 votes |
def get_voice_client(self, channel: discord.abc.GuildChannel): if isinstance(channel, discord.Object): channel = self.get_channel(channel.id) if not isinstance(channel, discord.VoiceChannel): raise AttributeError('Channel passed must be a voice channel') if channel.guild.voice_client: return channel.guild.voice_client else: return await channel.connect(timeout=60, reconnect=True)
Example #14
Source File: music.py From DJ5n4k3 with MIT License | 5 votes |
def connect_(self, ctx, *, channel: discord.VoiceChannel=None): """Connect to voice. Parameters ------------ channel: discord.VoiceChannel [Optional] The channel to connect to. If a channel is not specified, an attempt to join the voice channel you are in will be made. This command also handles moving the bot to different channels. """ if not channel: try: channel = ctx.author.voice.channel except AttributeError: await ctx.send(":notes: Please join voice channel or specify one with command!") vc = ctx.voice_client if vc: if vc.channel.id == channel.id: return try: await vc.move_to(channel) except asyncio.TimeoutError: raise VoiceConnectionError(f'Moving to channel: <{channel}> timed out.') else: try: await channel.connect() except asyncio.TimeoutError: raise VoiceConnectionError(f'Connecting to channel: <{channel}> timed out.') await ctx.send(f":notes: Connected to channel: **{channel}**", delete_after=20)
Example #15
Source File: voice.py From Dozer with GNU General Public License v3.0 | 5 votes |
def voicebind(self, ctx, voice_channel: discord.VoiceChannel, *, role: discord.Role): """Associates a voice channel with a role, so users joining a voice channel will automatically be given a specified role or roles.""" config = await Voicebinds.get_by(channel_id=voice_channel.id) if len(config) != 0: config[0].guild_id = ctx.guild.id config[0].channel_id = voice_channel.id config[0].role_id = role.id await config[0].update_or_add() else: await Voicebinds(channel_id=voice_channel.id, role_id=role.id, guild_id=ctx.guild.id).update_or_add() await ctx.send("Role `{role}` will now be given to users in voice channel `{voice_channel}`!".format(role=role, voice_channel=voice_channel))
Example #16
Source File: serverstats.py From Trusty-cogs with MIT License | 5 votes |
def afk_channel( self, ctx: commands.Context, channel: discord.VoiceChannel = None ) -> None: """ Change the servers AFK voice channel Defaults to no AFK channel. """ reason = _("Requested by {author}").format(author=ctx.author) try: await ctx.guild.edit(afk_channel=channel, reason=reason) except Exception as e: print(e) pass
Example #17
Source File: voice.py From Dozer with GNU General Public License v3.0 | 5 votes |
def voiceunbind(self, ctx, voice_channel: discord.VoiceChannel): """Dissasociates a voice channel with a role previously binded with the voicebind command.""" config = await Voicebinds.get_by(channel_id=voice_channel.id) if len(config) != 0: role = ctx.guild.get_role(config[0].role_id) await Voicebinds.delete(id=config[0].id) await ctx.send( "Role `{role}` will no longer be given to users in voice channel `{voice_channel}`!".format( role=role, voice_channel=voice_channel)) else: await ctx.send("It appears that `{voice_channel}` is not associated with a role!".format( voice_channel=voice_channel))
Example #18
Source File: infochannel.py From Fox-V3 with GNU Affero General Public License v3.0 | 5 votes |
def delete_infochannel(self, guild: discord.Guild, channel: discord.VoiceChannel): guild_data = await self.config.guild(guild).all() botchannel_id = guild_data["botchannel_id"] onlinechannel_id = guild_data["onlinechannel_id"] botchannel: discord.VoiceChannel = guild.get_channel(botchannel_id) onlinechannel: discord.VoiceChannel = guild.get_channel(onlinechannel_id) channel_id = guild_data["channel_id"] channel: discord.VoiceChannel = guild.get_channel(channel_id) await channel.delete(reason="InfoChannel delete") if botchannel_id is not None: await botchannel.delete(reason="InfoChannel delete") if onlinechannel_id is not None: await onlinechannel.delete(reason="InfoChannel delete") await self.config.guild(guild).clear()
Example #19
Source File: infochannel.py From Fox-V3 with GNU Affero General Public License v3.0 | 5 votes |
def infochannel(self, ctx: commands.Context): """ Toggle info channel for this server """ def check(m): return ( m.content.upper() in ["Y", "YES", "N", "NO"] and m.channel == ctx.channel and m.author == ctx.author ) guild: discord.Guild = ctx.guild channel_id = await self.config.guild(guild).channel_id() if channel_id is not None: channel: discord.VoiceChannel = guild.get_channel(channel_id) else: channel: discord.VoiceChannel = None if channel_id is not None and channel is None: await ctx.send("Info channel has been deleted, recreate it?") elif channel_id is None: await ctx.send("Enable info channel on this server?") else: await ctx.send("Do you wish to delete current info channels?") msg = await self.bot.wait_for("message", check=check) if msg.content.upper() in ["N", "NO"]: await ctx.send("Cancelled") return if channel is None: await self.make_infochannel(guild) else: await self.delete_infochannel(guild, channel) if not await ctx.tick(): await ctx.send("Done!")
Example #20
Source File: cog_base.py From jishaku with MIT License | 5 votes |
def jsk_vc_join(self, ctx: commands.Context, *, destination: typing.Union[discord.VoiceChannel, discord.Member] = None): """ Joins a voice channel, or moves to it if already connected. Passing a voice channel uses that voice channel. Passing a member will use that member's current voice channel. Passing nothing will use the author's voice channel. """ if await vc_check(ctx): return destination = destination or ctx.author if isinstance(destination, discord.Member): if destination.voice and destination.voice.channel: destination = destination.voice.channel else: return await ctx.send("Member has no voice channel.") voice = ctx.guild.voice_client if voice: await voice.move_to(destination) else: await destination.connect(reconnect=True) await ctx.send(f"Connected to {destination.name}.")
Example #21
Source File: utils.py From bot with MIT License | 5 votes |
def getperms(self, member: discord.Member, channel: typing.Union[discord.TextChannel, discord.VoiceChannel, discord.CategoryChannel]): perms = [] for perm, value in member.permissions_in(channel): if value: perms.append(perm) return perms
Example #22
Source File: bot.py From rhinobot_heroku with MIT License | 5 votes |
def get_voice_client(self, channel: discord.abc.GuildChannel): if isinstance(channel, discord.Object): channel = self.get_channel(channel.id) if not isinstance(channel, discord.VoiceChannel): raise AttributeError('Channel passed must be a voice channel') if channel.guild.voice_client: return channel.guild.voice_client else: return await channel.connect(timeout=60, reconnect=True)
Example #23
Source File: logging.py From EmoteCollector with GNU Affero General Public License v3.0 | 5 votes |
def init_channels(self): await self.bot.wait_until_ready() if self.configured.is_set(): return for channel_id, settings in self.bot.config['logs'].items(): channel = self.bot.get_channel(channel_id) if channel is None: logger.warning(f'Configured logging channel ID {channel_id} was not found!') if isinstance(channel, discord.VoiceChannel): logger.warning(f'Voice channel {channel!r} was configured as a logging channel!') continue self.channels[channel] = settings self.configured.set()
Example #24
Source File: mod.py From RemixBot with MIT License | 5 votes |
def unmute(self, ctx, user: discord.Member): '''Unmute a member in the guild''' for channel in ctx.guild.channels: if isinstance(channel, discord.TextChannel): await ctx.channel.set_permissions(user, send_messages=None) elif isinstance(channel, discord.VoiceChannel): await channel.set_permissions(user, connect=None) await ctx.send(f'{user.mention} has been unmuted from the guild.')
Example #25
Source File: infochannel.py From Fox-V3 with GNU Affero General Public License v3.0 | 4 votes |
def update_infochannel(self, guild: discord.Guild): guild_data = await self.config.guild(guild).all() botcount = guild_data["bot_count"] onlinecount = guild_data["online_count"] # Gets count of bots bots = lambda x: x.bot num = len([m for m in guild.members if bots(m)]) bot_msg = f"Bots: {num}" # Gets count of online users members = guild.member_count offline = len(list(filter(lambda m: m.status is discord.Status.offline, guild.members))) num = members - offline online_msg = f"Online: {num}" # Gets count of actual users total = lambda x: not x.bot num = len([m for m in guild.members if total(m)]) human_msg = f"Total Humans: {num}" channel_id = guild_data["channel_id"] if channel_id is None: return botchannel_id = guild_data["botchannel_id"] onlinechannel_id = guild_data["onlinechannel_id"] channel_id = guild_data["channel_id"] channel: discord.VoiceChannel = guild.get_channel(channel_id) botchannel: discord.VoiceChannel = guild.get_channel(botchannel_id) onlinechannel: discord.VoiceChannel = guild.get_channel(onlinechannel_id) if guild_data["member_count"]: name = "{} ".format(human_msg) await channel.edit(reason="InfoChannel update", name=name) if botcount: name = "{} ".format(bot_msg) await botchannel.edit(reason="InfoChannel update", name=name) if onlinecount: name = "{} ".format(online_msg) await onlinechannel.edit(reason="InfoChannel update", name=name)
Example #26
Source File: bot.py From rhinobot_heroku with MIT License | 4 votes |
def cmd_listids(self, guild, author, leftover_args, cat='all'): """ Usage: {command_prefix}listids [categories] Lists the ids for various things. Categories are: all, users, roles, channels """ cats = ['channels', 'roles', 'users'] if cat not in cats and cat != 'all': return Response( "Valid categories: " + ' '.join(['`%s`' % c for c in cats]), reply=True, delete_after=25 ) if cat == 'all': requested_cats = cats else: requested_cats = [cat] + [c.strip(',') for c in leftover_args] data = ['Your ID: %s' % author.id] for cur_cat in requested_cats: rawudata = None if cur_cat == 'users': data.append("\nUser IDs:") rawudata = ['%s #%s: %s' % (m.name, m.discriminator, m.id) for m in guild.members] elif cur_cat == 'roles': data.append("\nRole IDs:") rawudata = ['%s: %s' % (r.name, r.id) for r in guild.roles] elif cur_cat == 'channels': data.append("\nText Channel IDs:") tchans = [c for c in guild.channels if isinstance(c, discord.TextChannel)] rawudata = ['%s: %s' % (c.name, c.id) for c in tchans] rawudata.append("\nVoice Channel IDs:") vchans = [c for c in guild.channels if isinstance(c, discord.VoiceChannel)] rawudata.extend('%s: %s' % (c.name, c.id) for c in vchans) if rawudata: data.extend(rawudata) with BytesIO() as sdata: sdata.writelines(d.encode('utf8') + b'\n' for d in data) sdata.seek(0) # TODO: Fix naming (Discord20API-ids.txt) await author.send(file=discord.File(sdata, filename='%s-ids-%s.txt' % (guild.name.replace(' ', '_'), cat))) return Response("Sent a message with a list of IDs.", delete_after=20)
Example #27
Source File: bot.py From MusicBot with MIT License | 4 votes |
def cmd_listids(self, guild, author, leftover_args, cat='all'): """ Usage: {command_prefix}listids [categories] Lists the ids for various things. Categories are: all, users, roles, channels """ cats = ['channels', 'roles', 'users'] if cat not in cats and cat != 'all': return Response( "Valid categories: " + ' '.join(['`%s`' % c for c in cats]), reply=True, delete_after=25 ) if cat == 'all': requested_cats = cats else: requested_cats = [cat] + [c.strip(',') for c in leftover_args] data = ['Your ID: %s' % author.id] for cur_cat in requested_cats: rawudata = None if cur_cat == 'users': data.append("\nUser IDs:") rawudata = ['%s #%s: %s' % (m.name, m.discriminator, m.id) for m in guild.members] elif cur_cat == 'roles': data.append("\nRole IDs:") rawudata = ['%s: %s' % (r.name, r.id) for r in guild.roles] elif cur_cat == 'channels': data.append("\nText Channel IDs:") tchans = [c for c in guild.channels if isinstance(c, discord.TextChannel)] rawudata = ['%s: %s' % (c.name, c.id) for c in tchans] rawudata.append("\nVoice Channel IDs:") vchans = [c for c in guild.channels if isinstance(c, discord.VoiceChannel)] rawudata.extend('%s: %s' % (c.name, c.id) for c in vchans) if rawudata: data.extend(rawudata) with BytesIO() as sdata: sdata.writelines(d.encode('utf8') + b'\n' for d in data) sdata.seek(0) # TODO: Fix naming (Discord20API-ids.txt) await author.send(file=discord.File(sdata, filename='%s-ids-%s.txt' % (guild.name.replace(' ', '_'), cat))) return Response("Sent a message with a list of IDs.", delete_after=20)
Example #28
Source File: serverinfo.py From Discord-Selfbot with GNU General Public License v3.0 | 4 votes |
def channelinfo(self, ctx, *, channel: int = None): """Shows channel information""" if not channel: channel = ctx.message.channel else: channel = self.bot.get_channel(channel) data = discord.Embed() if hasattr(channel, 'mention'): data.description = "**Information about Channel:** " + channel.mention if hasattr(channel, 'changed_roles'): if len(channel.changed_roles) > 0: data.color = discord.Colour.green() if channel.changed_roles[0].permissions.read_messages else discord.Colour.red() if isinstance(channel, discord.TextChannel): _type = "Text" elif isinstance(channel, discord.VoiceChannel): _type = "Voice" else: _type = "Unknown" data.add_field(name="Type", value=_type) data.add_field(name="ID", value=channel.id, inline=False) if hasattr(channel, 'position'): data.add_field(name="Position", value=channel.position) if isinstance(channel, discord.VoiceChannel): if channel.user_limit != 0: data.add_field(name="User Number", value="{}/{}".format(len(channel.voice_members), channel.user_limit)) else: data.add_field(name="User Number", value="{}".format(len(channel.voice_members))) userlist = [r.display_name for r in channel.members] if not userlist: userlist = "None" else: userlist = "\n".join(userlist) data.add_field(name="Users", value=userlist) data.add_field(name="Bitrate", value=channel.bitrate) elif isinstance(channel, discord.TextChannel): try: pins = await channel.pins() data.add_field(name="Pins", value=len(pins), inline=True) except discord.Forbidden: pass data.add_field(name="Members", value="%s"%len(channel.members)) if channel.topic: data.add_field(name="Topic", value=channel.topic, inline=False) hidden = [] allowed = [] for role in channel.changed_roles: if role.permissions.read_messages is True: if role.name != "@everyone": allowed.append(role.mention) elif role.permissions.read_messages is False: if role.name != "@everyone": hidden.append(role.mention) if len(allowed) > 0: data.add_field(name='Allowed Roles ({})'.format(len(allowed)), value=', '.join(allowed), inline=False) if len(hidden) > 0: data.add_field(name='Restricted Roles ({})'.format(len(hidden)), value=', '.join(hidden), inline=False) if channel.created_at: data.set_footer(text=("Created on {} ({} days ago)".format(channel.created_at.strftime("%d %b %Y %H:%M"), (ctx.message.created_at - channel.created_at).days))) await ctx.send(embed=data)
Example #29
Source File: basic_voice.py From discord.py with MIT License | 4 votes |
def join(self, ctx, *, channel: discord.VoiceChannel): """Joins a voice channel""" if ctx.voice_client is not None: return await ctx.voice_client.move_to(channel) await channel.connect()