mirror of
https://github.com/jcreek/discord.py-welcome-bot.git
synced 2026-07-12 18:33:44 +00:00
Merge pull request #3 from isigebengu-mikey/patch-3
Added Embeds and updated README
This commit is contained in:
@@ -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.
|
||||

|
||||
|
||||
## 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:
|
||||

|
||||

|
||||
After extracting, you can navigate into the folder and just double-click the file.
|
||||

|
||||
|
||||
## 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
@@ -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')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user