WIP listeners, switch to f strings, and overall rewrite
This commit is contained in:
		
							parent
							
								
									a2eaf55515
								
							
						
					
					
						commit
						7109471c35
					
				| @ -49,7 +49,7 @@ CATEGORY_COUNT = [] | |||||||
| 
 | 
 | ||||||
| def role_embed(idx, role, color): | def role_embed(idx, role, color): | ||||||
|     embed = discord.Embed( |     embed = discord.Embed( | ||||||
|         title="**{}** - {}".format(idx, str(role.__name__)), |         title=f"**{idx}** - {role.__name__}", | ||||||
|         description=role.game_start_message, |         description=role.game_start_message, | ||||||
|         color=color, |         color=color, | ||||||
|     ) |     ) | ||||||
| @ -82,7 +82,7 @@ def setup(): | |||||||
|         if 0 < k <= 6: |         if 0 < k <= 6: | ||||||
|             ROLE_PAGES.append( |             ROLE_PAGES.append( | ||||||
|                 discord.Embed( |                 discord.Embed( | ||||||
|                     title="RANDOM:Town Role", description="Town {}".format(v), color=0x008000 |                     title="RANDOM:Town Role", description=f"Town {v}", color=0x008000 | ||||||
|                 ) |                 ) | ||||||
|             ) |             ) | ||||||
|             CATEGORY_COUNT.append(k) |             CATEGORY_COUNT.append(k) | ||||||
| @ -95,7 +95,7 @@ def setup(): | |||||||
|             ROLE_PAGES.append( |             ROLE_PAGES.append( | ||||||
|                 discord.Embed( |                 discord.Embed( | ||||||
|                     title="RANDOM:Werewolf Role", |                     title="RANDOM:Werewolf Role", | ||||||
|                     description="Werewolf {}".format(v), |                     description=f"Werewolf {v}", | ||||||
|                     color=0xFF0000, |                     color=0xFF0000, | ||||||
|                 ) |                 ) | ||||||
|             ) |             ) | ||||||
| @ -107,7 +107,7 @@ def setup(): | |||||||
|         if 20 < k <= 26: |         if 20 < k <= 26: | ||||||
|             ROLE_PAGES.append( |             ROLE_PAGES.append( | ||||||
|                 discord.Embed( |                 discord.Embed( | ||||||
|                     title="RANDOM:Neutral Role", description="Neutral {}".format(v), color=0xC0C0C0 |                     title=f"RANDOM:Neutral Role", description="Neutral {v}", color=0xC0C0C0 | ||||||
|                 ) |                 ) | ||||||
|             ) |             ) | ||||||
|             CATEGORY_COUNT.append(k) |             CATEGORY_COUNT.append(k) | ||||||
| @ -306,14 +306,14 @@ def say_role_list(code_list, rand_roles): | |||||||
| 
 | 
 | ||||||
|     for role in rand_roles: |     for role in rand_roles: | ||||||
|         if 0 < role <= 6: |         if 0 < role <= 6: | ||||||
|             role_dict["Town {}".format(ROLE_CATEGORIES[role])] += 1 |             role_dict[f"Town {ROLE_CATEGORIES[role]}"] += 1 | ||||||
|         if 10 < role <= 16: |         if 10 < role <= 16: | ||||||
|             role_dict["Werewolf {}".format(ROLE_CATEGORIES[role])] += 1 |             role_dict[f"Werewolf {ROLE_CATEGORIES[role]}"] += 1 | ||||||
|         if 20 < role <= 26: |         if 20 < role <= 26: | ||||||
|             role_dict["Neutral {}".format(ROLE_CATEGORIES[role])] += 1 |             role_dict[f"Neutral {ROLE_CATEGORIES[role]}"] += 1 | ||||||
| 
 | 
 | ||||||
|     for k, v in role_dict.items(): |     for k, v in role_dict.items(): | ||||||
|         embed.add_field(name=k, value="Count: {}".format(v), inline=True) |         embed.add_field(name=k, value=f"Count: {v}", inline=True) | ||||||
| 
 | 
 | ||||||
|     return embed |     return embed | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -18,6 +18,7 @@ log = logging.getLogger("red.fox_v3.werewolf.game") | |||||||
| 
 | 
 | ||||||
| HALF_DAY_LENGTH = 24  # FixMe: to 120 later for 4 minute days | HALF_DAY_LENGTH = 24  # FixMe: to 120 later for 4 minute days | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| class Game: | class Game: | ||||||
|     """ |     """ | ||||||
|     Base class to run a single game of Werewolf |     Base class to run a single game of Werewolf | ||||||
| @ -119,10 +120,10 @@ class Game: | |||||||
| 
 | 
 | ||||||
|         if len(self.players) != len(self.roles): |         if len(self.players) != len(self.roles): | ||||||
|             await ctx.maybe_send_embed( |             await ctx.maybe_send_embed( | ||||||
|                 "Player count does not match role count, cannot start\n" |                 f"Player count does not match role count, cannot start\n" | ||||||
|                 "Currently **{} / {}**\n" |                 f"Currently **{len(self.players)} / {len(self.roles)}**\n" | ||||||
|                 "Use `{}ww code` to pick a new game" |                 f"Use `{ctx.prefix}ww code` to pick a game setup\n" | ||||||
|                 "".format(len(self.players), len(self.roles), ctx.prefix) |                 f"Use `{ctx.prefix}buildgame` to generate a new game" | ||||||
|             ) |             ) | ||||||
|             self.roles = [] |             self.roles = [] | ||||||
|             return False |             return False | ||||||
| @ -147,9 +148,7 @@ class Game: | |||||||
|                     await player.member.add_roles(*[self.game_role]) |                     await player.member.add_roles(*[self.game_role]) | ||||||
|             except discord.Forbidden: |             except discord.Forbidden: | ||||||
|                 await ctx.send( |                 await ctx.send( | ||||||
|                     "Unable to add role **{}**\nBot is missing `manage_roles` permissions".format( |                     f"Unable to add role **{self.game_role.name}**\nBot is missing `manage_roles` permissions" | ||||||
|                         self.game_role.name |  | ||||||
|                     ) |  | ||||||
|                 ) |                 ) | ||||||
|                 return False |                 return False | ||||||
| 
 | 
 | ||||||
| @ -353,9 +352,7 @@ class Game: | |||||||
| 
 | 
 | ||||||
|         await self.speech_perms(self.village_channel, target.member)  # Only target can talk |         await self.speech_perms(self.village_channel, target.member)  # Only target can talk | ||||||
|         await self.village_channel.send( |         await self.village_channel.send( | ||||||
|             "**{} will be put to trial and has 30 seconds to defend themselves**".format( |             f"**{target.mention} will be put to trial and has 30 seconds to defend themselves**", | ||||||
|                 target.mention |  | ||||||
|             ), |  | ||||||
|             allowed_mentions=discord.AllowedMentions(everyone=False, users=[target]), |             allowed_mentions=discord.AllowedMentions(everyone=False, users=[target]), | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
| @ -364,10 +361,10 @@ class Game: | |||||||
|         await self.speech_perms(self.village_channel, target.member, undo=True)  # No one can talk |         await self.speech_perms(self.village_channel, target.member, undo=True)  # No one can talk | ||||||
| 
 | 
 | ||||||
|         message: discord.Message = await self.village_channel.send( |         message: discord.Message = await self.village_channel.send( | ||||||
|             "Everyone will now vote whether to lynch {}\n" |             f"Everyone will now vote whether to lynch {target.mention}\n" | ||||||
|             "👍 to save, 👎 to lynch\n" |             "👍 to save, 👎 to lynch\n" | ||||||
|             "*Majority rules, no-lynch on ties, " |             "*Majority rules, no-lynch on ties, " | ||||||
|             "vote both or neither to abstain, 15 seconds to vote*".format(target.mention), |             "vote both or neither to abstain, 15 seconds to vote*", | ||||||
|             allowed_mentions=discord.AllowedMentions(everyone=False, users=[target]), |             allowed_mentions=discord.AllowedMentions(everyone=False, users=[target]), | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
| @ -385,25 +382,31 @@ class Game: | |||||||
|         else: |         else: | ||||||
|             embed = discord.Embed(title="Vote Results", color=0x80FF80) |             embed = discord.Embed(title="Vote Results", color=0x80FF80) | ||||||
| 
 | 
 | ||||||
|         embed.add_field(name="👎", value="**{}**".format(up_votes), inline=True) |         embed.add_field(name="👎", value=f"**{up_votes}**", inline=True) | ||||||
|         embed.add_field(name="👍", value="**{}**".format(down_votes), inline=True) |         embed.add_field(name="👍", value=f"**{down_votes}**", inline=True) | ||||||
| 
 | 
 | ||||||
|         await self.village_channel.send(embed=embed) |         await self.village_channel.send(embed=embed) | ||||||
| 
 | 
 | ||||||
|         if down_votes > up_votes: |         if down_votes > up_votes: | ||||||
|             await self.village_channel.send("**Voted to lynch {}!**".format(target.mention)) |             await self.village_channel.send( | ||||||
|  |                 f"**Voted to lynch {target.mention}!**", | ||||||
|  |                 allowed_mentions=discord.AllowedMentions(everyone=False, users=[target]), | ||||||
|  |             ) | ||||||
|             await self.lynch(target) |             await self.lynch(target) | ||||||
|             self.can_vote = False |             self.can_vote = False | ||||||
|         else: |         else: | ||||||
|             await self.village_channel.send("**{} has been spared!**".format(target.mention)) |             await self.village_channel.send( | ||||||
|  |                 f"**{target.mention} has been spared!**", | ||||||
|  |                 allowed_mentions=discord.AllowedMentions(everyone=False, users=[target]), | ||||||
|  |             ) | ||||||
| 
 | 
 | ||||||
|             if self.used_votes >= self.day_vote_count: |             if self.used_votes >= self.day_vote_count: | ||||||
|                 await self.village_channel.send("**All votes have been used! Day is now over!**") |                 await self.village_channel.send("**All votes have been used! Day is now over!**") | ||||||
|                 self.can_vote = False |                 self.can_vote = False | ||||||
|             else: |             else: | ||||||
|                 await self.village_channel.send( |                 await self.village_channel.send( | ||||||
|                     "**{}**/**{}** of today's votes have been used!\n" |                     f"**{self.used_votes}**/**{self.day_vote_count}** of today's votes have been used!\n" | ||||||
|                     "Nominate carefully..".format(self.used_votes, self.day_vote_count) |                     "Nominate carefully.." | ||||||
|                 ) |                 ) | ||||||
| 
 | 
 | ||||||
|         self.ongoing_vote = False |         self.ongoing_vote = False | ||||||
| @ -513,14 +516,14 @@ class Game: | |||||||
|                 status = "*[Dead]*-" |                 status = "*[Dead]*-" | ||||||
|             if with_roles or not player.alive: |             if with_roles or not player.alive: | ||||||
|                 embed.add_field( |                 embed.add_field( | ||||||
|                     name="ID# **{}**".format(i), |                     name=f"ID# **{i}**", | ||||||
|                     value="{}{}-{}".format(status, player.member.display_name, str(player.role)), |                     value=f"{status}{player.member.display_name}-{player.role}", | ||||||
|                     inline=True, |                     inline=True, | ||||||
|                 ) |                 ) | ||||||
|             else: |             else: | ||||||
|                 embed.add_field( |                 embed.add_field( | ||||||
|                     name="ID# **{}**".format(i), |                     name=f"ID# **{i}**", | ||||||
|                     value="{}{}".format(status, player.member.display_name), |                     value=f"{status}{player.member.display_name}", | ||||||
|                     inline=True, |                     inline=True, | ||||||
|                 ) |                 ) | ||||||
| 
 | 
 | ||||||
| @ -553,7 +556,7 @@ class Game: | |||||||
|             return |             return | ||||||
| 
 | 
 | ||||||
|         if await self.get_player_by_member(member) is not None: |         if await self.get_player_by_member(member) is not None: | ||||||
|             await channel.send("{} is already in the game!".format(member.mention)) |             await channel.send(f"{member.display_name} is already in the game!") | ||||||
|             return |             return | ||||||
| 
 | 
 | ||||||
|         self.players.append(Player(member)) |         self.players.append(Player(member)) | ||||||
| @ -563,14 +566,12 @@ class Game: | |||||||
|                 await member.add_roles(*[self.game_role]) |                 await member.add_roles(*[self.game_role]) | ||||||
|             except discord.Forbidden: |             except discord.Forbidden: | ||||||
|                 await channel.send( |                 await channel.send( | ||||||
|                     "Unable to add role **{}**\nBot is missing `manage_roles` permissions".format( |                     f"Unable to add role **{self.game_role.name}**\nBot is missing `manage_roles` permissions" | ||||||
|                         self.game_role.name |  | ||||||
|                     ) |  | ||||||
|                 ) |                 ) | ||||||
| 
 | 
 | ||||||
|         await channel.send( |         await channel.send( | ||||||
|             "{} has been added to the game, " |             f"{member.display_name} has been added to the game, " | ||||||
|             "total players is **{}**".format(member.mention, len(self.players)) |             f"total players is **{len(self.players)}**" | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|     async def quit(self, member: discord.Member, channel: discord.TextChannel = None): |     async def quit(self, member: discord.Member, channel: discord.TextChannel = None): | ||||||
| @ -584,14 +585,16 @@ class Game: | |||||||
| 
 | 
 | ||||||
|         if self.started: |         if self.started: | ||||||
|             await self._quit(player) |             await self._quit(player) | ||||||
|             await channel.send("{} has left the game".format(member.mention)) |             await channel.send( | ||||||
|  |                 f"{member.mention} has left the game", | ||||||
|  |                 allowed_mentions=discord.AllowedMentions(everyone=False, users=[member]), | ||||||
|  |             ) | ||||||
|         else: |         else: | ||||||
|             self.players = [player for player in self.players if player.member != member] |             self.players = [player for player in self.players if player.member != member] | ||||||
|             await member.remove_roles(*[self.game_role]) |             await member.remove_roles(*[self.game_role]) | ||||||
|             await channel.send( |             await channel.send( | ||||||
|                 "{} chickened out, player count is now **{}**".format( |                 f"{member.mention} chickened out, player count is now **{len(self.players)}**", | ||||||
|                     member.mention, len(self.players) |                 allowed_mentions=discord.AllowedMentions(everyone=False, users=[member]), | ||||||
|                 ) |  | ||||||
|             ) |             ) | ||||||
| 
 | 
 | ||||||
|     async def choose(self, ctx, data): |     async def choose(self, ctx, data): | ||||||
| @ -698,7 +701,8 @@ class Game: | |||||||
|                     author.mention, |                     author.mention, | ||||||
|                     target.member.mention, |                     target.member.mention, | ||||||
|                     required_votes - self.vote_totals[target_id], |                     required_votes - self.vote_totals[target_id], | ||||||
|                 ) |                 ), | ||||||
|  |                 allowed_mentions=discord.AllowedMentions(everyone=False, users=[author, target]), | ||||||
|             ) |             ) | ||||||
|         else: |         else: | ||||||
|             self.vote_totals[target_id] = 0 |             self.vote_totals[target_id] = 0 | ||||||
| @ -930,7 +934,7 @@ class Game: | |||||||
|         name = func.__name__ if name is None else name |         name = func.__name__ if name is None else name | ||||||
| 
 | 
 | ||||||
|         if not asyncio.iscoroutinefunction(func): |         if not asyncio.iscoroutinefunction(func): | ||||||
|             raise TypeError('Listeners must be coroutines') |             raise TypeError("Listeners must be coroutines") | ||||||
| 
 | 
 | ||||||
|         if name in self.listeners: |         if name in self.listeners: | ||||||
|             if priority in self.listeners[name]: |             if priority in self.listeners[name]: | ||||||
| @ -942,7 +946,6 @@ class Game: | |||||||
| 
 | 
 | ||||||
|         # self.listeners[name].sort(reverse=True) |         # self.listeners[name].sort(reverse=True) | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     # def remove_wolf_listener(self, func, name=None): |     # def remove_wolf_listener(self, func, name=None): | ||||||
|     #     """Removes a listener from the pool of listeners. |     #     """Removes a listener from the pool of listeners. | ||||||
|     # |     # | ||||||
|  | |||||||
| @ -64,13 +64,13 @@ def wolflistener(name=None, priority=0): | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class WolfListenerMeta(type): | class WolfListenerMeta(type): | ||||||
|     def __new__(mcs, cls, *args, **kwargs): |     def __new__(mcs, *args, **kwargs): | ||||||
|         name, bases = args |         name, bases, attrs = args | ||||||
| 
 | 
 | ||||||
|         listeners = {} |         listeners = {} | ||||||
|         need_at_msg = "Listeners must start with at_ (in method {0.__name__}.{1})" |         need_at_msg = "Listeners must start with at_ (in method {0.__name__}.{1})" | ||||||
| 
 | 
 | ||||||
|         new_cls = super().__new__(cls, name, bases, **kwargs) |         new_cls = super().__new__(mcs, name, bases, attrs, **kwargs) | ||||||
|         for base in reversed(new_cls.__mro__): |         for base in reversed(new_cls.__mro__): | ||||||
|             for elem, value in base.__dict__.items(): |             for elem, value in base.__dict__.items(): | ||||||
|                 if elem in listeners: |                 if elem in listeners: | ||||||
| @ -85,8 +85,8 @@ class WolfListenerMeta(type): | |||||||
|                     except AttributeError: |                     except AttributeError: | ||||||
|                         continue |                         continue | ||||||
|                     else: |                     else: | ||||||
|                         if not elem.startswith("at_"): |                         # if not elem.startswith("at_"): | ||||||
|                             raise TypeError(need_at_msg.format(mcs, elem)) |                         #     raise TypeError(need_at_msg.format(base, elem)) | ||||||
|                         listeners[elem] = value |                         listeners[elem] = value | ||||||
| 
 | 
 | ||||||
|         listeners_as_list = [] |         listeners_as_list = [] | ||||||
|  | |||||||
| @ -34,4 +34,4 @@ class Player: | |||||||
|         try: |         try: | ||||||
|             await self.member.send(message)  # Lets do embeds later |             await self.member.send(message)  # Lets do embeds later | ||||||
|         except discord.Forbidden: |         except discord.Forbidden: | ||||||
|             await self.role.game.village_channel.send("Couldn't DM {}, uh oh".format(self.mention)) |             await self.role.game.village_channel.send(f"Couldn't DM {self.mention}, uh oh", allowed_mentions=discord.AllowedMentions(users=[self.member])) | ||||||
|  | |||||||
| @ -128,7 +128,7 @@ class Role(WolfListener): | |||||||
|         """ |         """ | ||||||
|         return "Default" |         return "Default" | ||||||
| 
 | 
 | ||||||
|     @wolflistener("at_game_start") |     @wolflistener("at_game_start", priority=1) | ||||||
|     async def _at_game_start(self, data=None): |     async def _at_game_start(self, data=None): | ||||||
|         if self.channel_id: |         if self.channel_id: | ||||||
|             await self.game.register_channel(self.channel_id, self) |             await self.game.register_channel(self.channel_id, self) | ||||||
|  | |||||||
| @ -1,7 +1,11 @@ | |||||||
|  | import logging | ||||||
|  | 
 | ||||||
| from werewolf.listener import wolflistener | from werewolf.listener import wolflistener | ||||||
| from werewolf.night_powers import pick_target | from werewolf.night_powers import pick_target | ||||||
| from werewolf.role import Role | from werewolf.role import Role | ||||||
| 
 | 
 | ||||||
|  | log = logging.getLogger("red.fox_v3.werewolf.role.seer") | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class Seer(Role): | class Seer(Role): | ||||||
|     rand_choice = True  # Determines if it can be picked as a random role (False for unusually disruptive roles) |     rand_choice = True  # Determines if it can be picked as a random role (False for unusually disruptive roles) | ||||||
| @ -93,7 +97,5 @@ class Seer(Role): | |||||||
| 
 | 
 | ||||||
|         self.see_target, target = await pick_target(self, ctx, data) |         self.see_target, target = await pick_target(self, ctx, data) | ||||||
|         await ctx.send( |         await ctx.send( | ||||||
|             "**You will attempt to see the role of {} tonight...**".format( |             f"**You will attempt to see the role of {target.member.display_name} tonight...**" | ||||||
|                 target.member.display_name |  | ||||||
|             ) |  | ||||||
|         ) |         ) | ||||||
|  | |||||||
| @ -1,7 +1,11 @@ | |||||||
|  | import logging | ||||||
|  | 
 | ||||||
| from werewolf.listener import wolflistener | from werewolf.listener import wolflistener | ||||||
| from werewolf.night_powers import pick_target | from werewolf.night_powers import pick_target | ||||||
| from werewolf.role import Role | from werewolf.role import Role | ||||||
| 
 | 
 | ||||||
|  | log = logging.getLogger("red.fox_v3.werewolf.role.shifter") | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class Shifter(Role): | class Shifter(Role): | ||||||
|     """ |     """ | ||||||
| @ -130,7 +134,5 @@ class Shifter(Role): | |||||||
| 
 | 
 | ||||||
|         self.shift_target, target = await pick_target(self, ctx, data) |         self.shift_target, target = await pick_target(self, ctx, data) | ||||||
|         await ctx.send( |         await ctx.send( | ||||||
|             "**You will attempt to see the role of {} tonight...**".format( |             f"**You will attempt to see the role of {target.member.display_name} tonight...**" | ||||||
|                 target.member.display_name |  | ||||||
|             ) |  | ||||||
|         ) |         ) | ||||||
|  | |||||||
| @ -1,7 +1,11 @@ | |||||||
|  | import logging | ||||||
|  | 
 | ||||||
| from werewolf.listener import wolflistener | from werewolf.listener import wolflistener | ||||||
| from werewolf.role import Role | from werewolf.role import Role | ||||||
| from werewolf.votegroups.wolfvote import WolfVote | from werewolf.votegroups.wolfvote import WolfVote | ||||||
| 
 | 
 | ||||||
|  | log = logging.getLogger("red.fox_v3.werewolf.role.vanillawerewolf") | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class VanillaWerewolf(Role): | class VanillaWerewolf(Role): | ||||||
|     rand_choice = True |     rand_choice = True | ||||||
| @ -56,7 +60,9 @@ class VanillaWerewolf(Role): | |||||||
|     async def _at_game_start(self, data=None): |     async def _at_game_start(self, data=None): | ||||||
|         if self.channel_id: |         if self.channel_id: | ||||||
|             print("Wolf has channel_id: " + self.channel_id) |             print("Wolf has channel_id: " + self.channel_id) | ||||||
|             await self.game.register_channel(self.channel_id, self, WolfVote)  # Add VoteGroup WolfVote |             await self.game.register_channel( | ||||||
|  |                 self.channel_id, self, WolfVote | ||||||
|  |             )  # Add VoteGroup WolfVote | ||||||
| 
 | 
 | ||||||
|         await self.player.send_dm(self.game_start_message) |         await self.player.send_dm(self.game_start_message) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,5 +1,9 @@ | |||||||
|  | import logging | ||||||
|  | 
 | ||||||
| from werewolf.role import Role | from werewolf.role import Role | ||||||
| 
 | 
 | ||||||
|  | log = logging.getLogger("red.fox_v3.werewolf.role.villager") | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class Villager(Role): | class Villager(Role): | ||||||
|     rand_choice = True  # Determines if it can be picked as a random role (False for unusually disruptive roles) |     rand_choice = True  # Determines if it can be picked as a random role (False for unusually disruptive roles) | ||||||
|  | |||||||
| @ -1,7 +1,10 @@ | |||||||
|  | import logging | ||||||
| import random | import random | ||||||
| 
 | 
 | ||||||
| from werewolf.votegroup import VoteGroup | from werewolf.votegroup import VoteGroup | ||||||
| 
 | 
 | ||||||
|  | log = logging.getLogger("red.fox_v3.werewolf.votegroup.wolfvote") | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class WolfVote(VoteGroup): | class WolfVote(VoteGroup): | ||||||
|     """ |     """ | ||||||
| @ -77,7 +80,7 @@ class WolfVote(VoteGroup): | |||||||
|         self.killer = random.choice(self.players) |         self.killer = random.choice(self.players) | ||||||
| 
 | 
 | ||||||
|         await self.channel.send( |         await self.channel.send( | ||||||
|             "{} has been selected as tonight's killer".format(self.killer.member.display_name) |             f"{self.killer.member.display_name} has been selected as tonight's killer" | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|     async def _at_night_end(self, data=None): |     async def _at_night_end(self, data=None): | ||||||
| @ -90,7 +93,7 @@ class WolfVote(VoteGroup): | |||||||
|         if vote_list: |         if vote_list: | ||||||
|             target_id = max(set(vote_list), key=vote_list.count) |             target_id = max(set(vote_list), key=vote_list.count) | ||||||
| 
 | 
 | ||||||
|         print("Target id: {}\nKiller: {}".format(target_id, self.killer.member.display_name)) |         log.debug("Target id: {target_id}\nKiller: {self.killer.member.display_name}") | ||||||
|         if target_id is not None and self.killer: |         if target_id is not None and self.killer: | ||||||
|             await self.game.kill(target_id, self.killer, random.choice(self.kill_messages)) |             await self.game.kill(target_id, self.killer, random.choice(self.kill_messages)) | ||||||
|             await self.channel.send( |             await self.channel.send( | ||||||
|  | |||||||
| @ -62,7 +62,7 @@ class Werewolf(Cog): | |||||||
|         code = await gb.build_game(ctx) |         code = await gb.build_game(ctx) | ||||||
| 
 | 
 | ||||||
|         if code != "": |         if code != "": | ||||||
|             await ctx.send("Your game code is **{}**".format(code)) |             await ctx.send(f"Your game code is **{code}**") | ||||||
|         else: |         else: | ||||||
|             await ctx.send("No code generated") |             await ctx.send("No code generated") | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 bobloy
						bobloy