Added custom prefix & info
This commit is contained in:
18
cogs/bump.py
18
cogs/bump.py
@@ -1,6 +1,7 @@
|
|||||||
import discord, io, traceback, json, os
|
import discord, io, traceback, json, os, asyncio
|
||||||
|
|
||||||
from colorama import Fore, Style, init
|
from colorama import Fore, Style, init
|
||||||
|
from dateparser import parse
|
||||||
|
|
||||||
init(autoreset=True)
|
init(autoreset=True)
|
||||||
|
|
||||||
@@ -23,10 +24,11 @@ class Bumps(commands.Cog):
|
|||||||
async def bump(self, ctx):
|
async def bump(self, ctx):
|
||||||
server = Servers(ctx.guild.id)
|
server = Servers(ctx.guild.id)
|
||||||
guild = ctx.guild
|
guild = ctx.guild
|
||||||
|
prefix = Servers(guild.id).getPrefix() if Servers(guild.id).hasPrefix else self.config["prefix"]
|
||||||
|
|
||||||
if not server.get():
|
if not server.get():
|
||||||
ctx.command.reset_cooldown(ctx)
|
ctx.command.reset_cooldown(ctx)
|
||||||
return await ctx.send(embed=Embeds(f"You must setup this server first! Use `{self.config['prefix']}setup` to do so!"))
|
return await ctx.send(embed=Embeds(f"You must setup this server first! Use `{prefix}setup` to do so!").error())
|
||||||
|
|
||||||
servers = Servers().get_all()
|
servers = Servers().get_all()
|
||||||
|
|
||||||
@@ -89,12 +91,22 @@ class Bumps(commands.Cog):
|
|||||||
|
|
||||||
#os.remove("cache_data.json")
|
#os.remove("cache_data.json")
|
||||||
|
|
||||||
return await ctx.send(embed=discord.Embed(
|
done_message = await ctx.send(embed=discord.Embed(
|
||||||
title="⏫ Server Bumped",
|
title="⏫ Server Bumped",
|
||||||
description=f"Your server was bumped to `{success+fail}` servers!\n✅ There were `{success}` successful bumps!\n❎ There were `{fail}` failed ones, they got booted from the Database!",
|
description=f"Your server was bumped to `{success+fail}` servers!\n✅ There were `{success}` successful bumps!\n❎ There were `{fail}` failed ones, they got booted from the Database!",
|
||||||
color=discord.Color.green()
|
color=discord.Color.green()
|
||||||
)
|
)
|
||||||
.set_footer(text=f"Powered by • {self.config['bot_name']}"))
|
.set_footer(text=f"Powered by • {self.config['bot_name']}"))
|
||||||
|
|
||||||
|
if settings["show_motd"]:
|
||||||
|
await asyncio.sleep(settings["show_motd_wait"])
|
||||||
|
return await done_message.edit(embed=discord.Embed(
|
||||||
|
title="🗞️ Message Of The Day 🗞️",
|
||||||
|
description=Data("motd").read(),
|
||||||
|
color=discord.Color.green()
|
||||||
|
))
|
||||||
|
else:
|
||||||
|
return
|
||||||
|
|
||||||
def setup(bot):
|
def setup(bot):
|
||||||
bot.add_cog(Bumps(bot))
|
bot.add_cog(Bumps(bot))
|
||||||
38
cogs/info.py
Normal file
38
cogs/info.py
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import discord
|
||||||
|
|
||||||
|
from core.database import Servers
|
||||||
|
from core.files import Data
|
||||||
|
|
||||||
|
commands = discord.ext.commands
|
||||||
|
|
||||||
|
class Info(commands.Cog):
|
||||||
|
def __init__(self, bot):
|
||||||
|
self.bot = bot
|
||||||
|
self.config = Data("config").yaml_read()
|
||||||
|
|
||||||
|
@commands.guild_only()
|
||||||
|
@commands.command(aliases=['about'])
|
||||||
|
async def info(self, ctx):
|
||||||
|
return await ctx.send(embed=discord.Embed(
|
||||||
|
title=f"{self.config['bot_name']} | Information",
|
||||||
|
color=discord.Color.blurple()
|
||||||
|
)
|
||||||
|
.add_field(name="Version", value=self.config['version'])
|
||||||
|
.add_field(name="Library", value=f"Discord.py v{discord.__version__}")
|
||||||
|
.add_field(name="Latency", value=f"{round(self.bot.latency*1000)}ms")
|
||||||
|
.add_field(name="Servers", value=len(self.bot.guilds))
|
||||||
|
.add_field(name="Active Servers", value=len([i for i in Servers().get_all()]))
|
||||||
|
.add_field(name="Open Source", value="[View](https://github.com/Nemika-Haj/BytesBump)") # DO NOT REMOVE
|
||||||
|
.set_footer(text="Made by • " + ', '.join([str((await self.bot.fetch_user(i))) for i in self.config['managers']])))
|
||||||
|
|
||||||
|
@commands.guild_only()
|
||||||
|
@commands.command(aliases=['support'])
|
||||||
|
async def help(self, ctx):
|
||||||
|
return await ctx.send(embed=discord.Embed(
|
||||||
|
title=f"{self.config['bot_name']} | Help",
|
||||||
|
description=Data("help").read(),
|
||||||
|
color=discord.Color.blurple()
|
||||||
|
))
|
||||||
|
|
||||||
|
def setup(bot):
|
||||||
|
bot.add_cog(Info(bot))
|
||||||
37
cogs/prefix.py
Normal file
37
cogs/prefix.py
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
import discord
|
||||||
|
|
||||||
|
from core.database import Servers
|
||||||
|
from core.files import Data
|
||||||
|
from core import embeds
|
||||||
|
|
||||||
|
commands = discord.ext.commands
|
||||||
|
|
||||||
|
def getPrefix(bot, message):
|
||||||
|
prefix = [Data('config').yaml_read()['prefix']]
|
||||||
|
if message.guild:
|
||||||
|
server = Servers(message.guild.id)
|
||||||
|
prefix = [server.getPrefix()]
|
||||||
|
return commands.when_mentioned_or(*prefix)(bot, message)
|
||||||
|
|
||||||
|
class SetPrefix(commands.Cog):
|
||||||
|
def __init__(self, bot):
|
||||||
|
self.bot = bot
|
||||||
|
|
||||||
|
@commands.guild_only()
|
||||||
|
@commands.has_permissions(manage_guild=True)
|
||||||
|
@commands.command()
|
||||||
|
async def setprefix(self, ctx, *, prefix=None):
|
||||||
|
server = Servers(ctx.guild.id)
|
||||||
|
if not prefix or prefix == "p!":
|
||||||
|
if server.hasPrefix: server.deletePrefix
|
||||||
|
return await ctx.send(embed=embeds.Embeds(f"The prefix was reset to default! `({Data('config').yaml_read()['prefix']})`").success())
|
||||||
|
server.setPrefix(prefix)
|
||||||
|
return await ctx.send(embed=embeds.Embeds(f"The prefix was set to `{prefix}`!").success())
|
||||||
|
|
||||||
|
@commands.Cog.listener()
|
||||||
|
async def on_guild_remove(self, guild):
|
||||||
|
server = Servers(guild.id)
|
||||||
|
if server.hasPrefix: server.deletePrefix
|
||||||
|
|
||||||
|
def setup(bot):
|
||||||
|
bot.add_cog(SetPrefix(bot))
|
||||||
@@ -13,15 +13,20 @@ class BumpSetup(commands.Cog):
|
|||||||
global setting_up
|
global setting_up
|
||||||
setting_up = []
|
setting_up = []
|
||||||
|
|
||||||
|
@commands.Cog.listener('on_guild_remove')
|
||||||
|
async def remove_guild(self, guild):
|
||||||
|
Servers(guild.id).delete()
|
||||||
|
|
||||||
@commands.guild_only()
|
@commands.guild_only()
|
||||||
@commands.has_permissions(manage_guild=True)
|
@commands.has_permissions(manage_guild=True)
|
||||||
@commands.check(lambda ctx: ctx.guild not in setting_up)
|
@commands.check(lambda ctx: ctx.guild not in setting_up)
|
||||||
@commands.command()
|
@commands.command()
|
||||||
async def setup(self, ctx):
|
async def setup(self, ctx):
|
||||||
guild = ctx.guild
|
guild = ctx.guild
|
||||||
|
prefix = Servers(guild.id).getPrefix() if Servers(guild.id).hasPrefix else self.config["prefix"]
|
||||||
|
|
||||||
if Servers(guild.id).get():
|
if Servers(guild.id).get():
|
||||||
return await ctx.send(embed=Embeds(f"This server was already setup! Use `{self.config['prefix']}delete` to initialize another setup!").error())
|
return await ctx.send(embed=Embeds(f"This server was already setup! Use `{prefix}delete` to initialize another setup!").error())
|
||||||
|
|
||||||
embed = discord.Embed(
|
embed = discord.Embed(
|
||||||
title="🔄 Setting Up...",
|
title="🔄 Setting Up...",
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ class Servers:
|
|||||||
def __init__(self, server=None):
|
def __init__(self, server=None):
|
||||||
self.server = server
|
self.server = server
|
||||||
self.col = client["BytesBump"]["servers"]
|
self.col = client["BytesBump"]["servers"]
|
||||||
|
self.prefixes = client["BytesBump"]["prefixes"]
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
return self.col.find_one({"_id":self.server})
|
return self.col.find_one({"_id":self.server})
|
||||||
@@ -43,4 +44,26 @@ class Servers:
|
|||||||
self.col.delete_one({'_id': self.server})
|
self.col.delete_one({'_id': self.server})
|
||||||
else:
|
else:
|
||||||
self.col.delete_one(checks)
|
self.col.delete_one(checks)
|
||||||
|
|
||||||
|
"""
|
||||||
|
Prefix management
|
||||||
|
"""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def hasPrefix(self):
|
||||||
|
r = self.prefixes.find_one({'_id':self.server})
|
||||||
|
if r: return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
@property
|
||||||
|
def deletePrefix(self):
|
||||||
|
self.prefixes.delete_one({'_id':self.server})
|
||||||
|
|
||||||
|
def setPrefix(self, prefix):
|
||||||
|
if self.hasPrefix: self.prefixes.update_one({'_id':self.server}, {'$set':{'prefix':prefix}})
|
||||||
|
else: self.prefixes.insert_one({'_id':self.server, 'prefix':prefix})
|
||||||
|
|
||||||
|
def getPrefix(self):
|
||||||
|
prefix = self.prefixes.find_one({'_id':self.server})
|
||||||
|
if prefix: return prefix["prefix"]
|
||||||
|
else: return Data("config").yaml_read()["prefix"]
|
||||||
1
data/help.txt
Normal file
1
data/help.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
This text will show up on the `help` command!
|
||||||
2
data/motd.txt
Normal file
2
data/motd.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
This is a Message of the Day!
|
||||||
|
This will appear after the bump message IF "show_motd" is set to true in settings.json!
|
||||||
@@ -1,3 +1,7 @@
|
|||||||
{
|
{
|
||||||
"cooldown": 30
|
"cooldown": 3600,
|
||||||
|
"show_motd": false,
|
||||||
|
"show_motd_wait": 10,
|
||||||
|
"enable_serverlist": false,
|
||||||
|
"serverlist_url": "https://localhost:5000/"
|
||||||
}
|
}
|
||||||
4
main.py
4
main.py
@@ -7,6 +7,8 @@ from core import checks
|
|||||||
|
|
||||||
from colorama import init, Style, Fore
|
from colorama import init, Style, Fore
|
||||||
|
|
||||||
|
from cogs.prefix import getPrefix
|
||||||
|
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
|
|
||||||
init(autoreset=True)
|
init(autoreset=True)
|
||||||
@@ -15,7 +17,7 @@ config = Data("config").yaml_read()
|
|||||||
|
|
||||||
intents = discord.Intents.default(); intents.members = True
|
intents = discord.Intents.default(); intents.members = True
|
||||||
|
|
||||||
bot = commands.Bot(command_prefix=config["prefix"], case_insensitive=True, help_command=None, intents=intents)
|
bot = commands.Bot(command_prefix=getPrefix, case_insensitive=True, help_command=None, intents=intents)
|
||||||
|
|
||||||
@bot.event
|
@bot.event
|
||||||
async def on_ready():
|
async def on_ready():
|
||||||
|
|||||||
Reference in New Issue
Block a user