Привет! Я делаю систему квестов для своего сервера MineStom. Помоги реализовать некоторые методы.

package dev.okenote.v;

import dev.okenote.JediCraft;
import dev.okenote.database.User;
import dev.okenote.entities.player.JediPlayer;
import dev.okenote.items.JediItem;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.minestom.server.item.ItemComponent;
import net.minestom.server.item.ItemStack;

import java.util.*;

public class QuestManager {

    public final Map<String, Quest> quests = new HashMap<>();

    public void init() {
        addQuest("test",
                new Quest(Component.text("Конец?!"),
                        List.of(
                                Component.text("Удалите игру"),
                                Component.text("Снова и снова...")
                        ),
                        Component.text("Удалить игру"),
                        List.of(new QuestValue(Component.text("делит"), 1),
                                new QuestValue(Component.text("далит"), 5)),
                        List.of(new QuestReward("55$", 0),
                                new QuestReward("500EXP", 0),
                                new QuestReward("jetpack", 5)),
                        QuestDifficulty.IMPOSSIBLE, 1));
    }

    public void complete(JediPlayer jediPlayer, String techName) {
        User user = jediPlayer.getUser();
        
        if (user.getQuestComplete() == null) {
            user.setQuestComplete(techName + ", ");
        } else user.setQuestComplete(user.getQuestComplete() + techName + ", ");
    }

    public void updateQuestValue(JediPlayer jediPlayer, String techName, int parse, int value) {
        User user = jediPlayer.getUser();
        
        String questValue = user.getQuestValue();
        user.setQuestValue("");
    }

    public boolean isComplete(JediPlayer jediPlayer, String techName) {
        return true;
    }

    public int getQuestValue(JediPlayer jediPlayer, String techName, int parse) {
        return 1;
    }

    public void addQuest(String techName, Quest quest) {
        quests.put(techName, quest);
    }

    public List<Component> questItemLore(String playerQuestValue, String techName) {
        Quest quest = quests.get(techName);

        List<Component> lore = new ArrayList<>(quest.lore());

        lore.add(Component.text(""));

        lore.add(Component.text("Цели:", NamedTextColor.GOLD));

        lore.add(Component.text(" ").append(quest.goal()));

        for (QuestValue questValue : quest.questValues()) {
            Component line = Component.text(" - ")
                    .append(questValue.text())
                    .append(Component.text(": "))
                    .append(Component.text(playerQuestValue + "/" + questValue.value(), NamedTextColor.YELLOW));
            lore.add(line);
        }

        lore.add(Component.text(" "));

        lore.add(Component.text("Награды:", NamedTextColor.GREEN));

        for (QuestReward questReward : quest.questRewards()) {
            if (questReward.reward().endsWith("EXP")) {
                Component line = Component.text(" - " + questReward.reward(), NamedTextColor.DARK_AQUA);

                lore.add(line);
            }

            if (questReward.reward().endsWith("$")) {
                Component line = Component.text(" - " + questReward.reward(), NamedTextColor.GREEN);

                lore.add(line);
            }

            if (!questReward.reward().endsWith("$") || !questReward.reward().endsWith("EXP")) {
                JediItem jediItem = JediCraft.getJediCraft().getJediItem();

                ItemStack itemStack = jediItem.getServerItems().get(questReward.reward());

                Component itemName = itemStack.get(ItemComponent.CUSTOM_NAME);

                Component line = Component.text(" - ")
                        .append(Objects.requireNonNull(itemName))
                        .append(Component.text(" x"))
                        .append(Component.text(questReward.amount(), NamedTextColor.AQUA));
                lore.add(line);
            }
        }

        lore.add(Component.text(" "));

        lore.add(Component.text("Сложность: ", NamedTextColor.RED).append(quest.difficulty().getText()));

        return lore;
    }
}

    updateQuestValue, isComplete, getQuestValue эти методы нужно реализовать.

Метод isComplete, должен проверять, выполнен ли квест у игрока.
Как получить список выполненных квестов - jediPlayer.getUser().getQuestComplete() - возвращает String, в котором идёт перечисление выполненных квестов, в качестве разделителя используется ','
Метод updateQuestValue, должен обновлять определенное значение определенного квеста.
Как получить значения квестов игрока - jediPlayer.getUser().getQuestValue() - возвращает String, в котором идёт перечисление значений квестов, в качестве разделителя квестов используется так же ',' а в качестве разделителя значений и самого квеста, используется разделитель ':'
Метод getQuestValue, должен возвращать определенное значение определенного квеста.

Так же, в методе questItemLore передается объект playerQuestValue, это jediPlayer.getUser().getQuestValue() мы получаем текущее значение для того чтобы отобразить его в лоре, так же реализуй это правильно.

Пиши на русском языке.