Нужно ставить блок если зажат Shift. В противном случае заменять блок на который нажали первым блоком.
Я сделал так: в классе блока в методе canPlaceBlockAt написал if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) return false; else true;
А в событии PlayerInteractEvent.RightClickBlock написал чтобы блок ставился если шифта нет и в руке предмет блока. Но вот проблема : блок не заменяется а либо быстро изменяется и обратно либо создается невидимый блок, который после перезапуска становится прежним блоком. Писал через world.setBlockState. Если делать тоже самое, но проверять что в руке, например , яблоко , то все работает. Я думаю что может быть этот блок заменяется только на клиенте.
Или тут совсем другая ошибка?
Я сделал так: в классе блока в методе canPlaceBlockAt написал if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) return false; else true;
А в событии PlayerInteractEvent.RightClickBlock написал чтобы блок ставился если шифта нет и в руке предмет блока. Но вот проблема : блок не заменяется а либо быстро изменяется и обратно либо создается невидимый блок, который после перезапуска становится прежним блоком. Писал через world.setBlockState. Если делать тоже самое, но проверять что в руке, например , яблоко , то все работает. Я думаю что может быть этот блок заменяется только на клиенте.
Или тут совсем другая ошибка?