Workaround for SPIGOT-6025 (catch the exception and log it)

This commit is contained in:
Brokkonaut
2020-08-28 05:34:48 +02:00
parent 24b5455f08
commit d548206c3a

View File

@ -1,6 +1,8 @@
package de.diddiz.util;
import static de.diddiz.util.MessagingUtil.prettyMaterial;
import de.diddiz.LogBlock.LogBlock;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
@ -11,6 +13,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.logging.Level;
import java.util.Set;
import java.util.UUID;
import net.md_5.bungee.api.chat.BaseComponent;
@ -525,7 +528,11 @@ public class BukkitUtils {
public static ItemStack[] compareInventories(ItemStack[] items1, ItemStack[] items2) {
final ArrayList<ItemStack> diff = new ArrayList<>();
for (ItemStack current : items2) {
diff.add(new ItemStack(current));
try {
diff.add(new ItemStack(current));
} catch (NullPointerException e) {
LogBlock.getInstance().getLogger().log(Level.SEVERE, "Could not clone ItemStack, probably Spigot bug SPIGOT-6025", e); // SPIGOT-6025
}
}
for (ItemStack previous : items1) {
boolean found = false;
@ -542,9 +549,13 @@ public class BukkitUtils {
}
}
if (!found) {
ItemStack subtracted = new ItemStack(previous);
subtracted.setAmount(-subtracted.getAmount());
diff.add(subtracted);
try {
ItemStack subtracted = new ItemStack(previous);
subtracted.setAmount(-subtracted.getAmount());
diff.add(subtracted);
} catch (NullPointerException e) {
LogBlock.getInstance().getLogger().log(Level.SEVERE, "Could not clone ItemStack, probably Spigot bug SPIGOT-6025", e); // SPIGOT-6025
}
}
}
return diff.toArray(new ItemStack[diff.size()]);