-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbot.py
152 lines (129 loc) · 4.73 KB
/
bot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
import os
import discord
import pytz
import datetime
from discord.ext import commands
from datetime import timedelta
from dotenv import load_dotenv
from cogs.utils.embed import passembed
from cogs.utils.embed import errorembed
from cogs.utils import logins
extensions = [
'cogs.classes',
'cogs.dungeon',
'cogs.errorhandler',
'cogs.games',
'cogs.general',
'cogs.kits',
'cogs.logs',
'cogs.mod',
'cogs.profile',
'cogs.rank',
'cogs.rewards',
'cogs.roles',
'cogs.shop',
'cogs.tournament',
'cogs.translation',
'cogs.usage',
'cogs.voicechannel'
]
bot = commands.Bot(command_prefix='.')
bot.remove_command('help')
def check_me(ctx):
return ctx.message.author.id == os.getenv("OWNER_ID")
# Shutdown of bot
@bot.command()
@commands.check(check_me)
async def shutdown(ctx):
print('{0} has been shutdown by {1}.'.format(bot.user.name, ctx.message.author))
pembed = passembed(description='**{0} has been shutdown by {1}**'.format(bot.user.name, ctx.message.author))
await ctx.send(embed=pembed)
await bot.logout()
# Load specific cogs
@bot.command()
@commands.check(check_me)
async def load(ctx, cog: str=None):
if cog == None:
eembed = errorembed(description='**Please specify an extension to load.**')
await ctx.send(embed=eembed)
else:
try:
bot.load_extension('cogs.' + cog.lower())
pembed = passembed(description='**Successfully loaded extension {0}.**'.format(cog))
await ctx.send(embed=pembed)
except Exception as e:
eembed = errorembed(description='**There was an error loading extension {0}.**'.format(cog))
await ctx.send(embed=eembed)
print('Failed to load extension {0} due to {1}'.format(cog, e))
@load.error
async def load_error(ctx, error):
if isinstance(error, commands.CheckFailure):
return
# Unload specific cogs
@bot.command()
@commands.check(check_me)
async def unload(ctx, cog: str=None):
if cog == None:
eembed = errorembed(description='**Please specify an extension to unload.**')
await ctx.send(embed=eembed)
else:
try:
bot.unload_extension('cogs.' + cog.lower())
pembed = passembed(description='**Successfully unloaded extension {0}.**'.format(cog))
await ctx.send(embed=pembed)
except Exception as e:
eembed = errorembed(description='**There was an error unloading extension {0}.**'.format(cog))
await ctx.send(embed=eembed)
print('Failed to unload extension {0} due to {1}'.format(cog, e))
@unload.error
async def unload_error(ctx, error):
if isinstance(error, commands.CheckFailure):
return
# Reload specific cogs
@bot.command()
@commands.check(check_me)
async def reload(ctx, cog: str=None):
if cog == None:
eembed = errorembed(description='**Please specify an extension to reload.**')
await ctx.send(embed=eembed)
else:
try:
bot.unload_extension('cogs.' + cog.lower())
bot.load_extension('cogs.' + cog.lower())
pembed = passembed(description='**Successfully reloaded extension {0}.**'.format(cog))
await ctx.send(embed=pembed)
except Exception as e:
eembed = errorembed(description='**There was an error reloading extension {0}.**'.format(cog))
await ctx.send(embed=eembed)
print('Failed to reload extension {0} due to {1}'.format(cog, e))
@reload.error
async def reload_error(ctx, error):
if isinstance(error, commands.CheckFailure):
return
# Leaves Server
@bot.command()
@commands.check(check_me)
async def leaveserver(ctx, server: int):
servertoleave = bot.get_guild(server)
await servertoleave.leave()
pembed = passembed(description='**{0} has successfully left the server.**'.format(bot.name))
await ctx.send(embed=pembed)
@bot.event
async def on_ready():
await bot.change_presence(activity=discord.Activity(name='FortniteAsia', type=3))
time_now = datetime.datetime.now(tz=pytz.timezone('Asia/Singapore'))
login_time = time_now.strftime('%d-%m-%Y %I:%M %p')
print("-----------------")
print('Logged in as {0} at {1}'.format(bot.user.name, login_time))
@bot.check
async def globally_block_dms(ctx):
return ctx.guild is not None
if __name__ == "__main__":
for extension in extensions:
try:
bot.load_extension(extension)
print('Loaded {0}'.format(extension))
except Exception as e:
raise Exception
print(e)
bot.run(os.getenv("DISCORD_BOT_TOKEN"))