aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman / Linnea Gräf <roman.graef@gmail.com>2023-07-06 01:53:07 +0200
committerGitHub <noreply@github.com>2023-07-06 09:53:07 +1000
commit3aa6d8ce069902f81a341ccb5d33fc76f7274935 (patch)
treeeae5ef2fd69dc8c81ab2c4c5d183dd5d7d91d9fe
parent3ee496ecb794c4b7073d77e2074644104d0a5eeb (diff)
downloadNotEnoughUpdates-3aa6d8ce069902f81a341ccb5d33fc76f7274935.tar.gz
NotEnoughUpdates-3aa6d8ce069902f81a341ccb5d33fc76f7274935.tar.bz2
NotEnoughUpdates-3aa6d8ce069902f81a341ccb5d33fc76f7274935.zip
Add detekt rules (#750)
-rw-r--r--.github/workflows/build.yml5
-rw-r--r--.github/workflows/detekt.yml33
-rw-r--r--build.gradle.kts45
-rw-r--r--config/detekt/baseline.xml439
-rw-r--r--config/detekt/detekt.yml11
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/WardrobeMouseButtons.kt1
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 &gt;= guiLeft + 114 &amp;&amp; mouseX &lt;= guiLeft + 202 &amp;&amp; mouseY &gt;= guiTop + ySize - 32 &amp;&amp; mouseY &lt;= guiTop + ySize - 12 &amp;&amp; itemSelected != null</ID>
+ <ID>ComplexCondition:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$mouseX &gt;= guiLeft + 15 &amp;&amp; mouseX &lt;= guiLeft + 103 &amp;&amp; mouseY &gt;= (guiTop + ySize - 32) &amp;&amp; mouseY &lt;= (guiTop + ySize - 12)</ID>
+ <ID>ComplexCondition:DynamicLightItemsEditor.kt$DynamicLightItemsEditor$mouseX &gt;= guiLeft + xSize + 3 &amp;&amp; mouseX &lt;= guiLeft + xSize + 19 &amp;&amp; mouseY &gt;= guiTop &amp;&amp; mouseY &lt;= guiTop + 16</ID>
+ <ID>ComplexCondition:GuiPriceGraph.kt$GuiPriceGraph$mouseX &gt;= guiLeft + 17 &amp;&amp; mouseX &lt;= guiLeft + 315 &amp;&amp; mouseY &gt;= guiTop + 35 &amp;&amp; mouseY &lt;= guiTop + 198 &amp;&amp; !customSelecting</ID>
+ <ID>ComplexCondition:GuiPriceGraph.kt$GuiPriceGraph$mouseY &gt;= guiTop + 17 &amp;&amp; mouseY &lt;= guiTop + 35 &amp;&amp; mouseX &gt;= guiLeft + 244 &amp;&amp; mouseX &lt;= guiLeft + 316</ID>
+ <ID>ComplexCondition:GuiPriceGraph.kt$GuiPriceGraph$mouseY &gt;= guiTop + 35 &amp;&amp; mouseY &lt;= guiTop + 198 &amp;&amp; mouseX &gt;= guiLeft + 17 &amp;&amp; mouseX &lt;= guiLeft + 315</ID>
+ <ID>ComplexCondition:GuiPriceGraph.kt$GuiPriceGraph$rawData.get() == null || rawData.get()!!.size &lt; 2 || data.isEmpty() &amp;&amp; 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&lt;KSAnnotated&gt;): List&lt;NEUEventSubscriber&gt;</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&lt;KSAnnotated&gt;): List&lt;NEUEventSubscriber&gt;</ID>
+ <ID>LongMethod:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$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&lt;Double, Double&gt;?, sellLine: Pair&lt;Double, Double&gt;?, 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.&lt;no name provided&gt;$10</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$100</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$1000</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$100f</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$10f</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$15</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$1600</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$20</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$200</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$2000f</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$20f</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$25</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$2L</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$3</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$300</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$35</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$4</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$4f</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$5</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$5.5</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$50</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$500</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$6</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$600</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$6f</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$7</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$8</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$800</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$81f</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$9</ID>
+ <ID>MagicNumber:PeekCommand.kt$PeekCommand.&lt;no name provided&gt;$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 -&gt; buttonPosition.copy(x = overlappingExclusionZone.area.left - buttonPosition.width - margin)</ID>
+ <ID>MaxLineLength:ButtonExclusionZoneEvent.kt$ButtonExclusionZoneEvent$TOWARDS_TOP -&gt; 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 &amp;&amp; it.returnType.isSubtypeOf(typeOf&lt;Map&lt;String, JsonElement&gt;&gt;()) } as KProperty1&lt;Any, Map&lt;String, JsonElement&gt;&gt;</ID>
+ <ID>MaxLineLength:MiscCommands.kt$MiscCommands$"${RED}NEU Cosmetics do not work with OptiFine Fast Render. Go to ESC &gt; Options &gt; Video Settings &gt; Performance &gt; 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>