浏览代码

Check the range in a seperate function

GJ 12 年之前
父节点
当前提交
78f2e0a064
共有 1 个文件被更改,包括 35 次插入15 次删除
  1. 35 15
      src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java

+ 35 - 15
src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java

@@ -178,17 +178,13 @@ public class TamingManager extends SkillManager {
             return;
         }
 
-        double range = Config.getInstance().getTamingCOTWRange();
-        if (range > 0) {
-            for (Entity entity : player.getNearbyEntities(range, range, range)) {
-                if (entity.getType() == type) {
-                    player.sendMessage(Taming.getCallOfTheWildFailureMessage(type));
-                    return;
-                }
-            }
+        if (!rangeCheck(type)) {
+            return;
         }
 
         int amount = Config.getInstance().getTamingCOTWAmount(type);
+
+        // TODO: Validate in config instead
         if (amount <= 0) {
             amount = 1;
         }
@@ -199,16 +195,22 @@ public class TamingManager extends SkillManager {
             entity.setMetadata(mcMMO.entityMetadataKey, mcMMO.metadataValue);
             ((Tameable) entity).setOwner(player);
 
-            if (type == EntityType.OCELOT) {
-                ((Ocelot) entity).setCatType(Ocelot.Type.getType(1 + Misc.getRandom().nextInt(3)));
-            }
-            else {
-                entity.setMaxHealth(20);
-                entity.setHealth(entity.getMaxHealth());
+            switch (type) {
+                case OCELOT:
+                    ((Ocelot) entity).setCatType(Ocelot.Type.getType(1 + Misc.getRandom().nextInt(3)));
+                    break;
+
+                case WOLF:
+                    entity.setMaxHealth(20.0);
+                    entity.setHealth(entity.getMaxHealth());
+                    break;
+
+                default:
+                    break;
             }
 
             if (Permissions.renamePets(player)) {
-                entity.setCustomName(LocaleLoader.getString("Taming.Summon.Name.Format", player.getName(), StringUtils.getPrettyEntityTypeString(entity.getType())));
+                entity.setCustomName(LocaleLoader.getString("Taming.Summon.Name.Format", player.getName(), StringUtils.getPrettyEntityTypeString(type)));
                 entity.setCustomNameVisible(true);
             }
         }
@@ -216,4 +218,22 @@ public class TamingManager extends SkillManager {
         player.setItemInHand(new ItemStack(heldItem.getType(), heldItemAmount - summonAmount));
         player.sendMessage(LocaleLoader.getString("Taming.Summon.Complete"));
     }
+
+    private boolean rangeCheck(EntityType type) {
+        double range = Config.getInstance().getTamingCOTWRange();
+        Player player = getPlayer();
+
+        if (range == 0) {
+            return true;
+        }
+
+        for (Entity entity : player.getNearbyEntities(range, range, range)) {
+            if (entity.getType() == type) {
+                player.sendMessage(Taming.getCallOfTheWildFailureMessage(type));
+                return false;
+            }
+        }
+
+        return true;
+    }
 }