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:
|
||||
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="Error Message", value=error, inline=False)
|
||||
e.add_field(name="Error", value=f"{type(error).__name__} ({error})", inline=False)
|
||||
await user.send(embed=e)
|
||||
|
||||
#Commands
|
||||
|
@ -1,4 +1,4 @@
|
||||
import discord, random
|
||||
import discord, random, typing
|
||||
from discord.ext import commands
|
||||
from datetime import datetime
|
||||
|
||||
@ -12,15 +12,20 @@ class Server(commands.Cog):
|
||||
}
|
||||
|
||||
def serverCfgCheck(self, id : int, key : str, default):
|
||||
change = False
|
||||
if str(id) not in self.bot.serverCfg:
|
||||
self.bot.serverCfg[str(id)] = {}
|
||||
change = True
|
||||
if "server" not in self.bot.serverCfg[str(id)]:
|
||||
self.bot.serverCfg[str(id)]["server"] = {}
|
||||
change = True
|
||||
if key not in self.bot.serverCfg[str(id)]["server"]:
|
||||
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:"
|
||||
|
||||
async def toggleEvent(self, ctx, type: str):
|
||||
@ -332,7 +337,69 @@ class Server(commands.Cog):
|
||||
e.add_field(name="[...]", value=msg[1024:], inline=False)
|
||||
chan = self.bot.get_channel(self.bot.serverCfg[str(ctx.guild.id)]["server"]["announcementChannel"])
|
||||
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
|
||||
def setup(bot):
|
||||
bot.add_cog(Server(bot))
|
Loading…
x
Reference in New Issue
Block a user