|
@@ -47,8 +47,7 @@ public class BlockListener implements Listener {
|
|
}
|
|
}
|
|
|
|
|
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = false)
|
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = false)
|
|
- public void onBlockDropItemEvent(BlockDropItemEvent event)
|
|
|
|
- {
|
|
|
|
|
|
+ public void onBlockDropItemEvent(BlockDropItemEvent event) {
|
|
//Make sure we clean up metadata on these blocks
|
|
//Make sure we clean up metadata on these blocks
|
|
if (event.isCancelled()) {
|
|
if (event.isCancelled()) {
|
|
if (event.getBlock().hasMetadata(MetadataConstants.METADATA_KEY_BONUS_DROPS))
|
|
if (event.getBlock().hasMetadata(MetadataConstants.METADATA_KEY_BONUS_DROPS))
|
|
@@ -84,8 +83,7 @@ public class BlockListener implements Listener {
|
|
|
|
|
|
//If there are more than one block in the item list we can't really trust it and will back out of rewarding bonus drops
|
|
//If there are more than one block in the item list we can't really trust it and will back out of rewarding bonus drops
|
|
if (blockCount <= 1) {
|
|
if (blockCount <= 1) {
|
|
- for(Item item : event.getItems())
|
|
|
|
- {
|
|
|
|
|
|
+ for(Item item : event.getItems()) {
|
|
ItemStack is = new ItemStack(item.getItemStack());
|
|
ItemStack is = new ItemStack(item.getItemStack());
|
|
|
|
|
|
if (is.getAmount() <= 0)
|
|
if (is.getAmount() <= 0)
|
|
@@ -186,8 +184,7 @@ public class BlockListener implements Listener {
|
|
* @param event The event to watch
|
|
* @param event The event to watch
|
|
*/
|
|
*/
|
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
|
- public void onEntityBlockFormEvent(EntityBlockFormEvent event)
|
|
|
|
- {
|
|
|
|
|
|
+ public void onEntityBlockFormEvent(EntityBlockFormEvent event) {
|
|
/* WORLD BLACKLIST CHECK */
|
|
/* WORLD BLACKLIST CHECK */
|
|
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
|
if (WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
|
|
return;
|
|
return;
|
|
@@ -207,8 +204,7 @@ public class BlockListener implements Listener {
|
|
* Does not monitor stuff like a falling block replacing a liquid
|
|
* Does not monitor stuff like a falling block replacing a liquid
|
|
*/
|
|
*/
|
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
|
- public void onBlockFormEvent(BlockFormEvent event)
|
|
|
|
- {
|
|
|
|
|
|
+ public void onBlockFormEvent(BlockFormEvent event) {
|
|
World world = event.getBlock().getWorld();
|
|
World world = event.getBlock().getWorld();
|
|
|
|
|
|
/* WORLD BLACKLIST CHECK */
|
|
/* WORLD BLACKLIST CHECK */
|
|
@@ -266,8 +262,7 @@ public class BlockListener implements Listener {
|
|
|
|
|
|
if (blockState.getType() == Repair.anvilMaterial && mcMMO.p.getSkillTools().doesPlayerHaveSkillPermission(player, PrimarySkillType.REPAIR)) {
|
|
if (blockState.getType() == Repair.anvilMaterial && mcMMO.p.getSkillTools().doesPlayerHaveSkillPermission(player, PrimarySkillType.REPAIR)) {
|
|
mcMMOPlayer.getRepairManager().placedAnvilCheck();
|
|
mcMMOPlayer.getRepairManager().placedAnvilCheck();
|
|
- }
|
|
|
|
- else if (blockState.getType() == Salvage.anvilMaterial && mcMMO.p.getSkillTools().doesPlayerHaveSkillPermission(player, PrimarySkillType.SALVAGE)) {
|
|
|
|
|
|
+ } else if (blockState.getType() == Salvage.anvilMaterial && mcMMO.p.getSkillTools().doesPlayerHaveSkillPermission(player, PrimarySkillType.SALVAGE)) {
|
|
mcMMOPlayer.getSalvageManager().placedAnvilCheck();
|
|
mcMMOPlayer.getSalvageManager().placedAnvilCheck();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -334,8 +329,7 @@ public class BlockListener implements Listener {
|
|
}
|
|
}
|
|
|
|
|
|
/* WORLD GUARD MAIN FLAG CHECK */
|
|
/* WORLD GUARD MAIN FLAG CHECK */
|
|
- if (WorldGuardUtils.isWorldGuardLoaded())
|
|
|
|
- {
|
|
|
|
|
|
+ if (WorldGuardUtils.isWorldGuardLoaded()) {
|
|
if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer())) {
|
|
if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer())) {
|
|
BlockUtils.cleanupBlockMetadata(block);
|
|
BlockUtils.cleanupBlockMetadata(block);
|
|
return;
|
|
return;
|
|
@@ -411,8 +405,7 @@ public class BlockListener implements Listener {
|
|
WoodcuttingManager woodcuttingManager = mcMMOPlayer.getWoodcuttingManager();
|
|
WoodcuttingManager woodcuttingManager = mcMMOPlayer.getWoodcuttingManager();
|
|
if (woodcuttingManager.canUseTreeFeller(heldItem)) {
|
|
if (woodcuttingManager.canUseTreeFeller(heldItem)) {
|
|
woodcuttingManager.processTreeFeller(blockState);
|
|
woodcuttingManager.processTreeFeller(blockState);
|
|
- }
|
|
|
|
- else {
|
|
|
|
|
|
+ } else {
|
|
//Check for XP
|
|
//Check for XP
|
|
woodcuttingManager.processWoodcuttingBlockXP(blockState);
|
|
woodcuttingManager.processWoodcuttingBlockXP(blockState);
|
|
|
|
|
|
@@ -422,7 +415,10 @@ public class BlockListener implements Listener {
|
|
}
|
|
}
|
|
|
|
|
|
/* EXCAVATION */
|
|
/* EXCAVATION */
|
|
- else if (BlockUtils.affectedByGigaDrillBreaker(blockState) && ItemUtils.isShovel(heldItem) && mcMMO.p.getSkillTools().doesPlayerHaveSkillPermission(player, PrimarySkillType.EXCAVATION) && !mcMMO.getUserBlockTracker().isIneligible(blockState)) {
|
|
|
|
|
|
+ else if (BlockUtils.affectedByGigaDrillBreaker(blockState)
|
|
|
|
+ && ItemUtils.isShovel(heldItem)
|
|
|
|
+ && mcMMO.p.getSkillTools().doesPlayerHaveSkillPermission(player, PrimarySkillType.EXCAVATION)
|
|
|
|
+ && !mcMMO.getUserBlockTracker().isIneligible(blockState)) {
|
|
ExcavationManager excavationManager = mcMMOPlayer.getExcavationManager();
|
|
ExcavationManager excavationManager = mcMMOPlayer.getExcavationManager();
|
|
excavationManager.excavationBlockCheck(blockState);
|
|
excavationManager.excavationBlockCheck(blockState);
|
|
|
|
|
|
@@ -450,8 +446,7 @@ public class BlockListener implements Listener {
|
|
return;
|
|
return;
|
|
|
|
|
|
/* WORLD GUARD MAIN FLAG CHECK */
|
|
/* WORLD GUARD MAIN FLAG CHECK */
|
|
- if (WorldGuardUtils.isWorldGuardLoaded())
|
|
|
|
- {
|
|
|
|
|
|
+ if (WorldGuardUtils.isWorldGuardLoaded()) {
|
|
if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
|
|
if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -463,8 +458,7 @@ public class BlockListener implements Listener {
|
|
}
|
|
}
|
|
|
|
|
|
//Profile not loaded
|
|
//Profile not loaded
|
|
- if (UserManager.getPlayer(player) == null)
|
|
|
|
- {
|
|
|
|
|
|
+ if (UserManager.getPlayer(player) == null) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -478,8 +472,7 @@ public class BlockListener implements Listener {
|
|
if (herbalismManager.processHylianLuck(blockState)) {
|
|
if (herbalismManager.processHylianLuck(blockState)) {
|
|
blockState.update(true);
|
|
blockState.update(true);
|
|
event.setCancelled(true);
|
|
event.setCancelled(true);
|
|
- }
|
|
|
|
- else if (blockState.getType() == Material.FLOWER_POT) {
|
|
|
|
|
|
+ } else if (blockState.getType() == Material.FLOWER_POT) {
|
|
blockState.setType(Material.AIR);
|
|
blockState.setType(Material.AIR);
|
|
blockState.update(true);
|
|
blockState.update(true);
|
|
event.setCancelled(true);
|
|
event.setCancelled(true);
|
|
@@ -513,8 +506,7 @@ public class BlockListener implements Listener {
|
|
return;
|
|
return;
|
|
|
|
|
|
/* WORLD GUARD MAIN FLAG CHECK */
|
|
/* WORLD GUARD MAIN FLAG CHECK */
|
|
- if (WorldGuardUtils.isWorldGuardLoaded())
|
|
|
|
- {
|
|
|
|
|
|
+ if (WorldGuardUtils.isWorldGuardLoaded()) {
|
|
if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
|
|
if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -529,8 +521,7 @@ public class BlockListener implements Listener {
|
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
|
|
|
|
|
//Profile not loaded
|
|
//Profile not loaded
|
|
- if (mcMMOPlayer == null)
|
|
|
|
- {
|
|
|
|
|
|
+ if (mcMMOPlayer == null) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -544,17 +535,13 @@ public class BlockListener implements Listener {
|
|
|
|
|
|
if (mcMMOPlayer.getToolPreparationMode(ToolType.HOE) && ItemUtils.isHoe(heldItem) && (BlockUtils.affectedByGreenTerra(blockState) || BlockUtils.canMakeMossy(blockState)) && Permissions.greenTerra(player)) {
|
|
if (mcMMOPlayer.getToolPreparationMode(ToolType.HOE) && ItemUtils.isHoe(heldItem) && (BlockUtils.affectedByGreenTerra(blockState) || BlockUtils.canMakeMossy(blockState)) && Permissions.greenTerra(player)) {
|
|
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.HERBALISM);
|
|
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.HERBALISM);
|
|
- }
|
|
|
|
- else if (mcMMOPlayer.getToolPreparationMode(ToolType.AXE) && ItemUtils.isAxe(heldItem) && BlockUtils.hasWoodcuttingXP(blockState) && Permissions.treeFeller(player)) {
|
|
|
|
|
|
+ } else if (mcMMOPlayer.getToolPreparationMode(ToolType.AXE) && ItemUtils.isAxe(heldItem) && BlockUtils.hasWoodcuttingXP(blockState) && Permissions.treeFeller(player)) {
|
|
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.WOODCUTTING);
|
|
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.WOODCUTTING);
|
|
- }
|
|
|
|
- else if (mcMMOPlayer.getToolPreparationMode(ToolType.PICKAXE) && ItemUtils.isPickaxe(heldItem) && BlockUtils.affectedBySuperBreaker(blockState) && Permissions.superBreaker(player)) {
|
|
|
|
|
|
+ } else if (mcMMOPlayer.getToolPreparationMode(ToolType.PICKAXE) && ItemUtils.isPickaxe(heldItem) && BlockUtils.affectedBySuperBreaker(blockState) && Permissions.superBreaker(player)) {
|
|
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.MINING);
|
|
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.MINING);
|
|
- }
|
|
|
|
- else if (mcMMOPlayer.getToolPreparationMode(ToolType.SHOVEL) && ItemUtils.isShovel(heldItem) && BlockUtils.affectedByGigaDrillBreaker(blockState) && Permissions.gigaDrillBreaker(player)) {
|
|
|
|
|
|
+ } else if (mcMMOPlayer.getToolPreparationMode(ToolType.SHOVEL) && ItemUtils.isShovel(heldItem) && BlockUtils.affectedByGigaDrillBreaker(blockState) && Permissions.gigaDrillBreaker(player)) {
|
|
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.EXCAVATION);
|
|
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.EXCAVATION);
|
|
- }
|
|
|
|
- else if (mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && heldItem.getType() == Material.AIR && (BlockUtils.affectedByGigaDrillBreaker(blockState)
|
|
|
|
|
|
+ } else if (mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && heldItem.getType() == Material.AIR && (BlockUtils.affectedByGigaDrillBreaker(blockState)
|
|
|| mcMMO.getMaterialMapStore().isGlass(blockState.getType())
|
|
|| mcMMO.getMaterialMapStore().isGlass(blockState.getType())
|
|
|| blockState.getType() == Material.SNOW
|
|
|| blockState.getType() == Material.SNOW
|
|
|| BlockUtils.affectedByBlockCracker(blockState) && Permissions.berserk(player))) {
|
|
|| BlockUtils.affectedByBlockCracker(blockState) && Permissions.berserk(player))) {
|
|
@@ -596,8 +583,7 @@ public class BlockListener implements Listener {
|
|
return;
|
|
return;
|
|
|
|
|
|
/* WORLD GUARD MAIN FLAG CHECK */
|
|
/* WORLD GUARD MAIN FLAG CHECK */
|
|
- if (WorldGuardUtils.isWorldGuardLoaded())
|
|
|
|
- {
|
|
|
|
|
|
+ if (WorldGuardUtils.isWorldGuardLoaded()) {
|
|
if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
|
|
if (!WorldGuardManager.getInstance().hasMainFlag(event.getPlayer()))
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -615,8 +601,7 @@ public class BlockListener implements Listener {
|
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
|
|
|
|
|
//Profile not loaded
|
|
//Profile not loaded
|
|
- if (UserManager.getPlayer(player) == null)
|
|
|
|
- {
|
|
|
|
|
|
+ if (UserManager.getPlayer(player) == null) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -633,14 +618,12 @@ public class BlockListener implements Listener {
|
|
if (mcMMOPlayer.getHerbalismManager().processGreenTerraBlockConversion(blockState)) {
|
|
if (mcMMOPlayer.getHerbalismManager().processGreenTerraBlockConversion(blockState)) {
|
|
blockState.update(true);
|
|
blockState.update(true);
|
|
}
|
|
}
|
|
- }
|
|
|
|
- else if (mcMMOPlayer.getAbilityMode(SuperAbilityType.BERSERK) && (heldItem.getType() == Material.AIR || mcMMO.p.getGeneralConfig().getUnarmedItemsAsUnarmed())) {
|
|
|
|
|
|
+ } else if (mcMMOPlayer.getAbilityMode(SuperAbilityType.BERSERK) && (heldItem.getType() == Material.AIR || mcMMO.p.getGeneralConfig().getUnarmedItemsAsUnarmed())) {
|
|
if (mcMMOPlayer.getUnarmedManager().canUseBlockCracker() && BlockUtils.affectedByBlockCracker(blockState)) {
|
|
if (mcMMOPlayer.getUnarmedManager().canUseBlockCracker() && BlockUtils.affectedByBlockCracker(blockState)) {
|
|
if (EventUtils.simulateBlockBreak(block, player) && mcMMOPlayer.getUnarmedManager().blockCrackerCheck(blockState)) {
|
|
if (EventUtils.simulateBlockBreak(block, player) && mcMMOPlayer.getUnarmedManager().blockCrackerCheck(blockState)) {
|
|
blockState.update();
|
|
blockState.update();
|
|
}
|
|
}
|
|
- }
|
|
|
|
- else if (!event.getInstaBreak() && SuperAbilityType.BERSERK.blockCheck(blockState) && EventUtils.simulateBlockBreak(block, player)) {
|
|
|
|
|
|
+ } else if (!event.getInstaBreak() && SuperAbilityType.BERSERK.blockCheck(blockState) && EventUtils.simulateBlockBreak(block, player)) {
|
|
event.setInstaBreak(true);
|
|
event.setInstaBreak(true);
|
|
|
|
|
|
if (blockState.getType().getKey().getKey().contains("glass")) {
|
|
if (blockState.getType().getKey().getKey().contains("glass")) {
|
|
@@ -649,8 +632,7 @@ public class BlockListener implements Listener {
|
|
SoundManager.sendSound(player, block.getLocation(), SoundType.POP);
|
|
SoundManager.sendSound(player, block.getLocation(), SoundType.POP);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
- else if (mcMMOPlayer.getWoodcuttingManager().canUseLeafBlower(heldItem) && BlockUtils.isNonWoodPartOfTree(blockState) && EventUtils.simulateBlockBreak(block, player)) {
|
|
|
|
|
|
+ } else if (mcMMOPlayer.getWoodcuttingManager().canUseLeafBlower(heldItem) && BlockUtils.isNonWoodPartOfTree(blockState) && EventUtils.simulateBlockBreak(block, player)) {
|
|
event.setInstaBreak(true);
|
|
event.setInstaBreak(true);
|
|
SoundManager.sendSound(player, block.getLocation(), SoundType.POP);
|
|
SoundManager.sendSound(player, block.getLocation(), SoundType.POP);
|
|
}
|
|
}
|
|
@@ -662,8 +644,7 @@ public class BlockListener implements Listener {
|
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
|
|
|
|
|
//Profile not loaded
|
|
//Profile not loaded
|
|
- if (UserManager.getPlayer(player) == null)
|
|
|
|
- {
|
|
|
|
|
|
+ if (UserManager.getPlayer(player) == null) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -680,23 +661,19 @@ public class BlockListener implements Listener {
|
|
//TODO: Convert into locale strings
|
|
//TODO: Convert into locale strings
|
|
private void debugStickDump(Player player, BlockState blockState) {
|
|
private void debugStickDump(Player player, BlockState blockState) {
|
|
//Profile not loaded
|
|
//Profile not loaded
|
|
- if (UserManager.getPlayer(player) == null)
|
|
|
|
- {
|
|
|
|
|
|
+ if (UserManager.getPlayer(player) == null) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- if (UserManager.getPlayer(player).isDebugMode())
|
|
|
|
- {
|
|
|
|
|
|
+ if (UserManager.getPlayer(player).isDebugMode()) {
|
|
if (mcMMO.getUserBlockTracker().isIneligible(blockState))
|
|
if (mcMMO.getUserBlockTracker().isIneligible(blockState))
|
|
player.sendMessage("[mcMMO DEBUG] This block is not natural and does not reward treasures/XP");
|
|
player.sendMessage("[mcMMO DEBUG] This block is not natural and does not reward treasures/XP");
|
|
- else
|
|
|
|
- {
|
|
|
|
|
|
+ else {
|
|
player.sendMessage("[mcMMO DEBUG] This block is considered natural by mcMMO");
|
|
player.sendMessage("[mcMMO DEBUG] This block is considered natural by mcMMO");
|
|
UserManager.getPlayer(player).getExcavationManager().printExcavationDebug(player, blockState);
|
|
UserManager.getPlayer(player).getExcavationManager().printExcavationDebug(player, blockState);
|
|
}
|
|
}
|
|
|
|
|
|
- if (WorldGuardUtils.isWorldGuardLoaded())
|
|
|
|
- {
|
|
|
|
|
|
+ if (WorldGuardUtils.isWorldGuardLoaded()) {
|
|
if (WorldGuardManager.getInstance().hasMainFlag(player))
|
|
if (WorldGuardManager.getInstance().hasMainFlag(player))
|
|
player.sendMessage("[mcMMO DEBUG] World Guard main flag is permitted for this player in this region");
|
|
player.sendMessage("[mcMMO DEBUG] World Guard main flag is permitted for this player in this region");
|
|
else
|
|
else
|