diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterFilter.java index 24ceb7c29..1918454d6 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterFilter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterFilter.java @@ -34,7 +34,10 @@ public class GridFilterFilter implements Predicate { ItemStack stackInFilter = (ItemStack) filter.getStack(); if (filter.isModFilter()) { - if (stackInFilter.getItem().getRegistryName().getNamespace().equalsIgnoreCase(stack.getModId())) { + String stackModId = stack.getModId(); + String filterModId = stackInFilter.getItem().getCreatorModId(stackInFilter); + + if (filterModId != null && filterModId.equals(stackModId)) { return filter.getMode() == IFilter.MODE_WHITELIST; } } else if (API.instance().getComparer().isEqual(((GridStackItem) stack).getStack(), stackInFilter, filter.getCompare())) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterMod.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterMod.java index a27ad79cd..11518a11a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterMod.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterMod.java @@ -8,11 +8,32 @@ public class GridFilterMod implements Predicate { private String inputModName; public GridFilterMod(String inputModName) { - this.inputModName = inputModName.toLowerCase().replace(" ", ""); + this.inputModName = standardify(inputModName); } @Override public boolean test(IGridStack stack) { - return stack.getModId().contains(inputModName) || stack.getModName().contains(inputModName); + String modId = stack.getModId(); + + if (modId != null) { + if (modId.contains(inputModName)) { + return true; + } + + String modName = stack.getModName(); + if (modName != null) { + modName = standardify(modName); + + if (modName.contains(inputModName)) { + return true; + } + } + } + + return false; + } + + private String standardify(String input) { + return input.toLowerCase().replace(" ", ""); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackFluid.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackFluid.java index 778d55e62..08538e6ea 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackFluid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackFluid.java @@ -4,6 +4,7 @@ import com.raoulvdberge.refinedstorage.api.storage.IStorageTracker; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.gui.GuiBase; import net.minecraft.client.resources.I18n; +import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; @@ -58,7 +59,11 @@ public class GridStackFluid implements IGridStack { @Override public String getModId() { if (modId == null) { - modId = stack.getFluid().getStill(stack).getNamespace(); + modId = FluidRegistry.getModId(stack); + + if (modId == null) { + modId = "???"; + } } return modId; @@ -68,6 +73,10 @@ public class GridStackFluid implements IGridStack { public String getModName() { if (modName == null) { modName = GridStackItem.getModNameByModId(getModId()); + + if (modName == null) { + modName = "???"; + } } return modName; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackItem.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackItem.java index 2103a9434..6807ba654 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackItem.java @@ -45,13 +45,14 @@ public class GridStackItem implements IGridStack { } } + @Nullable static String getModNameByModId(String modId) { ModContainer container = Loader.instance().getActiveModList().stream() .filter(m -> m.getModId().toLowerCase().equals(modId)) .findFirst() .orElse(null); - return container == null ? modId : container.getName().toLowerCase().replace(" ", ""); + return container == null ? null : container.getName(); } public ItemStack getStack() { @@ -99,6 +100,10 @@ public class GridStackItem implements IGridStack { public String getModId() { if (modId == null) { modId = stack.getItem().getCreatorModId(stack); + + if (modId == null) { + modId = "???"; + } } return modId; @@ -108,6 +113,10 @@ public class GridStackItem implements IGridStack { public String getModName() { if (modName == null) { modName = getModNameByModId(getModId()); + + if (modName == null) { + modName = "???"; + } } return modName;