Fix crash on invalid schedule regex (e.g. "station \\E1\\Q")

This commit is contained in:
Timo van Veen 2023-10-30 19:50:58 +01:00
parent aff05bf84a
commit 30a90a6203

View file

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.regex.PatternSyntaxException;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItems;
import com.simibubi.create.content.trains.display.GlobalTrainDisplayData.TrainDeparturePrediction; import com.simibubi.create.content.trains.display.GlobalTrainDisplayData.TrainDeparturePrediction;
@ -184,12 +185,15 @@ public class ScheduleRuntime {
return null; return null;
} }
for (GlobalStation globalStation : train.graph.getPoints(EdgePointType.STATION)) { try {
if (!globalStation.name.matches(regex)) for (GlobalStation globalStation : train.graph.getPoints(EdgePointType.STATION)) {
continue; if (!globalStation.name.matches(regex))
anyMatch = true; continue;
validStations.add(globalStation); anyMatch = true;
} validStations.add(globalStation);
}
} catch (PatternSyntaxException ignored) {}
DiscoveredPath best = train.navigation.findPathTo(validStations, Double.MAX_VALUE); DiscoveredPath best = train.navigation.findPathTo(validStations, Double.MAX_VALUE);
if (best == null) { if (best == null) {
if (anyMatch) if (anyMatch)