--- ../src-base/minecraft/net/minecraft/tileentity/TileEntityBeacon.java
+++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityBeacon.java
@@ -178,7 +178,7 @@
                     {
                         Block block = this.field_145850_b.func_180495_p(new BlockPos(l1, k1, j1)).func_177230_c();
 
-                        if (block != Blocks.field_150475_bE && block != Blocks.field_150340_R && block != Blocks.field_150484_ah && block != Blocks.field_150339_S)
+                        if (!block.isBeaconBase(this.field_145850_b, new BlockPos(l1, k1, j1), func_174877_v()))
                         {
                             flag1 = false;
                             break;
@@ -363,7 +363,7 @@
 
     public boolean func_94041_b(int p_94041_1_, ItemStack p_94041_2_)
     {
-        return p_94041_2_.func_77973_b() == Items.field_151166_bC || p_94041_2_.func_77973_b() == Items.field_151045_i || p_94041_2_.func_77973_b() == Items.field_151043_k || p_94041_2_.func_77973_b() == Items.field_151042_j;
+        return p_94041_2_.func_77973_b() != null && p_94041_2_.func_77973_b().isBeaconPayment(p_94041_2_);
     }
 
     public String func_174875_k()
