diff --git a/Bot.py b/Bot.py index e1a4d8f..a8254b7 100644 --- a/Bot.py +++ b/Bot.py @@ -1,5 +1,5 @@ """ Beardless Bot """ -__version__ = "Full Release 1.6.10" +__version__ = "Full Release 1.6.11" import asyncio from random import choice, randint diff --git a/README.MD b/README.MD index 44303fc..90f29aa 100644 --- a/README.MD +++ b/README.MD @@ -1,6 +1,6 @@ # Beardless Bot -### Full Release 1.6.10 +### Full Release 1.6.11 A Discord bot supporting gambling (coin flips and blackjack), a currency system, fun facts, and more. diff --git a/brawl.py b/brawl.py index 829515d..ee152b1 100644 --- a/brawl.py +++ b/brawl.py @@ -334,7 +334,8 @@ def getStats(target: discord.Member, brawlKey: str) -> discord.Embed: ) if all((topUsed, topWinrate, topDPS, topTTK)): emb.add_field( - name="Legend Stats (20 game min)", value=( + name="Legend Stats (20 game min)", + value=( f"**Most Played:** {topUsed[0]}\n**Highest Winrate:" f"** {topWinrate[0]}, {topWinrate[1]}%\n**Highest Avg" f" DPS:** {topDPS[0]}, {topDPS[1]}\n**Shortest Avg TTK:" @@ -344,7 +345,7 @@ def getStats(target: discord.Member, brawlKey: str) -> discord.Embed: if "clan" in r: emb.add_field( name="Clan", - value=f"{r['clan']['clan_name']}\nClan ID: {r['clan']['clan_id']}" + value=f"{r['clan']['clan_name']}\nClan ID {r['clan']['clan_id']}" ) return emb @@ -390,6 +391,13 @@ def getClan(target: discord.Member, brawlKey: str) -> discord.Embed: str(datetime.fromtimestamp(member["join_date"]))[:-9] ) ) + emb.add_field( + name=member["name"], + value=( + f"{member['rank']} ({member['xp']} xp)\nJoined " + + str(datetime.fromtimestamp(member["join_date"]))[:-9] + ) + ) return emb diff --git a/logs.py b/logs.py index 5abac1c..8322de3 100644 --- a/logs.py +++ b/logs.py @@ -18,6 +18,7 @@ def logDeleteMsg(msg: discord.Message) -> discord.Embed: f"**Deleted message sent by {msg.author.mention} in " f"**{msg.channel.mention}\n{contCheck(msg)}", 0xFF0000, + True ).set_author(name=str(msg.author), icon_url=msg.author.avatar_url) @@ -26,6 +27,7 @@ def logPurge(msg: discord.Message, msgList: list) -> discord.Embed: "", f"Purged {len(msgList) - 1} messages in {msg.channel.mention}.", 0xFF0000, + True ).set_author(name="Purge!", icon_url=prof) @@ -38,6 +40,7 @@ def logEditMsg( f"Messaged edited by {before.author.mention}" f" in {before.channel.mention}.", 0xFFFF00, + True ) .set_author( name=str(before.author), @@ -47,7 +50,7 @@ def logEditMsg( .add_field( name="After:", value=f"{after.content}\n[Jump to Message]({after.jump_url})", - inline=False, + inline=False ) ) @@ -59,28 +62,29 @@ def logClearReacts(msg: discord.Message, reactions: list) -> discord.Embed: f"Reactions cleared from message sent by {msg.author.mention}" f" in {msg.channel.mention}.", 0xFF0000, + True ) .set_author(name=str(msg.author), icon_url=msg.author.avatar_url) .add_field( name="Message content:", - value=contCheck(msg) + f"\n[Jump to Message]({msg.jump_url})", + value=contCheck(msg) + f"\n[Jump to Message]({msg.jump_url})" ) .add_field( name="Reactions:", - value=", ".join(str(reaction) for reaction in reactions), + value=", ".join(str(reaction) for reaction in reactions) ) ) def logDeleteChannel(channel: discord.TextChannel) -> discord.Embed: return bbEmbed( - "", f'Channel "{channel.name}" deleted.', 0xFF0000 + "", f'Channel "{channel.name}" deleted.', 0xFF0000, True ).set_author(name="Channel deleted", icon_url=prof) def logCreateChannel(channel: discord.TextChannel) -> discord.Embed: return bbEmbed( - "", f'Channel "{channel.name}" created.', 0x00FF00 + "", f'Channel "{channel.name}" created.', 0x00FF00, True ).set_author(name="Channel created", icon_url=prof) @@ -90,6 +94,7 @@ def logMemberJoin(member: discord.Member) -> discord.Embed: f"Member {member.mention} joined\nAccount registered" f" on {truncTime(member)}\nID: {member.id}", 0x0000FF, + True ).set_author( name=f"{member} joined the server", icon_url=member.avatar_url ) @@ -97,12 +102,12 @@ def logMemberJoin(member: discord.Member) -> discord.Embed: def logMemberRemove(member: discord.Member) -> discord.Embed: emb = bbEmbed( - "", f"Member {member.mention} left\nID: {member.id}", 0xFF0000 + "", f"Member {member.mention} left\nID: {member.id}", 0xFF0000, True ).set_author(name=f"{member} left the server", icon_url=member.avatar_url) if len(member.roles) > 1: emb.add_field( name="Roles:", - value=", ".join(role.mention for role in member.roles[:0:-1]), + value=", ".join(role.mention for role in member.roles[:0:-1]) ) return emb @@ -111,7 +116,7 @@ def logMemberNickChange( before: discord.Member, after: discord.Member ) -> discord.Embed: return ( - bbEmbed("", f"Nickname of {after.mention} changed.", 0xFFFF00) + bbEmbed("", f"Nickname of {after.mention} changed.", 0xFFFF00, True) .set_author(name=str(after), icon_url=after.avatar_url) .add_field(name="Before:", value=before.nick, inline=False) .add_field(name="After:", value=after.nick, inline=False) @@ -132,13 +137,18 @@ def logMemberRolesChange( newRole = role break return bbEmbed( - "", f"Role {newRole.mention} {verb} {after.mention}.", color + "", f"Role {newRole.mention} {verb} {after.mention}.", color, True ).set_author(name=str(after), icon_url=after.avatar_url) def logBan(member: discord.Member) -> discord.Embed: return ( - bbEmbed("", f"Member {member.mention} banned\n{member.name}", 0xFF0000) + bbEmbed( + "", + f"Member {member.mention} banned\n{member.name}", + 0xFF0000, + True + ) .set_author(name="Member banned", icon_url=member.avatar_url) .set_thumbnail(url=member.avatar_url) ) @@ -147,7 +157,10 @@ def logBan(member: discord.Member) -> discord.Embed: def logUnban(member: discord.Member) -> discord.Embed: return ( bbEmbed( - "", f"Member {member.mention} unbanned\n{member.name}", 0x00FF00 + "", + f"Member {member.mention} unbanned\n{member.name}", + 0x00FF00, + True ) .set_author(name="Member unbanned", icon_url=member.avatar_url) .set_thumbnail(url=member.avatar_url) @@ -166,10 +179,11 @@ def logMute( "Beardless Bot Mute", f"Muted {member.mention}{mid} in {message.channel.mention}.", 0xFF0000, + True ).set_author(name=str(message.author), icon_url=message.author.avatar_url) def logUnmute(member: discord.Member, author: discord.Member) -> discord.Embed: return bbEmbed( - "Beardless Bot Mute", f"Unmuted {member.mention}.", 0x00FF00 + "Beardless Bot Mute", f"Unmuted {member.mention}.", 0x00FF00, True ).set_author(name=str(author), icon_url=author.avatar_url) diff --git a/misc.py b/misc.py index 51e383a..fa058b3 100644 --- a/misc.py +++ b/misc.py @@ -1,5 +1,6 @@ # Beardless Bot miscellaneous methods +from datetime import datetime from random import choice, randint import discord @@ -65,9 +66,17 @@ def truncTime(member): # Wrapper for discord.Embed.init() that defaults to # commonly-used values and is easier to call def bbEmbed( - name: str = "", value: str = "", col: int = 0xFFF994 + name: str = "", + value: str = "", + col: int = 0xFFF994, + showTime: bool = False ) -> discord.Embed: - return discord.Embed(title=name, description=value, color=col) + return discord.Embed( + title=name, + description=value, + color=col, + timestamp=datetime.utcnow() if showTime else discord.Embed.Empty + ) # User lookup helper method. Finds user based on diff --git a/resources/claimedProfs.json b/resources/claimedProfs.json index bd94dc9..fe4c7f5 100644 --- a/resources/claimedProfs.json +++ b/resources/claimedProfs.json @@ -54,7 +54,7 @@ "519262320959029274": 23313620, "552810364195176448": 37286308, "262130879873286144": 24223989, - "765524006551027712": 57887728, + "765524006551027712": 47621974, "428351415409180682": 33259034, "195961631157649408": 8824982, "491362913395671071": 36554158,