49 lines
1.8 KiB
Java
49 lines
1.8 KiB
Java
|
package net.minecraft.world.level.block;
|
||
|
|
||
|
import com.mojang.serialization.MapCodec;
|
||
|
import javax.annotation.Nullable;
|
||
|
import net.minecraft.core.BlockPos;
|
||
|
import net.minecraft.world.InteractionResult;
|
||
|
import net.minecraft.world.entity.player.Player;
|
||
|
import net.minecraft.world.level.Level;
|
||
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||
|
import net.minecraft.world.level.block.entity.TestInstanceBlockEntity;
|
||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||
|
import net.minecraft.world.level.block.state.BlockState;
|
||
|
import net.minecraft.world.phys.BlockHitResult;
|
||
|
|
||
|
public class TestInstanceBlock extends BaseEntityBlock implements GameMasterBlock {
|
||
|
public static final MapCodec<TestInstanceBlock> CODEC = simpleCodec(TestInstanceBlock::new);
|
||
|
|
||
|
public TestInstanceBlock(BlockBehaviour.Properties p_391747_) {
|
||
|
super(p_391747_);
|
||
|
}
|
||
|
|
||
|
@Nullable
|
||
|
@Override
|
||
|
public BlockEntity newBlockEntity(BlockPos p_392576_, BlockState p_397359_) {
|
||
|
return new TestInstanceBlockEntity(p_392576_, p_397359_);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
protected InteractionResult useWithoutItem(BlockState p_391894_, Level p_393283_, BlockPos p_395877_, Player p_396004_, BlockHitResult p_397949_) {
|
||
|
if (p_393283_.getBlockEntity(p_395877_) instanceof TestInstanceBlockEntity testinstanceblockentity) {
|
||
|
if (!p_396004_.canUseGameMasterBlocks()) {
|
||
|
return InteractionResult.PASS;
|
||
|
} else {
|
||
|
if (p_396004_.getCommandSenderWorld().isClientSide) {
|
||
|
p_396004_.openTestInstanceBlock(testinstanceblockentity);
|
||
|
}
|
||
|
|
||
|
return InteractionResult.SUCCESS;
|
||
|
}
|
||
|
} else {
|
||
|
return InteractionResult.PASS;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
protected MapCodec<TestInstanceBlock> codec() {
|
||
|
return CODEC;
|
||
|
}
|
||
|
}
|