Added user set command #22 #143
@ -181,11 +181,14 @@
|
||||
"ontime": "{} war insgesamt {} Stunden aktiv in einem Sprachkanal"
|
||||
},
|
||||
"set": {
|
||||
"xp": "{} hat nun {} xp"
|
||||
"xp": "{} hat nun {} xp",
|
||||
"error": {
|
||||
"value_type_not_numeric": "Der angegebende Wert ist keine Ganzzahl! :(",
|
||||
"set_xp": "Es kam zu einem Fehler bei der Zuweisung der XP :("
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"atr_not_found": "Das Attribut {} konnte nicht gefunden werden :(",
|
||||
"value_type": "Der angegebende Wert konnte nicht für das Attribut interpretiert werden :("
|
||||
"atr_not_found": "Das Attribut {} konnte nicht gefunden werden :("
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -19,6 +19,7 @@ from bot_data.abc.server_repository_abc import ServerRepositoryABC
|
||||
from bot_data.abc.user_joined_server_repository_abc import UserJoinedServerRepositoryABC
|
||||
from bot_data.abc.user_joined_voice_channel_abc import UserJoinedVoiceChannelRepositoryABC
|
||||
from bot_data.abc.user_repository_abc import UserRepositoryABC
|
||||
from modules.level.service.level_service import LevelService
|
||||
from modules.permission.abc.permission_service_abc import PermissionServiceABC
|
||||
|
||||
|
||||
@ -38,7 +39,8 @@ class UserGroup(DiscordCommandABC):
|
||||
user_joined_servers: UserJoinedServerRepositoryABC,
|
||||
user_joined_voice_channel: UserJoinedVoiceChannelRepositoryABC,
|
||||
translate: TranslatePipe,
|
||||
date: DateTimeOffsetPipe
|
||||
date: DateTimeOffsetPipe,
|
||||
level: LevelService
|
||||
):
|
||||
DiscordCommandABC.__init__(self)
|
||||
|
||||
@ -55,6 +57,7 @@ class UserGroup(DiscordCommandABC):
|
||||
self._user_joined_voice_channel = user_joined_voice_channel
|
||||
self._t = translate
|
||||
self._date = date
|
||||
self._level = level
|
||||
|
||||
self._logger.trace(__name__, f'Loaded command service: {type(self).__name__}')
|
||||
|
||||
@ -186,13 +189,18 @@ class UserGroup(DiscordCommandABC):
|
||||
|
||||
match atr:
|
||||
case 'xp':
|
||||
if not value.isnumeric():
|
||||
await self._message_service.send_interaction_msg(ctx.interaction, self._t.transform('modules.base.user.set.error.value_type_not_numeric'))
|
||||
return
|
||||
|
||||
try:
|
||||
user.xp = int(value)
|
||||
self._users.update_user(user)
|
||||
self._db.save_changes()
|
||||
await self._level.check_level(member)
|
||||
except Exception as e:
|
||||
await self._logger.trace(__name__, f'Value couldn\'t be converted to int\n'+e)
|
||||
await self._message_service.send_interaction_msg(ctx.interaction, self._t.transform('modules.base.user.error.value_type'))
|
||||
self._logger.error(__name__, f'Value couldn\'t be converted to int', e)
|
||||
Ebola-Chan marked this conversation as resolved
Outdated
|
||||
await self._message_service.send_interaction_msg(ctx.interaction, self._t.transform('modules.base.user.set.error.set_xp'))
|
||||
return
|
||||
|
||||
case other:
|
||||
|
Loading…
Reference in New Issue
Block a user
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.