Совет на счёт телепорта

В общем, беда в методе, которым я добавляю координаты порталов:
Код:
public static void addCoords(int dimId, BlockPos in, BlockPos out) {
    //System.out.println("Add coord to dim = " + dimId + "_" + in + "_" + out);
    portalCoord.clear();
    if (tag.hasKey(String.valueOf(dimId))) {
        portalCoord = gson.fromJson(tag.getString(String.valueOf(dimId)), HashMap.class);
    }
    if (!portalCoord.containsKey(in)) portalCoord.put(in, out);
    //System.out.println(portalCoord);
    tag.setString(String.valueOf(dimId), gson.toJson(portalCoord));
}

Почему-то при нескольких заходах из мира "1" в мир "2" хеш мепа дублируется... В смысле добавляет ещё позиции, хотя я и проверяю её на наличие оных, да ещё и чищу перед началом всего этого действа...
Что не так-то? О_о
Чо-т я в растерянности.
 
Попробую пованговать. Можанги забыли сделать equals/hashCode для BlockPos
 
А почему она проверяет? По методу equals(там ещё где-то hashCode сверкает). Вот тебе и можанги. Ищи тему у меня, можешь обойти с помощью guava
 
В общем, тем же gson-ом перегнал BlockPos в строку и вылетать перестало )))
[merge_posts_bbcode]Добавлено: 23.07.2016 21:39:28[/merge_posts_bbcode]

О! И даже дата сохраняться начала )))
Видимо, она и тогда сохранялась, просто не читалась...

А вот теперь самый глупый вопрос:
всё-таки, когда ворлд дату нужно грузить?
Сейчас я это делаю каждый раз, когда срабатывает телепорт... Ну, или когда он уничтожается, чтобы почистить лишние координаты...

Это верно или правильнее запихнуть её в какой-нибудь эвент загрузки мира и грузить единожды за игру?
Правда, тогда не понятно, как её добывать.
 
Назад
Сверху