You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Fox-V3/leaver/leaver.py

78 lines
2.4 KiB

import discord
import os
from datetime import datetime
from .utils.dataIO import dataIO
from .utils import checks
class Leaver:
"""Creates a goodbye message when people leave"""
def __init__(self, bot):
self.bot = bot
self.path = "data/Fox-Cogs/leaver"
self.file_path = "data/Fox-Cogs/leaver/leaver.json"
self.the_data = dataIO.load_json(self.file_path)
def save_data(self):
"""Saves the json"""
dataIO.save_json(self.file_path, self.the_data)
@commands.group(aliases=['setleaver'], pass_context=True, no_pm=True)
@checks.mod_or_permissions(administrator=True)
async def leaverset(self, ctx):
"""Adjust leaver settings"""
server = ctx.message.server
if server.id not in self.the_data:
self.the_data[server.id] = {}
self.save_data()
if ctx.invoked_subcommand is None:
await self.bot.send_cmd_help(ctx)
@leaverset.command(pass_context=True, no_pm=True)
async def channel(self, ctx):
server = ctx.message.server
if 'CHANNEL' not in self.the_data[server.id]:
self.the_data[server.id]['CHANNEL'] = ''
self.the_data[server.id]['CHANNEL'] = ctx.message.channel.id
self.save_data()
await self.bot.say("Channel set to "+ctx.message.channel.name)
async def when_leave(self, member):
server = member.server
if server.id in self.the_data:
await self.bot.send_message(server.get_channel(self.the_data[server.id]['CHANNEL']),
str(member) + "(*" + str(member.nick) +"*) has left the server!")
else:
await self.bot.send_message(server.default_channel.id, str(member) + " (*" + str(member.nick) +"*) has left the server!")
def check_folders():
if not os.path.exists("data/Fox-Cogs"):
print("Creating data/Fox-Cogs folder...")
os.makedirs("data/Fox-Cogs")
if not os.path.exists("data/Fox-Cogs/leaver"):
print("Creating data/Fox-Cogs/leaver folder...")
os.makedirs("data/Fox-Cogs/leaver")
def check_files():
if not dataIO.is_valid_json("data/Fox-Cogs/leaver/leaver.json"):
dataIO.save_json("data/Fox-Cogs/leaver/leaver.json", {})
def setup(bot):
check_folders()
check_files()
q = Leaver(bot)
bot.add_listener(q.when_leave, "on_member_remove")
bot.add_cog(q)