StealEmoji properly handle Emojis not having the __dict__
attribute
Start fix for emoiji vs animated max error
This commit is contained in:
parent
da6bbccd3f
commit
8a3ffa4516
@ -15,6 +15,19 @@ async def fetch_img(session, url):
|
|||||||
return await response.read()
|
return await response.read()
|
||||||
|
|
||||||
|
|
||||||
|
async def check_guild(guild, emoji):
|
||||||
|
if len(guild.emojis) >= 100:
|
||||||
|
return False
|
||||||
|
|
||||||
|
if len(guild.emojis) < 50:
|
||||||
|
return True
|
||||||
|
|
||||||
|
if emoji.animated:
|
||||||
|
return sum(e.animated for e in guild.emojis) < 50
|
||||||
|
else:
|
||||||
|
return sum(not e.animated for e in guild.emojis) < 50
|
||||||
|
|
||||||
|
|
||||||
class StealEmoji(Cog):
|
class StealEmoji(Cog):
|
||||||
"""
|
"""
|
||||||
This cog steals emojis and creates servers for them
|
This cog steals emojis and creates servers for them
|
||||||
@ -23,11 +36,11 @@ class StealEmoji(Cog):
|
|||||||
default_stolemoji = {
|
default_stolemoji = {
|
||||||
"guildbank": None,
|
"guildbank": None,
|
||||||
"name": None,
|
"name": None,
|
||||||
"require_colons": False,
|
"require_colons": None,
|
||||||
"managed": False,
|
"managed": None,
|
||||||
"guild_id": None,
|
"guild_id": None,
|
||||||
"url": None,
|
"url": None,
|
||||||
"animated": False,
|
"animated": None,
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, red: Red):
|
def __init__(self, red: Red):
|
||||||
@ -55,10 +68,6 @@ class StealEmoji(Cog):
|
|||||||
@stealemoji.command(name="bank")
|
@stealemoji.command(name="bank")
|
||||||
async def se_bank(self, ctx):
|
async def se_bank(self, ctx):
|
||||||
"""Add current server as emoji bank"""
|
"""Add current server as emoji bank"""
|
||||||
await ctx.send(
|
|
||||||
"This will upload custom emojis to this server\n"
|
|
||||||
"Are you sure you want to make the current server an emoji bank? (y//n)"
|
|
||||||
)
|
|
||||||
|
|
||||||
def check(m):
|
def check(m):
|
||||||
return (
|
return (
|
||||||
@ -67,16 +76,35 @@ class StealEmoji(Cog):
|
|||||||
and m.author == ctx.author
|
and m.author == ctx.author
|
||||||
)
|
)
|
||||||
|
|
||||||
|
already_a_guildbank = ctx.guild.id in (await self.config.guildbanks())
|
||||||
|
|
||||||
|
if already_a_guildbank:
|
||||||
|
await ctx.send(
|
||||||
|
"This is already an emoji bank\n"
|
||||||
|
"Are you sure you want to remove the current server from the emoji bank list? (y/n)"
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
await ctx.send(
|
||||||
|
"This will upload custom emojis to this server\n"
|
||||||
|
"Are you sure you want to make the current server an emoji bank? (y/n)"
|
||||||
|
)
|
||||||
|
|
||||||
msg = await self.bot.wait_for("message", check=check)
|
msg = await self.bot.wait_for("message", check=check)
|
||||||
|
|
||||||
if msg.content in ["N", "NO"]:
|
if msg.content.upper() in ["N", "NO"]:
|
||||||
await ctx.send("Cancelled")
|
await ctx.send("Cancelled")
|
||||||
return
|
return
|
||||||
|
|
||||||
async with self.config.guildbanks() as guildbanks:
|
async with self.config.guildbanks() as guildbanks:
|
||||||
|
if already_a_guildbank:
|
||||||
|
guildbanks.remove(ctx.guild.id)
|
||||||
|
else:
|
||||||
guildbanks.append(ctx.guild.id)
|
guildbanks.append(ctx.guild.id)
|
||||||
|
|
||||||
await ctx.send("This server has been added as an emoji bank")
|
if already_a_guildbank:
|
||||||
|
await ctx.send("This server has been removed from being an emoji bank")
|
||||||
|
else:
|
||||||
|
await ctx.send("This server has been added to be an emoji bank")
|
||||||
|
|
||||||
async def on_reaction_add(self, reaction: discord.Reaction, user: discord.User):
|
async def on_reaction_add(self, reaction: discord.Reaction, user: discord.User):
|
||||||
"""Event handler for reaction watching"""
|
"""Event handler for reaction watching"""
|
||||||
@ -88,7 +116,7 @@ class StealEmoji(Cog):
|
|||||||
print("Collecting is off")
|
print("Collecting is off")
|
||||||
return
|
return
|
||||||
|
|
||||||
emoji = reaction.emoji
|
emoji: discord.Emoji = reaction.emoji
|
||||||
if emoji in self.bot.emojis:
|
if emoji in self.bot.emojis:
|
||||||
print("Emoji already in bot.emojis")
|
print("Emoji already in bot.emojis")
|
||||||
return
|
return
|
||||||
@ -99,8 +127,9 @@ class StealEmoji(Cog):
|
|||||||
guildbank = None
|
guildbank = None
|
||||||
banklist = await self.config.guildbanks()
|
banklist = await self.config.guildbanks()
|
||||||
for guild_id in banklist:
|
for guild_id in banklist:
|
||||||
guild = self.bot.get_guild(guild_id)
|
guild: discord.Guild = self.bot.get_guild(guild_id)
|
||||||
if len(guild.emojis) < 50:
|
# if len(guild.emojis) < 50:
|
||||||
|
if await check_guild(guild, emoji):
|
||||||
guildbank = guild
|
guildbank = guild
|
||||||
break
|
break
|
||||||
|
|
||||||
@ -144,11 +173,14 @@ class StealEmoji(Cog):
|
|||||||
# If you get this far, YOU DID IT
|
# If you get this far, YOU DID IT
|
||||||
|
|
||||||
save_dict = self.default_stolemoji.copy()
|
save_dict = self.default_stolemoji.copy()
|
||||||
e_dict = vars(emoji)
|
e_attr_list = [a for a in dir(emoji) if not a.startswith("__")]
|
||||||
|
|
||||||
for k in e_dict:
|
for k in save_dict.keys():
|
||||||
if k in save_dict:
|
save_dict[k] = getattr(emoji, k, None)
|
||||||
save_dict[k] = e_dict[k]
|
|
||||||
|
# for k in e_attr_list:
|
||||||
|
# if k in save_dict:
|
||||||
|
# save_dict[k] = getattr(emoji, k, None)
|
||||||
|
|
||||||
save_dict["guildbank"] = guildbank.id
|
save_dict["guildbank"] = guildbank.id
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user