SPIGOT-3936: Add isInteractable to Material

This commit is contained in:
Christos Miniotis 2018-08-02 15:26:02 +03:00 committed by md_5
parent 391e018a79
commit 5d489ff4ee

View File

@ -26,7 +26,12 @@ import org.junit.runners.Parameterized.Parameters;
import com.google.common.collect.Lists;
import java.util.Map;
import net.minecraft.server.Block;
import net.minecraft.server.BlockPosition;
import net.minecraft.server.Blocks;
import net.minecraft.server.EntityHuman;
import net.minecraft.server.EnumDirection;
import net.minecraft.server.EnumHand;
import net.minecraft.server.IBlockData;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
import org.bukkit.enchantments.EnchantmentTarget;
@ -198,4 +203,16 @@ public class PerMaterialTest extends AbstractTestingBase {
assertThat(material.isItem(), is(equalTo(CraftMagicNumbers.getItem(material) != null)));
}
}
@Test
public void testInteractable() throws ReflectiveOperationException {
if (material.isBlock()) {
assertThat(material.isInteractable(),
is(!CraftMagicNumbers.getBlock(material).getClass()
.getMethod("interact", IBlockData.class, net.minecraft.server.World.class, BlockPosition.class, EntityHuman.class, EnumHand.class, EnumDirection.class, float.class, float.class, float.class)
.getDeclaringClass().equals(Block.class)));
} else {
assertFalse(material.isInteractable());
}
}
}