Fix mod filtering

This commit is contained in:
raoulvdberge
2019-10-25 23:21:15 +02:00
parent 5153e62562
commit 95118482c6
4 changed files with 20 additions and 15 deletions

View File

@@ -11,7 +11,6 @@ public final class RSKeyBindings {
public static final KeyBinding OPEN_WIRELESS_CRAFTING_MONITOR = new KeyBinding("key.refinedstorage.openWirelessCraftingMonitor", KeyConflictContext.IN_GAME, 0, "Refined Storage");
public static void init() {
ClientRegistry.registerKeyBinding(OPEN_PORTABLE_GRID);
ClientRegistry.registerKeyBinding(OPEN_WIRELESS_CRAFTING_MONITOR);
}*/

View File

@@ -6,6 +6,7 @@ import com.raoulvdberge.refinedstorage.screen.grid.stack.FluidGridStack;
import com.raoulvdberge.refinedstorage.screen.grid.stack.IGridStack;
import com.raoulvdberge.refinedstorage.screen.grid.stack.ItemGridStack;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fluids.FluidStack;
import java.util.List;
@@ -46,11 +47,15 @@ public class FilterGridFilter implements Predicate<IGridStack> {
FluidStack stackInFilter = (FluidStack) filter.getStack();
if (filter.isModFilter()) {
String stackInFilterModId = /* TODO FluidRegistry.getModId(stackInFilter)*/"bla bla";
ResourceLocation stackInFilterRegistryName = stackInFilter.getFluid().getRegistryName();
if (stackInFilterModId != null && stackInFilterModId.equalsIgnoreCase(stack.getModId())) {
if (stackInFilterRegistryName != null) {
String stackInFilterModId = stackInFilterRegistryName.getNamespace();
if (stackInFilterModId.equalsIgnoreCase(stack.getModId())) {
return filter.getMode() == IFilter.MODE_WHITELIST;
}
}
} else if (API.instance().getComparer().isEqual(((FluidGridStack) stack).getStack(), stackInFilter, filter.getCompare())) {
return filter.getMode() == IFilter.MODE_WHITELIST;
}

View File

@@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.render.FluidRenderer;
import com.raoulvdberge.refinedstorage.screen.BaseScreen;
import net.minecraft.client.resources.I18n;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fluids.FluidStack;
import javax.annotation.Nullable;
@@ -54,16 +55,17 @@ public class FluidGridStack implements IGridStack {
@Override
public String getName() {
return stack.getDisplayName().getFormattedText(); // TODO correct method usage
return stack.getDisplayName().getFormattedText();
}
@Override
public String getModId() {
if (modId == null) {
// modId = FluidRegistry.getModId(stack);
modId = "dinosaur";//TODO
ResourceLocation registryName = stack.getFluid().getRegistryName();
if (modId == null) {
if (registryName != null) {
modId = registryName.getNamespace();
} else {
modId = "???";
}
}
@@ -92,7 +94,7 @@ public class FluidGridStack implements IGridStack {
@Override
public String getTooltip() {
return stack.getDisplayName().getFormattedText();//TODO
return stack.getDisplayName().getFormattedText();
}
@Override

View File

@@ -6,8 +6,11 @@ import com.raoulvdberge.refinedstorage.screen.BaseScreen;
import com.raoulvdberge.refinedstorage.util.RenderUtils;
import net.minecraft.client.resources.I18n;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.ModContainer;
import net.minecraftforge.fml.ModList;
import javax.annotation.Nullable;
import java.util.Optional;
import java.util.UUID;
import java.util.stream.Collectors;
@@ -38,13 +41,9 @@ public class ItemGridStack implements IGridStack {
@Nullable
static String getModNameByModId(String modId) {
/*ModContainer container = Loader.instance().getActiveModList().stream()
.filter(m -> m.getModId().toLowerCase().equals(modId))
.findFirst()
.orElse(null);
Optional<? extends ModContainer> modContainer = ModList.get().getModContainerById(modId);
return container == null ? null : container.getName();*/
return "dinosaur"; // TODO
return modContainer.map(container -> container.getModInfo().getDisplayName()).orElse(null);
}
public ItemStack getStack() {