public void unregisterSelfTrigger(Location location, UnregisterReason reason) {
if(thinkingMechanics.isEmpty()) return; //Skip the checks this round. Save a little CPU with the array creation.
if(!thinkingMechanics.contains(location)) return;
SelfTriggerUnregisterEvent event = new SelfTriggerUnregisterEvent(location.getBlock(), reason);
Bukkit.getServer().getPluginManager().callEvent(event);
if(!event.isCancelled()) {
hasChanged = true;
thinkingMechanics.remove(location);
CraftBookPlugin.logDebugMessage("Unregistered ST at: " + location.toString() + " for reason: " + reason.name(), "st.unregister");
}
}