mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-01 00:10:32 +01:00
89d51d5f29
Because this exploit has been widely known for years and has not been fixed by Mojang, we decided that it was worth allowing people to toggle it on/off due to how easy it is to make it configurable. It should be noted that this decision does not promise all future exploits will be configurable.
83 lines
3.7 KiB
Diff
83 lines
3.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Tue, 7 Jul 2020 10:52:34 -0700
|
|
Subject: [PATCH] More World API
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
index 9d44a2ce6da1b6338e5a1aaa9238483b64c9a34f..c90cbf4681e1c57fcec553b01d99a26316f896e5 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
@@ -2110,6 +2110,53 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
|
return new CraftStructureSearchResult(CraftStructure.minecraftToBukkit(found.getSecond().value()), CraftLocation.toBukkit(found.getFirst(), this));
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public boolean isUltrawarm() {
|
|
+ return getHandle().dimensionType().ultraWarm();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double getCoordinateScale() {
|
|
+ return getHandle().dimensionType().coordinateScale();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean hasSkylight() {
|
|
+ return getHandle().dimensionType().hasSkyLight();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean hasBedrockCeiling() {
|
|
+ return getHandle().dimensionType().hasSkyLight();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean doesBedWork() {
|
|
+ return getHandle().dimensionType().bedWorks();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean doesRespawnAnchorWork() {
|
|
+ return getHandle().dimensionType().respawnAnchorWorks();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isFixedTime() {
|
|
+ return getHandle().dimensionType().hasFixedTime();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public Collection<org.bukkit.Material> getInfiniburn() {
|
|
+ return com.google.common.collect.Sets.newHashSet(com.google.common.collect.Iterators.transform(net.minecraft.core.registries.BuiltInRegistries.BLOCK.getTagOrEmpty(this.getHandle().dimensionType().infiniburn()).iterator(), blockHolder -> CraftBlockType.minecraftToBukkit(blockHolder.value())));
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void sendGameEvent(Entity sourceEntity, org.bukkit.GameEvent gameEvent, Vector position) {
|
|
+ getHandle().gameEvent(sourceEntity != null ? ((CraftEntity) sourceEntity).getHandle(): null, net.minecraft.core.registries.BuiltInRegistries.GAME_EVENT.get(org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(gameEvent.getKey())), org.bukkit.craftbukkit.util.CraftVector.toBlockPos(position));
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
@Override
|
|
public BiomeSearchResult locateNearestBiome(Location origin, int radius, Biome... biomes) {
|
|
return this.locateNearestBiome(origin, radius, 32, 64, biomes);
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftVector.java b/src/main/java/org/bukkit/craftbukkit/util/CraftVector.java
|
|
index 3071ac1ac0e733d73dade49597a39f7d156bbc04..967445b2eb158454100a27369a1f463d69f54f27 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftVector.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftVector.java
|
|
@@ -12,4 +12,13 @@ public final class CraftVector {
|
|
public static net.minecraft.world.phys.Vec3 toNMS(org.bukkit.util.Vector bukkit) {
|
|
return new net.minecraft.world.phys.Vec3(bukkit.getX(), bukkit.getY(), bukkit.getZ());
|
|
}
|
|
+ // Paper start
|
|
+ public static org.bukkit.util.Vector toBukkit(net.minecraft.core.BlockPos blockPosition) {
|
|
+ return new org.bukkit.util.Vector(blockPosition.getX(), blockPosition.getY(), blockPosition.getZ());
|
|
+ }
|
|
+
|
|
+ public static net.minecraft.core.BlockPos toBlockPos(org.bukkit.util.Vector bukkit) {
|
|
+ return net.minecraft.core.BlockPos.containing(bukkit.getX(), bukkit.getY(), bukkit.getZ());
|
|
+ }
|
|
+ // Paper end
|
|
}
|