Skip to content

Commit 9d80945

Browse files
committed
I was bored without internet on the road for 6 hours
1 parent d54bfb6 commit 9d80945

File tree

12 files changed

+54
-63
lines changed

12 files changed

+54
-63
lines changed

src/main/kotlin/com/demonwav/mcdev/creator/PlatformVersion.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
package com.demonwav.mcdev.creator
1212

1313
import com.demonwav.mcdev.platform.PlatformType
14+
import com.demonwav.mcdev.util.fromJson
1415
import com.google.gson.Gson
1516
import org.jetbrains.concurrency.runAsync
1617
import java.net.URL
@@ -44,7 +45,7 @@ fun getVersionSelector(type: PlatformType) = runAsync {
4445
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"
4546
)
4647
val text = connection.getInputStream().use { it.reader().use { it.readText() } }
47-
Gson().fromJson(text, PlatformVersion::class.java)
48+
Gson().fromJson<PlatformVersion>(text)
4849
}
4950

5051
data class PlatformVersion(var versions: Array<String>, var selectedIndex: Int) {

src/main/kotlin/com/demonwav/mcdev/error/AnonymousFeedback.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
package com.demonwav.mcdev.error
1212

1313
import com.demonwav.mcdev.update.PluginUtil
14+
import com.demonwav.mcdev.util.fromJson
1415
import com.google.gson.Gson
1516
import com.intellij.ide.plugins.PluginManager
1617
import org.apache.commons.io.IOUtils
@@ -92,7 +93,7 @@ object AnonymousFeedback {
9293
IOUtils.toString(it, contentEncoding)
9394
}
9495

95-
val json = Gson().fromJson(body, HashMap::class.java)
96+
val json = Gson().fromJson<Map<*, *>>(body)
9697
val issueNum = json["number"].toString().toDouble().toInt()
9798
return issueNum
9899
}

src/main/kotlin/com/demonwav/mcdev/insight/ColorAnnotator.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import com.intellij.lang.annotation.AnnotationHolder
1515
import com.intellij.lang.annotation.Annotator
1616
import com.intellij.lang.annotation.HighlightSeverity
1717
import com.intellij.openapi.editor.colors.TextAttributesKey
18+
import com.intellij.openapi.editor.colors.TextAttributesScheme
1819
import com.intellij.openapi.editor.markup.TextAttributes
1920
import com.intellij.psi.PsiElement
2021
import java.awt.Color

src/main/kotlin/com/demonwav/mcdev/inspection/IsCancelled.kt

Lines changed: 12 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -15,38 +15,21 @@ import com.intellij.openapi.project.Project
1515
import com.siyeh.ig.InspectionGadgetsFix
1616
import org.jetbrains.annotations.Nls
1717

18-
class IsCancelled(val buildFix: InspectionGadgetsFix, val errorString: String) {
18+
class IsCancelled(
19+
fix: (ProblemDescriptor) -> Unit,
20+
val errorString: String
21+
) {
22+
val buildFix: InspectionGadgetsFix
1923

20-
class IsCancelledBuilder {
21-
private var fix: InspectionGadgetsFix? = null
22-
private var errorString: String? = null
24+
init {
25+
this.buildFix = object : InspectionGadgetsFix() {
26+
override fun doFix(project: Project, descriptor: ProblemDescriptor) = fix(descriptor)
2327

24-
fun setFix(fix: (ProblemDescriptor) -> Unit): IsCancelledBuilder {
25-
this.fix = object : InspectionGadgetsFix() {
26-
override fun doFix(project: Project, descriptor: ProblemDescriptor) = fix(descriptor)
28+
@Nls(capitalization = Nls.Capitalization.Sentence)
29+
override fun getName() = "Simplify"
2730

28-
@Nls
29-
override fun getName() = "Simplify"
30-
31-
@Nls
32-
override fun getFamilyName() = "Useless Is Cancelled Check"
33-
}
34-
return this
35-
}
36-
37-
fun setErrorString(errorString: String): IsCancelledBuilder {
38-
this.errorString = errorString
39-
return this
40-
}
41-
42-
fun build(): IsCancelled {
43-
return IsCancelled(fix!!, errorString!!)
44-
}
45-
}
46-
47-
companion object {
48-
fun builder(): IsCancelledBuilder {
49-
return IsCancelledBuilder()
31+
@Nls(capitalization = Nls.Capitalization.Sentence)
32+
override fun getFamilyName() = "Useless IsCancelled Check"
5033
}
5134
}
5235
}

src/main/kotlin/com/demonwav/mcdev/platform/bukkit/BukkitModule.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,18 +152,18 @@ class BukkitModule<T : AbstractModuleType<*>> constructor(facet: MinecraftFacet,
152152
return null
153153
}
154154

155-
if (resolve !is ClsMethodImpl) {
155+
if (resolve !is PsiMethod) {
156156
return null
157157
}
158158

159159
if (resolve.name != BukkitConstants.EVENT_ISCANCELLED_METHOD_NAME) {
160160
return null
161161
}
162162

163-
return IsCancelled.builder()
164-
.setErrorString("Cancellable.isCancelled() check is useless in a method annotated with ignoreCancelled=true.")
165-
.setFix { expression.replace(JavaPsiFacade.getElementFactory(project).createExpressionFromText("false", expression)) }
166-
.build()
163+
return IsCancelled(
164+
errorString = "Cancellable.isCancelled() check is useless in a method annotated with ignoreCancelled=true.",
165+
fix = { expression.replace(JavaPsiFacade.getElementFactory(project).createExpressionFromText("false", expression)) }
166+
)
167167
}
168168

169169
@Contract(value = "null -> false", pure = true)

src/main/kotlin/com/demonwav/mcdev/platform/liteloader/version/LiteLoaderVersion.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
package com.demonwav.mcdev.platform.liteloader.version
1212

13+
import com.demonwav.mcdev.util.fromJson
1314
import com.demonwav.mcdev.util.sortVersions
1415
import com.google.gson.Gson
1516
import java.io.IOException
@@ -27,7 +28,7 @@ class LiteLoaderVersion private constructor(private var map: Map<*, *>) {
2728
try {
2829
val text = URL("http://dl.liteloader.com/versions/versions.json").readText()
2930

30-
val map = Gson().fromJson(text, Map::class.java)
31+
val map = Gson().fromJson<Map<*, *>>(text)
3132
val liteLoaderVersion = LiteLoaderVersion(map)
3233
liteLoaderVersion.sortedMcVersions
3334
return liteLoaderVersion

src/main/kotlin/com/demonwav/mcdev/platform/mcp/srg/McpUnscrambler.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@
1010

1111
package com.demonwav.mcdev.platform.mcp.srg
1212

13-
import com.demonwav.mcdev.facet.MinecraftFacet
14-
import com.demonwav.mcdev.platform.mcp.McpModuleType
15-
import com.demonwav.mcdev.util.mapFirstNotNull
16-
import com.intellij.openapi.module.ModuleManager
1713
import com.intellij.openapi.project.Project
1814
import com.intellij.unscramble.UnscrambleSupport
1915
import javax.swing.JComponent
@@ -25,9 +21,7 @@ class McpUnscrambler : UnscrambleSupport<JComponent> {
2521
override fun getPresentableName() = "Remap SRG names"
2622

2723
override fun unscramble(project: Project, text: String, logName: String, settings: JComponent?): String? {
28-
val srgMap = ModuleManager.getInstance(project).modules.mapFirstNotNull {
29-
MinecraftFacet.getInstance(it, McpModuleType)?.srgManager?.srgMapNow
30-
} ?: return null
24+
val srgMap = SrgManager.findAnyInstance(project)?.srgMapNow ?: return null
3125
return srgPattern.replace(text) { srgMap.mapSrgName(it.value) ?: it.value }
3226
}
3327
}

src/main/kotlin/com/demonwav/mcdev/platform/mcp/srg/SrgManager.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010

1111
package com.demonwav.mcdev.platform.mcp.srg
1212

13+
import com.demonwav.mcdev.facet.MinecraftFacet
14+
import com.demonwav.mcdev.platform.mcp.McpModuleType
15+
import com.demonwav.mcdev.util.mapFirstNotNull
16+
import com.intellij.openapi.module.ModuleManager
17+
import com.intellij.openapi.project.Project
1318
import com.intellij.openapi.util.Getter
1419
import org.jetbrains.concurrency.Promise
1520
import org.jetbrains.concurrency.createError
@@ -52,5 +57,10 @@ class SrgManager(val files: Set<String>) {
5257
private val map = HashMap<Set<String>, SrgManager>()
5358

5459
fun getInstance(files: Set<String>) = map.computeIfAbsent(files, ::SrgManager)
60+
61+
fun findAnyInstance(project: Project) =
62+
ModuleManager.getInstance(project).modules.mapFirstNotNull {
63+
MinecraftFacet.getInstance(it, McpModuleType)?.srgManager
64+
}
5565
}
5666
}

src/main/kotlin/com/demonwav/mcdev/platform/mcp/version/McpVersion.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
package com.demonwav.mcdev.platform.mcp.version
1212

13+
import com.demonwav.mcdev.util.fromJson
1314
import com.demonwav.mcdev.util.sortVersions
1415
import com.google.gson.Gson
1516
import com.google.gson.reflect.TypeToken
@@ -76,8 +77,7 @@ class McpVersion private constructor(private val map: Map<String, Map<String, Li
7677
fun downloadData(): McpVersion? {
7778
try {
7879
val text = URL("http://export.mcpbot.bspk.rs/versions.json").readText()
79-
val tokenType = object : TypeToken<Map<String, Map<String, List<Int>>>>() {}.type
80-
val map = Gson().fromJson<Map<String, Map<String, List<Int>>>>(text, tokenType)
80+
val map = Gson().fromJson<Map<String, Map<String, List<Int>>>>(text)
8181
val mcpVersion = McpVersion(map)
8282
mcpVersion.versions
8383
return mcpVersion

src/main/kotlin/com/demonwav/mcdev/platform/sponge/SpongeModule.kt

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.demonwav.mcdev.platform.sponge.generation.SpongeGenerationData
2020
import com.demonwav.mcdev.platform.sponge.util.SpongeConstants
2121
import com.demonwav.mcdev.util.extendsOrImplements
2222
import com.demonwav.mcdev.util.findContainingMethod
23+
import com.intellij.codeInspection.ProblemDescriptor
2324
import com.intellij.psi.JavaPsiFacade
2425
import com.intellij.psi.PsiAnnotationMemberValue
2526
import com.intellij.psi.PsiClass
@@ -121,7 +122,6 @@ class SpongeModule(facet: MinecraftFacet) : AbstractModule(facet) {
121122
when (sub) {
122123
"TRUE" -> isCancelled = true
123124
"FALSE" -> isCancelled = false
124-
"UNDEFINED" -> return null
125125
else -> return null
126126
}
127127
}
@@ -155,21 +155,12 @@ class SpongeModule(facet: MinecraftFacet) : AbstractModule(facet) {
155155
return null
156156
}
157157

158-
val isCancelledBuilder = IsCancelled.builder()
159-
.setErrorString(
160-
"Cancellable.isCancelled() check is useless in a method not annotated with @IsCancelled(Tristate.UNDEFINED)"
161-
)
162-
163-
if (isCancelled) {
164-
isCancelledBuilder.setFix {
165-
expression.replace(JavaPsiFacade.getElementFactory(project).createExpressionFromText("true", expression))
166-
}
167-
} else {
168-
isCancelledBuilder.setFix {
169-
expression.replace(JavaPsiFacade.getElementFactory(project).createExpressionFromText("false", expression))
158+
return IsCancelled(
159+
errorString = "Cancellable.isCancelled() check is useless in a method not annotated with @IsCancelled(Tristate.UNDEFINED)",
160+
fix = {
161+
expression.replace(JavaPsiFacade.getElementFactory(project)
162+
.createExpressionFromText(if (isCancelled) "true" else "false", expression))
170163
}
171-
}
172-
173-
return isCancelledBuilder.build()
164+
)
174165
}
175166
}

0 commit comments

Comments
 (0)