Skip to content

Commit 308c855

Browse files
authored
Merge pull request #52 from repo-alt/rv3-1.7.10
Make oredictionary filter safer
2 parents 0018bad + c7d9fac commit 308c855

File tree

7 files changed

+23
-9
lines changed

7 files changed

+23
-9
lines changed

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
aeversion=rv3
22
aechannel=beta
3-
aebuild=47-GTNH
3+
aebuild=48-GTNH
44
#KEEP V6 FOR MOD SUPPORT
55
aegroup=appeng
66
aebasename=appliedenergistics2

src/main/java/appeng/client/gui/implementations/GuiOreFilter.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,15 @@ public class GuiOreFilter extends AEBaseGui {
2222
private GuiTextField filter;
2323
public GuiOreFilter(InventoryPlayer ip, IOreFilterable obj) {
2424
super(new ContainerOreFilter(ip, obj));
25+
this.xSize = 256;
2526
}
2627

2728
@Override
2829
public void initGui() {
2930
super.initGui();
30-
this.filter = new GuiTextField(this.fontRendererObj, this.guiLeft + 13, this.guiTop + 36, 150, this.fontRendererObj.FONT_HEIGHT);
31+
this.filter = new GuiTextField(this.fontRendererObj, this.guiLeft + 13, this.guiTop + 36, 250, this.fontRendererObj.FONT_HEIGHT);
3132
this.filter.setEnableBackgroundDrawing(false);
32-
this.filter.setMaxStringLength(32);
33+
this.filter.setMaxStringLength(100);
3334
this.filter.setTextColor(0xFFFFFF);
3435
this.filter.setVisible(true);
3536
this.filter.setFocused(true);

src/main/java/appeng/client/gui/implementations/GuiRenamer.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@ public class GuiRenamer extends AEBaseGui {
1616
private GuiTextField name;
1717
public GuiRenamer(InventoryPlayer ip, ICustomNameObject obj) {
1818
super(new ContainerRenamer(ip, obj));
19+
this.xSize = 256;
1920
}
2021
@Override
2122
public void initGui() {
2223
super.initGui();
23-
this.name = new GuiTextField(this.fontRendererObj, this.guiLeft + 13, this.guiTop + 36, 150, this.fontRendererObj.FONT_HEIGHT);
24+
this.name = new GuiTextField(this.fontRendererObj, this.guiLeft + 13, this.guiTop + 36, 250, this.fontRendererObj.FONT_HEIGHT);
2425
this.name.setEnableBackgroundDrawing(false);
2526
this.name.setMaxStringLength(32);
2627
this.name.setTextColor(0xFFFFFF);

src/main/java/appeng/parts/automation/PartExportBus.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ else if (!oreFilterString.isEmpty())
154154
filterPredicate = OreFilteredList.makeFilter(oreFilterString);
155155

156156
for (IAEItemStack stack : inv.getStorageList()) {
157-
if (stack == null || !this.filterPredicate.test(stack))
157+
if (stack == null || filterPredicate == null || !this.filterPredicate.test(stack))
158158
continue;
159159
this.pushItemIntoTarget(destination, energy, inv, stack);
160160
if (this.itemToSend <= 0)

src/main/java/appeng/parts/automation/PartImportBus.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ protected TickRateModulation doBusWork()
211211
for (ItemSlot slot : myAdaptor) {
212212
if (this.itemToSend <= 0)
213213
break;
214-
if (slot.isExtractable() && filterPredicate.test(slot.getAEItemStack())) {
214+
if (slot.isExtractable() && filterPredicate != null && filterPredicate.test(slot.getAEItemStack())) {
215215
while (this.itemToSend > 0) {
216216
if (this.importStuff(myAdaptor, slot.getAEItemStack(), inv, energy, fzMode))
217217
break;

src/main/java/appeng/util/prioitylist/OreFilteredList.java

+15-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package appeng.util.prioitylist;
22

33
import appeng.api.storage.data.IAEItemStack;
4+
import appeng.core.AELog;
45
import net.minecraft.item.Item;
56
import net.minecraft.item.ItemStack;
67
import net.minecraftforge.oredict.OreDictionary;
@@ -35,10 +36,17 @@ public Iterable<IAEItemStack> getItems()
3536
}
3637

3738
public static Predicate<IAEItemStack> makeFilter(String f) {
38-
Predicate<ItemStack> matcher = makeMatcher(f);
39-
if (matcher == null)
39+
try {
40+
Predicate<ItemStack> matcher = makeMatcher(f);
41+
if (matcher == null)
42+
return null;
43+
return new OreListMatcher(matcher);
44+
}
45+
catch (Exception ex)
46+
{
47+
AELog.debug(ex);
4048
return null;
41-
return new OreListMatcher(matcher);
49+
}
4250
}
4351

4452
private static Predicate<ItemStack> makeMatcher(String f) {
@@ -56,6 +64,8 @@ else if (!f.isEmpty()) {
5664

5765
for (String filter : filters) {
5866
filter = filter.trim();
67+
if (filter.isEmpty())
68+
continue;
5969
boolean negated = filter.startsWith("!");
6070
if (negated)
6171
filter = filter.substring(1);
@@ -71,6 +81,8 @@ else if (!f.isEmpty()) {
7181
} else {
7282
int endLast = f.indexOf(lastFilter) + lastFilter.length();
7383
int startThis = f.indexOf(filter);
84+
if (startThis <= endLast)
85+
continue;
7486
boolean or = f.substring(endLast, startThis).contains("|");
7587
matcher = or ? matcher.or(test) : matcher.and(test);
7688
}
Loading

0 commit comments

Comments
 (0)