Помогите Сохранение и восстановление дверей.

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

pro100koder

Активный участник
Пользователь
Баллы
76
Обшарил немного интернет, из того, что нашёл, сварил кашу качеством равным нулю. Нужно каждый раз, как игрок ставит блок двери, эта дверь сохранялась в ArrayList. При введении опред. команды, эти двери должны восстанавливаться. (Тип открытые двери закрыть, кстати, может быть можно просто каким-то методом их закрывать на координатах, и всё?) Короче, пытался их сохранять по-разному, вот то, на чём сейчас остановился...
Код:
public static ArrayList<Door> doors = new ArrayList<Door>();
@EventHandler
public void onSetblock(BlockPlaceEvent e){
Block block = e.getBlock();
        Player p = e.getPlayer();
        if(block.getType().equals(Material.WOODEN_DOOR)){
            p.sendMessage("Дверь.");
            Door door = (Door)block;
            doors.add(door);
            p.sendMessage(""+doors);
        }
}
В консоли ошибка, которая ругается на эту строчку: Door door = (Door)block;
Как пытаюсь ставить эту дверь:
Код:
for(int i=0; i<doors.size();i++){
            Door d = doors.get(i);
            Block b = (Block) d;
            BlockState state = b.getWorld().getBlockAt(b.getX(), b.getY(), b.getZ()).getState();
            b.getWorld().getBlockAt(b.getX(), b.getY(), b.getZ()).setType(b.getType());
            ((Door) b).setFacingDirection(d.getFacing());
            state.update();
        }
Хотя проблема всё-таки в сохранении...
 
Где в разделе, примерно неделю назад, была тема про двери, там вроде всё решили.
Нашёл ту тему, проблему решил. Сохраняю сам блок, потом при команде все сохр. блоки переводятся в двери, и им через цикл ставят setOpen(false);
 
Нашёл ту тему, проблему решил. Сохраняю сам блок, потом при команде все сохр. блоки переводятся в двери, и им через цикл ставят setOpen(false);
кинь ссылку, пусть тоже весит тут
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх