package com.bergerkiller.bukkit.common.reflection.classes;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
import net.minecraft.server.Block;
import net.minecraft.server.Explosion;
import com.bergerkiller.bukkit.common.reflection.ClassTemplate;
import com.bergerkiller.bukkit.common.reflection.FieldAccessor;
import com.bergerkiller.bukkit.common.reflection.MethodAccessor;
import com.bergerkiller.bukkit.common.reflection.SafeDirectField;
import com.bergerkiller.bukkit.common.reflection.NMSClassTemplate;
public class BlockRef {
public static final ClassTemplate<?> TEMPLATE = NMSClassTemplate.create("Block");
public static final FieldAccessor<String> name = TEMPLATE.getField("d");
public static final MethodAccessor<Void> dropNaturally = TEMPLATE.getMethod("dropNaturally", WorldRef.TEMPLATE.getType(), int.class, int.class, int.class, int.class, float.class, int.class);
public static final MethodAccessor<Void> ignite = TEMPLATE.getMethod("wasExploded", WorldRef.TEMPLATE.getType(), int.class, int.class, int.class, Explosion.class);
@Deprecated
public static final FieldAccessor<Integer> id = new SafeDirectField<Integer>() {
@Override
public Integer get(Object instance) {
return getBlockId(instance);
}
@Override
public boolean set(Object instance, Integer value) {
return false;
}
};
@Deprecated
public static int getBlockId(Object instance) {
return CraftMagicNumbers.getId((Block) instance);
}
}