From 2bf205d5f9897be58435c19e1bd930c59c9dd423 Mon Sep 17 00:00:00 2001 From: Thinkofdeath Date: Thu, 3 Apr 2014 10:50:48 +0100 Subject: [PATCH] Fixed mob spawners being treated as solid blocks for the orebfuscator Mob spawners are treated as solid blocks as far as the game is concerned for lighting and other tasks but for rendering they can be seen through, therefor we special case them so that the antixray doesn't show the fake blocks around them. --- CraftBukkit-Patches/0066-Orebfuscator.patch | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/CraftBukkit-Patches/0066-Orebfuscator.patch b/CraftBukkit-Patches/0066-Orebfuscator.patch index 4c5ab8bb9b..0ae68b4c44 100644 --- a/CraftBukkit-Patches/0066-Orebfuscator.patch +++ b/CraftBukkit-Patches/0066-Orebfuscator.patch @@ -1,4 +1,4 @@ -From 843082121ed14c89160bebea30de24837bcc8f2b Mon Sep 17 00:00:00 2001 +From 149f988a0165f036934d7f0fd527404b5a53a224 Mon Sep 17 00:00:00 2001 From: md_5 Date: Thu, 16 May 2013 18:51:05 +1000 Subject: [PATCH] Orebfuscator @@ -128,15 +128,16 @@ index cbb4e77..106f27a 100644 public void b(int i, int j, int k, Block block, int l) { diff --git a/src/main/java/org/spigotmc/AntiXray.java b/src/main/java/org/spigotmc/AntiXray.java new file mode 100644 -index 0000000..3853903 +index 0000000..8e69bff --- /dev/null +++ b/src/main/java/org/spigotmc/AntiXray.java -@@ -0,0 +1,202 @@ +@@ -0,0 +1,212 @@ +package org.spigotmc; + +import gnu.trove.set.TByteSet; +import gnu.trove.set.hash.TByteHashSet; +import net.minecraft.server.Block; ++import net.minecraft.server.Blocks; +import net.minecraft.server.World; + +public class AntiXray @@ -324,7 +325,7 @@ index 0000000..3853903 + + private static boolean hasTransparentBlockAdjacent(World world, int x, int y, int z, int radius) + { -+ return !world.getType(x, y, z).r() /* isSolidBlock */ ++ return !isSolidBlock(world.getType(x, y, z)) /* isSolidBlock */ + || ( radius > 0 + && ( hasTransparentBlockAdjacent( world, x + 1, y, z, radius - 1 ) + || hasTransparentBlockAdjacent( world, x - 1, y, z, radius - 1 ) @@ -333,6 +334,15 @@ index 0000000..3853903 + || hasTransparentBlockAdjacent( world, x, y, z + 1, radius - 1 ) + || hasTransparentBlockAdjacent( world, x, y, z - 1, radius - 1 ) ) ); + } ++ ++ private static boolean isSolidBlock(Block block) { ++ // Mob spawners are treated as solid blocks as far as the ++ // game is concerned for lighting and other tasks but for ++ // rendering they can be seen through therefor we special ++ // case them so that the antixray doesn't show the fake ++ // blocks around them. ++ return block.r() && block != Blocks.MOB_SPAWNER; ++ } +} diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java index 2ec047c..2c0501d 100644