mirror of
https://github.com/TitanEmbeds/Titan.git
synced 2024-12-26 15:07:03 +01:00
ADD COMMANDS EXT FROM DISCORD.PY
This commit is contained in:
parent
31b8f66abe
commit
7ff578bbdd
@ -1,7 +1,7 @@
|
|||||||
from config import config
|
from config import config
|
||||||
from titanembeds.database import DatabaseInterface
|
from titanembeds.database import DatabaseInterface
|
||||||
from titanembeds.commands import Commands
|
|
||||||
from titanembeds.socketio import SocketIOInterface
|
from titanembeds.socketio import SocketIOInterface
|
||||||
|
from discord.ext import commands
|
||||||
import discord
|
import discord
|
||||||
import aiohttp
|
import aiohttp
|
||||||
import asyncio
|
import asyncio
|
||||||
@ -11,13 +11,50 @@ logging.basicConfig(filename='titanbot.log',level=logging.INFO,format='%(asctime
|
|||||||
logging.getLogger('TitanBot')
|
logging.getLogger('TitanBot')
|
||||||
logging.getLogger('sqlalchemy')
|
logging.getLogger('sqlalchemy')
|
||||||
|
|
||||||
class Titan(discord.Client):
|
class CommandCog:
|
||||||
|
def __init__(self, bot, database):
|
||||||
|
self.bot = bot
|
||||||
|
self.database = database
|
||||||
|
|
||||||
|
@commands.command()
|
||||||
|
async def ban(self, message):
|
||||||
|
if not message.author.server_permissions.ban_members:
|
||||||
|
await self.bot.reply("I'm sorry, but you do not have permissions to ban guest members.")
|
||||||
|
return
|
||||||
|
serverid = message.server.id
|
||||||
|
content = message.content.strip()
|
||||||
|
if len(content.split()) == 2:
|
||||||
|
await self.bot.reply("Please provide a username-query (or optionally a discriminator) to ban a guest user.\nExample: `ban Titan#0001`")
|
||||||
|
return
|
||||||
|
content = content.split()
|
||||||
|
username = content[2][:content[2].find("#")] if "#" in content[2] else content[2]
|
||||||
|
discriminator = int(content[2][content[2].find("#") + 1:]) if "#" in content[2] else None
|
||||||
|
reason = await self.database.ban_unauth_user_by_query(message.server.id, message.author.id, username, discriminator)
|
||||||
|
await self.bot.reply(reason)
|
||||||
|
|
||||||
|
@commands.command()
|
||||||
|
async def kick(self, message):
|
||||||
|
if not message.author.server_permissions.kick_members:
|
||||||
|
await self.bot.reply("I'm sorry, but you do not have permissions to kick guest members.")
|
||||||
|
return
|
||||||
|
serverid = message.server.id
|
||||||
|
content = message.content.strip()
|
||||||
|
if len(content.split()) == 2:
|
||||||
|
await self.bot.reply("Please provide a username-query (or optionally a discriminator) to kick a guest user.\nExample: `kick Titan#0001`")
|
||||||
|
return
|
||||||
|
content = content.split()
|
||||||
|
username = content[2][:content[2].find("#")] if "#" in content[2] else content[2]
|
||||||
|
discriminator = int(content[2][content[2].find("#") + 1:]) if "#" in content[2] else None
|
||||||
|
reason = await self.database.revoke_unauth_user_by_query(message.server.id, username, discriminator)
|
||||||
|
await self.bot.reply(reason)
|
||||||
|
|
||||||
|
|
||||||
|
class Titan(commands.Bot):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__(*args, command_prefix=commands.when_mentioned, **kwargs)
|
||||||
self.aiosession = aiohttp.ClientSession(loop=self.loop)
|
self.aiosession = aiohttp.ClientSession(loop=self.loop)
|
||||||
self.http.user_agent += ' TitanEmbeds-Bot'
|
self.http.user_agent += ' TitanEmbeds-Bot'
|
||||||
self.database = DatabaseInterface(self)
|
self.database = DatabaseInterface(self)
|
||||||
self.command = Commands(self, self.database)
|
|
||||||
self.socketio = SocketIOInterface(self, config["redis-uri"])
|
self.socketio = SocketIOInterface(self, config["redis-uri"])
|
||||||
|
|
||||||
self.database_connected = False
|
self.database_connected = False
|
||||||
@ -83,6 +120,9 @@ class Titan(discord.Client):
|
|||||||
game=discord.Game(name="Embed your Discord server! Visit https://TitanEmbeds.com/"), status=discord.Status.online
|
game=discord.Game(name="Embed your Discord server! Visit https://TitanEmbeds.com/"), status=discord.Status.online
|
||||||
)
|
)
|
||||||
|
|
||||||
|
commands = CommandsCog(self, self.database)
|
||||||
|
self.add_cog(commands)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
await self.database.connect(config["database-uri"])
|
await self.database.connect(config["database-uri"])
|
||||||
self.database_connected = True
|
self.database_connected = True
|
||||||
@ -126,15 +166,7 @@ class Titan(discord.Client):
|
|||||||
await self.wait_until_dbonline()
|
await self.wait_until_dbonline()
|
||||||
await self.database.push_message(message)
|
await self.database.push_message(message)
|
||||||
await self.socketio.on_message(message)
|
await self.socketio.on_message(message)
|
||||||
|
await self.process_commands(message)
|
||||||
msg_arr = message.content.split() # split the message
|
|
||||||
if len(message.content.split()) > 1 and message.server: #making sure there is actually stuff in the message and have arguments and check if it is sent in server (not PM)
|
|
||||||
if msg_arr[0] == "<@{}>".format(self.user.id): #make sure it is mention
|
|
||||||
msg_cmd = msg_arr[1].lower() # get command
|
|
||||||
cmd = getattr(self.command, msg_cmd, None) #check if cmd exist, if not its none
|
|
||||||
if cmd: # if cmd is not none...
|
|
||||||
await self.send_typing(message.channel) #this looks nice
|
|
||||||
await getattr(self.command, msg_cmd)(message) #actually run cmd, passing in msg obj
|
|
||||||
|
|
||||||
async def on_message_edit(self, message_before, message_after):
|
async def on_message_edit(self, message_before, message_after):
|
||||||
await self.wait_until_dbonline()
|
await self.wait_until_dbonline()
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
class Commands():
|
|
||||||
def __init__(self, client, database):
|
|
||||||
self.client = client
|
|
||||||
self.database = database
|
|
||||||
|
|
||||||
async def ban(self, message):
|
|
||||||
if not message.author.server_permissions.ban_members:
|
|
||||||
await self.client.send_message(message.channel, message.author.mention + " I'm sorry, but you do not have permissions to ban guest members.")
|
|
||||||
return
|
|
||||||
serverid = message.server.id
|
|
||||||
content = message.content.strip()
|
|
||||||
if len(content.split()) == 2:
|
|
||||||
await self.client.send_message(message.channel, message.author.mention + " Please provide a username-query (or optionally a discriminator) to ban a guest user.\nExample: `ban Titan#0001`")
|
|
||||||
return
|
|
||||||
content = content.split()
|
|
||||||
username = content[2][:content[2].find("#")] if "#" in content[2] else content[2]
|
|
||||||
discriminator = int(content[2][content[2].find("#") + 1:]) if "#" in content[2] else None
|
|
||||||
reason = await self.database.ban_unauth_user_by_query(message.server.id, message.author.id, username, discriminator)
|
|
||||||
await self.client.send_message(message.channel, message.author.mention + " " + reason)
|
|
||||||
|
|
||||||
async def kick(self, message):
|
|
||||||
if not message.author.server_permissions.kick_members:
|
|
||||||
await self.client.send_message(message.channel, message.author.mention + " I'm sorry, but you do not have permissions to kick guest members.")
|
|
||||||
return
|
|
||||||
serverid = message.server.id
|
|
||||||
content = message.content.strip()
|
|
||||||
if len(content.split()) == 2:
|
|
||||||
await self.client.send_message(message.channel, message.author.mention + " Please provide a username-query (or optionally a discriminator) to kick a guest user.\nExample: `kick Titan#0001`")
|
|
||||||
return
|
|
||||||
content = content.split()
|
|
||||||
username = content[2][:content[2].find("#")] if "#" in content[2] else content[2]
|
|
||||||
discriminator = int(content[2][content[2].find("#") + 1:]) if "#" in content[2] else None
|
|
||||||
reason = await self.database.revoke_unauth_user_by_query(message.server.id, username, discriminator)
|
|
||||||
await self.client.send_message(message.channel, message.author.mention + " " + reason)
|
|
Loading…
Reference in New Issue
Block a user