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
|
# 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).
|
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.
|
**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
|
### 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.
|
Run the below command to see the output of the bot.
|
||||||
|
|
||||||
`docker container logs -f welcome-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 all necessary commands and libraries
|
||||||
import discord
|
import discord
|
||||||
import asyncio
|
import asyncio
|
||||||
|
intents = discord.Intents(members=True)
|
||||||
client=discord.Client()
|
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
|
@client.event
|
||||||
async def on_ready():
|
async def on_ready():
|
||||||
print('logged in as')
|
print('logged in as')
|
||||||
print(client.user.name)
|
print(client.user.name)
|
||||||
print(client.user.id)
|
print(client.user.id)
|
||||||
print('-----')
|
print('-----')
|
||||||
|
# Customise the message below to what you want to send new users!
|
||||||
newUserMessage = """ # customise this to the message you want to send new users
|
newUserMessage = """
|
||||||
You
|
You
|
||||||
can
|
can
|
||||||
put
|
put
|
||||||
@@ -28,20 +29,26 @@ here!
|
|||||||
async def on_member_join(member):
|
async def on_member_join(member):
|
||||||
print("Recognised that a member called " + member.name + " joined")
|
print("Recognised that a member called " + member.name + " joined")
|
||||||
try:
|
try:
|
||||||
await client.send_message(member, newUserMessage)
|
await client.send_message(member, newUserMessage)
|
||||||
print("Sent message to " + member.name)
|
print("Sent message to " + member.name)
|
||||||
except:
|
except:
|
||||||
print("Couldn't message " + member.name)
|
print("Couldn't message " + member.name)
|
||||||
|
embed=discord.Embed(
|
||||||
# give member the steam role here
|
title="Welcome "+member.name+"!"
|
||||||
## to do this the bot must have 'Manage Roles' permission on server, and role to add must be lower than bot's top role
|
description="We're so glad you're here!"
|
||||||
role = discord.utils.get(member.server.roles, name="name-of-your-role")
|
color=discord.Color.green()
|
||||||
await client.add_roles(member, role)
|
)
|
||||||
|
|
||||||
|
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)
|
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')
|
client.run('token')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user