aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/widget
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-01-24 17:59:33 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-01-24 17:59:33 +0800
commit40d345b6b0f0bea1e4313ad9cdb789762e160f8d (patch)
tree45a84cf1db8296bf6a22baa28282ffa8a7d7fa18 /src/main/java/me/shedaniel/rei/gui/widget
parent0f03e78725614c1de5128cdcd0b9ea4ade2e0104 (diff)
downloadRoughlyEnoughItems-2.1.0.14.tar.gz
RoughlyEnoughItems-2.1.0.14.tar.bz2
RoughlyEnoughItems-2.1.0.14.zip
Fixing search & plugin loaderv2.1.0.14
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/widget')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java45
1 files changed, 23 insertions, 22 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java b/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java
index a6302be7a..06bf4d687 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java
@@ -14,6 +14,7 @@ import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.ITextComponent;
+import org.apache.commons.lang3.StringUtils;
import java.awt.*;
import java.util.*;
@@ -67,8 +68,7 @@ public class ItemListOverlay extends Gui implements IWidget {
int j = i + page * getTotalSlotsPerPage();
if (j >= currentDisplayed.size())
break;
- widgets.add(new ItemSlotWidget((int) (startX + (i % width) * 18), (int) (startY + MathHelper.floor(i / width) * 18),
- currentDisplayed.get(j), false, true, containerGui) {
+ widgets.add(new ItemSlotWidget((int) (startX + (i % width) * 18), (int) (startY + MathHelper.floor(i / width) * 18), currentDisplayed.get(j), false, true, containerGui) {
@Override
protected void drawToolTip(ItemStack itemStack) {
EntityPlayerSP player = Minecraft.getInstance().player;
@@ -117,24 +117,27 @@ public class ItemListOverlay extends Gui implements IWidget {
});
if (!RoughlyEnoughItemsCore.getConfigHelper().isAscending())
Collections.reverse(os);
- Arrays.stream(searchTerm.split("\\|")).forEachOrdered(s -> {
- List<SearchArgument> arguments = new ArrayList<>();
- while (s.startsWith(" ")) s = s.substring(1);
- while (s.endsWith(" ")) s = s.substring(0, s.length());
- if (s.startsWith("@-") || s.startsWith("-@"))
- arguments.add(new SearchArgument(SearchArgument.ArgumentType.MOD, s.substring(2), false));
- else if (s.startsWith("@"))
- arguments.add(new SearchArgument(SearchArgument.ArgumentType.MOD, s.substring(1), true));
- else if (s.startsWith("#-") || s.startsWith("-#"))
- arguments.add(new SearchArgument(SearchArgument.ArgumentType.TOOLTIP, s.substring(2), false));
- else if (s.startsWith("#"))
- arguments.add(new SearchArgument(SearchArgument.ArgumentType.TOOLTIP, s.substring(1), true));
- else if (s.startsWith("-"))
- arguments.add(new SearchArgument(SearchArgument.ArgumentType.TEXT, s.substring(1), false));
- else
- arguments.add(new SearchArgument(SearchArgument.ArgumentType.TEXT, s, true));
- os.stream().filter(itemStack -> filterItem(itemStack, arguments)).forEachOrdered(stacks::add);
+ String[] splitSearchTerm = StringUtils.splitByWholeSeparatorPreserveAllTokens(searchTerm, "|");
+ Arrays.stream(splitSearchTerm).forEachOrdered(s -> {
+ List<SearchArgument> arguments = Lists.newArrayList();
+ Arrays.stream(StringUtils.split(s)).forEachOrdered(s1 -> {
+ if (s1.startsWith("@-") || s1.startsWith("-@"))
+ arguments.add(new SearchArgument(SearchArgument.ArgumentType.MOD, s1.substring(2), false));
+ else if (s1.startsWith("@"))
+ arguments.add(new SearchArgument(SearchArgument.ArgumentType.MOD, s1.substring(1), true));
+ else if (s1.startsWith("#-") || s1.startsWith("-#"))
+ arguments.add(new SearchArgument(SearchArgument.ArgumentType.TOOLTIP, s1.substring(2), false));
+ else if (s1.startsWith("#"))
+ arguments.add(new SearchArgument(SearchArgument.ArgumentType.TOOLTIP, s1.substring(1), true));
+ else if (s1.startsWith("-"))
+ arguments.add(new SearchArgument(SearchArgument.ArgumentType.TEXT, s1.substring(1), false));
+ else
+ arguments.add(new SearchArgument(SearchArgument.ArgumentType.TEXT, s1, true));
+ });
+ os.stream().filter(itemStack -> arguments.isEmpty() || filterItem(itemStack, arguments)).forEachOrdered(stacks::add);
});
+ if (splitSearchTerm.length == 0)
+ stacks.addAll(os);
List<ItemStack> workingItems = RoughlyEnoughItemsCore.getConfigHelper().craftableOnly() && inventoryItems.size() > 0 ? new ArrayList<>() : new LinkedList<>(ol);
if (RoughlyEnoughItemsCore.getConfigHelper().craftableOnly()) {
RecipeHelper.findCraftableByItems(inventoryItems).forEach(workingItems::add);
@@ -184,9 +187,7 @@ public class ItemListOverlay extends Gui implements IWidget {
private List<String> getStackTooltip(ItemStack itemStack) {
Minecraft client = Minecraft.getInstance();
- return itemStack.getTooltip(client.player, client.gameSettings.advancedItemTooltips ?
- ITooltipFlag.TooltipFlags.ADVANCED : ITooltipFlag.TooltipFlags.NORMAL).stream().map(
- ITextComponent::getFormattedText).collect(Collectors.toList());
+ return itemStack.getTooltip(client.player, client.gameSettings.advancedItemTooltips ? ITooltipFlag.TooltipFlags.ADVANCED : ITooltipFlag.TooltipFlags.NORMAL).stream().map(ITextComponent::getFormattedText).collect(Collectors.toList());
}
private void calculateListSize(Rectangle rect) {