- Improved random phrase (will not show a phrase twice)
- Added test function for random phrase
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import asyncio
|
||||
import datetime
|
||||
import random
|
||||
import discord
|
||||
from random import choice
|
||||
from discord.ext import commands
|
||||
@@ -14,6 +13,7 @@ class WillieTimer(commands.Cog):
|
||||
self.mention_group = str(self.bot.Default_Mention_Group)
|
||||
self.channel_id = int(self.bot.Default_Channel_ID)
|
||||
self.lock = False
|
||||
self.current_phrase = None
|
||||
|
||||
@loop(minutes=1)
|
||||
async def bg_timer(self):
|
||||
@@ -80,6 +80,12 @@ class WillieTimer(commands.Cog):
|
||||
await ctx.send(f"{member}, {message} is not a valid role, please try again")
|
||||
pass
|
||||
|
||||
@commands.command(help='Test random choice')
|
||||
async def test_rchoice(self, ctx, *, member: discord.Member = None):
|
||||
member = member or ctx.author.display_name
|
||||
await ctx.send(f"Selection:\t{self.get_random_phrase()}", tts=True)
|
||||
|
||||
|
||||
def bot_get_role(self):
|
||||
channel = self.bot.get_channel(id=self.channel_id)
|
||||
guild = channel.guild
|
||||
@@ -88,12 +94,18 @@ class WillieTimer(commands.Cog):
|
||||
|
||||
def get_random_phrase(self):
|
||||
selected_phrase = None
|
||||
with open('./Phrases.txt', 'r') as phrase_file:
|
||||
phrases = phrase_file.readlines()
|
||||
selected_phrase = choice(phrases)
|
||||
while not selected_phrase:
|
||||
with open('./modules/WillieTimer/Phrases.txt', 'r') as phrase_file:
|
||||
phrases = phrase_file.readlines()
|
||||
selected_phrase = choice(phrases)
|
||||
|
||||
if selected_phrase is not None:
|
||||
return selected_phrase
|
||||
if selected_phrase is not None:
|
||||
if selected_phrase != self.current_phrase:
|
||||
self.current_phrase = selected_phrase
|
||||
return selected_phrase
|
||||
else:
|
||||
selected_phrase = None
|
||||
continue
|
||||
|
||||
|
||||
def setup(bot: commands.Bot):
|
||||
|
||||
Reference in New Issue
Block a user