Procházet zdrojové kódy

Fix for Blast Mining not always activating bonuses.

GJ před 13 roky
rodič
revize
36a706b7b6

+ 2 - 0
Changelog.txt

@@ -12,6 +12,8 @@ Version 2.0.00-dev
  + Added ability to summon Ocelots with Call of the Wild
  = Fixed ClassCastException from Taming preventDamage checks
  = Fixed issue with Blast Mining not seeing TNT for detonation due to snow
+ ! Changed Call of the Wild to activate on left-click rather than right-click
+ ! Changed Blast Mining to track based on Entity ID vs. Location
 
 Version 1.3.02
  + Added in game guides for Mining, Excavation, and Acrobatics. Simply type /skillname ? to access them

+ 1 - 2
src/main/java/com/gmail/nossr50/config/Misc.java

@@ -19,7 +19,6 @@ package com.gmail.nossr50.config;
 import java.util.*;
 import java.util.logging.Logger;
 
-import org.bukkit.Location;
 import org.bukkit.block.Block;
 import org.bukkit.entity.Entity;
 import org.bukkit.entity.LivingEntity;
@@ -37,7 +36,7 @@ public class Misc
     public HashSet<Block> blockWatchList = new HashSet<Block>();
     public HashMap<Entity, Integer> arrowTracker = new HashMap<Entity, Integer>();
     public ArrayList<LivingEntity> bleedTracker = new ArrayList<LivingEntity>();
-    public HashMap<Location, Player> tntTracker = new HashMap<Location, Player>();
+    public HashMap<Integer, Player> tntTracker = new HashMap<Integer, Player>();
     mcMMO plugin = null;
     
     //BLEED QUE STUFF

+ 0 - 7
src/main/java/com/gmail/nossr50/listeners/mcBlockListener.java

@@ -70,9 +70,6 @@ public class mcBlockListener implements Listener
     	int id = block.getTypeId();
     	Material mat = block.getType();
     	
-    	//TNT placement checks - needed for Blast Mining
-    	if(mat.equals(Material.TNT) && mcPermissions.getInstance().blastMining(player))
-    		plugin.misc.tntTracker.put(block.getLocation(), player);
     	//Check if the blocks placed should be monitored so they do not give out XP in the future
     	if(m.shouldBeWatched(mat))
     	{	
@@ -154,10 +151,6 @@ public class mcBlockListener implements Listener
     	/*
     	 * MINING
     	 */
-    	//TNT removal checks - needed for Blast Mining
-    	if(id == 46 && plugin.misc.tntTracker.containsKey(block.getLocation()))
-    		plugin.misc.tntTracker.remove(block.getLocation());
-    	
     	if(mcPermissions.getInstance().mining(player))
     	{
     		if(LoadProperties.miningrequirespickaxe && m.isMiningPick(inhand))

+ 10 - 25
src/main/java/com/gmail/nossr50/listeners/mcEntityListener.java

@@ -16,7 +16,6 @@
 */
 package com.gmail.nossr50.listeners;
 
-import org.bukkit.Location;
 import org.bukkit.Material;
 import org.bukkit.entity.Entity;
 import org.bukkit.entity.EntityType;
@@ -55,7 +54,6 @@ import com.gmail.nossr50.skills.BlastMining;
 import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.skills.Taming;
 
-
 public class mcEntityListener implements Listener 
 {
 	private final mcMMO plugin;
@@ -162,21 +160,13 @@ public class mcEntityListener implements Listener
 	@EventHandler (priority = EventPriority.LOW)
 	public void onExplosionPrime(ExplosionPrimeEvent event)
 	{
-		if(event.getEntity() instanceof TNTPrimed)
+		Entity entity = event.getEntity();
+		if(entity instanceof TNTPrimed)
 		{
-			Location location = event.getEntity().getLocation();
-			System.out.println("UNNORMALIZED LOCATION");
-			System.out.println(location);
-			//Ugly code to make it recognize the location
-			location.setX(location.getBlockX()+1);
-			location.setY(location.getBlockY());
-			location.setZ(location.getBlockZ()+1);
-			System.out.println("NORMALIZED LOCATION");
-			System.out.println(location);
-			
-			if(plugin.misc.tntTracker.containsKey(location))
+			int id = entity.getEntityId();
+			if(plugin.misc.tntTracker.containsKey(id))
 			{
-				Player player = plugin.misc.tntTracker.get(location);
+				Player player = plugin.misc.tntTracker.get(id);
 				BlastMining.biggerBombs(player, event);
 			}
 		}		
@@ -185,20 +175,15 @@ public class mcEntityListener implements Listener
 	@EventHandler (priority = EventPriority.LOW)
 	public void onEnitityExplode(EntityExplodeEvent event)
 	{
+		Entity entity = event.getEntity();
 		if(event.getEntity() instanceof TNTPrimed)
 		{
-			Location location = event.getEntity().getLocation();
-			
-			//Ugly code to make it recognize the location
-			location.setX(location.getBlockX()+1);
-			location.setY(location.getBlockY());
-			location.setZ(location.getBlockZ()+1);
-			
-			if(plugin.misc.tntTracker.containsKey(location))
+			int id = entity.getEntityId();
+			if(plugin.misc.tntTracker.containsKey(id))
 			{
-				Player player = plugin.misc.tntTracker.get(location);
+				Player player = plugin.misc.tntTracker.get(id);
 				BlastMining.dropProcessing(player, event, plugin);
-				plugin.misc.tntTracker.remove(location);
+				plugin.misc.tntTracker.remove(id);
 			}
 		}
 	}

+ 3 - 2
src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java

@@ -259,7 +259,7 @@ public class mcPlayerListener implements Listener
 		if(action == Action.RIGHT_CLICK_BLOCK && m.abilityBlockCheck(block))
 			Item.itemchecks(player, plugin);
 		
-		if(player.isSneaking() && mcPermissions.getInstance().taming(player) && (action == Action.RIGHT_CLICK_AIR || action == Action.RIGHT_CLICK_BLOCK))
+		if(player.isSneaking() && mcPermissions.getInstance().taming(player) && (action == Action.LEFT_CLICK_AIR || action == Action.LEFT_CLICK_BLOCK))
 		{
 			if(is.getType().equals(Material.RAW_FISH))
 				Taming.animalSummon(EntityType.OCELOT, player);
@@ -294,7 +294,8 @@ public class mcPlayerListener implements Listener
 	            
 	            player.sendMessage(ChatColor.GRAY+"**BOOM**");
 	            
-				TNTPrimed tnt = player.getWorld().spawn(b.getLocation(), TNTPrimed.class);
+	            TNTPrimed tnt = player.getWorld().spawn(b.getLocation(), TNTPrimed.class);
+	            plugin.misc.tntTracker.put(tnt.getEntityId(), player);
 				b.setType(Material.AIR);
 				tnt.setFuseTicks(0);
 				PP.setSkillDATS(ability, System.currentTimeMillis()); //Save DATS for Blast Mining

+ 0 - 2
src/main/java/com/gmail/nossr50/skills/Taming.java

@@ -195,9 +195,7 @@ public class Taming
 			world.spawnCreature(player.getLocation(), type);
 			
 			int amount = item.getAmount();
-			System.out.println(amount);
 			amount = amount - summonAmount;
-			System.out.println(amount);
 			player.setItemInHand(new ItemStack(summonItem, amount));
 	    	player.sendMessage(mcLocale.getString("m.TamingSummon"));
 		}