Fail fast on attempt to load drives in illegal state
This commit is contained in:
parent
ad93ff58fb
commit
9a72ceeeb4
@ -9,6 +9,7 @@ import net.minecraft.world.level.block.entity.BlockEntity
|
||||
import net.minecraft.world.level.block.state.BlockState
|
||||
import net.minecraftforge.common.capabilities.Capability
|
||||
import net.minecraftforge.common.util.LazyOptional
|
||||
import ru.dbotthepony.mc.otm.SERVER_IS_DYING
|
||||
import ru.dbotthepony.mc.otm.block.CableBlock
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||
import ru.dbotthepony.mc.otm.graph.Graph6Node
|
||||
@ -54,12 +55,16 @@ class MatterCableBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) :
|
||||
|
||||
override fun onNeighbour(node: Graph6Node<*>, direction: Direction) {
|
||||
val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[direction.ordinal], true)
|
||||
if (newState !== blockState) level!!.setBlock(blockPos, newState, Block.UPDATE_CLIENTS)
|
||||
|
||||
if (newState !== blockState && !SERVER_IS_DYING)
|
||||
level!!.setBlock(blockPos, newState, Block.UPDATE_CLIENTS)
|
||||
}
|
||||
|
||||
override fun onUnNeighbour(node: Graph6Node<*>, direction: Direction) {
|
||||
val newState = blockState.setValue(CableBlock.MAPPING_CONNECTION_PROP[direction.ordinal], false)
|
||||
if (newState !== blockState) level!!.setBlock(blockPos, newState, Block.UPDATE_CLIENTS)
|
||||
|
||||
if (newState !== blockState && !SERVER_IS_DYING)
|
||||
level!!.setBlock(blockPos, newState, Block.UPDATE_CLIENTS)
|
||||
}
|
||||
|
||||
override fun setRemoved() {
|
||||
|
@ -17,6 +17,7 @@ import net.minecraftforge.event.server.ServerAboutToStartEvent
|
||||
import net.minecraftforge.event.server.ServerStoppingEvent
|
||||
import net.minecraftforge.event.world.WorldEvent
|
||||
import org.apache.logging.log4j.LogManager
|
||||
import ru.dbotthepony.mc.otm.SERVER_IS_DYING
|
||||
import java.io.File
|
||||
import java.lang.ref.WeakReference
|
||||
import java.util.ArrayList
|
||||
@ -53,6 +54,9 @@ object DrivePool {
|
||||
if (!isLegalAccess())
|
||||
throw IllegalAccessException("Can not access drive pool from outside of server thread.")
|
||||
|
||||
if (SERVER_IS_DYING)
|
||||
throw IllegalStateException("Fail-fast: Server is shutting down")
|
||||
|
||||
val get = pool[id]
|
||||
|
||||
if (get != null) {
|
||||
@ -88,6 +92,9 @@ object DrivePool {
|
||||
if (!isLegalAccess())
|
||||
throw IllegalAccessException("Can not access drive pool from outside of server thread.")
|
||||
|
||||
if (SERVER_IS_DYING)
|
||||
throw IllegalStateException("Fail-fast: Server is shutting down")
|
||||
|
||||
pool[id] = WeakDriveReference(drive)
|
||||
}
|
||||
|
||||
@ -96,6 +103,9 @@ object DrivePool {
|
||||
if (!isLegalAccess())
|
||||
throw IllegalAccessException("Can not access drive pool from outside of server thread.")
|
||||
|
||||
if (SERVER_IS_DYING)
|
||||
throw IllegalStateException("Fail-fast: Server is shutting down")
|
||||
|
||||
pool[id]?.access()
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user