diff --git a/app/Http/Controllers/SkinlibController.php b/app/Http/Controllers/SkinlibController.php index f7ea5aa5..d20cbefc 100644 --- a/app/Http/Controllers/SkinlibController.php +++ b/app/Http/Controllers/SkinlibController.php @@ -171,10 +171,11 @@ class SkinlibController extends Controller 'skinlib.upload.private-score-notice', ['score' => option('private_score_per_storage')] ), - 'scorePublic' => intval(option('score_per_storage')), - 'scorePrivate' => intval(option('private_score_per_storage')), - 'closetItemCost' => intval(option('score_per_closet_item')), - 'award' => intval(option('score_award_per_texture')), + 'score' => (int) auth()->user()->score, + 'scorePublic' => (int) option('score_per_storage'), + 'scorePrivate' => (int) option('private_score_per_storage'), + 'closetItemCost' => (int) option('score_per_closet_item'), + 'award' => (int) option('score_award_per_texture'), 'contentPolicy' => $parsedown->text(option_localized('content_policy')), ]); } diff --git a/resources/assets/src/views/skinlib/Upload.tsx b/resources/assets/src/views/skinlib/Upload.tsx index 32af9699..8f217859 100644 --- a/resources/assets/src/views/skinlib/Upload.tsx +++ b/resources/assets/src/views/skinlib/Upload.tsx @@ -24,6 +24,7 @@ const Upload: React.FC = () => { const contentPolicy = useBlessingExtra('contentPolicy') const privacyNotice = useBlessingExtra('privacyNotice') const award = useBlessingExtra('award') + const currentScore = useBlessingExtra('score', 0) const scorePublic = useBlessingExtra('scorePublic') const scorePrivate = useBlessingExtra('scorePrivate') const closetItemCost = useBlessingExtra('closetItemCost') @@ -108,7 +109,7 @@ const Upload: React.FC = () => { const costRatio = isPrivate ? scorePrivate : scorePublic const size = file?.size ?? 0 - const scoreCost = (~~(size / 1024) || 1) * costRatio + closetItemCost + const scoreCost = Math.ceil(size / 1024) * costRatio + closetItemCost return ( <> @@ -209,18 +210,24 @@ const Upload: React.FC = () => { {file && ( -
-

{t('skinlib.upload.cost', { score: scoreCost })}

+
scoreCost ? 'success' : 'danger' + } mt-3`} + > +
{t('skinlib.upload.cost', { score: scoreCost })}
+
+ {t('user.cur-score')} + {currentScore} +
)} {isPrivate && ( -
-

{privacyNotice}

-
+
{privacyNotice}
)} {!isPrivate && award > 0 && (
-

{t('skinlib.upload.award', { score: award })}

+ {t('skinlib.upload.award', { score: award })}
)}
diff --git a/resources/assets/tests/views/skinlib/Upload.test.tsx b/resources/assets/tests/views/skinlib/Upload.test.tsx index 90f8c27d..05288b6d 100644 --- a/resources/assets/tests/views/skinlib/Upload.test.tsx +++ b/resources/assets/tests/views/skinlib/Upload.test.tsx @@ -16,6 +16,7 @@ beforeEach(() => { window.blessing.extra = { rule: 'rule', privacyNotice: 'privacy notice', + score: 15, scorePrivate: 10, scorePublic: 1, closetItemCost: 10, @@ -132,7 +133,7 @@ describe('score cost', () => { it('public texture', () => { const { getByTitle, queryByText } = render() - const file = new File([], 't.png') + const file = new File(['content'], 't.png') fireEvent.change(getByTitle(t('skinlib.upload.select-file')), { target: { files: [file] }, }) @@ -145,7 +146,7 @@ describe('score cost', () => { it('private texture', () => { const { getByTitle, getByLabelText, queryByText } = render() - const file = new File([], 't.png') + const file = new File(['content'], 't.png') fireEvent.change(getByTitle(t('skinlib.upload.select-file')), { target: { files: [file] }, }) diff --git a/resources/misc/changelogs/en/5.0.0.md b/resources/misc/changelogs/en/5.0.0.md index b16257af..7c8419f2 100644 --- a/resources/misc/changelogs/en/5.0.0.md +++ b/resources/misc/changelogs/en/5.0.0.md @@ -75,6 +75,7 @@ - Fixed that duplicated player name is not detected when updating player name in administration panel. - Fixed that normal administrator can set other user as administrator. - Fixed that texture file won't be deleted when deleting texture in reports management. +- Fixed that score calculation at upload page isn't consistent with that at back-end. ## Removed diff --git a/resources/misc/changelogs/zh_CN/5.0.0.md b/resources/misc/changelogs/zh_CN/5.0.0.md index 2832db8d..3eb6b1e3 100644 --- a/resources/misc/changelogs/zh_CN/5.0.0.md +++ b/resources/misc/changelogs/zh_CN/5.0.0.md @@ -75,6 +75,7 @@ - 修复在管理面板中修改角色名时不检测角色名是否重复的问题 - 修复普通管理员可设置其他用户为管理员的问题 - 修复处理举报中删除材质时不删除材质文件的问题 +- 修复「材质上传」页面的积分计算与后端不一致的问题 ## 移除