aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/seasons/valentines/be_my_valentine.py52
1 files changed, 40 insertions, 12 deletions
diff --git a/bot/seasons/valentines/be_my_valentine.py b/bot/seasons/valentines/be_my_valentine.py
index 35ced8d0..e032a593 100644
--- a/bot/seasons/valentines/be_my_valentine.py
+++ b/bot/seasons/valentines/be_my_valentine.py
@@ -16,6 +16,7 @@ log = logging.getLogger(__name__)
HEART_EMOJIS = [":heart:", ":gift_heart:", ":revolving_hearts:", ":sparkling_heart:", ":two_hearts:"]
EMOJI_1 = random.choice(HEART_EMOJIS)
EMOJI_2 = random.choice(HEART_EMOJIS)
+USER_LOVEFEST = []
class BeMyValentine:
@@ -35,11 +36,30 @@ class BeMyValentine:
user = ctx.author
role = discord.utils.get(ctx.guild.roles, id=Lovefest.role_id)
if id not in [role.id for role in ctx.message.author.roles]:
+ USER_LOVEFEST.append(ctx.author)
await user.add_roles(role)
await ctx.send("The Lovefest role has been added !")
else:
await ctx.send("You already have the role !")
+ @commands.command(name='refreshlovefest')
+ async def refresh_user_lovefestlist(self, ctx):
+ """
+ Use this command to refresh the USER_VALENTINE list when the bot goes offline and then comes back online
+ """
+ USER_LOVEFEST.clear()
+ for member in ctx.guild.members:
+ for role in member.roles:
+ if role.id == Lovefest.role_id:
+ USER_LOVEFEST.append(member)
+ embed = discord.Embed(
+ title="USER_LOVEFEST list updated!",
+ description=f'''The USER_LOVEFEST has been refreshed,`bemyvalentine` and `bemyvalentine dm` commands can now
+ be used and there are {USER_LOVEFEST.__len__()} members having the lovefest role.''',
+ color=Colours.pink
+ )
+ await ctx.send(embed=embed)
+
@commands.cooldown(1, 1800, BucketType.user)
@commands.group(
name='bemyvalentine',
@@ -59,18 +79,22 @@ class BeMyValentine:
example: .bemyvalentine @Iceman#6508 Hey I love you, wanna hang around ? (sends the custom message to Iceman)
"""
+ if ctx.guild is None:
+ # This command should only be used in the server
+ msg = "You are supposed to use this command in the server."
+ return await ctx.send(msg)
+
channel = self.bot.get_channel(Lovefest.channel_id)
- random_user = []
if user == ctx.author:
+ # Well a user cant valentine himself/herself.
await ctx.send('Come on dude, you cant send a valentine to yourself :expressionless:')
elif user is None:
- for member in ctx.guild.members:
- for role in member.roles:
- if role.id == Lovefest.role_id:
- random_user.append(member)
- user = random.choice(random_user)
+ # just making sure that the random does not pick up the same user(ctx.author)
+ USER_LOVEFEST.remove(ctx.author)
+ user = random.choice(USER_LOVEFEST)
+ USER_LOVEFEST.append(ctx.author)
if valentine_type is None:
# grabs a random valentine -can be a poem or a good message
@@ -124,17 +148,20 @@ class BeMyValentine:
example : .bemyvalentine dm Iceman#6508 Hey I love you, wanna hang around ? (sends the custom message to Iceman in
DM making you anonymous)
"""
- random_user = []
+ if ctx.guild is not None:
+ # This command is only DM specific
+ msg = "You are not supposed to use this command in the server, DM the command to the bot."
+ return await ctx.send(msg)
if user == ctx.author:
+ # Well a user cant valentine himself/herself.
await ctx.send('Come on dude, you cant send a valentine to yourself :expressionless:')
elif user is None:
- for member in ctx.guild.members:
- for role in member.roles:
- if role.id == Lovefest.role_id:
- random_user.append(member)
- user = random.choice(random_user)
+ # just making sure that the random dosent pick up the same user(ctx.author)
+ USER_LOVEFEST.remove(ctx.author)
+ user = random.choice(USER_LOVEFEST)
+ USER_LOVEFEST.append(ctx.author)
if valentine_type is None:
valentine, title = self.random_valentine()
@@ -165,6 +192,7 @@ class BeMyValentine:
)
embed.description = f'{valentine} \n **{EMOJI_2}From anonymous{EMOJI_1}**'
+ await ctx.author.send(f"Your message has been sent to {user}")
await user.send(embed=embed)
@staticmethod