diff --git a/README.md b/README.md index 1c86bc7..b41a41c 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,54 @@ + # discord.py-welcome-bot -A simple bot that can be used to welcome new users to a discord server, sending them a custom private message and adding them to a role. +A simple bot that can be used to welcome new users to a discord server, sending them a custom private message, send a welcome message to a specific channel, and adding them to a role. A video explaining how to set up everything except adding the user to a role can be found [here](https://youtu.be/N0NP7BfUFxA). **Update November 2019** - Now set up as a docker container to ensure full compatibility as I will not be maintaining this. Specific versions of Python and Discord.py are required for this script to work. -## How to install the welcome-bot as a docker container on a server (raspberrypi) +**Update November 2020** - Added basic install instructions for home computers and generic Linux distros, and how to enable Intents. (by [isigebengu-mikey](https://github.com/isigebengu-mikey)) + +## Intents + +Go to the [Discord Developer Portal](https://discord.com/developers/applications) and select your bot. Now move to the bot tab and scroll down. There you should see `Priveledged Gateway Intents`. Enable the `Members` intent. +![Enable Members Intent](https://i.imgur.com/rPePBe6.png) + +## Easy: How to install the welcome-bot on a home computer: + +Make sure that you've installed Python 3.6 or higher before beginning this. +### Linux + +First, we want to clone the repository using `git clone`: +``` +git clone https://github.com/jcreek/discord.py-welcome-bot.git + +cd discord.py-welcome-bot +``` +Secondly, we want to make sure we've updated our package list: + +``` +sudo apt update -y +``` +We now want to install the `python3` package: +``` +sudo apt install python3 +``` +Our final thing to do is run the script: +``` +python3 welcome-bot.py +``` +### Windows + +You can download the latest python release from [here](https://www.python.org/downloads/windows/). +We now want to download and extract this repository: +![Downloading the repo](https://i.imgur.com/qe6H5Bo.png) +![Extracting the files](https://i.imgur.com/liPOy7K.png) +After extracting, you can navigate into the folder and just double-click the file. +![Running the file](https://i.imgur.com/pFdAa80.png) + +## Advanced: How to install the welcome-bot as a docker container on a server (raspberrypi) + ### Building the image @@ -43,3 +85,5 @@ This will run the service every ten minutes. To change this use [Crontab Guru](h Run the below command to see the output of the bot. `docker container logs -f welcome-bot` + +***MAKE SURE THAT YOU CHANGE THE TOKEN AT THE BOTTOM OF THE FILE!!!*** diff --git a/welcome-bot.py b/welcome-bot.py index abcc804..4a5dfbc 100644 --- a/welcome-bot.py +++ b/welcome-bot.py @@ -4,17 +4,18 @@ # import all necessary commands and libraries import discord import asyncio - -client=discord.Client() - +intents = discord.Intents(members=True) +client=discord.Client(intents=intents) +welcomechannel = await client.fetch_channel(channel_id) # https://support.discord.com/hc/en-us/articles/206346498-Where-can-I-find-my-User-Server-Message-ID +# Make sure you get the ID of your channel by right-clicking it and clicking `Copy ID`. Make sure developer mode is on! @client.event async def on_ready(): print('logged in as') print(client.user.name) print(client.user.id) print('-----') - -newUserMessage = """ # customise this to the message you want to send new users + # Customise the message below to what you want to send new users! +newUserMessage = """ You can put @@ -28,20 +29,26 @@ here! async def on_member_join(member): print("Recognised that a member called " + member.name + " joined") try: - await client.send_message(member, newUserMessage) - print("Sent message to " + member.name) + await client.send_message(member, newUserMessage) + print("Sent message to " + member.name) except: print("Couldn't message " + member.name) - - # give member the steam role here - ## to do this the bot must have 'Manage Roles' permission on server, and role to add must be lower than bot's top role - role = discord.utils.get(member.server.roles, name="name-of-your-role") - await client.add_roles(member, role) + embed=discord.Embed( + title="Welcome "+member.name+"!" + description="We're so glad you're here!" + color=discord.Color.green() + ) + + role = discord.utils.get(member.server.roles, name="name-of-your-role") # Gets the member role as a `role` object + await client.add_roles(member, role) # Gives the role to the user print("Added role '" + role.name + "' to " + member.name) +@client.event +async def on_member_leave(member): + print("Recognised that a member called " + member.name + " left") + embed=discord.Embed( + title="😢 Goodbye "+member.name+"!", + description="Until we meet again old friend." # A description isn't necessary, you can delete this line if you don't want a description. + color=discord.Color.red() # There are lots of colors, you can check them here: https://discordpy.readthedocs.io/en/latest/api.html?highlight=discord%20color#discord.Colour + ) client.run('token') - - - - -