Added user set command #22 #143
	
	
		
		
		
	
	
	
	
		
	
	
	
	
	2 Participants
	
	
	
	
		Notifications
		
			
		
	
	
	
	
	
Due Date
	
		No due date set.
	
	
	
	
	
		
		
			
				Blocks
			
			
				
					
						
							
						
					
				
				
			
		
		
		
	
	
	
							
								#144 Added user remove command #23
							
							
						
								sh-edraft.de/sh_discord_bot
							
						
	Reference: sh-edraft.de/sh_discord_bot#143
	
	
	
		Reference in New Issue
	
	Block a user
	
	No description provided.
		
		Delete Branch "#22"
	
	Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
#22
@@ -170,0 +199,4 @@self._db.save_changes()await self._level.check_level(member)except Exception as e:self._logger.error(__name__, f'Value couldn\'t be converted to int', e)Relativ ungenau. Entweder änderst du die beschreibung von dem error oder du machst zwei try except blöcke, einmal für den type cast und dann für die manipulation des users inkl. level check
Das Exceptionhandling für das "check_level" würde ich lieber dann in der Methode selber machen und das in einem separaten Issue, da ich dafür weitere Exceptionklassen erstellen möchte, um Exceptions in der Methode besser von den allgemeinen Databaseexceptions zu differenzieren.
@@ -170,0 +215,4 @@@set.autocomplete('atr')async def set_autocomplete(self, interaction: discord.Interaction, current: str) -> List[app_commands.Choice[str]]:atr_list = ['xp']Es wäre ne idee, dass diese strings irgendwie aus translation oder config kommen. Also das man da halt ne liste von diesen Strings hat. Ist auch diesen drei Befehlen immer der Fall
@@ -145,3 +160,3 @@match atr:case 'xp':case self._atr_class.xp:Mach das bitte mit nem elif und als dict in der Klasse und keine weitere Klasse dafür einführen
https://stackoverflow.com/questions/72638083/python-match-case-dictionary-keys
Match-Case-Statement gegen If-Else-Statement getauscht
@@ -169,0 +211,4 @@self._logger.error(__name__, f'String value couldn\'t be converted to int', te)await self._message_service.send_interaction_msg(ctx.interaction, self._t.transform('modules.base.user.set.error.type_error'))returnexcept DatabaseError as de:Der ist bei weitem unnötig xD
Wenn wir mal in check_level reinschauen sehen wir, dass dort alle Fehler abefangen werden.
Des Weiteren ist DatabaseError um das update_user abzufangen ungenau bzw als solches auch nicht ötig.
Errorhandling entfernt. Nur TypeError wird behandelt.
@@ -169,0 +216,4 @@await self._message_service.send_interaction_msg(ctx.interaction, self._t.transform('modules.base.user.set.error.database_error'))returnexcept Exception as e:self._logger.error(__name__, f'An error occurred while setting xp', e)DieseBlock ist wegen command error handling an und für auch nicht nötig. Hier könnte man wenn man wollte die Datenbankfehler abfangen