I'm working on a plugin that will allow syncing redstone with the internet through the use of lecterns. I'm currently working on simplifying my code and making it easier to understand. Before, I just stored the location of the lectern and the player that "registered" the lectern of the plugin through the use of a writable/written book. While that worked, it did mean duplicating code through each event to check if the lectern has a book and it contains the correct data. I'm considering replacing the location with the Lectern object itself "org.bukkit.block.Lectern" and instead I'll store the Lectern inside the tracker class instance. To help explain, I have two classes for tracking lecterns. One is called LecternTrackers, which is a class designed to store a ConcurrentHashMap<Location, LecternTracker> and the other class is LecternTracker, which stores information on the lectern itself. This includes the player's uuid that "registered" the lectern (so I can apply settings based on user preferences), the last known redstone power level (to prevent spamming the MQTT server with the same redstone level and instead only send an update when the level changes), and the instance of the MQTT client used to send/receive data about redstone power levels. I specifically chose the lectern as it can send out an arbitrary redstone power level depending on what book page the lectern is flipped to, and using "lectern.getBlock().getBlockPower()", I can get the power level being sent into the lectern. Now, what I want to do is store the book's validation checking code in the LecternTracker instance so I can just have one location that can validate the lectern's book's metadata instead of copying the same 15-20 lines of code into each event that tracks the lectern. The events I'm referring to are PlayerInteractEvent and BlockPhysicsEvent. I can use PlayerInteractEvent to track when a player right clicks a book into the lectern so a new lectern can be registered without forcing the player to block update it. I use BlockPhysicsEvent to detect when the redstone power level changes as BlockRedstoneEvent doesn't get called for sending redstone signals into lecterns. So, my question is, what are the long term effects of storing the Lectern and other blocks in a class and then attempting to use them elsewhere (e.g. in another event)? Will unloading the chunk cause it to generate a null pointer, or what will happen? Thanks!