diff --git a/AquaNet/src/components/settings/Mai2Settings.svelte b/AquaNet/src/components/settings/Mai2Settings.svelte index f173fef8..ff1a8d47 100644 --- a/AquaNet/src/components/settings/Mai2Settings.svelte +++ b/AquaNet/src/components/settings/Mai2Settings.svelte @@ -9,23 +9,21 @@ import { download } from "../../libs/ui"; import UserOptionSlider from "./UserOptionSlider.svelte"; import type { GameUserOption } from "../../libs/generalTypes"; + import InputField from "../ui/InputField.svelte"; - const profileFields = [ - ['name', t('settings.mai2.name')], - ] + let userNameField: any let error: string let submitting = "" let loading = true - let values = Array(profileFields.length).fill('') let changed: string[] = [] let userOptions: GameUserOption = {} let userIsUsingPreset = false - USER.me().then(me => + USER.me().then(me => GAME.userSummary(me.username, 'mai2').then(async ({name}) => { - values = [name] + userNameField = {key: "gameUsername", value: name, type: "String"} userOptions = await SETTING.optionGet('mai2').catch(_ => { error = t("userbox.error.nodata") @@ -36,19 +34,6 @@ loading = false }).catch(e => error = e.message)); - function submit(field: string, value: string) { - if (submitting) return - submitting = field - - switch (field) { - case 'name': - GAME.changeName('mai2', value).then(({newName}) => { - changed = changed.filter(c => c !== field) - values = [newName] - }).catch(e => error = e.message).finally(() => submitting = "") - break - } - } async function exportBatchManual() { submitting = "batchExport" const DIFFICULTY_MAP: Record = { @@ -209,14 +194,14 @@ if(data.userData.classRank in CLASS_MAP){ output.classes["matchingClass"] = CLASS_MAP[data.userData.classRank] } - download(JSON.stringify(output), `AquaDX_maimai2_BatchManualExport_${values[0]}.json`) + download(JSON.stringify(output), `AquaDX_maimai2_BatchManualExport_${userNameField.value}.json`) submitting = "" } function exportData() { submitting = "export" GAME.export('mai2') - .then(data => download(JSON.stringify(data), `AquaDX_maimai2_export_${values[0]}.json`)) + .then(data => download(JSON.stringify(data), `AquaDX_maimai2_export_${userNameField.value}.json`)) .catch(e => error = e.message) .finally(() => submitting = "") } @@ -224,25 +209,8 @@ {#if !loading}
- {#each profileFields as [field, name], i (field)} -
- -
- changed = [...changed, field]} - placeholder={field === 'password' ? t('settings.profile.unchanged') : t('settings.profile.unset')}/> - {#if changed.includes(field) && values[i]} - - {/if} -
-
- {/each} + GAME.changeName('mai2', userNameField.value)}/> {#if userIsUsingPreset}
{t('settings.options.all.preset-warning')} @@ -250,46 +218,46 @@ {/if}
- value >= 37 ? "SONIC" : `${(value / 4) + 1}`} + minValue={0} maxValue={37} + defaultValue={userOptions["noteSpeed"]} + getTextFunction={(value: number) => value >= 37 ? "SONIC" : `${(value / 4) + 1}`} /> - value >= 37 ? "SONIC" : `${(value / 4) + 1}`} + minValue={0} maxValue={37} + defaultValue={userOptions["touchSpeed"]} + getTextFunction={(value: number) => value >= 37 ? "SONIC" : `${(value / 4) + 1}`} /> - value == 10 ? "Normal" : `${value > 10 ? "Late" : "Fast"} ${(Math.abs(value - 10) / 10).toFixed(1)}`} + minValue={0} maxValue={20} + defaultValue={userOptions["slideSpeed"]} + getTextFunction={(value: number) => value == 10 ? "Normal" : `${value > 10 ? "Late" : "Fast"} ${(Math.abs(value - 10) / 10).toFixed(1)}`} /> - `${((value / 19) * 100).toFixed(0)}%`} + `${((value / 19) * 100).toFixed(0)}%`} /> - [ - t('settings.options.all.none'), - t('settings.options.all.push'), - `S`, `SS`, `SSS`, - t('settings.options.all.personal-best'), - t('settings.options.all.rival-score'), + t('settings.options.all.none'), + t('settings.options.all.push'), + `S`, `SS`, `SSS`, + t('settings.options.all.personal-best'), + t('settings.options.all.rival-score'), `${t('settings.options.all.life')} 300`, `${t('settings.options.all.life')} 100`, `${t('settings.options.all.life')} 50`, `${t('settings.options.all.life')} 10`, `${t('settings.options.all.life')} 1` - ][value]} + ][value]} />
@@ -304,7 +272,7 @@
{/if} - + \ No newline at end of file diff --git a/AquaNet/src/libs/i18n/en_ref.ts b/AquaNet/src/libs/i18n/en_ref.ts index 4965e789..c882abe5 100644 --- a/AquaNet/src/libs/i18n/en_ref.ts +++ b/AquaNet/src/libs/i18n/en_ref.ts @@ -240,13 +240,12 @@ export const EN_REF_SETTINGS = { 'settings.fields.ongekiInfiniteKaika.desc': 'Set Kaika to 999', 'settings.fields.rounding.name': 'Score Rounding', 'settings.fields.rounding.desc': 'Round the score to one decimal place', - 'settings.fields.gameUsername.name': 'In-Game Username', + 'settings.fields.gameUsername.name': 'Player Name', 'settings.fields.gameUsername.desc': 'Your name shown in game', 'settings.fields.optOutOfLeaderboard.name': 'Opt Out of Leaderboard', 'settings.fields.optOutOfLeaderboard.desc': 'You will still be able to see yourself on the leaderboard after logging in', 'settings.fields.enableMusicRank.name': 'Enable Recommended Music Rank on Your Machine', 'settings.fields.enableMusicRank.desc': 'If you have your own ranking, you can turn this off. It only affects your own machine', - 'settings.mai2.name': 'Player Name', 'settings.profile.picture': 'Profile Picture', 'settings.profile.upload-new': 'Upload New', 'settings.profile.bad-format': 'Invalid image format. Supported types are PNG, JPG, JPEG, WEBP & GIF.', diff --git a/AquaNet/src/libs/i18n/zh.ts b/AquaNet/src/libs/i18n/zh.ts index 455053ad..183b05f6 100644 --- a/AquaNet/src/libs/i18n/zh.ts +++ b/AquaNet/src/libs/i18n/zh.ts @@ -258,7 +258,6 @@ const zhSettings: typeof EN_REF_SETTINGS = { 'settings.fields.optOutOfLeaderboard.desc': '登录之后还是可以在排行榜上看到自己', 'settings.fields.enableMusicRank.name': '在你的机台上启用「推荐乐曲排行榜」', 'settings.fields.enableMusicRank.desc': '如果你自己设计了排行榜的话,可以关闭这个(会影响你自己的机器)。', - 'settings.mai2.name': '玩家名字', 'settings.profile.picture': '头像', 'settings.profile.upload-new': '上传', 'settings.profile.bad-format': '无效的图片格式,支持的格式有 PNG、JPG、JPEG、WEBP 和 GIF。',