Помогите Добавление к игроку чисел

  • Автор темы Автор темы jusik
  • Дата начала Дата начала

jusik

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Jusik
Как мне добавить к игроку 2 типа чисел и что бы после перезапуска сервера они сохранялись. В конфигах и HashMap не шарю по этому и прошу у вас помощи. Просто скажите где лучше и ссылочку где про это пишут.
 
Писал с планшета, поэтому может где-то ошибся
Код:
Set<Stats> stats = new HashSet<Stats>();

public void addPlayer (Player player) {
    Stats stat = getStatsByPlayer (player);
    if (stat == null) {
        return;
    }
    stat.addChislo1();
}

public Stats getStatsByPlayer (Player player) {
    for (Stats stat : stats)
        if (stts.getPlayer ().equals (player))
            return stat;
    return null;
}

public class Stats {

    private Player player;
    private int chislo1;
    private int chislo2;
    
    public Stats (Player player) {
        this.player = player;
    }

    public void addChislo1 () {
        chislo1++;
    }

    public void addChislo2 () {
        chislo2++;
    }

    public Player getPlayer () {
        player;
    }
}
 
Писал с планшета, поэтому может где-то ошибся
Код:
Set<Stats> stats = new HashSet<Stats>();

public void addPlayer (Player player) {
    Stats stat = getStatsByPlayer (player);
    if (stat == null) {
        return;
    }
    stat.addChislo1();
}

public Stats getStatsByPlayer (Player player) {
    for (Stats stat : stats)
        if (stts.getPlayer ().equals (player))
            return stat;
    return null;
}

public class Stats {

    private Player player;
    private int chislo1;
    private int chislo2;
   
    public Stats (Player player) {
        this.player = player;
    }

    public void addChislo1 () {
        chislo1++;
    }

    public void addChislo2 () {
        chislo2++;
    }

    public Player getPlayer () {
        player;
    }
}
Ага, ошибся. В хранении Player.
 
Мм, чем тебе не нравится?
Может быть из-за этого (а может и нет) (Писал @Shevchik в теме Помощь новичкам..):
Дело в том что Player - нестабильный объект. Очень много вещей внутри NMS, тупо делают клон объекта и забивают на старый. И хоть баккит пытается в такие моменты переприсваивть Player чтобы он оставался валидным, это всё равно выйдет вам боком, а вы будете искать странный баг который появляется очень, очень редко.

А этот объект ещё и тянет за собой кучу ссылок, так что в итоге мы помимо багов можем получить ещё и остров занятой фигней памяти.
 
Назад
Верх