Browse Source

Huge Mushrooms now work for Tree Feller (UNTESTED)

nossr50 12 years ago
parent
commit
9df149c489

+ 1 - 0
Changelog.txt

@@ -73,6 +73,7 @@ Version 1.4.00-dev
  ! Changed how Berserk handles not picking up items to avoid listening to PlayerPickupItemEvent
  ! Changed how Berserk handles not picking up items to avoid listening to PlayerPickupItemEvent
  ! Moved Hylian Luck into a separate listener since it actually cancels the event and shouldn't just be on MONITOR.
  ! Moved Hylian Luck into a separate listener since it actually cancels the event and shouldn't just be on MONITOR.
  ! Changed how Tree Feller is handled, it should now put less stress on the CPU
  ! Changed how Tree Feller is handled, it should now put less stress on the CPU
+ ! Changed Tree Feller to work on huge mushrooms
  ! Changed Fisherman's Diet and Farmer's Diet to use two seperate config values
  ! Changed Fisherman's Diet and Farmer's Diet to use two seperate config values
  ! Major refactoring - please take note, this WILL break any mcMMO-related plugin not properly hooking into the API.
  ! Major refactoring - please take note, this WILL break any mcMMO-related plugin not properly hooking into the API.
  ! Changed the way party commands work, use /party ? to check how to use the new commands
  ! Changed the way party commands work, use /party ? to check how to use the new commands

+ 3 - 0
src/main/java/com/gmail/nossr50/config/Config.java

@@ -276,6 +276,9 @@ public class Config extends ConfigLoader {
     public int getWoodcuttingXPBirch() { return config.getInt("Experience.Woodcutting.Birch", 90); }
     public int getWoodcuttingXPBirch() { return config.getInt("Experience.Woodcutting.Birch", 90); }
     public int getWoodcuttingXPSpruce() { return config.getInt("Experience.Woodcutting.Spruce", 80); }
     public int getWoodcuttingXPSpruce() { return config.getInt("Experience.Woodcutting.Spruce", 80); }
     public int getWoodcuttingXPJungle() { return config.getInt("Experience.Woodcutting.Jungle", 100); }
     public int getWoodcuttingXPJungle() { return config.getInt("Experience.Woodcutting.Jungle", 100); }
+    public int getWoodcuttingXPHugeBrownMushroom() { return config.getInt("Experience.Woodcutting.Huge_Mushroom_Brown", 70); }
+    public int getWoodcuttingXPHugeRedMushroom() { return config.getInt("Experience.Woodcutting.Huge_Mushroom_Red", 70); }
+    
 
 
     public boolean getOakDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Woodcutting.Oak", true); }
     public boolean getOakDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Woodcutting.Oak", true); }
     public boolean getBirchDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Woodcutting.Birch", true); }
     public boolean getBirchDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Woodcutting.Birch", true); }

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/acrobatics/Acrobatics.java

@@ -22,4 +22,4 @@ public class Acrobatics {
 
 
     public static boolean afkLevelingDisabled = Config.getInstance().getAcrobaticsAFKDisabled();
     public static boolean afkLevelingDisabled = Config.getInstance().getAcrobaticsAFKDisabled();
     public static boolean dodgeLightningDisabled = Config.getInstance().getDodgeLightningDisabled();
     public static boolean dodgeLightningDisabled = Config.getInstance().getDodgeLightningDisabled();
-}
+}

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/axes/AxeBonusDamageEventHandler.java

@@ -28,4 +28,4 @@ public class AxeBonusDamageEventHandler {
 
 
         event.setDamage(damage + damageBonus);
         event.setDamage(damage + damageBonus);
     }
     }
-}
+}

+ 29 - 0
src/main/java/com/gmail/nossr50/skills/woodcutting/TreeFeller.java

@@ -175,6 +175,35 @@ public final class TreeFeller {
             }
             }
 
 
             switch (block.getType()) {
             switch (block.getType()) {
+            case HUGE_MUSHROOM_1:
+            case HUGE_MUSHROOM_2:
+            	Woodcutting.checkForDoubleDrop(mcMMOPlayer, block);
+            	
+            	try {
+                    xp += Woodcutting.getExperienceFromLog(block, ExperienceGainMethod.TREE_FELLER);
+                }
+                catch (IllegalArgumentException exception) {
+                    break;
+                }
+            	
+            	//Stems have a block data value of 15 and should not drop mushrooms
+            	//0-2 mushrooms drop when you break a block
+            	if(block.getData() != (byte) 15) {
+            		switch(block.getType()) {
+            		case HUGE_MUSHROOM_1:
+                		Misc.randomDropItem(block.getLocation(), new ItemStack(Material.BROWN_MUSHROOM, 1), 50);
+                		Misc.randomDropItem(block.getLocation(), new ItemStack(Material.BROWN_MUSHROOM, 1), 50);
+            			break;
+            		case HUGE_MUSHROOM_2:
+                		Misc.randomDropItem(block.getLocation(), new ItemStack(Material.RED_MUSHROOM, 1), 50);
+                		Misc.randomDropItem(block.getLocation(), new ItemStack(Material.RED_MUSHROOM, 1), 50);
+                		break;
+                	default:
+                		break;
+            		}
+            	}
+            	
+            	break;
             case LOG:
             case LOG:
                 Woodcutting.checkForDoubleDrop(mcMMOPlayer, block);
                 Woodcutting.checkForDoubleDrop(mcMMOPlayer, block);
 
 

+ 13 - 0
src/main/java/com/gmail/nossr50/skills/woodcutting/Woodcutting.java

@@ -93,6 +93,19 @@ public final class Woodcutting {
      * @throws IllegalArgumentException if 'log' is invalid
      * @throws IllegalArgumentException if 'log' is invalid
      */
      */
     protected static int getExperienceFromLog(Block log, ExperienceGainMethod experienceGainMethod) {
     protected static int getExperienceFromLog(Block log, ExperienceGainMethod experienceGainMethod) {
+    	
+    	//Mushrooms aren't trees so we could never get species data from them
+    	if(log.getType() == Material.HUGE_MUSHROOM_1 || log.getType() == Material.HUGE_MUSHROOM_2) {
+    		switch(log.getType()) {
+    		case HUGE_MUSHROOM_1:
+    			return Config.getInstance().getWoodcuttingXPHugeBrownMushroom();
+    		case HUGE_MUSHROOM_2:
+    			return Config.getInstance().getWoodcuttingXPHugeRedMushroom();
+    		default:
+                throw new IllegalArgumentException();
+    		}
+    	}
+    	
         TreeSpecies logType = TreeSpecies.getByData(extractLogItemData(log.getData()));
         TreeSpecies logType = TreeSpecies.getByData(extractLogItemData(log.getData()));
 
 
         // Apparently species can be null in certain cases (custom server mods?)
         // Apparently species can be null in certain cases (custom server mods?)

+ 2 - 0
src/main/java/com/gmail/nossr50/util/BlockChecks.java

@@ -300,6 +300,8 @@ public final class BlockChecks {
         switch (block.getType()) {
         switch (block.getType()) {
         case LOG:
         case LOG:
         case LEAVES:
         case LEAVES:
+        case HUGE_MUSHROOM_1:
+        case HUGE_MUSHROOM_2:
             return true;
             return true;
 
 
         default:
         default:

+ 2 - 0
src/main/resources/config.yml

@@ -271,6 +271,8 @@ Experience:
         Spruce: 80
         Spruce: 80
         Birch: 90
         Birch: 90
         Jungle: 100
         Jungle: 100
+        Huge_Mushroom_Red: 70
+        Huge_Mushroom_Brown: 70
     Herbalism:
     Herbalism:
         Sugar_Cane: 30
         Sugar_Cane: 30
         Cactus: 30
         Cactus: 30