diff options
| author | Roman / Linnea Gräf <roman.graef@gmail.com> | 2023-07-06 01:53:07 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-06 09:53:07 +1000 |
| commit | 3aa6d8ce069902f81a341ccb5d33fc76f7274935 (patch) | |
| tree | eae5ef2fd69dc8c81ab2c4c5d183dd5d7d91d9fe | |
| parent | 3ee496ecb794c4b7073d77e2074644104d0a5eeb (diff) | |
| download | NotEnoughUpdates-3aa6d8ce069902f81a341ccb5d33fc76f7274935.tar.gz NotEnoughUpdates-3aa6d8ce069902f81a341ccb5d33fc76f7274935.tar.bz2 NotEnoughUpdates-3aa6d8ce069902f81a341ccb5d33fc76f7274935.zip | |
Add detekt rules (#750)
| -rw-r--r-- | .github/workflows/build.yml | 5 | ||||
| -rw-r--r-- | .github/workflows/detekt.yml | 33 | ||||
| -rw-r--r-- | build.gradle.kts | 45 | ||||
| -rw-r--r-- | config/detekt/baseline.xml | 439 | ||||
| -rw-r--r-- | config/detekt/detekt.yml | 11 | ||||
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/WardrobeMouseButtons.kt | 1 |
6 files changed, 518 insertions, 16 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d610b4d5..0cb85ac0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,9 +43,10 @@ jobs: with: java-version: 17 distribution: temurin - cache: gradle + - name: Set up gradle cache + uses: gradle/gradle-build-action@v2 - name: Build with Gradle - run: chmod +x ./gradlew && ./gradlew clean test remapJar --no-daemon + run: ./gradlew clean test remapJar --no-daemon - uses: actions/upload-artifact@v3 with: path: build/libs/*-dep.jar diff --git a/.github/workflows/detekt.yml b/.github/workflows/detekt.yml new file mode 100644 index 00000000..a3ae8eaf --- /dev/null +++ b/.github/workflows/detekt.yml @@ -0,0 +1,33 @@ +name: Detekt + +on: + - pull_request + - push +permissions: {} +jobs: + detektering: + runs-on: ubuntu-latest + if: "!contains(github.event.head_commit.message, '[no infer]')" + steps: + - uses: actions/checkout@v3 + name: Checkout feature + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: temurin + cache: gradle + - name: Set up gradle cache + uses: gradle/gradle-build-action@v2 + - name: Run detekt + run: | + ./gradlew :detektMain --stacktrace + - name: Generate report + run: | + jq -r '.runs[].results[]|select(.level != "error")|{"message":.message.text, "locations":.locations[].physicalLocation}|("::warning file="+(.locations.artifactLocation.uri|sub("^'"$(readlink -f .)"'"; ""))+",line="+(.locations.region.startLine|tostring)+",endLine="+(.locations.region.endLine|tostring)+",col="+(.locations.region.startColumn|tostring)+",endColumn="+(.locations.region.endColumn|tostring)+"::"+.message)' <build/reports/detekt/main.sarif + jq -r '.runs[].results[]|select(.level == "error")|{"message":.message.text, "locations":.locations[].physicalLocation}|("::error file="+(.locations.artifactLocation.uri|sub("^'"$(readlink -f .)"'"; ""))+",line="+(.locations.region.startLine|tostring)+",endLine="+(.locations.region.endLine|tostring)+",col="+(.locations.region.startColumn|tostring)+",endColumn="+(.locations.region.endColumn|tostring)+"::"+.message)' <build/reports/detekt/main.sarif + bugcount=$(jq -r '[.runs[].results[]] | length ' <build/reports/detekt/main.sarif) + echo "> This PR introduces **$bugcount** potential bug(s)." >>$GITHUB_STEP_SUMMARY + echo >>$GITHUB_STEP_SUMMARY + cat <build/reports/detekt/main.md >>$GITHUB_STEP_SUMMARY + [[ $bugcount != 0 ]] && exit 1 || echo ok. diff --git a/build.gradle.kts b/build.gradle.kts index 49c7f38c..970801d5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -31,7 +31,8 @@ plugins { id("io.github.juuxel.loom-quiltflower") version "1.7.3" `maven-publish` kotlin("jvm") version "1.8.21" - id("com.google.devtools.ksp") version "1.8.21-1.0.11" + id("io.gitlab.arturbosch.detekt") version "1.23.0" + id("com.google.devtools.ksp") version "1.8.21-1.0.11" } @@ -77,6 +78,7 @@ repositories { maven("https://pkgs.dev.azure.com/djtheredstoner/DevAuth/_packaging/public/maven/v1") maven("https://jitpack.io") maven("https://repo.polyfrost.cc/releases") + maven("https://maven.notenoughupdates.org/releases") } val shadowImplementation: Configuration by configurations.creating { @@ -156,7 +158,7 @@ dependencies { testImplementation("org.junit.jupiter:junit-jupiter:5.9.2") testAnnotationProcessor("net.fabricmc:sponge-mixin:0.11.4+mixin.0.8.5") // modImplementation("io.github.notenoughupdates:MoulConfig:0.0.1") - + detektPlugins("org.notenoughupdates:detektrules:1.0.0") devEnv("me.djtheredstoner:DevAuth-forge-legacy:1.1.0") } @@ -246,21 +248,36 @@ tasks.shadowJar { tasks.assemble.get().dependsOn(remapJar) tasks.processResources { - from(tasks["generateBuildFlags"]) - filesMatching(listOf("mcmod.info", "fabric.mod.json", "META-INF/mods.toml")) { - expand( - "version" to project.version, "mcversion" to "1.8.9" - ) - } + from(tasks["generateBuildFlags"]) + filesMatching(listOf("mcmod.info", "fabric.mod.json", "META-INF/mods.toml")) { + expand( + "version" to project.version, "mcversion" to "1.8.9" + ) + } +} + +val detektProjectBaseline by tasks.registering(io.gitlab.arturbosch.detekt.DetektCreateBaselineTask::class) { + description = "Overrides current baseline." + buildUponDefaultConfig.set(true) + ignoreFailures.set(true) + parallel.set(true) + setSource(files(rootDir)) + config.setFrom(files("$rootDir/config/detekt/detekt.yml")) + baseline.set(file("$rootDir/config/detekt/baseline.xml")) + include("**/*.kt") + include("**/*.kts") + exclude("**/resources/**") + exclude("**/build/**") } idea { - module { - // Not using += due to https://github.com/gradle/gradle/issues/8749 - sourceDirs = sourceDirs + file("build/generated/ksp/main/kotlin") // or tasks["kspKotlin"].destination - testSourceDirs = testSourceDirs + file("build/generated/ksp/test/kotlin") - generatedSourceDirs = generatedSourceDirs + file("build/generated/ksp/main/kotlin") + file("build/generated/ksp/test/kotlin") - } + module { + // Not using += due to https://github.com/gradle/gradle/issues/8749 + sourceDirs = sourceDirs + file("build/generated/ksp/main/kotlin") // or tasks["kspKotlin"].destination + testSourceDirs = testSourceDirs + file("build/generated/ksp/test/kotlin") + generatedSourceDirs = + generatedSourceDirs + file("build/generated/ksp/main/kotlin") + file("build/generated/ksp/test/kotlin") + } } sourceSets.main { diff --git a/config/detekt/baseline.xml b/config/detekt/baseline.xml new file mode 100644 index 00000000..33bdb69b --- /dev/null +++ b/config/detekt/baseline.xml @@ -0,0 +1,439 @@ +<?xml version="1.0" ?> +<SmellBaseline> + <ManuallySuppressedIssues></ManuallySuppressedIssues> + <CurrentIssues> + <ID>ComplexCondition:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$mouseX >= guiLeft + 114 && mouseX <= guiLeft + 202 && mouseY >= guiTop + ySize - 32 && mouseY <= guiTop + ySize - 12 && itemSelected != null</ID> + <ID>ComplexCondition:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$mouseX >= guiLeft + 15 && mouseX <= guiLeft + 103 && mouseY >= (guiTop + ySize - 32) && mouseY <= (guiTop + ySize - 12)</ID> + <ID>ComplexCondition:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$mouseX >= guiLeft + xSize + 3 && mouseX <= guiLeft + xSize + 19 && mouseY >= guiTop && mouseY <= guiTop + 16</ID> + <ID>ComplexCondition:GuiPriceGraph.kt$GuiPriceGraph$mouseX >= guiLeft + 17 && mouseX <= guiLeft + 315 && mouseY >= guiTop + 35 && mouseY <= guiTop + 198 && !customSelecting</ID> + <ID>ComplexCondition:GuiPriceGraph.kt$GuiPriceGraph$mouseY >= guiTop + 17 && mouseY <= guiTop + 35 && mouseX >= guiLeft + 244 && mouseX <= guiLeft + 316</ID> + <ID>ComplexCondition:GuiPriceGraph.kt$GuiPriceGraph$mouseY >= guiTop + 35 && mouseY <= guiTop + 198 && mouseX >= guiLeft + 17 && mouseX <= guiLeft + 315</ID> + <ID>ComplexCondition:GuiPriceGraph.kt$GuiPriceGraph$rawData.get() == null || rawData.get()!!.size < 2 || data.isEmpty() && processedData</ID> + <ID>CyclomaticComplexMethod:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float)</ID> + <ID>CyclomaticComplexMethod:GuiPriceGraph.kt$GuiPriceGraph$override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float)</ID> + <ID>CyclomaticComplexMethod:GuiPriceGraph.kt$GuiPriceGraph$private fun processData()</ID> + <ID>CyclomaticComplexMethod:LocalGraphDataProvider.kt$LocalGraphDataProvider$fun savePrices(items: JsonObject, bazaar: Boolean)</ID> + <ID>CyclomaticComplexMethod:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$private fun drawLines(guiLeft: Int, guiTop: Int)</ID> + <ID>CyclomaticComplexMethod:NEUAutoSymbolProcessor.kt$NEUAutoSymbolProcessor$fun collectSubscribers(elements: List<KSAnnotated>): List<NEUEventSubscriber></ID> + <ID>EmptyClassBlock:RepoExportingInterruptedException.kt$RepoExportingInterruptedException${ }</ID> + <ID>EmptyDefaultConstructor:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$()</ID> + <ID>EmptyFunctionBlock:ItemSearchGui.kt$ItemSearchGui.ItemScrollingList${ }</ID> + <ID>ImplicitDefaultLocale:NEUStatsCommand.kt$NEUStatsCommand$String.format( "% 2d%% %03d/%03dMB", currentMemory * 100L / maxMemory, currentMemory / ONE_MB, maxMemory / ONE_MB )</ID> + <ID>ImplicitDefaultLocale:NEUStatsCommand.kt$NEUStatsCommand$String.format("% 2d%% %03dMB", totalMemory * 100L / maxMemory, totalMemory / ONE_MB)</ID> + <ID>ImplicitDefaultLocale:NEUStatsCommand.kt$NEUStatsCommand$String.format("%dx%d (%s)", Display.getWidth(), Display.getHeight(), GL11.glGetString(GL11.GL_VENDOR))</ID> + <ID>LongMethod:DevTestCommand.kt$DevTestCommand$@SubscribeEvent fun onCommands(event: RegisterBrigadierCommandEvent)</ID> + <ID>LongMethod:DungeonCommands.kt$DungeonCommands$@SubscribeEvent fun onCommands(event: RegisterBrigadierCommandEvent)</ID> + <ID>LongMethod:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float)</ID> + <ID>LongMethod:GuiPriceGraph.kt$GuiPriceGraph$override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float)</ID> + <ID>LongMethod:GuiPriceGraph.kt$GuiPriceGraph$private fun processData()</ID> + <ID>LongMethod:MiscCommands.kt$MiscCommands$@SubscribeEvent fun onCommands(event: RegisterBrigadierCommandEvent)</ID> + <ID>LongMethod:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$private fun drawButtons(guiLeft: Int, xSize: Int, guiTop: Int)</ID> + <ID>LongMethod:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$private fun drawLines(guiLeft: Int, guiTop: Int)</ID> + <ID>LongMethod:NEUAutoSymbolProcessor.kt$NEUAutoSymbolProcessor$fun collectSubscribers(elements: List<KSAnnotated>): List<NEUEventSubscriber></ID> + <ID>LongMethod:PeekCommand.kt$PeekCommand.<no name provided>$override fun run()</ID> + <ID>LongMethod:SimpleDevCommands.kt$SimpleDevCommands$@SubscribeEvent fun onCommands(event: RegisterBrigadierCommandEvent)</ID> + <ID>LongParameterList:GuiPriceGraph.kt$GuiPriceGraph$( x: Double, prevX: Double, buyLine: Pair<Double, Double>?, sellLine: Pair<Double, Double>?, buyColor: Int, sellColor: Int )</ID> + <ID>LoopWithTooManyJumpStatements:GuiPriceGraph.kt$GuiPriceGraph$for</ID> + <ID>LoopWithTooManyJumpStatements:HotmInformation.kt$HotmInformation$for</ID> + <ID>LoopWithTooManyJumpStatements:ItemShopExporter.kt$ItemShopExporter$for</ID> + <ID>LoopWithTooManyJumpStatements:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$for</ID> + <ID>LoopWithTooManyJumpStatements:MuseumTooltipManager.kt$MuseumTooltipManager$for</ID> + <ID>LoopWithTooManyJumpStatements:NEUAutoSymbolProcessor.kt$NEUAutoSymbolProcessor$for</ID> + <ID>LoopWithTooManyJumpStatements:ProfileDataLoadedEvent.kt$ProfileDataLoadedEvent$for</ID> + <ID>MagicNumber:DevTestCommand.kt$DevTestCommand$0.5f</ID> + <ID>MagicNumber:DevTestCommand.kt$DevTestCommand$48</ID> + <ID>MagicNumber:DevTestCommand.kt$DevTestCommand$96F</ID> + <ID>MagicNumber:DungeonCommands.kt$DungeonCommands$127</ID> + <ID>MagicNumber:DungeonCommands.kt$DungeonCommands$128</ID> + <ID>MagicNumber:DungeonCommands.kt$DungeonCommands$16</ID> + <ID>MagicNumber:DungeonCommands.kt$DungeonCommands$24</ID> + <ID>MagicNumber:DungeonCommands.kt$DungeonCommands$255</ID> + <ID>MagicNumber:DungeonCommands.kt$DungeonCommands$3</ID> + <ID>MagicNumber:DungeonCommands.kt$DungeonCommands$4</ID> + <ID>MagicNumber:DungeonCommands.kt$DungeonCommands$7</ID> + <ID>MagicNumber:DungeonCommands.kt$DungeonCommands$8</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$10</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$103</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$114</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$12</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$130</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$15</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$16</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$16F</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$17</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$18</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$18f</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$19</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$202</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$20F</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$21</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$217</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$22</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$24</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$24F</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$25</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$26</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$27</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$28</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$3</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$32</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$42</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$4210752</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$45</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$46</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$46F</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$50</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$52</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$7</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$70</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$88</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$88F</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$88f</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$9</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$999</ID> + <ID>MagicNumber:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$9f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$0.5f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$0x00ffffff</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$0x4D8b8b8b</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$0x8b8b8b</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$0xffffff</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$1.77f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$10</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$100.0</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$1000</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$1000000</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$1000000000</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$1000000000f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$1000000f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$1000f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$11</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$116</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$120</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$13</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$16</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$166</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$16f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$17</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$17.0</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$18</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$188.0</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$19</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$197f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$198</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$198.0</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$2.5f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$206</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$208</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$215</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$231</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$24</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$244</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$245</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$247</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$252</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$261</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$298.0</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$3</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$30</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$315</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$315.0</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$316</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$320f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$33</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$35</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$35.0</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$35f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$36</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$3600.0</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$3600L</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$36f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$37</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$4</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$45.0</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$5</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$512f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$5f</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$6</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$6.0</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$60</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$60L</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$7</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$86400</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$86400.0</ID> + <ID>MagicNumber:GuiPriceGraph.kt$GuiPriceGraph$86400L</ID> + <ID>MagicNumber:HotmInformation.kt$HotmInformation$5</ID> + <ID>MagicNumber:HotmInformation.kt$HotmInformation.Companion$20</ID> + <ID>MagicNumber:IQTest.kt$IQTest$0.1</ID> + <ID>MagicNumber:IQTest.kt$IQTest$10_000L</ID> + <ID>MagicNumber:IQTest.kt$IQTest$20</ID> + <ID>MagicNumber:IQTest.kt$IQTest$27</ID> + <ID>MagicNumber:ItemSearchGui.kt$ItemSearchGui$10</ID> + <ID>MagicNumber:ItemSearchGui.kt$ItemSearchGui$100</ID> + <ID>MagicNumber:ItemSearchGui.kt$ItemSearchGui$20</ID> + <ID>MagicNumber:ItemSearchGui.kt$ItemSearchGui$200</ID> + <ID>MagicNumber:ItemSearchGui.kt$ItemSearchGui$5</ID> + <ID>MagicNumber:ItemSearchGui.kt$ItemSearchGui.ItemScrollingList$100</ID> + <ID>MagicNumber:ItemSearchGui.kt$ItemSearchGui.ItemScrollingList$18F</ID> + <ID>MagicNumber:ItemSearchGui.kt$ItemSearchGui.ItemScrollingList$20</ID> + <ID>MagicNumber:ItemSearchGui.kt$ItemSearchGui.ItemScrollingList$200</ID> + <ID>MagicNumber:ItemSearchGui.kt$ItemSearchGui.ItemScrollingList$30</ID> + <ID>MagicNumber:ItemShopExporter.kt$ItemShopExporter$3</ID> + <ID>MagicNumber:ItemShopExporter.kt$ItemShopExporter$4</ID> + <ID>MagicNumber:ItemShopExporter.kt$ItemShopExporter$5</ID> + <ID>MagicNumber:ItemShopExporter.kt$ItemShopExporter$9</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$0.003F</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$0xFF0000</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$0xff00ff</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$100</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$100F</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$110</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$15</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$16</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$18</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$19</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$33</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$4</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$40</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$50</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$9</ID> + <ID>MagicNumber:KatRecipe.kt$KatRecipe$90</ID> + <ID>MagicNumber:LocalGraphDataProvider.kt$LocalGraphDataProvider$100</ID> + <ID>MagicNumber:LocalGraphDataProvider.kt$LocalGraphDataProvider$86400000L</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$10</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$100000.0</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$106</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$110</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$128</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$128f</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$130</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$131</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$150</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$155</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$156</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$16</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$168f</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$170</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$175</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$185</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$187</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$200</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$237</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$4</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$5</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$53</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$60000</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$9</ID> + <ID>MagicNumber:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$95</ID> + <ID>MagicNumber:MuseumItemHighlighter.kt$MuseumItemHighlighter$16</ID> + <ID>MagicNumber:MuseumItemHighlighter.kt$MuseumItemHighlighter$4</ID> + <ID>MagicNumber:MuseumItemHighlighter.kt$MuseumItemHighlighter$7</ID> + <ID>MagicNumber:MuseumTooltipManager.kt$MuseumTooltipManager$53</ID> + <ID>MagicNumber:NEUStatsCommand.kt$NEUStatsCommand$100L</ID> + <ID>MagicNumber:NEUStatsCommand.kt$NEUStatsCommand$1024L</ID> + <ID>MagicNumber:NEUStatsCommand.kt$NEUStatsCommand$15</ID> + <ID>MagicNumber:NEUStatsCommand.kt$NEUStatsCommand$32</ID> + <ID>MagicNumber:NEUStatsCommand.kt$NEUStatsCommand$64</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter$3</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$100</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$20</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$200</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$25</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$250</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$3.0</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$360</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$5</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$50</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$5000.0</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$60</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$8</ID> + <ID>MagicNumber:NPCLocationExporter.kt$NPCLocationExporter.NPCNamePrompt$8F</ID> + <ID>MagicNumber:OldSkyBlockMenu.kt$OldSkyBlockMenu$4</ID> + <ID>MagicNumber:OldSkyBlockMenu.kt$OldSkyBlockMenu$5</ID> + <ID>MagicNumber:OldSkyBlockMenu.kt$OldSkyBlockMenu.SkyBlockButton.ACCESSORY$53</ID> + <ID>MagicNumber:OldSkyBlockMenu.kt$OldSkyBlockMenu.SkyBlockButton.FISHING$43</ID> + <ID>MagicNumber:OldSkyBlockMenu.kt$OldSkyBlockMenu.SkyBlockButton.POTION$52</ID> + <ID>MagicNumber:OldSkyBlockMenu.kt$OldSkyBlockMenu.SkyBlockButton.QUIVER$44</ID> + <ID>MagicNumber:OldSkyBlockMenu.kt$OldSkyBlockMenu.SkyBlockButton.SACK_OF_SACKS$35</ID> + <ID>MagicNumber:OldSkyBlockMenu.kt$OldSkyBlockMenu.SkyBlockButton.TRADES$40</ID> + <ID>MagicNumber:PackDevCommand.kt$PackDevCommand$4</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$10</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$100</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$1000</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$100f</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$10f</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$15</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$1600</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$20</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$200</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$2000f</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$20f</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$25</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$2L</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$3</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$300</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$35</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$4</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$4f</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$5</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$5.5</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$50</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$500</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$6</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$600</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$6f</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$7</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$8</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$800</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$81f</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$9</ID> + <ID>MagicNumber:PeekCommand.kt$PeekCommand.<no name provided>$900</ID> + <ID>MagicNumber:PetLeveling.kt$PetLeveling$100</ID> + <ID>MagicNumber:RepoExporters.kt$RepoExporters$20</ID> + <ID>MagicNumber:RepoExporters.kt$RepoExporters$30</ID> + <ID>MagicNumber:SidebarUtil.kt$SidebarUtil$126</ID> + <ID>MagicNumber:SidebarUtil.kt$SidebarUtil$15</ID> + <ID>MagicNumber:SidebarUtil.kt$SidebarUtil$167</ID> + <ID>MagicNumber:SidebarUtil.kt$SidebarUtil$21</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime$1000</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime$12</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime$124</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime$1559829300</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime$24</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime$31</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime$60</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime$60.0</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$10</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$1000</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$11</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$12</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$124</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$13</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$1559829300000</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$24</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$3</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$31</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$5</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$60</ID> + <ID>MagicNumber:SkyBlockTime.kt$SkyBlockTime.Companion$8</ID> + <ID>MagicNumber:SkyMallDisplay.kt$SkyMallDisplay.Companion$1_000</ID> + <ID>MagicNumber:WardrobeMouseButtons.kt$WardrobeMouseButtons$300</ID> + <ID>MagicNumber:WardrobeMouseButtons.kt$WardrobeMouseButtons$36</ID> + <ID>MatchingDeclarationName:Collection.kt$ProfileCollectionInfo</ID> + <ID>MaxLineLength:ApiCache.kt$ApiCache$cachedRequests[cacheKey]?.dispose()</ID> + <ID>MaxLineLength:ApiCache.kt$ApiCache.CacheResult$throw IllegalStateException("Attempting to read from a disposed future. Most likely caused by non synchronized access to ApiCache.cachedRequests")</ID> + <ID>MaxLineLength:ButtonExclusionZoneEvent.kt$ButtonExclusionZoneEvent$TOWARDS_LEFT -> buttonPosition.copy(x = overlappingExclusionZone.area.left - buttonPosition.width - margin)</ID> + <ID>MaxLineLength:ButtonExclusionZoneEvent.kt$ButtonExclusionZoneEvent$TOWARDS_TOP -> buttonPosition.copy(y = overlappingExclusionZone.area.top - buttonPosition.height - margin)</ID> + <ID>MaxLineLength:DynamicLightItemsEditor.kt$DynamicLightItemsEditor.Companion$NotEnoughUpdates.INSTANCE.manager.createItemResolutionQuery().withItemStack(itemStack).resolveInternalName()</ID> + <ID>MaxLineLength:EnforcedConfigValues.kt$EnforcedConfigValues$if (hasSentPSAsOnce || Minecraft.getMinecraft().thePlayer == null || !NotEnoughUpdates.INSTANCE.isOnSkyblock) return</ID> + <ID>MaxLineLength:FeaturesCommand.kt$FeaturesCommand$(</ID> + <ID>MaxLineLength:FeaturesCommand.kt$FeaturesCommand$EnumChatFormatting.DARK_PURPLE.toString() + "" + EnumChatFormatting.BOLD + "NEU" + EnumChatFormatting.RESET</ID> + <ID>MaxLineLength:GuiPriceGraph.kt$GuiPriceGraph$"${EnumChatFormatting.YELLOW}${EnumChatFormatting.BOLD}Bazaar Insta-Buy Moving Average: ${EnumChatFormatting.GOLD}${EnumChatFormatting.BOLD}"</ID> + <ID>MaxLineLength:GuiPriceGraph.kt$GuiPriceGraph$"${EnumChatFormatting.YELLOW}${EnumChatFormatting.BOLD}Bazaar Insta-Buy: ${EnumChatFormatting.GOLD}"</ID> + <ID>MaxLineLength:GuiPriceGraph.kt$GuiPriceGraph$"${EnumChatFormatting.YELLOW}${EnumChatFormatting.BOLD}Bazaar Insta-Sell Moving Average: ${EnumChatFormatting.GOLD}${EnumChatFormatting.BOLD}"</ID> + <ID>MaxLineLength:GuiPriceGraph.kt$GuiPriceGraph$"${EnumChatFormatting.YELLOW}${EnumChatFormatting.BOLD}Bazaar Insta-Sell: ${EnumChatFormatting.GOLD}"</ID> + <ID>MaxLineLength:GuiPriceGraph.kt$GuiPriceGraph$"${EnumChatFormatting.YELLOW}${EnumChatFormatting.BOLD}Lowest BIN Moving Average: ${EnumChatFormatting.GOLD}"</ID> + <ID>MaxLineLength:GuiPriceGraph.kt$GuiPriceGraph$// The server only deletes old data every hour, so you could get 30 days and 1 hour, this is just for consistency</ID> + <ID>MaxLineLength:GuiPriceGraph.kt$GuiPriceGraph$}</ID> + <ID>MaxLineLength:HelpCommand.kt$HelpCommand$"§6/neupackdev §r§7- pack creator command - getnpc, getmob(s), getarmorstand(s), getall. Optional radius argument for all."</ID> + <ID>MaxLineLength:HelpCommand.kt$HelpCommand$"§7Commands marked with a §2\"ⴵ\"§7 require an api key. You can set your api key via \"/api new\" or by manually putting it in the api field in \"/neu\""</ID> + <ID>MaxLineLength:KotlinTypeAdapterFactory.kt$KotlinTypeAdapterFactory$.</ID> + <ID>MaxLineLength:KotlinTypeAdapterFactory.kt$KotlinTypeAdapterFactory$param to kotlinClass.memberProperties.find { it.name == param.name && it.returnType.isSubtypeOf(typeOf<Map<String, JsonElement>>()) } as KProperty1<Any, Map<String, JsonElement>></ID> + <ID>MaxLineLength:MiscCommands.kt$MiscCommands$"${RED}NEU Cosmetics do not work with OptiFine Fast Render. Go to ESC > Options > Video Settings > Performance > Fast Render to disable it."</ID> + <ID>MaxLineLength:MiscCommands.kt$MiscCommands$"§eTurn on Sign Calculator in /neu misc to also support this in sign popups and the neu search bar."</ID> + <ID>MaxLineLength:MiscCommands.kt$MiscCommands$if</ID> + <ID>MaxLineLength:MiscCommands.kt$MiscCommands$reply("§bTo ensure we do not accidentally corrupt your mod folder, we can only offer support for auto-updates on system with certain capabilities for file deletions (specifically unix systems). You can still manually update your files")</ID> + <ID>MaxLineLength:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$"${EnumChatFormatting.GREEN}Using ${EnumChatFormatting.AQUA}craft cost ${EnumChatFormatting.GREEN}as price source!"</ID> + <ID>MaxLineLength:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$"${EnumChatFormatting.GREEN}Using ${EnumChatFormatting.BLUE}lowest BIN ${EnumChatFormatting.GREEN}as price source!"</ID> + <ID>MaxLineLength:MuseumCheapestItemOverlay.kt$MuseumCheapestItemOverlay$* Determine if the overlay should be active based on the config option and the currently open GuiChest, if applicable</ID> |
