mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-03-04 06:44:40 +01:00
Regex globs
- Parse Schedule Destination, Fetch Packages package addresses with glob - Also prevent regex injection in all 3 of the above
This commit is contained in:
parent
16f4c3354d
commit
80dcbb4177
5 changed files with 13 additions and 12 deletions
|
@ -27,7 +27,7 @@ jei_minecraft_version = 1.20.1
|
|||
jei_version = 15.10.0.39
|
||||
curios_minecraft_version = 1.20.1
|
||||
curios_version = 5.3.1
|
||||
ponder_version = 0.9.19
|
||||
ponder_version = 0.9.20
|
||||
mixin_extras_version = 0.4.1
|
||||
|
||||
cc_tweaked_enable = true
|
||||
|
|
|
@ -11,6 +11,7 @@ import com.simibubi.create.Create;
|
|||
import com.simibubi.create.content.logistics.box.PackageStyles.PackageStyle;
|
||||
import com.simibubi.create.content.logistics.stockTicker.PackageOrder;
|
||||
|
||||
import net.createmod.catnip.data.Glob;
|
||||
import net.createmod.catnip.math.VecHelper;
|
||||
import net.createmod.catnip.lang.Components;
|
||||
import net.minecraft.ChatFormatting;
|
||||
|
@ -155,8 +156,8 @@ public class PackageItem extends Item {
|
|||
return boxAddress.isBlank();
|
||||
if (address.equals("*") || boxAddress.equals("*"))
|
||||
return true;
|
||||
String matcher = "\\Q" + address.replace("*", "\\E.*\\Q") + "\\E";
|
||||
String boxMatcher = "\\Q" + boxAddress.replace("*", "\\E.*\\Q") + "\\E";
|
||||
String matcher = Glob.toRegexPattern(address, "");
|
||||
String boxMatcher = Glob.toRegexPattern(boxAddress, "");
|
||||
return address.matches(boxMatcher) || boxAddress.matches(matcher);
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,8 @@ import java.util.Map;
|
|||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.trains.entity.Train;
|
||||
|
||||
import net.createmod.catnip.data.Glob;
|
||||
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
|
||||
public class GlobalTrainDisplayData {
|
||||
|
@ -30,7 +32,7 @@ public class GlobalTrainDisplayData {
|
|||
}
|
||||
|
||||
public static List<TrainDeparturePrediction> prepare(String filter, int maxLines) {
|
||||
String regex = filter.isBlank() ? filter : "\\Q" + filter.replace("*", "\\E.*\\Q") + "\\E";
|
||||
String regex = Glob.toRegexPattern(filter, "");
|
||||
return statusByDestination.entrySet()
|
||||
.stream()
|
||||
.filter(e -> e.getKey()
|
||||
|
|
|
@ -6,6 +6,8 @@ import java.util.regex.PatternSyntaxException;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import net.createmod.catnip.data.Glob;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
@ -55,10 +57,7 @@ public class DestinationInstruction extends TextScheduleInstruction {
|
|||
}
|
||||
|
||||
public String getFilterForRegex() {
|
||||
String filter = getFilter();
|
||||
if (filter.isBlank())
|
||||
return filter;
|
||||
return "\\Q" + filter.replace("*", "\\E.*\\Q") + "\\E";
|
||||
return Glob.toRegexPattern(getFilter(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -5,6 +5,8 @@ import java.util.List;
|
|||
import java.util.Map.Entry;
|
||||
import java.util.regex.PatternSyntaxException;
|
||||
|
||||
import net.createmod.catnip.data.Glob;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
@ -65,10 +67,7 @@ public class FetchPackagesInstruction extends TextScheduleInstruction {
|
|||
}
|
||||
|
||||
public String getFilterForRegex() {
|
||||
String filter = getFilter();
|
||||
if (filter.isBlank())
|
||||
return filter;
|
||||
return "\\Q" + filter.replace("*", "\\E.*\\Q") + "\\E";
|
||||
return Glob.toRegexPattern(getFilter(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Add table
Reference in a new issue