|
@@ -22,17 +22,14 @@ public class mcBlockListener extends BlockListener {
|
|
|
}
|
|
|
public void onBlockPlace(BlockPlaceEvent event) {
|
|
|
Block block;
|
|
|
+ Player player = event.getPlayer();
|
|
|
if (event.getBlockReplacedState().getTypeId() == 78) {
|
|
|
block = event.getBlockAgainst();
|
|
|
}
|
|
|
else {
|
|
|
block = event.getBlock();
|
|
|
}
|
|
|
- int x = block.getX();
|
|
|
- int y = block.getY();
|
|
|
- int z = block.getZ();
|
|
|
- String xyz = x+","+y+","+z;
|
|
|
- if(mcm.getInstance().shouldBeWatched(block))
|
|
|
+ if(player != null && mcm.getInstance().shouldBeWatched(block))
|
|
|
mcConfig.getInstance().addBlockWatch(block);
|
|
|
if(block.getTypeId() == 42 && mcLoadProperties.anvilmessages)
|
|
|
event.getPlayer().sendMessage(ChatColor.DARK_RED+"You have placed an anvil, anvils can repair tools and armor.");
|
|
@@ -41,12 +38,9 @@ public class mcBlockListener extends BlockListener {
|
|
|
public void onBlockDamage(BlockDamageEvent event) {
|
|
|
//STARTED(0), DIGGING(1), BROKEN(3), STOPPED(2);
|
|
|
Player player = event.getPlayer();
|
|
|
+ ItemStack inhand = player.getItemInHand();
|
|
|
//player.sendMessage("mcMMO DEBUG: EVENT-OK DMG LEVEL ("+event.getDamageLevel().getLevel()+")");
|
|
|
Block block = event.getBlock();
|
|
|
- int x = block.getX();
|
|
|
- int y = block.getY();
|
|
|
- int z = block.getZ();
|
|
|
- String xyz = x+","+y+","+z;
|
|
|
Location loc = block.getLocation();
|
|
|
int dmg = event.getDamageLevel().getLevel();
|
|
|
/*
|
|
@@ -60,64 +54,64 @@ public class mcBlockListener extends BlockListener {
|
|
|
* MINING
|
|
|
*/
|
|
|
if(player != null && dmg == 2 && !mcConfig.getInstance().isBlockWatched(block)){
|
|
|
- if(mcPermissions.getInstance().mining(player))
|
|
|
- mcMining.getInstance().miningBlockCheck(player, block);
|
|
|
- /*
|
|
|
- * WOOD CUTTING
|
|
|
- */
|
|
|
- if(player != null && block.getTypeId() == 17 && mcPermissions.getInstance().woodcutting(player)){
|
|
|
- mcWoodCutting.getInstance().woodCuttingProcCheck(player, block, loc);
|
|
|
- mcUsers.getProfile(player).addWoodcuttingGather(7);
|
|
|
- /*
|
|
|
- * IF PLAYER IS USING TREEFELLER
|
|
|
- */
|
|
|
- if(mcPermissions.getInstance().woodcuttingability(player) && mcUsers.getProfile(player).getTreeFellerMode() && block.getTypeId() == 17){
|
|
|
- mcWoodCutting.getInstance().treeFeller(block, player);
|
|
|
- for(Block blockx : mcConfig.getInstance().getTreeFeller()){
|
|
|
- if(blockx != null){
|
|
|
- Material mat = Material.getMaterial(blockx.getTypeId());
|
|
|
- byte damage = 0;
|
|
|
- ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
|
|
|
- blockx.setTypeId(0);
|
|
|
- if(item.getTypeId() == 17){
|
|
|
- blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
|
|
|
- mcWoodCutting.getInstance().woodCuttingProcCheck(player, blockx, blockx.getLocation());
|
|
|
- mcUsers.getProfile(player).addWoodcuttingGather(7);
|
|
|
- }
|
|
|
- if(item.getTypeId() == 18){
|
|
|
- mat = Material.getMaterial(6);
|
|
|
- item = new ItemStack(mat, 1, (byte)0, damage);
|
|
|
- if(Math.random() * 10 > 8)
|
|
|
- blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- /*
|
|
|
- * NOTE TO SELF
|
|
|
- * I NEED TO REMOVE TREE FELL BLOCKS FROM BEING WATCHED AFTER THIS CODE IS EXECUTED
|
|
|
- * OR ELSE IT COULD BE A MEMORY LEAK SITUATION
|
|
|
- */
|
|
|
- mcConfig.getInstance().clearTreeFeller();
|
|
|
- }
|
|
|
- }
|
|
|
- /*
|
|
|
- * EXCAVATION
|
|
|
- */
|
|
|
- if(mcPermissions.getInstance().excavation(player) && block != null && player != null)
|
|
|
- mcExcavation.getInstance().excavationProcCheck(block, player);
|
|
|
- /*
|
|
|
- * EXPLOIT COUNTERMEASURES
|
|
|
- */
|
|
|
- mcConfig.getInstance().addBlockWatch(block);
|
|
|
- if(player != null && mcUsers.getProfile(player).getWoodCuttingGatherInt() >= mcUsers.getProfile(player).getXpToLevel("woodcutting")){
|
|
|
- int skillups = 0;
|
|
|
- while(mcUsers.getProfile(player).getWoodCuttingGatherInt() >= mcUsers.getProfile(player).getXpToLevel("woodcutting")){
|
|
|
- skillups++;
|
|
|
- mcUsers.getProfile(player).removeWoodCuttingGather(mcUsers.getProfile(player).getXpToLevel("woodcutting"));
|
|
|
- mcUsers.getProfile(player).skillUpWoodCutting(1);
|
|
|
- }
|
|
|
- player.sendMessage(ChatColor.YELLOW+"WoodCutting skill increased by "+skillups+"."+" Total ("+mcUsers.getProfile(player).getWoodCutting()+")");
|
|
|
- }
|
|
|
+ if(mcm.getInstance().isMiningPick(inhand) && mcPermissions.getInstance().mining(player))
|
|
|
+ mcMining.getInstance().miningBlockCheck(player, block);
|
|
|
+ /*
|
|
|
+ * WOOD CUTTING
|
|
|
+ */
|
|
|
+ if(player != null && mcm.getInstance().isAxes(inhand) && block.getTypeId() == 17 && mcPermissions.getInstance().woodcutting(player)){
|
|
|
+ mcWoodCutting.getInstance().woodCuttingProcCheck(player, block, loc);
|
|
|
+ mcUsers.getProfile(player).addWoodcuttingGather(7);
|
|
|
+ /*
|
|
|
+ * IF PLAYER IS USING TREEFELLER
|
|
|
+ */
|
|
|
+ if(mcPermissions.getInstance().woodcuttingability(player) && mcUsers.getProfile(player).getTreeFellerMode() && block.getTypeId() == 17){
|
|
|
+ mcWoodCutting.getInstance().treeFeller(block, player);
|
|
|
+ for(Block blockx : mcConfig.getInstance().getTreeFeller()){
|
|
|
+ if(blockx != null){
|
|
|
+ Material mat = Material.getMaterial(blockx.getTypeId());
|
|
|
+ byte damage = 0;
|
|
|
+ ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
|
|
|
+ blockx.setTypeId(0);
|
|
|
+ if(item.getTypeId() == 17){
|
|
|
+ blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
|
|
|
+ mcWoodCutting.getInstance().woodCuttingProcCheck(player, blockx, blockx.getLocation());
|
|
|
+ mcUsers.getProfile(player).addWoodcuttingGather(7);
|
|
|
+ }
|
|
|
+ if(item.getTypeId() == 18){
|
|
|
+ mat = Material.getMaterial(6);
|
|
|
+ item = new ItemStack(mat, 1, (byte)0, damage);
|
|
|
+ if(Math.random() * 10 > 8)
|
|
|
+ blockx.getLocation().getWorld().dropItemNaturally(blockx.getLocation(), item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * NOTE TO SELF
|
|
|
+ * I NEED TO REMOVE TREE FELL BLOCKS FROM BEING WATCHED AFTER THIS CODE IS EXECUTED
|
|
|
+ * OR ELSE IT COULD BE A MEMORY LEAK SITUATION
|
|
|
+ */
|
|
|
+ mcConfig.getInstance().clearTreeFeller();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * EXCAVATION
|
|
|
+ */
|
|
|
+ if(mcPermissions.getInstance().excavation(player) && block != null && player != null)
|
|
|
+ mcExcavation.getInstance().excavationProcCheck(block, player);
|
|
|
+ /*
|
|
|
+ * EXPLOIT COUNTERMEASURES
|
|
|
+ */
|
|
|
+ mcConfig.getInstance().addBlockWatch(block);
|
|
|
+ if(player != null && mcUsers.getProfile(player).getWoodCuttingGatherInt() >= mcUsers.getProfile(player).getXpToLevel("woodcutting")){
|
|
|
+ int skillups = 0;
|
|
|
+ while(mcUsers.getProfile(player).getWoodCuttingGatherInt() >= mcUsers.getProfile(player).getXpToLevel("woodcutting")){
|
|
|
+ skillups++;
|
|
|
+ mcUsers.getProfile(player).removeWoodCuttingGather(mcUsers.getProfile(player).getXpToLevel("woodcutting"));
|
|
|
+ mcUsers.getProfile(player).skillUpWoodCutting(1);
|
|
|
+ }
|
|
|
+ player.sendMessage(ChatColor.YELLOW+"WoodCutting skill increased by "+skillups+"."+" Total ("+mcUsers.getProfile(player).getWoodCutting()+")");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|