mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-22 18:45:54 +01:00
36 lines
2.1 KiB
Diff
36 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Mon, 13 Sep 2021 18:55:45 -0700
|
|
Subject: [PATCH] prevent unintended light block manipulation
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/LightBlock.java b/src/main/java/net/minecraft/world/level/block/LightBlock.java
|
|
index 6c3ca57a29d3c5ad1add1cf2f707b930dfc422ea..606c9b03cc69031faed33f437ca254f12224bb62 100644
|
|
--- a/src/main/java/net/minecraft/world/level/block/LightBlock.java
|
|
+++ b/src/main/java/net/minecraft/world/level/block/LightBlock.java
|
|
@@ -5,7 +5,9 @@ import java.util.function.ToIntFunction;
|
|
import net.minecraft.core.BlockPos;
|
|
import net.minecraft.core.Direction;
|
|
import net.minecraft.core.component.DataComponents;
|
|
+import net.minecraft.server.level.ServerLevel;
|
|
import net.minecraft.util.RandomSource;
|
|
+import net.minecraft.world.InteractionHand;
|
|
import net.minecraft.world.InteractionResult;
|
|
import net.minecraft.world.entity.player.Player;
|
|
import net.minecraft.world.item.ItemStack;
|
|
@@ -50,6 +52,14 @@ public class LightBlock extends Block implements SimpleWaterloggedBlock {
|
|
builder.add(LEVEL, WATERLOGGED);
|
|
}
|
|
|
|
+ // Paper start - prevent unintended light block manipulation
|
|
+ @Override
|
|
+ protected InteractionResult useItemOn(ItemStack stack, BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
|
|
+ if (player.getItemInHand(hand).getItem() != Items.LIGHT || (world instanceof final ServerLevel serverLevel && !player.mayInteract(serverLevel, pos)) || !player.mayUseItemAt(pos, hit.getDirection(), player.getItemInHand(hand))) { return net.minecraft.world.InteractionResult.PASS; } // Paper - Prevent unintended light block manipulation
|
|
+ return super.useItemOn(stack, state, world, pos, player, hand, hit);
|
|
+ }
|
|
+ // Paper end - prevent unintended light block manipulation
|
|
+
|
|
@Override
|
|
protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) {
|
|
if (!world.isClientSide && player.canUseGameMasterBlocks()) {
|