@@ -31,19 +31,31 @@ import me.shedaniel.linkie.*
3131import me.shedaniel.linkie.namespaces.MCPNamespace
3232import me.shedaniel.linkie.namespaces.MojangNamespace
3333import me.shedaniel.linkie.namespaces.YarnNamespace
34- import me.shedaniel.linkie.utils.*
34+ import me.shedaniel.linkie.utils.ResultHolder
35+ import me.shedaniel.linkie.utils.tryToVersion
3536import net.dv8tion.jda.api.EmbedBuilder
3637import net.dv8tion.jda.api.entities.MessageEmbed
3738import net.dv8tion.jda.api.events.interaction.ButtonClickEvent
3839import net.dv8tion.jda.api.hooks.ListenerAdapter
3940import net.dv8tion.jda.api.interactions.components.Button
4041import java.awt.Color
4142import java.util.*
43+ import kotlin.collections.Iterator
44+ import kotlin.collections.MutableMap
45+ import kotlin.collections.getOrElse
46+ import kotlin.collections.listOf
47+ import kotlin.collections.mutableMapOf
48+ import kotlin.collections.set
4249
4350/* *
4451 * @author Will BL
4552 */
46- class CmdTranslateMappings (name : String , private val namespace1 : Namespace , private val namespace2 : Namespace , vararg aliases : String? ) : Command() {
53+ class CmdTranslateMappings (
54+ name : String ,
55+ private val namespace1 : Namespace ,
56+ private val namespace2 : Namespace ,
57+ vararg aliases : String?
58+ ) : Command() {
4759 init {
4860 this .name = name.lowercase(Locale .ROOT )
4961 this .aliases = aliases
@@ -65,7 +77,8 @@ class CmdTranslateMappings(name: String, private val namespace1: Namespace, priv
6577 val query = args[0 ];
6678 val version = args.getOrElse(1 ) {
6779 val namespace2Versions = namespace2.getAllVersions().toSet()
68- namespace1.getAllVersions().filter { version -> namespace2Versions.contains(version) }.maxWithOrNull(nullsFirst(compareBy { it.tryToVersion() }))!!
80+ namespace1.getAllVersions().filter { version -> namespace2Versions.contains(version) }
81+ .maxWithOrNull(nullsFirst(compareBy { it.tryToVersion() }))!!
6982 }
7083
7184 scope.launch {
@@ -79,58 +92,59 @@ class CmdTranslateMappings(name: String, private val namespace1: Namespace, priv
7992 .map { res -> res to translate(res, targetMappings) }
8093 .filter { it.second != null }
8194 .mapIndexed { idx, it ->
82- val originalResult = it.first
83- val translation = it.second
84-
85- @Suppress(" UNCHECKED_CAST" )
86- when (translation) {
87- is Class -> {
88- val value = originalResult.value as Class
89- EmbedBuilder ()
90- .setTitle(" $originMappingsName -> $targetMappingsName Class mapping for $version :" )
91- .run {
92- if (value.mappedName != null )
93- addField(" $originMappingsName Name" , " `${value.mappedName} `" , false )
94- else this
95- }
96- .addField(" Intermediary/SRG Name" , " `${value.intermediaryName} `" , false )
97- .addField(" Obfuscated Name" , " `${value.obfName.merged} `" , false )
98- .addField(" $targetMappingsName Name" , " `${translation.optimumName} `" , false )
99- }
100- is MappingsMember -> {
101- val value = originalResult.value as Pair <Class , MappingsMember >
102- EmbedBuilder ()
103- .setTitle(
104- " $originMappingsName -> $targetMappingsName ${
105- when (value.second) {
106- is Field -> " Field"
107- is Method -> " Method"
108- else -> " Member"
109- }
110- } mapping for $version :"
111- )
112- .addField(" $originMappingsName Name" , " `${value.second.mappedName} `" , false )
113- .addField(
114- " Intermediary/SRG Name" ,
115- " `${value.second.intermediaryName} `" ,
116- false
117- )
118- .addField(" Obfuscated Name" , " `${value.second.obfName.merged} `" , false )
119- .addField(" $targetMappingsName Name" , " `${translation.optimumName} `" , false )
120- }
121- else -> {
122- EmbedBuilder ().setDescription(" ???" )
123- }
124- }.setFooter(" Page ${idx + 1 } | Powered by linkie-core" ).build()
95+ val originalResult = it.first
96+ val translation = it.second
97+
98+ @Suppress(" UNCHECKED_CAST" )
99+ when (translation) {
100+ is Class -> {
101+ val value = originalResult.value as Class
102+ EmbedBuilder ()
103+ .setTitle(" $originMappingsName -> $targetMappingsName Class mapping for $version :" )
104+ .run {
105+ if (value.mappedName != null )
106+ addField(" $originMappingsName Name" , " `${value.mappedName} `" , false )
107+ else this
108+ }
109+ .addField(" Intermediary/SRG Name" , " `${value.intermediaryName} `" , false )
110+ .addField(" Obfuscated Name" , " `${value.obfName.merged} `" , false )
111+ .addField(" $targetMappingsName Name" , " `${translation.optimumName} `" , false )
112+ }
113+ is MappingsMember -> {
114+ val value = originalResult.value as Pair <Class , MappingsMember >
115+ EmbedBuilder ()
116+ .setTitle(
117+ " $originMappingsName -> $targetMappingsName ${
118+ when (value.second) {
119+ is Field -> " Field"
120+ is Method -> " Method"
121+ else -> " Member"
122+ }
123+ } mapping for $version :"
124+ )
125+ .addField(" $originMappingsName Name" , " `${value.second.mappedName} `" , false )
126+ .addField(
127+ " Intermediary/SRG Name" ,
128+ " `${value.second.intermediaryName} `" ,
129+ false
130+ )
131+ .addField(" Obfuscated Name" , " `${value.second.obfName.merged} `" , false )
132+ .addField(" $targetMappingsName Name" , " `${translation.optimumName} `" , false )
133+ }
134+ else -> {
135+ EmbedBuilder ().setDescription(" ???" )
136+ }
137+ }.setFooter(" Page ${idx + 1 } | Powered by linkie-core" ).build()
125138 }.iterator()
126139
127140 if (! embeds.hasNext()) {
128- embeds = listOf (EmbedBuilder ()
129- .setTitle(" $namespace1 -> $namespace2 Class mapping for $version :" )
141+ embeds = listOf (
142+ EmbedBuilder ()
143+ .setTitle(" $namespace1 -> $namespace2 Class mapping for $version :" )
130144 .setDescription(" No results found." )
131- .setFooter(" Powered by linkie-core" )
132- .setColor(Color .RED )
133- .build()
145+ .setFooter(" Powered by linkie-core" )
146+ .setColor(Color .RED )
147+ .build()
134148 ).iterator()
135149 }
136150
@@ -170,13 +184,25 @@ class CmdTranslateMappings(name: String, private val namespace1: Namespace, priv
170184 val parent = value.first as Class
171185 val member = value.second as Field
172186
173- member.obfMergedName?.let { memberName -> parent.obfMergedName?.let { className -> target.getClassByObfName(className)?.getFieldByObfName(memberName) } }
187+ member.obfMergedName?.let { memberName ->
188+ parent.obfMergedName?.let { className ->
189+ target.getClassByObfName(
190+ className
191+ )?.getFieldByObfName(memberName)
192+ }
193+ }
174194 }
175195 value is Pair <* , * > && value.second is Method -> {
176196 val parent = value.first as Class
177197 val member = value.second as Method
178198
179- member.obfMergedName?.let { memberName -> parent.obfMergedName?.let { className -> target.getClassByObfName(className)?.getMethodByObfName(memberName) } }
199+ member.obfMergedName?.let { memberName ->
200+ parent.obfMergedName?.let { className ->
201+ target.getClassByObfName(
202+ className
203+ )?.getMethodByObfName(memberName)
204+ }
205+ }
180206 }
181207 else -> null
182208 }
0 commit comments