added info and avatar commands in server, modified error handling in core
This commit is contained in:
parent
80d4e0e7f0
commit
e7594dc7d3
@ -50,7 +50,7 @@ class Core(commands.Cog):
|
|||||||
if user is not None:
|
if user is not None:
|
||||||
e.add_field(name="Source", value=ctx.message.channel, inline=False)
|
e.add_field(name="Source", value=ctx.message.channel, inline=False)
|
||||||
e.add_field(name="Trigger", value=ctx.message.content, inline=False)
|
e.add_field(name="Trigger", value=ctx.message.content, inline=False)
|
||||||
e.add_field(name="Error Message", value=error, inline=False)
|
e.add_field(name="Error", value=f"{type(error).__name__} ({error})", inline=False)
|
||||||
await user.send(embed=e)
|
await user.send(embed=e)
|
||||||
|
|
||||||
#Commands
|
#Commands
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import discord, random
|
import discord, random, typing
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
@ -12,15 +12,20 @@ class Server(commands.Cog):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def serverCfgCheck(self, id : int, key : str, default):
|
def serverCfgCheck(self, id : int, key : str, default):
|
||||||
|
change = False
|
||||||
if str(id) not in self.bot.serverCfg:
|
if str(id) not in self.bot.serverCfg:
|
||||||
self.bot.serverCfg[str(id)] = {}
|
self.bot.serverCfg[str(id)] = {}
|
||||||
|
change = True
|
||||||
if "server" not in self.bot.serverCfg[str(id)]:
|
if "server" not in self.bot.serverCfg[str(id)]:
|
||||||
self.bot.serverCfg[str(id)]["server"] = {}
|
self.bot.serverCfg[str(id)]["server"] = {}
|
||||||
|
change = True
|
||||||
if key not in self.bot.serverCfg[str(id)]["server"]:
|
if key not in self.bot.serverCfg[str(id)]["server"]:
|
||||||
self.bot.serverCfg[str(id)]["server"][key] = default
|
self.bot.serverCfg[str(id)]["server"][key] = default
|
||||||
self.bot.writeJSON("server.json", self.bot.serverCfg)
|
change = True
|
||||||
|
if change:
|
||||||
|
self.bot.writeJSON("server.json", self.bot.serverCfg)
|
||||||
|
|
||||||
def getCheckOrX(self, b: bool = False):
|
def getCheckOrX(self, b: bool):
|
||||||
return ":white_check_mark:" if b else ":x:"
|
return ":white_check_mark:" if b else ":x:"
|
||||||
|
|
||||||
async def toggleEvent(self, ctx, type: str):
|
async def toggleEvent(self, ctx, type: str):
|
||||||
@ -333,6 +338,68 @@ class Server(commands.Cog):
|
|||||||
chan = self.bot.get_channel(self.bot.serverCfg[str(ctx.guild.id)]["server"]["announcementChannel"])
|
chan = self.bot.get_channel(self.bot.serverCfg[str(ctx.guild.id)]["server"]["announcementChannel"])
|
||||||
await chan.send(embed=e)
|
await chan.send(embed=e)
|
||||||
|
|
||||||
|
def getChannelMention(self, id: str, s: str):
|
||||||
|
channelID = self.bot.serverCfg[id]["server"][s]
|
||||||
|
return "Not set" if channelID == 0 else self.bot.get_channel(channelID).mention
|
||||||
|
|
||||||
|
@commands.command()
|
||||||
|
@commands.guild_only()
|
||||||
|
async def serverSettings(self, ctx):
|
||||||
|
e = discord.Embed(title="<< Server Settings >>", color=discord.Color.blue())
|
||||||
|
e.set_thumbnail(url=ctx.guild.icon_url)
|
||||||
|
#print(ctx.guild.icon_url)
|
||||||
|
id = str(ctx.guild.id)
|
||||||
|
d = self.bot.serverCfg[id]["server"]
|
||||||
|
|
||||||
|
s = ""
|
||||||
|
channel = ["modChannel", "messageEventChannel", "memberEventChannel", "announcementChannel"]
|
||||||
|
for c in channel:
|
||||||
|
self.serverCfgCheck(ctx.guild.id, c, 0)
|
||||||
|
s = "\n".join([s, f"`{c}` : {self.getChannelMention(id, c)}"])
|
||||||
|
e.add_field(name="Channel", value=s, inline=False)
|
||||||
|
|
||||||
|
s = ""
|
||||||
|
flags = ["logMessageEvent", "logMemberEvent"]
|
||||||
|
for f in flags:
|
||||||
|
self.serverCfgCheck(ctx.guild.id, f, False)
|
||||||
|
s = "\n".join([s, f"`{f}` : {self.getCheckOrX(d[f])}"])
|
||||||
|
e.add_field(name="Event Flags", value=s, inline=False)
|
||||||
|
|
||||||
|
s = ""
|
||||||
|
other = {"# of `announcements`": ["announcements", 0]}
|
||||||
|
for o in other:
|
||||||
|
self.serverCfgCheck(ctx.guild.id, other[o][0], other[o][1])
|
||||||
|
s = "\n".join([s, f"{o} : {d[other[o][0]]}"])
|
||||||
|
e.add_field(name="Other", value=s, inline=False)
|
||||||
|
|
||||||
|
e.add_field(name="`joinMessage`", value=d["joinMessage"] if d["joinMessage"] != "" else "Not set", inline=False)
|
||||||
|
await ctx.send(embed=e)
|
||||||
|
|
||||||
|
@commands.command()
|
||||||
|
@commands.guild_only()
|
||||||
|
async def serverInfo(self, ctx):
|
||||||
|
e = discord.Embed(title="<< Server Settings >>", color=discord.Color.blue())
|
||||||
|
|
||||||
|
@commands.command()
|
||||||
|
@commands.guild_only()
|
||||||
|
async def serverIcon(self, ctx):
|
||||||
|
e = discord.Embed(title="<< Server Icon >>", color=discord.Color.blue(), description=ctx.author.mention)
|
||||||
|
e.set_author(name=f"{ctx.author.display_name} ({ctx.author})", icon_url=ctx.author.avatar_url)
|
||||||
|
e.set_image(url=ctx.guild.icon_url)
|
||||||
|
await ctx.send(embed=e)
|
||||||
|
|
||||||
|
@commands.command()
|
||||||
|
@commands.guild_only()
|
||||||
|
async def avatar(self, ctx, member:typing.Union[discord.Member, str] = None):
|
||||||
|
e = discord.Embed(title="<< Member Avatar >>", description=ctx.author.mention)
|
||||||
|
e.set_author(name=f"{ctx.author.display_name} ({ctx.author})", icon_url=ctx.author.avatar_url)
|
||||||
|
if member == None or not isinstance(member, discord.Member):
|
||||||
|
e.color=discord.Color.red()
|
||||||
|
e.add_field(name="Member not found", value="The Member you specified does not exist on this server.")
|
||||||
|
return await ctx.send(embed=e)
|
||||||
|
e.color=discord.Color.blue()
|
||||||
|
e.set_image(url=member.avatar_url)
|
||||||
|
await ctx.send(embed=e)
|
||||||
#Setup
|
#Setup
|
||||||
def setup(bot):
|
def setup(bot):
|
||||||
bot.add_cog(Server(bot))
|
bot.add_cog(Server(bot))
|
Loading…
x
Reference in New Issue
Block a user