Не сохраняется класс

Статус
Закрыто для дальнейших ответов.

Akultist

Активный участник
Пользователь
Баллы
46
Имя в Minecraft
Name
Здравствуйте. У меня есть статическая мапа с интами и классами минигейма. При включении сервера я создаю новые экземпляры класса минигейм и помещаю их в эту мапу.
Когда сервер обращается к этой мапе он проверяет есть ли в мапе этот инт. Проверка проходит успешно. Но вот переменные которые там были не сохраняются. Просто при обращение как будто создается новый экземпляр класса.. Я чекнул на хэш код эти классы и при каждом новом обращении у них разные хеш коды. Помогите, как мне хранить эти минигеймы с интами (int для того кто не понял) что-бы все переменные сохранялись?
 
Код кидай, мы не ванги.
ну я же вроде всё расписал..
Мапа -
Код:
public static Map<Integer, MiniGame> mwMap = new HashMap<>();
Метод регистрации при включении -
Код:
private void register()
    {
        ConfigManager arena = new ConfigManager("arena", Main.getInstance());

        if (arena.getString("arena") != null)
        {
            for (String arenas: arena.getCS("arena").getKeys(false))
            {
                mwMap.put(Integer.parseInt(arenas), new MiniGame(Integer.parseInt(arenas)));
            }
        }
    }
Присоединение игрока -
Код:
public void connectGame(Player p)
    {
        if (!mwMap.containsKey(id))
            return;
       
        MiniGame mw = mwMap.get(id);
        if (mw.isStartGame() || mw.getJoin() != TypeJoin.STARTING)
        {
            if (mw.getJoin() == TypeJoin.STARTING_MAX)
            {
                p.sendMessage(Main.prefix + "Идет отсчет!");
                return;
            }
           
            p.sendMessage("Игра уже началась!");
            return;
        }
       
        GameJoinEvent event = new GameJoinEvent(id, GameEvent.mwSignMap.get(id), this, p);
        Bukkit.getPluginManager().callEvent(event);
       
        if (event.isCancelled())
        {
            return;
        }
       
        mw.joinPlayer(p);
    }
Метод в другом классе -
Код:
public void joinPlayer(Player p)
    {
        if (join == TypeJoin.STARTING)
        {  
            GameJoinEvent join = new GameJoinEvent(id, null, new GameManager(id), p);
            if (join.isCancelled())
            {
                return;
            }
           
            players.add(p);
           
            sendMessage("actionbar", Main.prefix + "Игрок: &c" + p.getName() + " &rприсоединился! &7[&f&l" + getSize() + " &6&l: &f&l" + maxPlayers + "&7&l]");
        } else {
            if (join == TypeJoin.END || join == TypeJoin.STARTING_MAX)
            {
                return;
            } else {
               
                players.add(p);
                spectator.add(p);
                p.sendMessage(Main.prefix + "Вы успешно присоединились к игре: §c" + id);
            }
        }
    }
 
Я пока ещё не понял ошибку, но спрошу:
В этом месте ты создаёшь эвент, но ты его не кидаешь.
p277BzYsol0qR2.png
 
Я пока ещё не понял ошибку, но спрошу:
В этом месте ты создаёшь эвент, но ты его не кидаешь.
p277BzYsol0qR2.png
Ой, и вправду забыл .. Но сильно ничего это не поменяло. Ошибки нет. Прочитай проблему ещё раз. P.S - экземпляр класса не сохраняется в мапе. Например добавился один игрок переменные новые, и.т.д как-будто создается новый класс хотя вроде он сохранен в мапе
 
Я пока ещё не понял ошибку, но спрошу:
В этом месте ты создаёшь эвент, но ты его не кидаешь.
p277BzYsol0qR2.png
Конечно можно сделать в классе мини игры статическую мапу с ключом int и значением arraylist<player> но это как-то не гуманно(( Целый день пытаюсь найти решение, ничего не попадается.
 
Давай по другому.
Опиши мне по пунктам все действия аля:
1. Типо игрок зашёл на сервер
2. Игрок сделал то та
3. игрок принят в команду, его класс должен сохранился в мапу.

Опиши то, что ты хочешь сделать и акцентируй внимание на том, что не работает. Просто либо я дебил, либо у тебя не получилось описать проблему.
 
mwMap.put(Integer.parseInt(arenas), new MiniGame(Integer.parseInt(arenas)));
Возникает вопрос, зачем тебе мапа с интом и классом игры, если у тебя и так этот инт хранится в нём. Можно сделать и через List<MiniGame>.
 
Возникает вопрос, зачем тебе мапа с интом и классом игры, если у тебя и так этот инт хранится в нём. Можно сделать и через List<MiniGame>.
этот int - id игры. По нему я беру класс. Тобишь например ид 1 - я беру определенный класс там где все описано под игру 1.
 
Давай по другому.
Опиши мне по пунктам все действия аля:
1. Типо игрок зашёл на сервер
2. Игрок сделал то та
3. игрок принят в команду, его класс должен сохранился в мапу.

Опиши то, что ты хочешь сделать и акцентируй внимание на том, что не работает. Просто либо я дебил, либо у тебя не получилось описать проблему.
Сейчас видео сделаю.
 
Давай по другому.
Опиши мне по пунктам все действия аля:
1. Типо игрок зашёл на сервер
2. Игрок сделал то та
3. игрок принят в команду, его класс должен сохранился в мапу.

Опиши то, что ты хочешь сделать и акцентируй внимание на том, что не работает. Просто либо я дебил, либо у тебя не получилось описать проблему.


P.S все методы сделаны на быструю руку для теста, так что не обращайте внимания на код.
 
Я так понимаю с этой темы тоже много не получу..
 
ГосПоди, Вы можете вдумчиво проблему, и тему прочитать? И видео заодно посмотреть?
Ещё раз:
Опиши мне по пунктам все действия аля:
1. Типо игрок зашёл на сервер
2. Игрок сделал то та
3. игрок принят в команду, его класс должен сохранился в мапу.
По-русски, что тебе необходимо в результате получить? Без терминов, интов, классов и так далее.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх