Fix lectern logging

Fixes #761
This commit is contained in:
Brokkonaut
2019-07-09 03:42:33 +02:00
parent e8aaadf37b
commit 6f4ce7e6d0
3 changed files with 20 additions and 5 deletions

View File

@ -34,7 +34,11 @@ public class BlockStateCodecLectern implements BlockStateCodec {
if (conf != null) {
book = conf.getItemStack("book");
}
lectern.getSnapshotInventory().setItem(0, book);
try {
lectern.getSnapshotInventory().setItem(0, book);
} catch (NullPointerException e) {
//ignored
}
}
}

View File

@ -29,10 +29,18 @@ public class LecternLogging extends LoggingListener {
if (before.getType() == Material.LECTERN && after.getType() == Material.LECTERN) {
Lectern lecternBefore = (Lectern) before.getBlock().getState();
ItemStack book = lecternBefore.getSnapshotInventory().getItem(0);
lecternBefore.getSnapshotInventory().setItem(0, null);
try {
lecternBefore.getSnapshotInventory().setItem(0, null);
} catch (NullPointerException e) {
//ignored
}
lecternBefore.setBlockData(before.getBlockData());
consumer.queueBlockReplace(Actor.actorFromEntity(event.getPlayer()), lecternBefore, after);
lecternBefore.getSnapshotInventory().setItem(0, book);
try {
lecternBefore.getSnapshotInventory().setItem(0, book);
} catch (NullPointerException e) {
//ignored
}
}
}
}
@ -43,7 +51,11 @@ public class LecternLogging extends LoggingListener {
if (wcfg != null && wcfg.isLogging(Logging.LECTERNBOOKCHANGE)) {
Lectern oldState = event.getLectern();
Lectern newState = (Lectern) oldState.getBlock().getState();
newState.getSnapshotInventory().setItem(0, null);
try {
newState.getSnapshotInventory().setItem(0, null);
} catch (NullPointerException e) {
//ignored
}
org.bukkit.block.data.type.Lectern oldBlockData = (org.bukkit.block.data.type.Lectern) oldState.getBlockData();
org.bukkit.block.data.type.Lectern blockData = (org.bukkit.block.data.type.Lectern) Material.LECTERN.createBlockData();
blockData.setFacing(oldBlockData.getFacing());

View File

@ -327,7 +327,6 @@ public class BukkitUtils {
containerBlocks.add(Material.BARREL);
containerBlocks.add(Material.BLAST_FURNACE);
containerBlocks.add(Material.SMOKER);
containerBlocks.add(Material.LECTERN);
// Doesn't actually have a block inventory
// containerBlocks.add(Material.ENDER_CHEST);