Browse Source

Merge pull request #3104 from kanesada2/skeleton

Fix shake from WITHER-SKELETON. avoid to use depredated method: getSkeltonType().
t00thpick1 8 years ago
parent
commit
6297e1c79b

+ 36 - 32
src/main/java/com/gmail/nossr50/config/treasure/TreasureConfig.java

@@ -14,7 +14,6 @@ import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.meta.ItemMeta;
 import org.bukkit.inventory.meta.PotionMeta;
 import org.bukkit.material.Dye;
-import org.bukkit.potion.Potion;
 import org.bukkit.potion.PotionData;
 import org.bukkit.potion.PotionType;
 
@@ -46,31 +45,32 @@ public class TreasureConfig extends ConfigLoader {
     public List<HylianTreasure> hylianFromFlowers = new ArrayList<HylianTreasure>();
     public List<HylianTreasure> hylianFromPots    = new ArrayList<HylianTreasure>();
 
-    public List<ShakeTreasure> shakeFromBlaze         = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromCaveSpider    = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromSpider        = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromChicken       = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromCow           = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromCreeper       = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromEnderman      = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromGhast         = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromHorse         = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromIronGolem     = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromMagmaCube     = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromMushroomCow   = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromPig           = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromPigZombie     = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromPlayer        = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromSheep         = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromSkeleton      = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromSlime         = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromSnowman       = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromSquid         = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromWitch         = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromZombie        = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromRabbit        = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromElderGuardian = new ArrayList<ShakeTreasure>();
-    public List<ShakeTreasure> shakeFromGuardian      = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromBlaze          = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromCaveSpider     = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromSpider         = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromChicken        = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromCow            = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromCreeper        = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromEnderman       = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromGhast          = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromHorse          = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromIronGolem      = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromMagmaCube      = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromMushroomCow    = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromPig            = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromPigZombie      = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromPlayer         = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromSheep          = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromSkeleton       = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromSlime          = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromSnowman        = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromSquid          = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromWitch          = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromWitherSkeleton = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromZombie         = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromRabbit         = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromElderGuardian  = new ArrayList<ShakeTreasure>();
+    public List<ShakeTreasure> shakeFromGuardian       = new ArrayList<ShakeTreasure>();
 
     public HashMap<Rarity, List<FishingTreasure>>     fishingRewards      = new HashMap<Rarity, List<FishingTreasure>>();
     public HashMap<Rarity, List<EnchantmentTreasure>> fishingEnchantments = new HashMap<Rarity, List<EnchantmentTreasure>>();
@@ -133,19 +133,19 @@ public class TreasureConfig extends ConfigLoader {
             return;
         }
 
-        loadTreaures("Fishing");
-        loadTreaures("Excavation");
-        loadTreaures("Hylian_Luck");
+        loadTreasures("Fishing");
+        loadTreasures("Excavation");
+        loadTreasures("Hylian_Luck");
         loadEnchantments();
 
         for (EntityType entity : EntityType.values()) {
             if (entity.isAlive()) {
-                loadTreaures("Shake." + entity.toString());
+                loadTreasures("Shake." + entity.toString());
             }
         }
     }
 
-    private void loadTreaures(String type) {
+    private void loadTreasures(String type) {
         boolean isFishing = type.equals("Fishing");
         boolean isShake = type.contains("Shake");
         boolean isExcavation = type.equals("Excavation");
@@ -178,7 +178,9 @@ public class TreasureConfig extends ConfigLoader {
 
             if (materialName.contains("INK_SACK")) {
                 material = Material.INK_SACK;
-            } else if (materialName.contains("INVENTORY")) {
+            } else if(materialName.contains("COAL")){
+            	material = Material.COAL;
+        	} else if (materialName.contains("INVENTORY")) {
                 // Use magic material BED_BLOCK to know that we're grabbing something from the inventory and not a normal treasure
                 shakeFromPlayer.add(new ShakeTreasure(new ItemStack(Material.BED_BLOCK, 1, (byte) 0), 1, getInventoryStealDropChance(), getInventoryStealDropLevel()));
                 continue;
@@ -365,6 +367,8 @@ public class TreasureConfig extends ConfigLoader {
                         shakeFromSquid.add(shakeTreasure);
                     } else if (type.equals("Shake.WITCH")) {
                         shakeFromWitch.add(shakeTreasure);
+                    } else if (type.equals("Shake.WITHER_SKELETON")) {
+                        shakeFromWitherSkeleton.add(shakeTreasure);
                     } else if (type.equals("Shake.ZOMBIE")) {
                         shakeFromZombie.add(shakeTreasure);
                     } else if (type.equals("Shake.RABBIT")) {

+ 4 - 3
src/main/java/com/gmail/nossr50/skills/fishing/Fishing.java

@@ -1,6 +1,5 @@
 package com.gmail.nossr50.skills.fishing;
 
-import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Set;
@@ -131,13 +130,15 @@ public final class Fishing {
 
             case WITCH:
                 return TreasureConfig.getInstance().shakeFromWitch;
+            case WITHER_SKELETON:
+            	return TreasureConfig.getInstance().shakeFromWitherSkeleton;
 
             case ZOMBIE:
                 return TreasureConfig.getInstance().shakeFromZombie;
-                
+
             case RABBIT:
                 return TreasureConfig.getInstance().shakeFromRabbit;
-                
+
             case GUARDIAN:
                 if (((Guardian) target).isElder())
                     return TreasureConfig.getInstance().shakeFromElderGuardian;

+ 4 - 20
src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java

@@ -10,7 +10,6 @@ import java.util.Map;
 import org.bukkit.ChatColor;
 import org.bukkit.Location;
 import org.bukkit.Material;
-import org.bukkit.Sound;
 import org.bukkit.WeatherType;
 import org.bukkit.World;
 import org.bukkit.block.Block;
@@ -23,8 +22,6 @@ import org.bukkit.entity.Item;
 import org.bukkit.entity.LivingEntity;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Sheep;
-import org.bukkit.entity.Skeleton;
-import org.bukkit.entity.Skeleton.SkeletonType;
 import org.bukkit.entity.TNTPrimed;
 import org.bukkit.entity.ThrownPotion;
 import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -448,26 +445,13 @@ public class FishingManager extends SkillManager {
                         sheep.setSheared(true);
                     }
                     break;
-
-                case SKELETON:
-                    if (((Skeleton) target).getSkeletonType() == SkeletonType.WITHER) {
-                        switch (drop.getType()) {
-                            case SKULL_ITEM:
-                                drop.setDurability((short) 1);
-                                break;
-
-                            case ARROW:
-                                drop.setType(Material.COAL);
-                                break;
-
-                            default:
-                                break;
-                        }
+                case WITHER_SKELETON:
+                    if(drop.getType() == Material.SKULL_ITEM){
+                    	drop.setDurability((short) 1);
                     }
                     break;
-
                 default:
-                    break;
+                	break;
             }
 
             McMMOPlayerShakeEvent shakeEvent = new McMMOPlayerShakeEvent(getPlayer(), drop);

+ 18 - 1
src/main/resources/treasures.yml

@@ -919,6 +919,23 @@ Shake:
             XP: 0
             Drop_Chance: 15.0
             Drop_Level: 0
+    WITHER_SKELETON:
+        SKULL_ITEM:
+            Data: 0
+            Amount: 1
+            XP: 0
+            Drop_Chance: 2.0
+            Drop_Level: 0
+        BONE:
+            Amount: 1
+            XP: 0
+            Drop_Chance: 49.0
+            Drop_Level: 0
+        COAL:
+            Amount: 2
+            XP: 0
+            Drop_Chance: 49.0
+            Drop_Level: 0
     ZOMBIE:
         SKULL_ITEM:
             Data: 2
@@ -930,4 +947,4 @@ Shake:
             Amount: 1
             XP: 0
             Drop_Chance: 98.0
-            Drop_Level: 0
+            Drop_Level: 0