Fix blocks without menu still behaving like being interacted with clientside
This commit is contained in:
parent
140bdab59c
commit
af24f391df
@ -16,7 +16,6 @@ import net.minecraft.network.chat.Component
|
|||||||
import net.minecraft.network.chat.ComponentSerialization
|
import net.minecraft.network.chat.ComponentSerialization
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.util.RandomSource
|
import net.minecraft.util.RandomSource
|
||||||
import net.minecraft.world.Containers
|
|
||||||
import net.minecraft.world.InteractionResult
|
import net.minecraft.world.InteractionResult
|
||||||
import net.minecraft.world.MenuProvider
|
import net.minecraft.world.MenuProvider
|
||||||
import net.minecraft.world.entity.LivingEntity
|
import net.minecraft.world.entity.LivingEntity
|
||||||
@ -36,8 +35,6 @@ import net.minecraft.world.phys.shapes.VoxelShape
|
|||||||
import org.apache.logging.log4j.LogManager
|
import org.apache.logging.log4j.LogManager
|
||||||
import ru.dbotthepony.mc.otm.block.entity.IRedstoneControlled
|
import ru.dbotthepony.mc.otm.block.entity.IRedstoneControlled
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryDeviceBlockEntity
|
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryDeviceBlockEntity.Companion
|
|
||||||
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.WorkerState
|
||||||
import ru.dbotthepony.mc.otm.core.TooltipList
|
import ru.dbotthepony.mc.otm.core.TooltipList
|
||||||
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
||||||
@ -149,6 +146,9 @@ open class MatteryBlock(properties: Properties = DEFAULT_PROPERTIES) : Block(pro
|
|||||||
return getShapeForEachState(ArrayList(stateDefinition.properties), mapper)
|
return getShapeForEachState(ArrayList(stateDefinition.properties), mapper)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected open val neverOpensAMenu: Boolean
|
||||||
|
get() = false
|
||||||
|
|
||||||
override fun useWithoutItem(
|
override fun useWithoutItem(
|
||||||
blockState: BlockState,
|
blockState: BlockState,
|
||||||
level: Level,
|
level: Level,
|
||||||
@ -156,18 +156,17 @@ open class MatteryBlock(properties: Properties = DEFAULT_PROPERTIES) : Block(pro
|
|||||||
ply: Player,
|
ply: Player,
|
||||||
blockHitResult: BlockHitResult
|
blockHitResult: BlockHitResult
|
||||||
): InteractionResult {
|
): InteractionResult {
|
||||||
if (this is EntityBlock && !level.isClientSide) {
|
if (!neverOpensAMenu && this is EntityBlock) {
|
||||||
val tile = level.getBlockEntity(blockPos)
|
val tile = level.getBlockEntity(blockPos)
|
||||||
|
|
||||||
if (tile is MenuProvider) {
|
if (tile is MenuProvider) {
|
||||||
ply.openMenu(tile)
|
if (!level.isClientSide)
|
||||||
return InteractionResult.CONSUME
|
ply.openMenu(tile)
|
||||||
|
|
||||||
|
return InteractionResult.sidedSuccess(level.isClientSide)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this is EntityBlock && level.isClientSide)
|
|
||||||
return InteractionResult.SUCCESS
|
|
||||||
|
|
||||||
return super.useWithoutItem(blockState, level, blockPos, ply, blockHitResult)
|
return super.useWithoutItem(blockState, level, blockPos, ply, blockHitResult)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user