Fixed not checking level after new XP is assinged to user #22
This commit is contained in:
@@ -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)
|
||||
await self._message_service.send_interaction_msg(ctx.interaction, self._t.transform('modules.base.user.set.error.set_xp'))
|
||||
return
|
||||
|
||||
case other:
|
||||
|
Reference in New Issue
Block a user