mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 11:03:43 +01:00 
			
		
		
		
	Minor updates/optimizations to PlayerListener
This commit is contained in:
		@@ -48,7 +48,6 @@ import org.bukkit.event.player.PlayerQuitEvent;
 | 
				
			|||||||
import org.bukkit.event.player.PlayerRespawnEvent;
 | 
					import org.bukkit.event.player.PlayerRespawnEvent;
 | 
				
			||||||
import org.bukkit.event.player.PlayerShearEntityEvent;
 | 
					import org.bukkit.event.player.PlayerShearEntityEvent;
 | 
				
			||||||
import org.bukkit.inventory.ItemStack;
 | 
					import org.bukkit.inventory.ItemStack;
 | 
				
			||||||
import org.bukkit.inventory.PlayerInventory;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.gmail.nossr50.Combat;
 | 
					import com.gmail.nossr50.Combat;
 | 
				
			||||||
import com.gmail.nossr50.Item;
 | 
					import com.gmail.nossr50.Item;
 | 
				
			||||||
@@ -111,20 +110,21 @@ public class mcPlayerListener implements Listener
 | 
				
			|||||||
	@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
						@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
				
			||||||
	public void onPlayerFish(PlayerFishEvent event) 
 | 
						public void onPlayerFish(PlayerFishEvent event) 
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if(mcPermissions.getInstance().fishing(event.getPlayer()))
 | 
							Player player = event.getPlayer();
 | 
				
			||||||
 | 
							if(mcPermissions.getInstance().fishing(player))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			if(event.getState() == State.CAUGHT_FISH)
 | 
								State state = event.getState();
 | 
				
			||||||
 | 
								Entity caught = event.getCaught();
 | 
				
			||||||
 | 
								if(state== State.CAUGHT_FISH)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				if(event.getCaught() instanceof org.bukkit.entity.Item)
 | 
									if(caught instanceof org.bukkit.entity.Item)
 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					Fishing.processResults(event);
 | 
										Fishing.processResults(event);
 | 
				
			||||||
				}
 | 
								} 
 | 
				
			||||||
			} else if (event.getState() == State.CAUGHT_ENTITY)
 | 
								else if (state == State.CAUGHT_ENTITY)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				if(Users.getProfile(event.getPlayer()).getSkillLevel(SkillType.FISHING) >= 150 && event.getCaught() instanceof LivingEntity)
 | 
									int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.FISHING);
 | 
				
			||||||
				{
 | 
									if(skillLevel >= 150 && caught instanceof LivingEntity)
 | 
				
			||||||
					Fishing.shakeMob(event);
 | 
										Fishing.shakeMob(event);
 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -133,32 +133,20 @@ public class mcPlayerListener implements Listener
 | 
				
			|||||||
	public void onPlayerPickupItem(PlayerPickupItemEvent event) 
 | 
						public void onPlayerPickupItem(PlayerPickupItemEvent event) 
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if(Users.getProfile(event.getPlayer()).getBerserkMode())
 | 
							if(Users.getProfile(event.getPlayer()).getBerserkMode())
 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			 event.setCancelled(true);
 | 
								 event.setCancelled(true);
 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@EventHandler
 | 
						@EventHandler
 | 
				
			||||||
	public void onPlayerRespawn(PlayerRespawnEvent event) 
 | 
						public void onPlayerRespawn(PlayerRespawnEvent event) 
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		Player player = event.getPlayer();
 | 
							Player player = event.getPlayer();
 | 
				
			||||||
		PlayerProfile PP = Users.getProfile(player);
 | 
							PlayerProfile PP = Users.getProfile(player);
 | 
				
			||||||
		if(LoadProperties.enableMySpawn && mcPermissions.getInstance().mySpawn(player))
 | 
							if(LoadProperties.enableMySpawn && mcPermissions.getInstance().mySpawn(player))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			if(player != null && PP != null)
 | 
								PP.setRespawnATS(System.currentTimeMillis());
 | 
				
			||||||
			{
 | 
								Location mySpawn = PP.getMySpawn(player);
 | 
				
			||||||
				PP.setRespawnATS(System.currentTimeMillis());
 | 
								if(mySpawn != null)
 | 
				
			||||||
				
 | 
									event.setRespawnLocation(mySpawn);
 | 
				
			||||||
				Location mySpawn = PP.getMySpawn(player);
 | 
					 | 
				
			||||||
				
 | 
					 | 
				
			||||||
				if(mySpawn != null)
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						event.setRespawnLocation(mySpawn);
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
@@ -176,18 +164,16 @@ public class mcPlayerListener implements Listener
 | 
				
			|||||||
		 */
 | 
							 */
 | 
				
			||||||
		//Discard the PlayerProfile object
 | 
							//Discard the PlayerProfile object
 | 
				
			||||||
		Player player = event.getPlayer();
 | 
							Player player = event.getPlayer();
 | 
				
			||||||
		
 | 
							PlayerProfile PP = Users.getProfile(player);
 | 
				
			||||||
		if(LoadProperties.spoutEnabled)
 | 
							if(LoadProperties.spoutEnabled && SpoutStuff.playerHUDs.containsKey(player))
 | 
				
			||||||
		{
 | 
								SpoutStuff.playerHUDs.remove(player);
 | 
				
			||||||
			if(SpoutStuff.playerHUDs.containsKey(player))
 | 
					 | 
				
			||||||
				SpoutStuff.playerHUDs.remove(player);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		//Bleed it out
 | 
							//Bleed it out
 | 
				
			||||||
		if(Users.getProfile(player).getBleedTicks() > 0) Combat.dealDamage(player, Users.getProfile(player).getBleedTicks()*2);
 | 
							if(PP.getBleedTicks() > 0)
 | 
				
			||||||
 | 
								Combat.dealDamage(player, PP.getBleedTicks()*2);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		//Save PlayerData to MySQL/FlatFile on player quit
 | 
							//Save PlayerData to MySQL/FlatFile on player quit
 | 
				
			||||||
		Users.getProfile(player).save();
 | 
							PP.save();
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		//Schedule PlayerProfile removal 2 minutes after quitting
 | 
							//Schedule PlayerProfile removal 2 minutes after quitting
 | 
				
			||||||
		Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new RemoveProfileFromMemoryTask(player), 2400);
 | 
							Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new RemoveProfileFromMemoryTask(player), 2400);
 | 
				
			||||||
@@ -214,28 +200,24 @@ public class mcPlayerListener implements Listener
 | 
				
			|||||||
		PlayerProfile PP = Users.getProfile(player);
 | 
							PlayerProfile PP = Users.getProfile(player);
 | 
				
			||||||
		Action action = event.getAction();
 | 
							Action action = event.getAction();
 | 
				
			||||||
		Block block = event.getClickedBlock();
 | 
							Block block = event.getClickedBlock();
 | 
				
			||||||
		PlayerInventory inventory = player.getInventory();
 | 
							Material mat = block.getType();
 | 
				
			||||||
 | 
							ItemStack is = player.getItemInHand();
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 * Ability checks
 | 
							 * Ability checks
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		if(action == Action.RIGHT_CLICK_BLOCK)
 | 
							if(action == Action.RIGHT_CLICK_BLOCK)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			ItemStack is = player.getItemInHand();
 | 
								if(LoadProperties.enableMySpawn && block != null)
 | 
				
			||||||
			if(LoadProperties.enableMySpawn && block != null && player != null)
 | 
					 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				if(block.getTypeId() == 26 && mcPermissions.getInstance().setMySpawn(player))
 | 
									if(mat.equals(Material.BED_BLOCK) && mcPermissions.getInstance().setMySpawn(player))
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					Location loc = player.getLocation();
 | 
										Location loc = player.getLocation();
 | 
				
			||||||
					if(mcPermissions.getInstance().setMySpawn(player)){
 | 
										PP.setMySpawn(loc.getX(), loc.getY(), loc.getZ(), loc.getWorld().getName());
 | 
				
			||||||
						PP.setMySpawn(loc.getX(), loc.getY(), loc.getZ(), loc.getWorld().getName());
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
					//player.sendMessage(mcLocale.getString("mcPlayerListener.MyspawnSet"));
 | 
					 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if(block != null && player != null && mcPermissions.getInstance().repair(player) 
 | 
								if(block != null && mcPermissions.getInstance().repair(player) && block.getTypeId() == LoadProperties.anvilID && (Repair.isTools(is) || Repair.isArmor(is)))
 | 
				
			||||||
					&& event.getClickedBlock().getTypeId() == LoadProperties.anvilID && (Repair.isTools(player.getItemInHand()) || Repair.isArmor(player.getItemInHand())))
 | 
					 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				Repair.repairCheck(player, is, event.getClickedBlock());
 | 
									Repair.repairCheck(player, is, event.getClickedBlock());
 | 
				
			||||||
				event.setCancelled(true);
 | 
									event.setCancelled(true);
 | 
				
			||||||
@@ -244,53 +226,52 @@ public class mcPlayerListener implements Listener
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			if(LoadProperties.enableAbilities && m.abilityBlockCheck(block))
 | 
								if(LoadProperties.enableAbilities && m.abilityBlockCheck(block))
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				if(block != null && m.isHoe(player.getItemInHand()) && block.getTypeId() != 3 && block.getTypeId() != 2 && block.getTypeId() != 60)
 | 
									if(block != null && m.isHoe(is) && !mat.equals(Material.DIRT) && !mat.equals(Material.GRASS) && !mat.equals(Material.SOIL))
 | 
				
			||||||
					Skills.hoeReadinessCheck(player);
 | 
										Skills.hoeReadinessCheck(player);
 | 
				
			||||||
				Skills.abilityActivationCheck(player);
 | 
									Skills.abilityActivationCheck(player);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			//GREEN THUMB
 | 
								//GREEN THUMB
 | 
				
			||||||
			if(block != null && mcPermissions.getInstance().herbalism(player) && (block.getType() == Material.COBBLESTONE || block.getType() == Material.DIRT || block.getType() == Material.SMOOTH_BRICK) && player.getItemInHand().getType() == Material.SEEDS)
 | 
								if(block != null && mcPermissions.getInstance().herbalism(player) && (mat.equals(Material.COBBLESTONE) || mat.equals(Material.DIRT) || mat.equals(Material.SMOOTH_BRICK)) && is.getType().equals(Material.SEEDS))
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				boolean pass = false;
 | 
									boolean pass = false;
 | 
				
			||||||
				if(inventory.contains(Material.SEEDS))
 | 
									int seeds = is.getAmount();
 | 
				
			||||||
				{
 | 
									player.setItemInHand(new ItemStack(Material.SEEDS, seeds - 1));
 | 
				
			||||||
					inventory.removeItem(new ItemStack(Material.SEEDS, 1));
 | 
					 | 
				
			||||||
					player.updateInventory();
 | 
					 | 
				
			||||||
					
 | 
										
 | 
				
			||||||
					if(block.getType() == Material.DIRT || block.getType() == Material.COBBLESTONE || block.getType() == Material.SMOOTH_BRICK)
 | 
									if(Math.random() * 1500 <= PP.getSkillLevel(SkillType.HERBALISM) && m.blockBreakSimulate(block, player, false))
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										switch(mat)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						if(Math.random() * 1500 <= PP.getSkillLevel(SkillType.HERBALISM) && m.blockBreakSimulate(block, player, false))
 | 
										case COBBLESTONE:
 | 
				
			||||||
 | 
											if(LoadProperties.enableCobbleToMossy)
 | 
				
			||||||
						{
 | 
											{
 | 
				
			||||||
							switch(block.getType())
 | 
												block.setType(Material.MOSSY_COBBLESTONE);
 | 
				
			||||||
							{
 | 
												pass = true;
 | 
				
			||||||
							case COBBLESTONE:
 | 
					 | 
				
			||||||
								if(LoadProperties.enableCobbleToMossy) {
 | 
					 | 
				
			||||||
									block.setType(Material.MOSSY_COBBLESTONE);
 | 
					 | 
				
			||||||
									pass = true;
 | 
					 | 
				
			||||||
								}
 | 
					 | 
				
			||||||
								break;
 | 
					 | 
				
			||||||
							case DIRT:
 | 
					 | 
				
			||||||
								if(LoadProperties.enableDirtToGrass) {
 | 
					 | 
				
			||||||
									pass = true;
 | 
					 | 
				
			||||||
									block.setType(Material.GRASS);
 | 
					 | 
				
			||||||
								}
 | 
					 | 
				
			||||||
								break;
 | 
					 | 
				
			||||||
							case SMOOTH_BRICK:
 | 
					 | 
				
			||||||
								if(LoadProperties.enableSmoothToMossy) {
 | 
					 | 
				
			||||||
									pass = true;
 | 
					 | 
				
			||||||
									block.setData((byte)1);
 | 
					 | 
				
			||||||
								}
 | 
					 | 
				
			||||||
								break;
 | 
					 | 
				
			||||||
							}
 | 
					 | 
				
			||||||
							if(pass == false)
 | 
					 | 
				
			||||||
								player.sendMessage(mcLocale.getString("mcPlayerListener.GreenThumbFail"));
 | 
					 | 
				
			||||||
						}
 | 
											}
 | 
				
			||||||
 | 
											break;
 | 
				
			||||||
 | 
										case DIRT:
 | 
				
			||||||
 | 
											if(LoadProperties.enableDirtToGrass)
 | 
				
			||||||
 | 
											{
 | 
				
			||||||
 | 
												block.setType(Material.GRASS);
 | 
				
			||||||
 | 
												pass = true;
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											break;
 | 
				
			||||||
 | 
										case SMOOTH_BRICK:
 | 
				
			||||||
 | 
											if(LoadProperties.enableSmoothToMossy)
 | 
				
			||||||
 | 
											{
 | 
				
			||||||
 | 
												pass = true;
 | 
				
			||||||
 | 
												block.setData((byte)1);
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											break;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
 | 
										
 | 
				
			||||||
 | 
										if(pass == false)
 | 
				
			||||||
 | 
											player.sendMessage(mcLocale.getString("mcPlayerListener.GreenThumbFail"));
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
		if(LoadProperties.enableAbilities && action == Action.RIGHT_CLICK_AIR)
 | 
							if(LoadProperties.enableAbilities && action == Action.RIGHT_CLICK_AIR)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			Skills.hoeReadinessCheck(player);
 | 
								Skills.hoeReadinessCheck(player);
 | 
				
			||||||
@@ -302,15 +283,12 @@ public class mcPlayerListener implements Listener
 | 
				
			|||||||
		 */
 | 
							 */
 | 
				
			||||||
		if(action == Action.RIGHT_CLICK_AIR)
 | 
							if(action == Action.RIGHT_CLICK_AIR)
 | 
				
			||||||
			Item.itemchecks(player, plugin);
 | 
								Item.itemchecks(player, plugin);
 | 
				
			||||||
		if(action == Action.RIGHT_CLICK_BLOCK)
 | 
							if(action == Action.RIGHT_CLICK_BLOCK && m.abilityBlockCheck(block))
 | 
				
			||||||
		{
 | 
								Item.itemchecks(player, plugin);
 | 
				
			||||||
			if(m.abilityBlockCheck(event.getClickedBlock()))
 | 
					 | 
				
			||||||
				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.RIGHT_CLICK_AIR || action == Action.RIGHT_CLICK_BLOCK))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			if(player.getItemInHand().getType() == Material.BONE && player.getItemInHand().getAmount() >= LoadProperties.bonesConsumedByCOTW)
 | 
								if(mat.equals(Material.BONE) && is.getAmount() >= LoadProperties.bonesConsumedByCOTW)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				for(Entity x : player.getNearbyEntities(40, 40, 40))
 | 
									for(Entity x : player.getNearbyEntities(40, 40, 40))
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
@@ -320,10 +298,11 @@ public class mcPlayerListener implements Listener
 | 
				
			|||||||
						return;
 | 
											return;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
									
 | 
				
			||||||
				World world = player.getWorld();
 | 
									World world = player.getWorld();
 | 
				
			||||||
				world.spawnCreature(player.getLocation(), EntityType.WOLF);
 | 
									world.spawnCreature(player.getLocation(), EntityType.WOLF);
 | 
				
			||||||
				
 | 
									
 | 
				
			||||||
				int bones = player.getItemInHand().getAmount();
 | 
									int bones = is.getAmount();
 | 
				
			||||||
				bones = bones - LoadProperties.bonesConsumedByCOTW;
 | 
									bones = bones - LoadProperties.bonesConsumedByCOTW;
 | 
				
			||||||
				player.setItemInHand(new ItemStack(Material.BONE, bones));
 | 
									player.setItemInHand(new ItemStack(Material.BONE, bones));
 | 
				
			||||||
    	    	player.sendMessage(mcLocale.getString("m.TamingSummon"));
 | 
					    	    	player.sendMessage(mcLocale.getString("m.TamingSummon"));
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user