Added blacklist, whitelist, banned words, and made embeds function
This commit is contained in:
59
cogs/events.py
Normal file
59
cogs/events.py
Normal file
@@ -0,0 +1,59 @@
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
|
||||
from data import constants
|
||||
from functions import checks, bannedWords
|
||||
|
||||
|
||||
class Events(commands.Cog):
|
||||
def __init__(self, client):
|
||||
self.client = client
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_connect(self):
|
||||
print("Connected")
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_ready(self):
|
||||
print("Ready")
|
||||
self.client.banned_words = bannedWords.load()
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_message(self, message):
|
||||
if message.guild is None:
|
||||
return
|
||||
|
||||
# The bot sends a confirmation message after banning a word,
|
||||
# allow the bot to send this message.
|
||||
# This also makes it possible for the bot to send an embed
|
||||
# with that message in #ModLogs.
|
||||
#
|
||||
# Allow mods to use these words as well to whitelist them.
|
||||
if message.author.id == constants.wcbID or checks.isModPlus(message):
|
||||
return
|
||||
|
||||
# Check for banned words
|
||||
for word in self.client.banned_words:
|
||||
if word in message.content.lower():
|
||||
await message.delete()
|
||||
return await self.bannedWordEmbed(message, word)
|
||||
|
||||
async def bannedWordEmbed(self, message, word):
|
||||
modLogs = message.guild.get_channel(constants.ModLogs)
|
||||
|
||||
embed = discord.Embed(colour=discord.Colour.red())
|
||||
|
||||
iconFile = discord.File("files/images/server_icon.png", "icon.png")
|
||||
embed.set_author(name="Bad Word Usage", icon_url="attachment://icon.png")
|
||||
|
||||
embed.add_field(name="Author", value="{} #{}".format(message.author.display_name, message.author.discriminator))
|
||||
embed.add_field(name="Channel", value=message.channel.mention)
|
||||
embed.add_field(name="Word", value=word)
|
||||
embed.add_field(name="Zin", value=message.content, inline=False)
|
||||
embed.set_footer(text=embed.timestamp)
|
||||
|
||||
await modLogs.send(embed=embed, file=iconFile)
|
||||
|
||||
|
||||
def setup(client):
|
||||
client.add_cog(Events(client))
|
||||
Reference in New Issue
Block a user