Замена блока другим блоком при поломке

Версия Minecraft
1.10.2
Нужно сделать так, чтобы когда блок ломался, то запускался таймер (или что-то вроде такого) с рандомным временем и заменялся другим. Каким образом это лучше всего осуществить? Были идеи с потоками, но думаю они будут сильно нагружать сервер.
 
Agravaine написал(а):
Лист с координатами и временем, каждый тик уменшаешь и все

А как блок заменить? Я когда беру world.setBlock(pos, new BlockMineIronOre.getDefaultState()) то у меня блок не ломается в следующий раз, без звука исчезает.
 
Dahaka написал(а):
Ты только на клиенте, наверное, поставил.
И что это за монстр new BlockMineIronOre.getDefaultState()?

Ну, вот такую шнягу сделал: 
Код:
public void onBlockDestroyedByPlayer(final World worldIn, final BlockPos pos, IBlockState state) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
                worldIn.setBlockState(pos, new BlockMineIronOre().getDefaultState());
            }
        }
    }).start();
}

А BlockMineIronOre - этой мой блок, который должен при поломке возобновляться (типо железную руду сломал, а она через некоторое время появится)
 
Зачем ты создаешь новый блок?
Зачем тебе какой-то новый стэйт? У тебя в аргументах есть state. Устанавливай его же.
Удали этот поток-костыль и сделай через Scheduler. Кажется, его уже добавили в 1.10.2. Что-то подобное должно быть. FMLCommonHandler.instance().getMinecraftServerInstance().addScheduledTask

А, нет, там тики нельзя указывать. Говно.
 
Назад
Сверху