diff options
Diffstat (limited to 'bot.py')
-rwxr-xr-x[-rw-r--r--] | bot.py | 111 |
1 files changed, 75 insertions, 36 deletions
@@ -1,17 +1,28 @@ from discord.ext import commands import discord -import json -import aiohttp import logging +import aiohttp + +import datetime +import json extensions = [ - "cogs.welcome", "cogs.help", "cogs.moderator", "cogs.general", "cogs.utils" + "cogs.utils", + "cogs.admin", + "cogs.src", + "cogs.trans", + "cogs.player", + "cogs.general", + #"cogs.webserver", + #"cogs.twitter", + "cogs.logs" ] + def get_prefix(bot, message): """A callable Prefix for our bot. This could be edited to allow per server prefixes.""" - prefixes = ['>', '$>'] + prefixes = ['steve ', 'STEVE ', '/', '!', '@', 'Steve '] # Check to see if we are outside of a guild. e.g DM's etc. # if not message.guild: @@ -21,35 +32,63 @@ def get_prefix(bot, message): # If we are in a guild, we allow for the user to mention us or use any of the prefixes in our list. return commands.when_mentioned_or(*prefixes)(bot, message) -class ziBot(commands.Bot): - def __init__(self): - super().__init__(command_prefix=get_prefix,case_insensitive=True) - - self.logger = logging.getLogger('discord') - self.session = aiohttp.ClientSession() - - with open('config.json', 'r') as f: - self.config = json.load(f) - config = self.config - - async def on_ready(self): - activity=discord.Activity(name="some test",type=discord.ActivityType.watching) - await self.change_presence(activity=activity) - - for extension in extensions: - self.load_extension(extension) - - self.logger.warning(f'Online: {self.user} (ID: {self.user.id})') - print(f'Online: {self.user} (ID: {self.user.id})') - - async def on_message(self, message): - await self.process_commands(message) - try: - command = message.content.split()[0] - except IndexError: - pass - self.logger.warning('\nMessage from {message.author}: {message.content} \n on {message.channel}') - print('\nMessage from {0.author}: {0.content} \n on {0.channel}'.format(message)) - - def run(self): - super().run(self.config["token"], reconnect=True) + +class BedrockBot(commands.Bot): + def __init__(self): + super().__init__(command_prefix=get_prefix, + case_insensitive=True, + allowed_mentions=discord.AllowedMentions( + everyone=False, users=True, roles=False)) + self.logger = logging.getLogger('discord') + self.messageBlacklist = [] + self.session = aiohttp.ClientSession() + + with open('custom_commands.json', 'r') as f: + self.custom_commands = json.load(f) + + with open('config.json', 'r') as f: + self.config = json.load(f) + config = self.config + + async def on_ready(self): + self.uptime = datetime.datetime.utcnow() + + game = discord.Game("Mining away") + await self.change_presence(activity=game) + + with open('blacklist.json', 'r') as f: + try: + self.blacklist = json.load(f) + except json.decoder.JSONDecodeError: + self.blacklist = [] + + with open('runs_blacklist.json', 'r') as f: + try: + self.runs_blacklist = json.load(f) + except json.decoder.JSONDecodeError: + self.runs_blacklist = {"videos": [], "players": []} + + for extension in extensions: + self.load_extension(extension) + + self.logger.warning(f'Online: {self.user} (ID: {self.user.id})') + + async def on_message(self, message): + + if message.author.bot or message.author.id in self.blacklist: + return + await self.process_commands(message) + + try: + command = message.content.split()[0] + except IndexError: + pass + try: + if command in self.custom_commands: + await message.channel.send(self.custom_commands[command]) + return + except: + return + + def run(self): + super().run(self.config["token"], reconnect=True) |