mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-23 09:27:45 +01:00
8fd4e70db7
This is done by returning the center location of the chunk at the height of the input location when the target chunk isn't loaded already which is exact enough for most use cases and will get more precise once the player is close enough for the chunk being loaded anyways. As this might lead to less precise locations a config option to enable the sync loading of the chunks is provided.
42 lines
2.9 KiB
Diff
42 lines
2.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Anton Lindroth <ntoonio@gmail.com>
|
|
Date: Wed, 15 Apr 2020 01:54:02 +0200
|
|
Subject: [PATCH] Allow using signs inside spawn protection
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
index 7ddeecc6496926350d59d9b8725a4b161750f1e1..0dd0795af0d0deeff5637a2a1a4a165dec26af15 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -812,4 +812,9 @@ public class PaperWorldConfig {
|
|
fixWitherTargetingBug = getBoolean("fix-wither-targeting-bug", false);
|
|
log("Withers properly target players: " + fixWitherTargetingBug);
|
|
}
|
|
+
|
|
+ public boolean allowUsingSignsInsideSpawnProtection = false;
|
|
+ private void allowUsingSignsInsideSpawnProtection() {
|
|
+ allowUsingSignsInsideSpawnProtection = getBoolean("allow-using-signs-inside-spawn-protection", allowUsingSignsInsideSpawnProtection);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
|
index c68e56562076a2ca3d099a1112404f11a5473397..7d584e6d7b4e7b27ca0d51e0eb52a47169aa4b58 100644
|
|
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
|
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
|
@@ -143,6 +143,7 @@ import net.minecraft.world.level.GameRules;
|
|
import net.minecraft.world.level.IWorldReader;
|
|
import net.minecraft.world.level.World;
|
|
import net.minecraft.world.level.block.BlockCommand;
|
|
+import net.minecraft.world.level.block.BlockSign;
|
|
import net.minecraft.world.level.block.Blocks;
|
|
import net.minecraft.world.level.block.entity.TileEntity;
|
|
import net.minecraft.world.level.block.entity.TileEntityCommand;
|
|
@@ -1692,7 +1693,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
|
|
|
this.player.resetIdleTimer();
|
|
if (blockposition.getY() < this.minecraftServer.getMaxBuildHeight()) {
|
|
- if (this.teleportPos == null && this.player.h((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D) < 64.0D && worldserver.a((EntityHuman) this.player, blockposition)) {
|
|
+ if (this.teleportPos == null && this.player.h((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D) < 64.0D && (worldserver.a((EntityHuman) this.player, blockposition) || (worldserver.paperConfig.allowUsingSignsInsideSpawnProtection && worldserver.getType(blockposition).getBlock() instanceof BlockSign))) { // Paper
|
|
// CraftBukkit start - Check if we can actually do something over this large a distance
|
|
// Paper - move check up
|
|
this.player.clearActiveItem(); // SPIGOT-4706
|