Explorar o código

Fixed Blast Mining not giving triple drop when it should

bm01 %!s(int64=13) %!d(string=hai) anos
pai
achega
9b438d0caa
Modificáronse 2 ficheiros con 9 adicións e 12 borrados
  1. 1 0
      Changelog.txt
  2. 8 12
      src/main/java/com/gmail/nossr50/skills/BlastMining.java

+ 1 - 0
Changelog.txt

@@ -25,6 +25,7 @@ Version 1.3.06-dev
  = Fixed bugs with the way /mctop displayed
  = Fixed issues with custom characters & locale files.
  = Fixed double explosion for Blast Mining
+ = Fixed Blast Mining not giving triple drops when it should
  ! Changed how we handled the config file to prevent any bugs when returning values
  ! Changed locale files to use a new naming scheme. This breaks ALL old locale files. If you want to assist with re-translating anything, go to getlocalization.com/mcMMO
  ! Changed mcremove to check for users in the MySQL DB before sending queries to remove them

+ 8 - 12
src/main/java/com/gmail/nossr50/skills/BlastMining.java

@@ -41,22 +41,18 @@ public class BlastMining {
      * @return A list of blocks dropped from the explosion
      */
     private static List<Block> explosionYields(List<Block> ores, List<Block> debris, float yield, float oreBonus, float debrisReduction, int extraDrops) {
-        Iterator<Block> iterator2 = ores.iterator();
+        Iterator<Block> oresIterator = ores.iterator();
         List<Block> blocksDropped = new ArrayList<Block>();
 
-        while (iterator2.hasNext()) {
-            Block temp = iterator2.next();
+        while (oresIterator.hasNext()) {
+            Block temp = oresIterator.next();
 
             if (random.nextFloat() < (yield + oreBonus)) {
                 blocksDropped.add(temp);
                 Mining.miningDrops(temp);
 
                 if (!temp.hasMetadata("mcmmoPlacedBlock")) {
-                    if (extraDrops == 2) {
-                        blocksDropped.add(temp);
-                        Mining.miningDrops(temp);
-                    }
-                    if (extraDrops == 3) {
+                    for (int i = 1 ; i < extraDrops ; i++) {
                         blocksDropped.add(temp);
                         Mining.miningDrops(temp);
                     }
@@ -64,11 +60,11 @@ public class BlastMining {
             }
         }
 
-        if (yield - debrisReduction != 0) {
-            Iterator<Block> iterator3 = debris.iterator();
+        if (yield - debrisReduction > 0) {
+            Iterator<Block> debrisIterator = debris.iterator();
 
-            while (iterator3.hasNext()) {
-                Block temp = iterator3.next();
+            while (debrisIterator.hasNext()) {
+                Block temp = debrisIterator.next();
 
                 if (random.nextFloat() < (yield - debrisReduction))
                     Mining.miningDrops(temp);