GJ 13 роки тому
батько
коміт
d10ff590ec

+ 67 - 65
src/main/java/com/gmail/nossr50/Item.java

@@ -1,26 +1,27 @@
 /*
-	This file is part of mcMMO.
-
-    mcMMO is free software: you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    mcMMO is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with mcMMO.  If not, see <http://www.gnu.org/licenses/>.
+ * Copyright (C) 2012 Matt 'The Yeti' Burnett & mcMMO Development
+ * Copyright (C) 2010-2011 'nossr50'
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
+
 package com.gmail.nossr50;
 
 import org.bukkit.Material;
 import org.bukkit.block.Block;
 import org.bukkit.entity.Player;
 import org.bukkit.inventory.ItemStack;
-import org.bukkit.plugin.Plugin;
 
 import com.gmail.nossr50.locale.mcLocale;
 import com.gmail.nossr50.skills.Skills;
@@ -28,54 +29,55 @@ import com.gmail.nossr50.config.LoadProperties;
 import com.gmail.nossr50.datatypes.PlayerProfile;
 
 public class Item {
-	
-	public static void itemchecks(Player player, Plugin plugin)
-	{
-		ItemStack inhand = player.getItemInHand();
-		if(LoadProperties.chimaeraWingEnable && inhand.getTypeId() == LoadProperties.chimaeraId)
-			chimaerawing(player, plugin);
-	}
-	
-	public static void chimaerawing(Player player, Plugin plugin)
-	{
-		PlayerProfile PP = Users.getProfile(player);
-		ItemStack is = player.getItemInHand();
-		Block block = player.getLocation().getBlock();
-		int chimaeraID = LoadProperties.chimaeraId;
-		int itemsUsed = LoadProperties.feathersConsumedByChimaeraWing;
-		if(mcPermissions.getInstance().chimaeraWing(player) && is.getTypeId() == chimaeraID)
-		{
-    		if(Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= itemsUsed)
-    		{
-    			Block derp = player.getLocation().getBlock();
-    			int y = derp.getY();
-    			player.setItemInHand(new ItemStack(chimaeraID, is.getAmount() - itemsUsed));
-    
-    			while(y < 127)
-    			{
-    				y++;
-    				if(player != null)
-    				{
-    					if(player.getLocation().getWorld().getBlockAt(block.getX(), y, block.getZ()).getType() != Material.AIR)
-    					{
-	    					player.sendMessage(mcLocale.getString("Item.ChimaeraWingFail")); //$NON-NLS-1$
-	    					player.teleport(player.getLocation().getWorld().getBlockAt(block.getX(), (y - 1), block.getZ()).getLocation());
-	    					return;
-    					}
-    				}
-    			}
-    			
-    			if(player.getBedSpawnLocation() != null && player.getBedSpawnLocation().getBlock().getType().equals(Material.BED_BLOCK))
-	    			player.teleport(player.getBedSpawnLocation());
-    			else
-    				player.teleport(player.getWorld().getSpawnLocation());
-    			
-    			player.sendMessage(mcLocale.getString("Item.ChimaeraWingPass")); //$NON-NLS-1$
-    		}
-    		else if (!Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= itemsUsed) 
-    			player.sendMessage(mcLocale.getString("Item.InjuredWait", new Object[] {Skills.calculateTimeLeft(player, PP.getRecentlyHurt(), 60)})); //$NON-NLS-1$
-    		else if (is.getTypeId() == LoadProperties.chimaeraId && is.getAmount() <= itemsUsed)
-    			player.sendMessage(mcLocale.getString("Item.NeedFeathers")); //$NON-NLS-1$
-    	}
-	}
+
+    /**
+     * Check for item usage.
+     *
+     * @param player Player whose item usage to check
+     */
+    public static void itemchecks(Player player) {
+        ItemStack inhand = player.getItemInHand();
+
+        if (LoadProperties.chimaeraWingEnable && inhand.getTypeId() == LoadProperties.chimaeraId) {
+            chimaerawing(player);
+        }
+    }
+
+    private static void chimaerawing(Player player) {
+        PlayerProfile PP = Users.getProfile(player);
+        ItemStack is = player.getItemInHand();
+        Block block = player.getLocation().getBlock();
+        int chimaeraID = LoadProperties.chimaeraId;
+        int itemsUsed = LoadProperties.feathersConsumedByChimaeraWing;
+        int amount = is.getAmount();
+
+        if (mcPermissions.getInstance().chimaeraWing(player) && is.getTypeId() == chimaeraID) {
+            if (Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && amount >= itemsUsed) {
+                player.setItemInHand(new ItemStack(chimaeraID, amount - itemsUsed));
+
+                for (int blockY = block.getY(); blockY < 127; blockY++) {
+                    if (player.getLocation().getWorld().getBlockAt(block.getX(), blockY, block.getZ()).getType() != Material.AIR) {
+                        player.sendMessage(mcLocale.getString("Item.ChimaeraWingFail"));
+                        player.teleport(player.getLocation().getWorld().getBlockAt(block.getX(), (blockY - 1), block.getZ()).getLocation());
+                        return;
+                    }
+                }
+
+                if (player.getBedSpawnLocation() != null && player.getBedSpawnLocation().getBlock().getType().equals(Material.BED_BLOCK)) {
+                    player.teleport(player.getBedSpawnLocation());
+                }
+                else {
+                    player.teleport(player.getWorld().getSpawnLocation());
+                }
+
+                player.sendMessage(mcLocale.getString("Item.ChimaeraWingPass"));
+            }
+            else if (!Skills.cooldownOver(player, PP.getRecentlyHurt(), 60) && is.getAmount() >= itemsUsed) {
+                player.sendMessage(mcLocale.getString("Item.InjuredWait", new Object[] {Skills.calculateTimeLeft(player, PP.getRecentlyHurt(), 60)}));
+            }
+            else if (is.getTypeId() == LoadProperties.chimaeraId && is.getAmount() <= itemsUsed) {
+                player.sendMessage(mcLocale.getString("Item.NeedFeathers"));
+            }
+        }
+    }
 }

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

@@ -255,9 +255,9 @@ public class mcPlayerListener implements Listener
 		 * ITEM CHECKS
 		 */
 		if(action == Action.RIGHT_CLICK_AIR)
-			Item.itemchecks(player, plugin);
+			Item.itemchecks(player);
 		if(action == Action.RIGHT_CLICK_BLOCK && m.abilityBlockCheck(block))
-			Item.itemchecks(player, plugin);
+			Item.itemchecks(player);
 		
 		if(player.isSneaking() && mcPermissions.getInstance().taming(player) && (action == Action.LEFT_CLICK_AIR || action == Action.LEFT_CLICK_BLOCK))
 		{