RkShaRkz / Starsector-IntelliJ-Template

Starsector mod template with pre-configured IntelliJ project files and instructions.
The Unlicense
0 stars 1 forks source link

crash on new save creation. #20

Closed ZenM88 closed 4 months ago

ZenM88 commented 4 months ago

7278981 [Thread-2] WARN data.scripts.campaign.intel.VayraPersonBountyManager - couldn't get fleet points for armaa_altagrave_Standard 7278981 [Thread-2] WARN data.scripts.campaign.intel.VayraPersonBountyManager - java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.api.combat.ShipVariantAPI.getHullSpec()" because the return value of "com.fs.starfarer.api.SettingsAPI.getVariant(String)" is null 7278982 [Thread-2] WARN data.scripts.campaign.intel.VayraPersonBountyManager - couldn't get fleet points for tahlan_Castigator_knight_errant 7278982 [Thread-2] WARN data.scripts.campaign.intel.VayraPersonBountyManager - java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.api.combat.ShipVariantAPI.getHullSpec()" because the return value of "com.fs.starfarer.api.SettingsAPI.getVariant(String)" is null 7278982 [Thread-2] WARN data.scripts.campaign.intel.VayraPersonBountyManager - org.json.JSONException: JSONObject["weight"] is not a number. 7278982 [Thread-2] INFO data.scripts.campaign.intel.VayraPersonBountyManager - rare_flagships.csv loading ended 7279574 [Thread-2] ERROR com.fs.starfarer.combat.CombatMain - java.util.ConcurrentModificationException java.util.ConcurrentModificationException: null at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1096) ~[?:?] at java.base/java.util.ArrayList$Itr.next(ArrayList.java:1050) ~[?:?] at data.scripts.campaign.intel.VayraPersonBountyManager.checkForFuckedUpParticipants(VayraPersonBountyManager.java:76) ~[?:?] at data.scripts.campaign.intel.VayraPersonBountyManager.advance(VayraPersonBountyManager.java:268) ~[?:?] at data.scripts.VayraMergedModPlugin.onNewGameAfterTimePass(VayraMergedModPlugin.java:343) ~[?:?] at com.fs.starfarer.campaign.save.CampaignGameManager.o00000(Unknown Source) ~[port_obf.jar:?] at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source) ~[port_obf.jar:?] at com.fs.starfarer.ui.O.dismiss(Unknown Source) ~[port_obf.jar:?] at com.fs.starfarer.ui.impl.for.dismiss(Unknown Source) ~[port_obf.jar:?] at com.fs.starfarer.campaign.save.if.actionPerformed(Unknown Source) ~[port_obf.jar:?] at com.fs.starfarer.ui.o0O0.buttonPressed(Unknown Source) ~[port_obf.jar:?] at com.fs.starfarer.ui.int.Ò00000(Unknown Source) ~[port_obf.jar:?] at com.fs.starfarer.ui.int.processInput(Unknown Source) ~[port_obf.jar:?] at com.fs.starfarer.ui.W.o00000(Unknown Source) ~[port_obf.jar:?] at com.fs.starfarer.BaseGameState.traverse(Unknown Source) ~[port_obf.jar:?] at com.fs.state.AppDriver.begin(Unknown Source) ~[port.common_obf.jar:?] at com.fs.starfarer.combat.CombatMain.main(Unknown Source) ~[port_obf.jar:?] at com.fs.starfarer.StarfarerLauncher.super(Unknown Source) ~[port_obf.jar:?] at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source) ~[port_obf.jar:?] at java.base/java.lang.Thread.run(Thread.java:1575) [?:?] [7319.738s][info ][gc ] Cancelling GC: Stopping VM

have tried starting a new run 3 times and it crashes at the same point. gets to the march date during save creation then bombs out. if you need any additional info let me know.

RkShaRkz commented 4 months ago

no, i just fixed the issue. the fix isn't merged yet but i'll send the JAR over to one guy to validate. if you ping me on discord, i can send it to you too so you can continue with your game.

sorry it happened, but - the way the code was written, the bug would have been happening 100% of the time so... sorry again for wasting nerves on this.

RkShaRkz commented 4 months ago

19 is a copy of this issue

RkShaRkz commented 4 months ago

taken care of by PR https://github.com/RkShaRkz/Starsector-IntelliJ-Template/pull/21 (commit 47a1ca5)

Will close when PR gets merged in. Will hold off releasing a new version since i want to take a good jab at the vanishing planet conditions too. Ping me on discord for hotfix if you're blocked, it's been confirmed as resolving the issue.

RkShaRkz commented 4 months ago

hotfix uploaded to issue #18

RkShaRkz commented 4 months ago

Issue was resolved by 8bc9dbe - closing until it resurfaces on new 3.3.8 version.

RkShaRkz commented 1 month ago

A new fix for this no-longer-present issue was merged in as c8814fd

In case the issue resurfaces again - please revert the said commit and PR and go back to previous version which worked fine.

RkShaRkz commented 1 month ago

This code seems to have worked fine:

    private void checkForFuckedUpParticipants() {
        checkedForFuckedUpParticipants = true;
        for (Iterator<String> iter = getSharedData().getParticipatingFactions().iterator(); iter.hasNext(); ) {
            String factionId = iter.next();
            if (Global.getSector().getFaction(factionId) == null) {
                Global.getSector().getCampaignUI().addMessage(factionId + " is an invalid bounty participant, please yell at its mod author", Color.red);
                Global.getSector().getCampaignUI().addMessage(factionId + " bounties will not function until they fix it", Color.red);
                Global.getSector().getCampaignUI().addMessage("i could have crashed the game right here, i SHOULD have crashed the game right here", Color.red);
                Global.getSector().getCampaignUI().addMessage("god knows you'd fuckin' deserve it", Color.red);
                iter.remove();
            }
        }
    }