diff --git a/main.py b/main.py index e7ffb94..c2912f5 100644 --- a/main.py +++ b/main.py @@ -26,45 +26,68 @@ isPlaying = False @bot.event async def on_ready(): - print('Logged in as') - print(bot.user.name) - print(bot.user.id) - print('------') + print('Logged in as ' + bot.user.name + ' #' + str(bot.user.id)) # get channels - voice_channel = bot.get_channel(voice_channel_id) - text_channel = bot.get_channel(text_channel_id) - if not voice_channel: - print("No voice channel " + voice_channel_id + " found!") - if not text_channel: - print("No text channel " + text_channel_id + " found!") - #voice_client = await bot.join_voice_channel(v_channel) + #voice_channel = bot.get_channel(voice_channel_id) + #text_channel = bot.get_channel(text_channel_id) + #if not voice_channel: + # print("No voice channel " + voice_channel_id + " found!") + #if not text_channel: + # print("No text channel " + text_channel_id + " found!") @bot.event -async def on_message(ctx): +async def on_message(message): # don't respond to ourselves - if ctx.message.author == ctx.user: + if message.author == bot.user: return - print ('<' + ctx.message.author.nick + '> ' + ctx.message.content) + if not str(message.channel.id) == text_channel_id: + return - if ctx.message.content == '!version': - await ctx.message.channel.send('] radiobot ' + bot_version + ' - python: ' + os.environ['PYTHON_VERSION']) + print('<' + message.author.nick + '> ' + message.content) + + if message.content == '!version': + await message.channel.send('] radiobot ' + bot_version + ' - python ' + os.environ['PYTHON_VERSION']) @bot.event async def on_voice_state_update(member, before, after): + """ + Starts events when a user changes their voice state. + Such as connecting, disconnecting and moving between channels. + :type member: discord.Member + :type before: discord.VoiceState + :type after: discord.VoiceState + :param member: The member that changed their voice state. + :param before: The member as they were before the change. + :param after: The member as they are after the change. + :return: + """ print('before: ' + str(before)) print('after: ' + str(after)) return clients_before = len(before.channel.members) + + if member.bot: + print("self event detection") + return - # If nobody in the channel based on before, invoke join the channel - if clients_before == 0: + if str(before.voice_channel) == "None": + print(after.name + " joined " + str(after.voice_channel)) + if str(after.channel.id) == voice_channel_id: + print("Connecting to voice channel " + voice_channel_id) + voiceChannel = await after.channel.connect() + + + elif str(after.voice_channel) == "None": + print(after.name + " left " + str(before.voice_channel)) + print("Disconnecting from voice channel " + voice_channel_id) voiceChannel = await after.channel.connect() - - # if after join channel members > 0, join the channel - if clients_before == 1: - print("gg") await voiceChannel.disconnect() -bot.run(login_token) # Get token for this shit +# Start the bot with multiprocess compatiblity +if __name__ == "__main__": + try: + bot.loop.run_until_complete(bot.start(login_token)) + finally: + bot.loop.close()