diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4b96ec9..f963f70 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,14 +10,14 @@ permissions: contents: read env: - COMMON_BRANCH: main + COMMON_BRANCH: common COMMON_DIR: Dissolver Enhanced (Common) TARGET_DIR: Dissolver Enhanced (Target) jobs: build-common: name: Build Common - if: ${{ github.ref_name == 'main' }} + if: ${{ github.ref_name == 'common' }} runs-on: ubuntu-22.04 steps: - name: Checkout Common @@ -59,7 +59,7 @@ jobs: discover-version-branches: name: Discover Version Branches - if: ${{ github.ref_name == 'main' }} + if: ${{ github.ref_name == 'common' }} runs-on: ubuntu-22.04 outputs: branches: ${{ steps.branches.outputs.branches }} @@ -81,7 +81,7 @@ jobs: build-all-version-branches: name: Build ${{ matrix.branch }} - if: ${{ github.ref_name == 'main' && needs.discover-version-branches.outputs.branches != '[]' }} + if: ${{ github.ref_name == 'common' && needs.discover-version-branches.outputs.branches != '[]' }} needs: discover-version-branches runs-on: ubuntu-22.04 strategy: @@ -186,7 +186,7 @@ jobs: package-all-builds: name: Package All Builds - if: ${{ github.ref_name == 'main' && needs.build-common.result == 'success' && needs.build-all-version-branches.result == 'success' }} + if: ${{ github.ref_name == 'common' && needs.build-common.result == 'success' && needs.build-all-version-branches.result == 'success' }} needs: - build-common - build-all-version-branches diff --git a/build.gradle b/build.gradle index d3eb2e6..59c7073 100644 --- a/build.gradle +++ b/build.gradle @@ -7,6 +7,7 @@ version = project.mod_version group = project.maven_group def commonDir = [ + "../../common/minecraft", "../Common/minecraft", "../Dissolver Enhanced (Common)/minecraft", "Common/minecraft" diff --git a/src/main/java/net/exohayvan/dissolver_enhanced/data/EMCValues.java b/src/main/java/net/exohayvan/dissolver_enhanced/data/EMCValues.java index dd1f45f..ebce9ea 100644 --- a/src/main/java/net/exohayvan/dissolver_enhanced/data/EMCValues.java +++ b/src/main/java/net/exohayvan/dissolver_enhanced/data/EMCValues.java @@ -990,10 +990,7 @@ private static void addRecipeSourceDetail( int resultCount, BigInteger extraEMC ) { - List sourceDetails = new ArrayList<>(); - if (RECIPE_ITEM_SOURCE_DETAILS.containsKey(resultId)) { - sourceDetails = RECIPE_ITEM_SOURCE_DETAILS.get(resultId); - } + List sourceDetails = RECIPE_ITEM_SOURCE_DETAILS.computeIfAbsent(resultId, ignored -> new ArrayList<>()); String sourceDetail = formatRecipeSourceDetail(recipeKey, resultId, resultCount, ingredients, emcValue, extraEMC); if (!sourceDetails.contains(sourceDetail)) { diff --git a/src/test/java/net/exohayvan/dissolver_enhanced/data/EMCValuesTest.java b/src/test/java/net/exohayvan/dissolver_enhanced/data/EMCValuesTest.java index 6b303de..7ce04c4 100644 --- a/src/test/java/net/exohayvan/dissolver_enhanced/data/EMCValuesTest.java +++ b/src/test/java/net/exohayvan/dissolver_enhanced/data/EMCValuesTest.java @@ -7,6 +7,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import java.lang.reflect.Field; +import java.lang.reflect.Method; import java.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; @@ -237,6 +239,30 @@ void test_setEMC_COLLECTION() { } + @Test + void recipeSourceDetailReplacesNullList() throws Exception { + Field detailsField = EMCValues.class.getDeclaredField("RECIPE_ITEM_SOURCE_DETAILS"); + detailsField.setAccessible(true); + @SuppressWarnings("unchecked") + Map> details = (Map>) detailsField.get(null); + details.clear(); + details.put("test:result", null); + + Method addSourceDetail = EMCValues.class.getDeclaredMethod( + "addRecipeSourceDetail", + String.class, + String.class, + BigInteger.class, + List.class, + int.class, + BigInteger.class + ); + addSourceDetail.setAccessible(true); + addSourceDetail.invoke(null, "test:result", "test:recipe__1__0__1", BigInteger.ONE, List.of("minecraft:dirt"), 1, BigInteger.ZERO); + + assertThat(details.get("test:result")).contains("Recipe test:recipe__1__0__1: 1x minecraft:dirt -> 1x test:result = 1 EMC"); + } + private void validateEMCValues(List expected) { Set set = EMCValues.getList();