|
1 | 1 | package fr.funixgaming.funixbot.twitch.commands; |
2 | 2 |
|
3 | | -import fr.funixgaming.api.client.funixbot.clients.FunixBotUserExperienceClient; |
4 | 3 | import fr.funixgaming.api.client.funixbot.dtos.FunixBotUserExperienceDTO; |
5 | 4 | import fr.funixgaming.funixbot.core.commands.entities.BotCommand; |
| 5 | +import fr.funixgaming.funixbot.core.exceptions.FunixBotException; |
6 | 6 | import fr.funixgaming.funixbot.twitch.FunixBot; |
| 7 | +import fr.funixgaming.funixbot.twitch.modules.ChatExperience; |
7 | 8 | import fr.funixgaming.funixbot.twitch.utils.TwitchEmotes; |
8 | 9 | import fr.funixgaming.twitch.api.chatbot_irc.entities.ChatMember; |
9 | 10 | import lombok.NonNull; |
| 11 | +import lombok.extern.slf4j.Slf4j; |
10 | 12 | import org.jetbrains.annotations.NotNull; |
11 | 13 |
|
12 | | -import java.util.List; |
13 | | - |
| 14 | +@Slf4j |
14 | 15 | public class LevelCommand extends BotCommand { |
15 | 16 | private final FunixBot funixBot; |
16 | 17 |
|
17 | | - private final FunixBotUserExperienceClient userExperienceClient; |
18 | | - |
19 | 18 | public LevelCommand(final FunixBot bot) { |
20 | 19 | super("level", "lvl", "lv"); |
21 | 20 | this.funixBot = bot; |
22 | | - |
23 | | - this.userExperienceClient = bot.getFunixBotUserExperienceClient(); |
24 | 21 | } |
25 | 22 |
|
26 | 23 | @Override |
27 | 24 | public void onUserCommand(@NonNull ChatMember user, @NonNull String command, @NotNull @NonNull String[] args) { |
28 | | - final String channel = user.getChannelName(); |
29 | | - final List<FunixBotUserExperienceDTO> experience = userExperienceClient.search(String.format("twitchUserId:%d", user.getUserId()), "0", "1"); |
30 | | - |
31 | | - if (experience.isEmpty()) { |
32 | | - funixBot.sendChatMessage(channel, String.format("%s n'a pas encore de niveau sur ce stream.", user.getDisplayName())); |
33 | | - } else { |
34 | | - final FunixBotUserExperienceDTO userExperience = experience.get(0); |
35 | | - funixBot.sendChatMessage(channel, String.format( |
36 | | - "%s %s niveau %d (%d/%d)", |
37 | | - TwitchEmotes.TWITCH_LOGO, |
38 | | - user.getDisplayName(), |
39 | | - userExperience.getLevel(), |
40 | | - userExperience.getXp(), |
41 | | - userExperience.getXpNextLevel()) |
42 | | - ); |
| 25 | + try { |
| 26 | + final String channel = user.getChannelName(); |
| 27 | + final FunixBotUserExperienceDTO userExperience = ChatExperience.getInstance().findExpByUserId(Integer.toString(user.getUserId())); |
| 28 | + |
| 29 | + if (userExperience == null) { |
| 30 | + funixBot.sendChatMessage(channel, String.format("%s n'a pas encore de niveau sur ce stream.", user.getDisplayName())); |
| 31 | + } else { |
| 32 | + funixBot.sendChatMessage(channel, String.format( |
| 33 | + "%s %s niveau %d (%d/%d)", |
| 34 | + TwitchEmotes.TWITCH_LOGO, |
| 35 | + user.getDisplayName(), |
| 36 | + userExperience.getLevel(), |
| 37 | + userExperience.getXp(), |
| 38 | + userExperience.getXpNextLevel()) |
| 39 | + ); |
| 40 | + } |
| 41 | + } catch (FunixBotException e) { |
| 42 | + log.error("Erreur !level command: {}", e.getMessage()); |
43 | 43 | } |
44 | 44 | } |
45 | 45 | } |
0 commit comments