public async Task SpendSkillPointsAsync(string skill, int points) { var userInfo = Context.User; var character = await _charService.GetCharacterAsync(userInfo.Id); if (character == null) { await ReplyAsync(string.Format(Messages.ERR_CHAR_NOT_FOUND, userInfo.Mention)); return; } if (!_skillsService.AreSkillsSet(character)) { await ReplyAsync(string.Format(Messages.ERR_SKILLS_NOT_FOUND, userInfo.Mention)); return; } if (points < 1) { await ReplyAsync(string.Format(Messages.ERR_SKILLS_POINTS_BELOW_ONE, userInfo.Mention)); return; } try { _skillsService.PutPointsInSkill(character, skill, points); await ReplyAsync(string.Format(Messages.SKILLS_SPEND_POINTS_SUCCESS, userInfo.Mention)); } catch (Exception e) { await ReplyAsync($"{Messages.FAILURE_EMOJI} {e.Message} ({userInfo.Mention})"); } }