WIP Player converter
This commit is contained in:
		
							parent
							
								
									2ab87866dd
								
							
						
					
					
						commit
						c7d320ccaa
					
				
							
								
								
									
										28
									
								
								werewolf/converters.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								werewolf/converters.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| from typing import TYPE_CHECKING, Union | ||||
| 
 | ||||
| import discord | ||||
| from discord.ext.commands import BadArgument, Converter | ||||
| from redbot.core import commands | ||||
| 
 | ||||
| from werewolf.player import Player | ||||
| 
 | ||||
| if TYPE_CHECKING: | ||||
|     PlayerConverter = Union[int, discord.Member] | ||||
|     CronConverter = str | ||||
| else: | ||||
| 
 | ||||
|     class PlayerConverter(Converter): | ||||
|         async def convert(self, ctx, argument) -> Player: | ||||
| 
 | ||||
|             try: | ||||
|                 target = await commands.MemberConverter().convert(ctx, argument) | ||||
|             except BadArgument: | ||||
|                 try: | ||||
|                     target = int(argument) | ||||
|                     assert target >= 0 | ||||
|                 except (ValueError, AssertionError): | ||||
|                     raise BadArgument | ||||
| 
 | ||||
|             # TODO: Get the game for context without making a new one | ||||
|             # TODO: Get player from game based on either ID or member object | ||||
|             return target | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 bobloy
						bobloy