In this article, we will learn how we can make aĀ Discord Bot
Ā step-by-step using the Python
programming language which can be easily applied
inĀ python homework assignments. Discord is a famous
group-chatting platform, especially for gamers. Discord is built to allow members to message each
other. Each community is called aĀ server
.Ā Due to their Popularity Discord is using for business
these days. Developers of Discord had announced a programming feature in Discord that will help the
users and other programmers to develop a discord bot that will automate things.
Discord bot is an AI that can perform a number of useful automated tasks and commands on your servers.
- Welcome to the new member
- Replying to the specific message in the server
- Ban the rule breaker
- Add music, memes, games, and other stuff to your server
- and etc
Discord bot gives you a new experience in Discord platform, You can increase your popularity or
business. Discord bot helps you to make new ways to interact with your followers. Using Python
Language which is the most famous andĀ easy-to-learn
Ā the language we can develop a Discord bot
using Discord Official API.
Installation
If you had already the latest version of Python installed in your operating system you can use the following command to install the Discord Library.
pip install discord.py
Now another important thing we need is the API key of your Discord Account. To get the API key follow the following steps.
- Login to your Account onĀ Discord Site
- Navigate to theĀ Applicate Page
- Click on the New Application Button
4. Give your Application a name and click on create button.
Keep the Settings as same you don't need to change anything after creating the bot application.
5. Click on Bot and on that page click on Add bot
6. After this Your bot will be added and just click on Copy to copy the oath token.
7. Choose the Scope of your Bot application which is "Bot" i selected.
8. Next select the Bot Permission you want to bot had, Choose it carefully this permission will affect your bot. My bot is only used for Messaging so i select the following Permissions.
9. Click on the Copy button and paste it on your browser.
10. After you open the Url in your browser You need to choose your server in which you want your bot should be added.
That its, your Discord Bot is ready and attached to your Discord Server, Amazing! right now it's time to work on the coding part of your bot.
Discord Events for your Bot:
Let make an event for your discord bot in which our bot will respond to the specific messages in your server.
import discordclient = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))@client.event
async def on_message(message):
if message.author == client.user:
returnif message.content.startswith('$Hi'):
await message.channel.send('Hi!')client.run('your token here')
Let me explain how this code is working, the First line we simply importing the discord module, and
next, we setĀ discord.client()
Ā it to a client variable. Then we made an asynchronous function
nameĀ on_ready()
Ā . The asynchronous function will await the execution of a promise, and an
asynchronous function will always return a promise. Also on top of the function, you had noticed we
had to use aĀ client.event()
Ā that registered an event of the function.
That function is printing the message we had logged in with that username. The next asynchronous
function isĀ on_message()
Ā which triggers an event for every message received the function had if
the condition is checking theĀ message.author
Ā is same as the client user. In that, we had to ignore
the response of the bot on our own messages. And in the end lines, we are checking the message
content, and if the content matches we will send a response message to the server.
Now we had developed our bot and added an event, it's a basic discord bot event. Let run the bot and see the results.
Extending the Discord Bot Events:
We can improve or add new events to our bot. Let add more conditions to our bot to send a response to specific messages. Check below how we can extend the events by adding more conditions to our bot.
Welcoming New Users:
When a new user joins our Discord Server we should welcome him as a new follower. We will modify our Bot to welcome the new user to our server.
import discordclient = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))@client.event
async def on_member_join(member):
for channel in member.guild.channels:
if str(channel) == "general":
await channel.send_message(f"""Welcome to the server {member.mention}""")
client.run('your token here')
Let Breakdown the code to understand it's working, The new event function on_member_join() has for
loop in it which is iterating the channels in our server, and in the body of the loop, we made a
condition that if the channel name isĀ general
Ā then send a welcome message to the new user. We also
know that we don't need to run these function separately dieĀ client.event
Ā it automatically
triggers the function when a user does any activity on the server.
Deleting "Bad" Messages
Sometimes we don't want some bad words to appear in our server chat by the members, you can delete or filter those words from your discord server.
import discord
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))@client.event
async def on_message(message):
words = ["bad", "stop", "unfriendly"]
for word in bad_words:
if message.content.count(word) > 0:
print("Bad word deleted")
await message.channel.purge(limit=1)
client.run('your token here')
So we had to useĀ on_message
Ā event function again and we know that this function is tracking every
message sent by the user in our discord server whenever message, The bot will search that message in
the words list we had created if the word match it will returnĀ 1
Ā to the if condition and it will
delete that message from the server at the spot.
Getting numbers of Members:
Now our Discord bot also can get the number of members we had on our Discord server. To do so check the below code.
import discordclient = discord.Client()@client.event\
async def on_ready():\
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
elif message.content == "!users":
await message.channel.send(f"""# of Members: {id.member_count}""")
client.run('your token here')
To enable this feature to our to users, they need to messageĀ !users
Ā in our discord server and when
the message is being read by our bot with the on_message event function, it will send a message of
total members in our discord server usingĀ member_count
Ā object calling.
Embedding Messages in Discord:
We can make our response message look more clear and prominent using the embedding method. I will
add an event that when the user entersĀ !help
Ā the bot will respond with an embedded message.
import discord\
client = discord.Client()\
@client.event\
async def on_ready():\
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.content == "!help":
embed = discord.Embed(title="Help on Bot", description="Some useful commands")
embed.add_field(name="!hello", value="Greeting the user")
embed.add_field(name="!users", value="Display number of users")
await message.channel.send(content=None, embed=embed)
client.run('your token here')
Alright! we had a modifiedĀ on_message
Ā the function event and added a condition if the user
wroteĀ !help
Ā then send an embedded message using discord. Embed in which we are passing title and
description. In the next line, we adding the fields in our Embedded message we give a view to using
that if the enter !hello
then the bot will greet him back and if they enterĀ !user
Ā then it will
return a number of users on the discord server.
Conclusion
So far we learn many things in this article, we learn how we create a discord bot, modify it adding more functionalities and events to it. But you can do more with the Discord Bot. Check out the official documentation of discord Bot by the Discord Developers. This is a beginner's guide to give you a boost of understanding how the discord bot works and how to develop and use its functions and what are the events and etc. I hope this article finds you helpful in the future. š š»