From cf4a02f37f89cbca0694fd8981a59365ea3d05c8 Mon Sep 17 00:00:00 2001 From: Electroblob <35599699+Electroblob77@users.noreply.github.com> Date: Sat, 14 Apr 2018 15:28:19 +0100 Subject: [PATCH] Fix crash related to creative tab sorting with HQM installed --- .../electroblob/wizardry/registry/WizardryTabs.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/electroblob/wizardry/registry/WizardryTabs.java b/src/main/java/electroblob/wizardry/registry/WizardryTabs.java index ceb348a1..b0888768 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardryTabs.java +++ b/src/main/java/electroblob/wizardry/registry/WizardryTabs.java @@ -5,8 +5,6 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; -import com.google.common.collect.Ordering; - import electroblob.wizardry.item.ItemScroll; import electroblob.wizardry.item.ItemSpellBook; import electroblob.wizardry.spell.Spell; @@ -44,6 +42,7 @@ public final class WizardryTabs { Collections.sort(items, itemSorter); } }; + public static final CreativeTabs SPELLS = new CreativeTabs("ebwizardryspells"){ @Override @@ -103,7 +102,14 @@ public final class WizardryTabs { WizardryItems.wizard_boots_sorcery, WizardryItems.wizard_hat_healing, WizardryItems.wizard_robe_healing, WizardryItems.wizard_leggings_healing, WizardryItems.wizard_boots_healing); - itemSorter = Ordering.explicit(orderedItemList).onResultOf(ItemStack::getItem); + itemSorter = (stack1, stack2) -> { + // Neither stack is in the creative tab + if(!orderedItemList.contains(stack1.getItem()) && !orderedItemList.contains(stack2.getItem())) return 0; + if(!orderedItemList.contains(stack1.getItem())) return 1; // Only stack 2 is in the creative tab + if(!orderedItemList.contains(stack2.getItem())) return -1; // Only stack 1 is in the creative tab + // Both stacks are in the creative tab + return orderedItemList.indexOf(stack1.getItem()) - orderedItemList.indexOf(stack2.getItem()); + }; spellItemSorter = (stack1, stack2) -> {