mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-27 07:36:46 +01:00
Fixed the NPE PlayerInteractEvent.
This commit is contained in:
parent
e9e7d462f7
commit
9eb5535c75
120
src/main/java/com/gmail/nossr50/BlockChecks.java
Normal file
120
src/main/java/com/gmail/nossr50/BlockChecks.java
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
package com.gmail.nossr50;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.config.LoadProperties;
|
||||||
|
|
||||||
|
public class BlockChecks {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks to see if a block type awards XP.
|
||||||
|
*
|
||||||
|
* @param material {@link Block} type to check
|
||||||
|
* @return true if the block type awards XP, false otherwise
|
||||||
|
*/
|
||||||
|
public static boolean shouldBeWatched(Material material) {
|
||||||
|
switch (material) {
|
||||||
|
case BROWN_MUSHROOM:
|
||||||
|
case CACTUS:
|
||||||
|
case CLAY:
|
||||||
|
case COAL_ORE:
|
||||||
|
case DIAMOND_ORE:
|
||||||
|
case DIRT:
|
||||||
|
case ENDER_STONE:
|
||||||
|
case GLOWING_REDSTONE_ORE:
|
||||||
|
case GLOWSTONE:
|
||||||
|
case GOLD_ORE:
|
||||||
|
case GRASS:
|
||||||
|
case GRAVEL:
|
||||||
|
case IRON_ORE:
|
||||||
|
case JACK_O_LANTERN:
|
||||||
|
case LAPIS_ORE:
|
||||||
|
case LOG:
|
||||||
|
case MELON_BLOCK:
|
||||||
|
case MOSSY_COBBLESTONE:
|
||||||
|
case MYCEL:
|
||||||
|
case NETHERRACK:
|
||||||
|
case OBSIDIAN:
|
||||||
|
case PUMPKIN:
|
||||||
|
case RED_MUSHROOM:
|
||||||
|
case RED_ROSE:
|
||||||
|
case REDSTONE_ORE:
|
||||||
|
case SAND:
|
||||||
|
case SANDSTONE:
|
||||||
|
case SOUL_SAND:
|
||||||
|
case STONE:
|
||||||
|
case SUGAR_CANE_BLOCK:
|
||||||
|
case VINE:
|
||||||
|
case WATER_LILY:
|
||||||
|
case YELLOW_FLOWER:
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a block should allow for the activation of abilities.
|
||||||
|
*
|
||||||
|
* @param material Type of {@link Block} to check
|
||||||
|
* @return true if the block should allow ability activation, false otherwise
|
||||||
|
*/
|
||||||
|
public static boolean abilityBlockCheck(Material material) {
|
||||||
|
switch (material) {
|
||||||
|
case BED_BLOCK:
|
||||||
|
case BREWING_STAND:
|
||||||
|
case BOOKSHELF:
|
||||||
|
case BURNING_FURNACE:
|
||||||
|
case CAKE_BLOCK:
|
||||||
|
case CHEST:
|
||||||
|
case DISPENSER:
|
||||||
|
case ENCHANTMENT_TABLE:
|
||||||
|
case FENCE_GATE:
|
||||||
|
case FURNACE:
|
||||||
|
case IRON_DOOR_BLOCK:
|
||||||
|
case JUKEBOX:
|
||||||
|
case LEVER:
|
||||||
|
case NOTE_BLOCK:
|
||||||
|
case STONE_BUTTON:
|
||||||
|
case TRAP_DOOR:
|
||||||
|
case WALL_SIGN:
|
||||||
|
case WOODEN_DOOR:
|
||||||
|
case WORKBENCH:
|
||||||
|
return false;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Material.getMaterial(LoadProperties.anvilID).equals(material)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a block type is an ore.
|
||||||
|
*
|
||||||
|
* @param material The type of {@link Block} to check
|
||||||
|
* @return true if the Block is an ore, false otherwise
|
||||||
|
*/
|
||||||
|
public static boolean isOre(Material material) {
|
||||||
|
switch (material) {
|
||||||
|
case COAL_ORE:
|
||||||
|
case DIAMOND_ORE:
|
||||||
|
case GLOWING_REDSTONE_ORE:
|
||||||
|
case GOLD_ORE:
|
||||||
|
case IRON_ORE:
|
||||||
|
case LAPIS_ORE:
|
||||||
|
case REDSTONE_ORE:
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -99,16 +99,16 @@ public class Combat {
|
|||||||
}
|
}
|
||||||
else if (itemInHand.getType().equals(Material.BONE) && mcPermissions.getInstance().taming(attacker) && targetType.equals(EntityType.WOLF)) {
|
else if (itemInHand.getType().equals(Material.BONE) && mcPermissions.getInstance().taming(attacker) && targetType.equals(EntityType.WOLF)) {
|
||||||
Wolf wolf = (Wolf) target;
|
Wolf wolf = (Wolf) target;
|
||||||
String message = "Combat.BeastLore" + " ";
|
String message = mcLocale.getString("Combat.BeastLore") + " ";
|
||||||
int health = wolf.getHealth();
|
int health = wolf.getHealth();
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
if (wolf.isTamed()) {
|
if (wolf.isTamed()) {
|
||||||
message.concat(mcLocale.getString("Combat.BeastLoreOwner", new Object[] {Taming.getOwnerName(wolf)}) + " ");
|
message = message.concat(mcLocale.getString("Combat.BeastLoreOwner", new Object[] {Taming.getOwnerName(wolf)}) + " ");
|
||||||
message.concat(mcLocale.getString("Combat.BeastLoreHealthWolfTamed", new Object[] {health}));
|
message = message.concat(mcLocale.getString("Combat.BeastLoreHealthWolfTamed", new Object[] {health}));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
message.concat(mcLocale.getString("Combat.BeastLoreHealthWolf", new Object[] {health}));
|
message = message.concat(mcLocale.getString("Combat.BeastLoreHealthWolf", new Object[] {health}));
|
||||||
}
|
}
|
||||||
|
|
||||||
attacker.sendMessage(message);
|
attacker.sendMessage(message);
|
||||||
|
@ -158,7 +158,7 @@ public class mcPlayerListener implements Listener
|
|||||||
Block block = event.getClickedBlock();
|
Block block = event.getClickedBlock();
|
||||||
ItemStack is = player.getItemInHand();
|
ItemStack is = player.getItemInHand();
|
||||||
Material mat;
|
Material mat;
|
||||||
if (block.equals(null)) {
|
if (block == null) {
|
||||||
mat = Material.AIR;
|
mat = Material.AIR;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
Loading…
Reference in New Issue
Block a user