diff --git a/src/main/kotlin/net/taehui/twilight/BMSCompiler.kt b/src/main/kotlin/net/taehui/twilight/BMSCompiler.kt index 632b113..6ef7c66 100644 --- a/src/main/kotlin/net/taehui/twilight/BMSCompiler.kt +++ b/src/main/kotlin/net/taehui/twilight/BMSCompiler.kt @@ -405,7 +405,7 @@ } } } - inputSet.add(getBMSInput(noteVariety1, noteVariety0, Component.InputMode.INPUT_MODE_142)) + inputSet.add(getBMSInput(noteVariety1, noteVariety0, Component.InputMode.INPUT_MODE_14_2)) } meterCount += 2 } @@ -423,7 +423,7 @@ } } targetComputing.inputMode = getInputMode(inputSet) - if (targetComputing.inputMode == Component.InputMode.INPUT_MODE_102 && (targetComputing.title.contains( + if (targetComputing.inputMode == Component.InputMode.INPUT_MODE_10_2 && (targetComputing.title.contains( "9B", true ) || targetComputing.title.contains( @@ -662,7 +662,7 @@ return Component.InputMode.INPUT_MODE_6 } if (inputSet.all { it == 0 }) { - return Component.InputMode.INPUT_MODE_51 + return Component.InputMode.INPUT_MODE_5_1 } val isMode71 = inputSet.contains(7) || inputSet.contains(8) val isMode102 = @@ -671,15 +671,15 @@ ) val isMode142 = isMode71 && isMode102 || inputSet.contains(14) || inputSet.contains(15) if (isMode142) { - return Component.InputMode.INPUT_MODE_142 + return Component.InputMode.INPUT_MODE_14_2 } if (isMode102) { - return Component.InputMode.INPUT_MODE_102 + return Component.InputMode.INPUT_MODE_10_2 } if (isMode71) { - return Component.InputMode.INPUT_MODE_71 + return Component.InputMode.INPUT_MODE_7_1 } - return Component.InputMode.INPUT_MODE_51 + return Component.InputMode.INPUT_MODE_5_1 } private fun getBMSInput(noteVariety0: Char, noteVariety1: Char, inputMode: Component.InputMode): Int { @@ -698,7 +698,7 @@ } } - Component.InputMode.INPUT_MODE_51, Component.InputMode.INPUT_MODE_102 -> { + Component.InputMode.INPUT_MODE_5_1, Component.InputMode.INPUT_MODE_10_2 -> { when (noteVariety0) { '1', '2', '3', '4', '5' -> { return noteVariety0.code - '0'.code + 1 @@ -726,7 +726,7 @@ } } - Component.InputMode.INPUT_MODE_71, Component.InputMode.INPUT_MODE_142 -> { + Component.InputMode.INPUT_MODE_7_1, Component.InputMode.INPUT_MODE_14_2 -> { when (noteVariety0) { '1', '2', '3', '4', '5' -> { return noteVariety0.code - '0'.code + 1 @@ -756,7 +756,7 @@ '2', '4', '6', 'E' -> { when (inputMode) { - Component.InputMode.INPUT_MODE_102 -> { + Component.InputMode.INPUT_MODE_10_2 -> { when (noteVariety0) { '1', '2', '3', '4', '5' -> { return noteVariety0.code - '0'.code + 6 @@ -768,7 +768,7 @@ } } - Component.InputMode.INPUT_MODE_142 -> { + Component.InputMode.INPUT_MODE_14_2 -> { when (noteVariety0) { '1', '2', '3', '4', '5' -> { return noteVariety0.code - '0'.code + 8 diff --git a/src/main/kotlin/net/taehui/twilight/BMSONCompiler.kt b/src/main/kotlin/net/taehui/twilight/BMSONCompiler.kt index 6d9b292..7bec5c1 100644 --- a/src/main/kotlin/net/taehui/twilight/BMSONCompiler.kt +++ b/src/main/kotlin/net/taehui/twilight/BMSONCompiler.kt @@ -49,12 +49,12 @@ "generic-8keys" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_8 "generic-9keys", "popn-9k" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_9 "generic-10keys" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_10 - "beat-5k" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_51 - "beat-7k" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_71 - "beat-10k" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_102 - "beat-14k" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_142 - "keyboard-24k" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_242 - "keyboard-24k-double" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_484 + "beat-5k" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_5_1 + "beat-7k" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_7_1 + "beat-10k" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_10_2 + "beat-14k" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_14_2 + "keyboard-24k" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_24_2 + "keyboard-24k-double" -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_48_4 else -> targetComputing.inputMode = Component.InputMode.INPUT_MODE_7 } targetComputing.judgmentStage = 70 / (0.03 * text.info.judge_rank + 7) @@ -93,7 +93,7 @@ } } if (targetComputing.totalNotes == 0) { - targetComputing.inputMode = Component.InputMode.INPUT_MODE_51 + targetComputing.inputMode = Component.InputMode.INPUT_MODE_5_1 } for (trapChannel in text.sound_channels) { for (note in trapChannel.notes) { @@ -271,7 +271,7 @@ } } - Component.InputMode.INPUT_MODE_51 -> { + Component.InputMode.INPUT_MODE_5_1 -> { when (x) { 8 -> { return 1 @@ -283,7 +283,7 @@ } } - Component.InputMode.INPUT_MODE_71 -> { + Component.InputMode.INPUT_MODE_7_1 -> { when (x) { 8 -> { return 1 @@ -295,7 +295,7 @@ } } - Component.InputMode.INPUT_MODE_102 -> { + Component.InputMode.INPUT_MODE_10_2 -> { when (x) { 8 -> { return 1 @@ -315,7 +315,7 @@ } } - Component.InputMode.INPUT_MODE_142 -> { + Component.InputMode.INPUT_MODE_14_2 -> { when (x) { 8 -> { return 1 @@ -331,7 +331,7 @@ } } - Component.InputMode.INPUT_MODE_242 -> { + Component.InputMode.INPUT_MODE_24_2 -> { when (x) { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 -> { return x + 1 @@ -347,7 +347,7 @@ } } - Component.InputMode.INPUT_MODE_484 -> { + Component.InputMode.INPUT_MODE_48_4 -> { when (x) { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 -> { return x + 2 diff --git a/src/main/kotlin/net/taehui/twilight/Component.kt b/src/main/kotlin/net/taehui/twilight/Component.kt index 1d12eaf..bbf9f27 100644 --- a/src/main/kotlin/net/taehui/twilight/Component.kt +++ b/src/main/kotlin/net/taehui/twilight/Component.kt @@ -39,13 +39,13 @@ INPUT_MODE_7(7), INPUT_MODE_8(8), INPUT_MODE_9(9), - INPUT_MODE_51(10), - INPUT_MODE_71(11), - INPUT_MODE_102(12), - INPUT_MODE_142(13), + INPUT_MODE_5_1(10), + INPUT_MODE_7_1(11), + INPUT_MODE_10_2(12), + INPUT_MODE_14_2(13), INPUT_MODE_10(14), - INPUT_MODE_242(15), - INPUT_MODE_484(16); + INPUT_MODE_24_2(15), + INPUT_MODE_48_4(16); @JsonValue fun getValue(): Int { @@ -126,12 +126,12 @@ INPUT_COUNTS[InputMode.INPUT_MODE_8.value] = 8 INPUT_COUNTS[InputMode.INPUT_MODE_9.value] = 9 INPUT_COUNTS[InputMode.INPUT_MODE_10.value] = 10 - INPUT_COUNTS[InputMode.INPUT_MODE_51.value] = 6 - INPUT_COUNTS[InputMode.INPUT_MODE_71.value] = 8 - INPUT_COUNTS[InputMode.INPUT_MODE_102.value] = 12 - INPUT_COUNTS[InputMode.INPUT_MODE_142.value] = 16 - INPUT_COUNTS[InputMode.INPUT_MODE_242.value] = 26 - INPUT_COUNTS[InputMode.INPUT_MODE_484.value] = 52 + INPUT_COUNTS[InputMode.INPUT_MODE_5_1.value] = 6 + INPUT_COUNTS[InputMode.INPUT_MODE_7_1.value] = 8 + INPUT_COUNTS[InputMode.INPUT_MODE_10_2.value] = 12 + INPUT_COUNTS[InputMode.INPUT_MODE_14_2.value] = 16 + INPUT_COUNTS[InputMode.INPUT_MODE_24_2.value] = 26 + INPUT_COUNTS[InputMode.INPUT_MODE_48_4.value] = 52 AUTOABLE_INPUTS[InputMode.INPUT_MODE_4.value] = IntArray(0) AUTOABLE_INPUTS[InputMode.INPUT_MODE_5.value] = IntArray(0) AUTOABLE_INPUTS[InputMode.INPUT_MODE_6.value] = IntArray(0) @@ -139,23 +139,23 @@ AUTOABLE_INPUTS[InputMode.INPUT_MODE_8.value] = IntArray(0) AUTOABLE_INPUTS[InputMode.INPUT_MODE_9.value] = IntArray(0) AUTOABLE_INPUTS[InputMode.INPUT_MODE_10.value] = IntArray(0) - AUTOABLE_INPUTS[InputMode.INPUT_MODE_51.value] = intArrayOf(1) - AUTOABLE_INPUTS[InputMode.INPUT_MODE_71.value] = intArrayOf(1) - AUTOABLE_INPUTS[InputMode.INPUT_MODE_102.value] = intArrayOf(1, 12) - AUTOABLE_INPUTS[InputMode.INPUT_MODE_142.value] = intArrayOf(1, 16) - AUTOABLE_INPUTS[InputMode.INPUT_MODE_242.value] = intArrayOf(1, 26) - AUTOABLE_INPUTS[InputMode.INPUT_MODE_484.value] = intArrayOf(1, 2, 51, 52) + AUTOABLE_INPUTS[InputMode.INPUT_MODE_5_1.value] = intArrayOf(1) + AUTOABLE_INPUTS[InputMode.INPUT_MODE_7_1.value] = intArrayOf(1) + AUTOABLE_INPUTS[InputMode.INPUT_MODE_10_2.value] = intArrayOf(1, 12) + AUTOABLE_INPUTS[InputMode.INPUT_MODE_14_2.value] = intArrayOf(1, 16) + AUTOABLE_INPUTS[InputMode.INPUT_MODE_24_2.value] = intArrayOf(1, 26) + AUTOABLE_INPUTS[InputMode.INPUT_MODE_48_4.value] = intArrayOf(1, 2, 51, 52) IS_IN_2P[InputMode.INPUT_MODE_4.value] = BooleanArray(5) IS_IN_2P[InputMode.INPUT_MODE_5.value] = BooleanArray(6) IS_IN_2P[InputMode.INPUT_MODE_6.value] = BooleanArray(7) IS_IN_2P[InputMode.INPUT_MODE_7.value] = BooleanArray(8) IS_IN_2P[InputMode.INPUT_MODE_8.value] = BooleanArray(9) IS_IN_2P[InputMode.INPUT_MODE_9.value] = BooleanArray(10) - IS_IN_2P[InputMode.INPUT_MODE_51.value] = BooleanArray(7) - IS_IN_2P[InputMode.INPUT_MODE_71.value] = BooleanArray(9) - IS_IN_2P[InputMode.INPUT_MODE_102.value] = + IS_IN_2P[InputMode.INPUT_MODE_5_1.value] = BooleanArray(7) + IS_IN_2P[InputMode.INPUT_MODE_7_1.value] = BooleanArray(9) + IS_IN_2P[InputMode.INPUT_MODE_10_2.value] = booleanArrayOf(false, false, false, false, false, false, false, true, true, true, true, true, true) - IS_IN_2P[InputMode.INPUT_MODE_142.value] = booleanArrayOf( + IS_IN_2P[InputMode.INPUT_MODE_14_2.value] = booleanArrayOf( false, false, false, @@ -174,8 +174,8 @@ true, true ) - IS_IN_2P[InputMode.INPUT_MODE_242.value] = BooleanArray(27) - IS_IN_2P[InputMode.INPUT_MODE_484.value] = BooleanArray(53) + IS_IN_2P[InputMode.INPUT_MODE_24_2.value] = BooleanArray(27) + IS_IN_2P[InputMode.INPUT_MODE_48_4.value] = BooleanArray(53) val averageColor1 = 65535 val averageColor2 = 4294967295.toInt() val averageColor3 = 4294902015.toInt() @@ -235,9 +235,9 @@ averageColor3, averageColor2 ) - NET_DRAWINGS[InputMode.INPUT_MODE_51.value] = + NET_DRAWINGS[InputMode.INPUT_MODE_5_1.value] = intArrayOf(0, averageColor1, averageColor2, averageColor3, averageColor4, averageColor3, averageColor2) - NET_DRAWINGS[InputMode.INPUT_MODE_71.value] = + NET_DRAWINGS[InputMode.INPUT_MODE_7_1.value] = intArrayOf( 0, averageColor1, @@ -249,7 +249,7 @@ averageColor3, averageColor2 ) - NET_DRAWINGS[InputMode.INPUT_MODE_102.value] = intArrayOf( + NET_DRAWINGS[InputMode.INPUT_MODE_10_2.value] = intArrayOf( 0, averageColor1, averageColor2, @@ -264,7 +264,7 @@ averageColor2, averageColor1 ) - NET_DRAWINGS[InputMode.INPUT_MODE_142.value] = intArrayOf( + NET_DRAWINGS[InputMode.INPUT_MODE_14_2.value] = intArrayOf( 0, averageColor1, averageColor2, @@ -283,7 +283,7 @@ averageColor2, averageColor1 ) - NET_DRAWINGS[InputMode.INPUT_MODE_242.value] = intArrayOf( + NET_DRAWINGS[InputMode.INPUT_MODE_24_2.value] = intArrayOf( 0, averageColor1, averageColor2, @@ -312,7 +312,7 @@ averageColor2, averageColor1 ) - NET_DRAWINGS[InputMode.INPUT_MODE_484.value] = intArrayOf( + NET_DRAWINGS[InputMode.INPUT_MODE_48_4.value] = intArrayOf( 0, averageColor1, averageColor1, diff --git a/src/main/kotlin/net/taehui/twilight/Computing.kt b/src/main/kotlin/net/taehui/twilight/Computing.kt index bb53324..87bf08b 100644 --- a/src/main/kotlin/net/taehui/twilight/Computing.kt +++ b/src/main/kotlin/net/taehui/twilight/Computing.kt @@ -22,7 +22,7 @@ var bpm = 0.0 var lowestBPM = 0.0 var highestBPM = 0.0 - var inputMode = Component.InputMode.INPUT_MODE_51 + var inputMode = Component.InputMode.INPUT_MODE_5_1 var isBanned = false var isSalt = false } \ No newline at end of file diff --git a/src/main/kotlin/net/taehui/twilight/JSON.kt b/src/main/kotlin/net/taehui/twilight/JSON.kt index 9101503..ecfc58a 100644 --- a/src/main/kotlin/net/taehui/twilight/JSON.kt +++ b/src/main/kotlin/net/taehui/twilight/JSON.kt @@ -248,7 +248,7 @@ @JvmField var isAutoLongNote = false - var inputMode = Component.InputMode.INPUT_MODE_51 + var inputMode = Component.InputMode.INPUT_MODE_5_1 var bundleEntryPath = "" var allowedPostableItems = emptyArray() } @@ -397,7 +397,7 @@ var isPaused = false var inputFlags = 0 - var inputMode = Component.InputMode.INPUT_MODE_51 + var inputMode = Component.InputMode.INPUT_MODE_5_1 } class QwilightValveComment { @@ -464,7 +464,7 @@ var highestInputCount = 0 var length = 0.0 var bpm = 0.0 - var inputMode = Component.InputMode.INPUT_MODE_51 + var inputMode = Component.InputMode.INPUT_MODE_5_1 } class QwilightSetNoteFile { @@ -491,7 +491,7 @@ @JvmField var isAutoLongNote = false - var inputMode = Component.InputMode.INPUT_MODE_51 + var inputMode = Component.InputMode.INPUT_MODE_5_1 var bundleEntryPath = "" } diff --git a/src/main/kotlin/net/taehui/twilight/NetItem.kt b/src/main/kotlin/net/taehui/twilight/NetItem.kt index 15e3c06..0c26008 100644 --- a/src/main/kotlin/net/taehui/twilight/NetItem.kt +++ b/src/main/kotlin/net/taehui/twilight/NetItem.kt @@ -44,7 +44,7 @@ var length = 0.0 var bpm = 0.0 var multiplier = 0.0 - var inputMode = Component.InputMode.INPUT_MODE_51 + var inputMode = Component.InputMode.INPUT_MODE_5_1 var highestJudgment0 = -1.0 var higherJudgment0 = -1.0 var highJudgment0 = -1.0 @@ -97,7 +97,7 @@ multiplier = qwilightCallNet.multiplier inputMode = Component.InputMode.entries.elementAtOrElse( qwilightCallNet.inputMode - Component.InputMode.INPUT_MODE_4.value - ) { Component.InputMode.INPUT_MODE_71 } + ) { Component.InputMode.INPUT_MODE_7_1 } highestJudgment0 = qwilightCallNet.highestJudgment0 higherJudgment0 = qwilightCallNet.higherJudgment0 highJudgment0 = qwilightCallNet.highJudgment0 diff --git a/src/main/kotlin/net/taehui/twilight/qwilight/QwilightAvatar.kt b/src/main/kotlin/net/taehui/twilight/qwilight/QwilightAvatar.kt index b4201a7..7ac660f 100644 --- a/src/main/kotlin/net/taehui/twilight/qwilight/QwilightAvatar.kt +++ b/src/main/kotlin/net/taehui/twilight/qwilight/QwilightAvatar.kt @@ -822,8 +822,8 @@ val lastTitles = DB.getTitleItems(it) val inputMode = text.inputMode val lastAvatarAbility = when (inputMode) { - Component.InputMode.INPUT_MODE_51 -> DB.getAvatarAbility5K(avatarID) - Component.InputMode.INPUT_MODE_71 -> DB.getAvatarAbility7K(avatarID) + Component.InputMode.INPUT_MODE_5_1 -> DB.getAvatarAbility5K(avatarID) + Component.InputMode.INPUT_MODE_7_1 -> DB.getAvatarAbility7K(avatarID) Component.InputMode.INPUT_MODE_9 -> DB.getAvatarAbility9K(avatarID) else -> 0.0 } @@ -884,8 +884,8 @@ val titles = DB.getTitleItems(it) val avatarAbility = when (inputMode) { - Component.InputMode.INPUT_MODE_51 -> DB.getAvatarAbility5K(avatarID) - Component.InputMode.INPUT_MODE_71 -> DB.getAvatarAbility7K(avatarID) + Component.InputMode.INPUT_MODE_5_1 -> DB.getAvatarAbility5K(avatarID) + Component.InputMode.INPUT_MODE_7_1 -> DB.getAvatarAbility7K(avatarID) Component.InputMode.INPUT_MODE_9 -> DB.getAvatarAbility9K(avatarID) else -> 0.0 } diff --git a/src/main/kotlin/net/taehui/twilight/system/DB.kt b/src/main/kotlin/net/taehui/twilight/system/DB.kt index 85cc24e..25a6e4e 100644 --- a/src/main/kotlin/net/taehui/twilight/system/DB.kt +++ b/src/main/kotlin/net/taehui/twilight/system/DB.kt @@ -1370,10 +1370,10 @@ FROM tn_avatar WHERE Avatar_ID = ? """.trimIndent() - ).use { - it.setString(1, avatarID) - it.executeQuery().use { rows -> - return (if (rows.next()) rows.getTimestamp("Last_Date") + ).use { dbStatement -> + dbStatement.setString(1, avatarID) + dbStatement.executeQuery().use { + return (if (it.next()) it.getTimestamp("Last_Date") .toInstant() else Instant.now()).toEpochMilli() } } @@ -2260,11 +2260,11 @@ FROM tw_comment WHERE Date BETWEEN "$yyyyMMDD 00:00:00" AND "$yyyyMMDD 23:59:59" AND Avatar = ? """.trimIndent() - ).use { - it.setString(1, avatarID) - it.executeQuery().use { rows -> - if (rows.next()) { - dateValues.add(rows.getInt("Count")) + ).use { dbStatement -> + dbStatement.setString(1, avatarID) + dbStatement.executeQuery().use { + if (it.next()) { + dateValues.add(it.getInt("Count")) } } } @@ -2278,12 +2278,12 @@ FROM tw_comment WHERE Avatar = ? AND Is_Max = true """.trimIndent() - ).use { - it.setString(1, avatarID) - it.executeQuery().use { rows -> - while (rows.next()) { + ).use { dbStatement -> + dbStatement.setString(1, avatarID) + dbStatement.executeQuery().use { + while (it.next()) { ++quitStatusValues[Utility.getQuitStatusValue( - rows.getDouble("Point"), rows.getInt("Stand") + it.getDouble("Point"), it.getInt("Stand") )] } } @@ -2311,7 +2311,6 @@ 1.0 } }, logValueFuture { - val rawAbilities7K = getAbilities7K() val targetAbilities7K = getAbilities(rawAbilities7K).toList() val validAbilities7K = targetAbilities7K.stream().filter { it.second.second }.toList() @@ -2386,32 +2385,33 @@ } } - fun getAvatarFavoriteNoteFiles(avatarID: String): CompletableFuture { + fun getAvatarFavorites(inputMode: Component.InputMode, avatarID: String): CompletableFuture { return logValueFuture { pool.connection.use { db -> db.prepareStatement( """ SELECT tw_note.Note_ID, Note_Variety, Title, Artist, Genre, tw_note.Level_Text, Level, COUNT(Comment_ID) AS Count FROM tw_note, tw_comment - WHERE tw_note.Note_ID = tw_comment.Note_ID AND Avatar = ? + WHERE tw_note.Note_ID = tw_comment.Note_ID AND Avatar = ? AND Input_Mode = ? GROUP BY tw_note.Note_ID ORDER BY COUNT DESC LIMIT 10 """.trimIndent() - ).use { - it.setString(1, avatarID) - it.executeQuery().use { rows -> + ).use {dbStatement -> + dbStatement.setString(1, avatarID) + dbStatement.setInt(2, inputMode.value) + dbStatement.executeQuery().use { val data = mutableListOf() - while (rows.next()) { + while (it.next()) { data.add(object { - val noteID = rows.getString("Note_ID") - val noteVariety = rows.getInt("Note_Variety") - val artist = rows.getString("Artist") - val title = rows.getString("Title") - val genre = rows.getString("Genre") - val levelText = rows.getString("Level_Text") - val level = rows.getInt("Level") - val totalCount = rows.getInt("Count") + val noteID = it.getString("Note_ID") + val noteVariety = it.getInt("Note_Variety") + val artist = it.getString("Artist") + val title = it.getString("Title") + val genre = it.getString("Genre") + val levelText = it.getString("Level_Text") + val level = it.getInt("Level") + val totalCount = it.getInt("Count") }) } data @@ -2421,20 +2421,21 @@ } } - fun getAvatarLastNoteFiles(avatarID: String): CompletableFuture { + fun getAvatarLasts(inputMode: Component.InputMode, avatarID: String): CompletableFuture { return logValueFuture { pool.connection.use { db -> db.prepareStatement( """ SELECT MAX(Date) AS Date, tw_note.Note_ID, Note_Variety, Title, Artist, Genre, tw_note.Level_Text, Level FROM tw_note, tw_comment - WHERE tw_note.Note_ID = tw_comment.Note_ID AND Avatar = ? + WHERE tw_note.Note_ID = tw_comment.Note_ID AND Avatar = ? AND Input_Mode = ? GROUP BY tw_note.Note_ID ORDER BY Date DESC LIMIT 10 """.trimIndent() ).use { dbStatement -> dbStatement.setString(1, avatarID) + dbStatement.setInt(2, inputMode.value) dbStatement.executeQuery().use { val data = mutableListOf() while (it.next()) { @@ -2456,7 +2457,7 @@ } } - fun getAvatarWwwLevelNoteFiles(avatarID: String): CompletableFuture { + fun getAvatarWwwLevels(avatarID: String): CompletableFuture { return logValueFuture { pool.connection.use { db -> db.prepareStatement( @@ -2466,18 +2467,18 @@ WHERE Avatar = ? ORDER BY Date DESC """.trimIndent() - ).use { - it.setString(1, avatarID) - it.executeQuery().use { rows -> + ).use { dbStatement -> + dbStatement.setString(1, avatarID) + dbStatement.executeQuery().use { val data = mutableListOf() - while (rows.next()) { - LevelSystem.getLevelItem(rows.getString("Level_ID"))?.let { levelItem -> + while (it.next()) { + LevelSystem.getLevelItem(it.getString("Level_ID"))?.let { levelItem -> data.add(object { val levelID = levelItem.levelID val title = levelItem.title val levelText = levelItem.levelText val level = levelItem.level - val date = rows.getTimestamp("Date") + val date = it.getTimestamp("Date") }) } } @@ -2488,27 +2489,14 @@ } } - fun getAvatarAbility5KNoteFiles(avatarID: String): CompletableFuture { + fun getAvatarAbilityNoteFiles(inputMode: Component.InputMode, avatarID: String): CompletableFuture { return logValueFuture { - (getAbilities5K().entries.singleOrNull { it.key.first == avatarID } ?: AbstractMap.SimpleEntry( - Pair(avatarID, ""), - ArrayList() - )).value.sortedByDescending { it.ability } - } - } - - fun getAvatarAbility7KNoteFile(avatarID: String): CompletableFuture { - return logValueFuture { - (getAbilities7K().entries.singleOrNull { it.key.first == avatarID } ?: AbstractMap.SimpleEntry( - Pair(avatarID, ""), - ArrayList() - )).value.sortedByDescending { it.ability } - } - } - - fun getAvatarAbility9KNoteFile(avatarID: String): CompletableFuture { - return logValueFuture { - (getAbilities9K().entries.singleOrNull { it.key.first == avatarID } ?: AbstractMap.SimpleEntry( + (when (inputMode) { + Component.InputMode.INPUT_MODE_5_1 -> getAbilities5K() + Component.InputMode.INPUT_MODE_7_1 -> getAbilities7K() + Component.InputMode.INPUT_MODE_9 -> getAbilities9K() + else -> emptyMap() + }.entries.singleOrNull { it.key.first == avatarID } ?: AbstractMap.SimpleEntry( Pair(avatarID, ""), ArrayList() )).value.sortedByDescending { it.ability } @@ -2929,33 +2917,16 @@ } } - fun getHOFAbility5K(): CompletableFuture { + fun getHOFAbility(inputMode: Component.InputMode): CompletableFuture { return logValueFuture { - getAbilities(getAbilities5K()).limit(50).map { (avatar, abilities) -> - object { - val avatarID = avatar.first - val avatarName = avatar.second - val value = abilities.first + getAbilities( + when (inputMode) { + Component.InputMode.INPUT_MODE_5_1 -> getAbilities5K() + Component.InputMode.INPUT_MODE_7_1 -> getAbilities7K() + Component.InputMode.INPUT_MODE_9 -> getAbilities9K() + else -> emptyMap() } - }.toArray() - } - } - - fun getHOFAbility7K(): CompletableFuture { - return logValueFuture { - getAbilities(getAbilities7K()).limit(50).map { (avatar, abilities) -> - object { - val avatarID = avatar.first - val avatarName = avatar.second - val value = abilities.first - } - }.toArray() - } - } - - fun getHOFAbility9K(): CompletableFuture { - return logValueFuture { - getAbilities(getAbilities9K()).limit(50).map { (avatar, abilities) -> + ).limit(50).map { (avatar, abilities) -> object { val avatarID = avatar.first val avatarName = avatar.second diff --git a/src/main/kotlin/net/taehui/twilight/system/PlatformSystem.kt b/src/main/kotlin/net/taehui/twilight/system/PlatformSystem.kt index 5cd0950..c56f390 100644 --- a/src/main/kotlin/net/taehui/twilight/system/PlatformSystem.kt +++ b/src/main/kotlin/net/taehui/twilight/system/PlatformSystem.kt @@ -1,13 +1,8 @@ package net.taehui.twilight.system import com.fasterxml.jackson.databind.ObjectMapper -import com.google.protobuf.ByteString -import com.google.protobuf.UnsafeByteOperations import net.dv8tion.jda.api.JDA import net.dv8tion.jda.api.JDABuilder -import net.dv8tion.jda.api.audio.AudioReceiveHandler -import net.dv8tion.jda.api.audio.AudioSendHandler -import net.dv8tion.jda.api.audio.CombinedAudio import net.dv8tion.jda.api.entities.Guild import net.dv8tion.jda.api.entities.Member import net.dv8tion.jda.api.entities.channel.concrete.TextChannel @@ -23,13 +18,10 @@ import net.taehui.twilight.* import org.apache.hc.client5.http.classic.methods.HttpGet import org.apache.hc.client5.http.impl.classic.HttpClients -import java.nio.ByteBuffer import java.text.NumberFormat import java.util.* import java.util.concurrent.CompletableFuture import java.util.concurrent.ConcurrentHashMap -import javax.annotation.Nonnull -import kotlin.random.Random object PlatformSystem : Logger { class Client { @@ -178,8 +170,8 @@ val twilightAbilitySiteYell = ObjectMapper().readValue(siteYellData.siteYell, JSON.TwilightAbilitySiteYell::class.java) val inputMode = when (twilightAbilitySiteYell.inputMode) { - Component.InputMode.INPUT_MODE_51 -> "⑤K" - Component.InputMode.INPUT_MODE_71 -> "⑦K" + Component.InputMode.INPUT_MODE_5_1 -> "⑤K" + Component.InputMode.INPUT_MODE_7_1 -> "⑦K" Component.InputMode.INPUT_MODE_9 -> "9K" else -> "" } diff --git a/src/main/kotlin/net/taehui/twilight/www/WwwAvatar.kt b/src/main/kotlin/net/taehui/twilight/www/WwwAvatar.kt index a3d4879..562255d 100644 --- a/src/main/kotlin/net/taehui/twilight/www/WwwAvatar.kt +++ b/src/main/kotlin/net/taehui/twilight/www/WwwAvatar.kt @@ -186,22 +186,73 @@ send204(ctx) } } - "/qwilight/www/avatar/favorites" -> DB.getAvatarFavoriteNoteFiles(avatarID).thenAccept { + + "/qwilight/www/avatar/favorites/5K" -> DB.getAvatarFavorites(Component.InputMode.INPUT_MODE_5_1, avatarID).thenAccept { send(ctx, it) } - "/qwilight/www/avatar/lasts" -> DB.getAvatarLastNoteFiles(avatarID).thenAccept { + "/qwilight/www/avatar/favorites/7K" -> DB.getAvatarFavorites(Component.InputMode.INPUT_MODE_7_1, avatarID).thenAccept { send(ctx, it) } - "/qwilight/www/avatar/wwwLevels" -> DB.getAvatarWwwLevelNoteFiles(avatarID).thenAccept { + "/qwilight/www/avatar/favorites/9K" -> DB.getAvatarFavorites(Component.InputMode.INPUT_MODE_9, avatarID).thenAccept { send(ctx, it) } - "/qwilight/www/avatar/ability5K" -> DB.getAvatarAbility5KNoteFiles(avatarID).thenAccept { + "/qwilight/www/avatar/favorites/10K" -> DB.getAvatarFavorites(Component.InputMode.INPUT_MODE_10_2, avatarID).thenAccept { send(ctx, it) } - "/qwilight/www/avatar/ability7K" -> DB.getAvatarAbility7KNoteFile(avatarID).thenAccept { + "/qwilight/www/avatar/favorites/14K" -> DB.getAvatarFavorites(Component.InputMode.INPUT_MODE_14_2, avatarID).thenAccept { send(ctx, it) } - "/qwilight/www/avatar/ability9K" -> DB.getAvatarAbility9KNoteFile(avatarID).thenAccept { + "/qwilight/www/avatar/favorites/24K" -> DB.getAvatarFavorites(Component.InputMode.INPUT_MODE_24_2, avatarID).thenAccept { + send(ctx, it) + } + "/qwilight/www/avatar/favorites/48K" -> DB.getAvatarFavorites(Component.InputMode.INPUT_MODE_48_4, avatarID).thenAccept { + send(ctx, it) + } + + "/qwilight/www/avatar/lasts/5K" -> DB.getAvatarLasts(Component.InputMode.INPUT_MODE_5_1, avatarID).thenAccept { + send(ctx, it) + } + "/qwilight/www/avatar/lasts/7K" -> DB.getAvatarLasts(Component.InputMode.INPUT_MODE_7_1, avatarID).thenAccept { + send(ctx, it) + } + "/qwilight/www/avatar/lasts/9K" -> DB.getAvatarLasts(Component.InputMode.INPUT_MODE_9, avatarID).thenAccept { + send(ctx, it) + } + "/qwilight/www/avatar/lasts/10K" -> DB.getAvatarLasts(Component.InputMode.INPUT_MODE_10_2, avatarID).thenAccept { + send(ctx, it) + } + "/qwilight/www/avatar/lasts/14K" -> DB.getAvatarLasts(Component.InputMode.INPUT_MODE_14_2, avatarID).thenAccept { + send(ctx, it) + } + "/qwilight/www/avatar/lasts/24K" -> DB.getAvatarLasts(Component.InputMode.INPUT_MODE_24_2, avatarID).thenAccept { + send(ctx, it) + } + "/qwilight/www/avatar/lasts/48K" -> DB.getAvatarLasts(Component.InputMode.INPUT_MODE_48_4, avatarID).thenAccept { + send(ctx, it) + } + + "/qwilight/www/avatar/wwwLevels" -> DB.getAvatarWwwLevels(avatarID).thenAccept { + send(ctx, it) + } + + "/qwilight/www/avatar/ability/5K" -> DB.getAvatarAbilityNoteFiles( + Component.InputMode.INPUT_MODE_5_1, + avatarID + ).thenAccept { + send(ctx, it) + } + + "/qwilight/www/avatar/ability/7K" -> DB.getAvatarAbilityNoteFiles( + Component.InputMode.INPUT_MODE_7_1, + avatarID + ).thenAccept { + send(ctx, it) + } + + "/qwilight/www/avatar/ability/9K" -> DB.getAvatarAbilityNoteFiles( + Component.InputMode.INPUT_MODE_9, + avatarID + ).thenAccept { send(ctx, it) } @@ -213,9 +264,15 @@ "/qwilight/www/hof/atStand" -> DB.getHOFAtStand().thenAccept { send(ctx, it) } "/qwilight/www/hof/totalBand" -> DB.getHOFTotalBand().thenAccept { send(ctx, it) } "/qwilight/www/hof/atBand" -> DB.getHOFAtBand().thenAccept { send(ctx, it) } - "/qwilight/www/hof/ability5K" -> DB.getHOFAbility5K().thenAccept { send(ctx, it) } - "/qwilight/www/hof/ability7K" -> DB.getHOFAbility7K().thenAccept { send(ctx, it) } - "/qwilight/www/hof/ability9K" -> DB.getHOFAbility9K().thenAccept { send(ctx, it) } + "/qwilight/www/hof/ability/5K" -> DB.getHOFAbility(Component.InputMode.INPUT_MODE_5_1) + .thenAccept { send(ctx, it) } + + "/qwilight/www/hof/ability/7K" -> DB.getHOFAbility(Component.InputMode.INPUT_MODE_7_1) + .thenAccept { send(ctx, it) } + + "/qwilight/www/hof/ability/9K" -> DB.getHOFAbility(Component.InputMode.INPUT_MODE_9) + .thenAccept { send(ctx, it) } + "/qwilight/www/hof/level" -> DB.getHOFLevel().thenAccept { send(ctx, it) } "/qwilight/www/etc" -> {