Merge pull request #3 from isigebengu-mikey/patch-3

Added Embeds and updated README
This commit is contained in:
Josh Creek
2020-11-19 22:31:13 +00:00
committed by GitHub
2 changed files with 70 additions and 19 deletions
+46 -2
View File
@@ -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!!!***
+24 -17
View File
@@ -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')