forked from SteamWar/SteamWar
Use combinedIds to hide in TechHider.iBlockDataHidden
This commit is contained in:
@@ -49,10 +49,9 @@ public class TechHider {
|
|||||||
public static final Class<?> craftMagicNumbers = Reflection.getClass("org.bukkit.craftbukkit.util.CraftMagicNumbers");
|
public static final Class<?> craftMagicNumbers = Reflection.getClass("org.bukkit.craftbukkit.util.CraftMagicNumbers");
|
||||||
private static final Reflection.Method getBlockByMaterial = Reflection.getTypedMethod(craftMagicNumbers, "getBlock", block, Material.class);
|
private static final Reflection.Method getBlockByMaterial = Reflection.getTypedMethod(craftMagicNumbers, "getBlock", block, Material.class);
|
||||||
|
|
||||||
private static final Reflection.Method getBlockByBlockData = Reflection.getTypedMethod(iBlockData, null, block);
|
private static final Reflection.Method getCombinedIdByIBlockData = Reflection.getTypedMethod(block, null, int.class, iBlockData);
|
||||||
private static final Reflection.Method getMaterialByBlock = Reflection.getTypedMethod(craftMagicNumbers, "getMaterial", Material.class, block);
|
|
||||||
public boolean iBlockDataHidden(Object iBlockData) {
|
public boolean iBlockDataHidden(Object iBlockData) {
|
||||||
return obfuscate.contains((Material) getMaterialByBlock.invoke(null, getBlockByBlockData.invoke(iBlockData)));
|
return obfuscateIds.contains(getCombinedIdByIBlockData.invoke(null, iBlockData));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Object AIR = getBlockDataByBlock.invoke(getBlockByMaterial.invoke(null, Material.AIR));
|
public static final Object AIR = getBlockDataByBlock.invoke(getBlockByMaterial.invoke(null, Material.AIR));
|
||||||
@@ -66,15 +65,12 @@ public class TechHider {
|
|||||||
@Getter
|
@Getter
|
||||||
private final int obfuscationTargetId;
|
private final int obfuscationTargetId;
|
||||||
@Getter
|
@Getter
|
||||||
private final Set<Material> obfuscate;
|
|
||||||
@Getter
|
|
||||||
private final Set<Integer> obfuscateIds;
|
private final Set<Integer> obfuscateIds;
|
||||||
@Getter
|
@Getter
|
||||||
private final Set<String> hiddenBlockEntities;
|
private final Set<String> hiddenBlockEntities;
|
||||||
|
|
||||||
public TechHider(LocationEvaluator locationEvaluator, Material obfuscationTarget, Set<Material> obfuscate, Set<String> hiddenBlockEntities) {
|
public TechHider(LocationEvaluator locationEvaluator, Material obfuscationTarget, Set<Material> obfuscate, Set<String> hiddenBlockEntities) {
|
||||||
this.locationEvaluator = locationEvaluator;
|
this.locationEvaluator = locationEvaluator;
|
||||||
this.obfuscate = obfuscate;
|
|
||||||
this.obfuscateIds = obfuscate.stream().flatMap(m -> BlockIds.impl.materialToAllIds(m).stream()).collect(Collectors.toSet());
|
this.obfuscateIds = obfuscate.stream().flatMap(m -> BlockIds.impl.materialToAllIds(m).stream()).collect(Collectors.toSet());
|
||||||
this.hiddenBlockEntities = hiddenBlockEntities;
|
this.hiddenBlockEntities = hiddenBlockEntities;
|
||||||
this.obfuscationTarget = getBlockDataByBlock.invoke(getBlockByMaterial.invoke(null, obfuscationTarget));
|
this.obfuscationTarget = getBlockDataByBlock.invoke(getBlockByMaterial.invoke(null, obfuscationTarget));
|
||||||
|
|||||||
Reference in New Issue
Block a user