mirror of
https://github.com/laochan-eacnet/backend.git
synced 2026-10-05 04:57:58 +03:00
add support for omnimix, add bgm items back
This commit is contained in:
+1766
-344
File diff suppressed because it is too large
Load Diff
@@ -40,7 +40,12 @@ export default class extends Combine(Service, User, Game, Music) {
|
||||
}
|
||||
}
|
||||
|
||||
export const ITEM_LIST = data.items;
|
||||
export const ITEM_LIST = data.items.map(id => ({
|
||||
item_id: v.str(id),
|
||||
not_free_count: v.s32(1),
|
||||
free_count: v.s32(0),
|
||||
}));
|
||||
|
||||
export const MUSIC_LIST = [
|
||||
...data.musics.map(m => ({
|
||||
music_id: v.s32(m.id),
|
||||
@@ -48,4 +53,10 @@ export const MUSIC_LIST = [
|
||||
note_bit: v.s32(m.noteBit),
|
||||
music_pack_item_id: v.str('')
|
||||
})),
|
||||
...data.omni_musics.map(m => ({
|
||||
music_id: v.s32(m.id),
|
||||
kind: v.s32(2),
|
||||
note_bit: v.s32(0),
|
||||
music_pack_item_id: v.str('')
|
||||
})),
|
||||
];
|
||||
|
||||
@@ -5,6 +5,10 @@ import { Context } from "../../types.js";
|
||||
import { v } from "../../utils/kxml-value.js";
|
||||
import { MUSIC_LIST } from "./index.js";
|
||||
import { Binary } from "mongodb";
|
||||
import { omni_musics } from './data.json' with { type: "json" };
|
||||
|
||||
// user only needs to unlock omni music, which is temporary
|
||||
const userUnlockMusic = new Map<string, number>();
|
||||
|
||||
export class Music {
|
||||
userService: UserService;
|
||||
@@ -128,19 +132,49 @@ export class Music {
|
||||
}
|
||||
|
||||
@eacnet('p2d')
|
||||
async getMusicList() {
|
||||
async unlockMusic(ctx: Context) {
|
||||
const { music: { music_id } } = ctx.body as { music: { music_id: number } };
|
||||
userUnlockMusic.set(ctx.token, music_id);
|
||||
|
||||
console.log(music_id);
|
||||
|
||||
return {
|
||||
status: v.s32(0),
|
||||
error: v.s32(0),
|
||||
};
|
||||
}
|
||||
|
||||
@eacnet('p2d')
|
||||
async getMusicList(ctx: Context) {
|
||||
let music = [...MUSIC_LIST];
|
||||
|
||||
if (userUnlockMusic.has(ctx.token)) {
|
||||
const targetMusic = userUnlockMusic.get(ctx.token);
|
||||
userUnlockMusic.delete(ctx.token);
|
||||
|
||||
const bitData = omni_musics.find(v => v.id === targetMusic);
|
||||
|
||||
music = music.filter(v => v.music_id['__value'] !== targetMusic);
|
||||
music.push({
|
||||
music_id: v.s32(bitData.id),
|
||||
kind: v.s32(1),
|
||||
note_bit: v.s32(bitData.noteBit),
|
||||
music_pack_item_id: v.str(''),
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
status: v.s32(0),
|
||||
error: v.s32(0),
|
||||
result: {
|
||||
status: v.s32(0),
|
||||
check_sum: v.str('2e49eba0b6ca8b6898f5d684ea0c3bc1ed6f1d572a4d308cf32727d64069a588'),
|
||||
check_sum: v.str(''),
|
||||
music_list: {
|
||||
music_num: v.s32(MUSIC_LIST.length),
|
||||
music: MUSIC_LIST,
|
||||
music_num: v.s32(music.length),
|
||||
music,
|
||||
}
|
||||
},
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@eacnet('p2d')
|
||||
|
||||
+15
-11
@@ -5,6 +5,7 @@ import { fromToken } from "../../utils/laochan-id.js";
|
||||
import { UserService } from "../../services/p2d/user.js";
|
||||
import { sha256 } from "../../utils/sha256.js";
|
||||
import { toKBinXml } from "../../utils/kbinxml.js";
|
||||
import { ITEM_LIST } from "./index.js";
|
||||
|
||||
export class User {
|
||||
userService: UserService;
|
||||
@@ -338,17 +339,20 @@ export class User {
|
||||
result: {
|
||||
item_list: {
|
||||
item_num: v.s32(2),
|
||||
item: [{
|
||||
// infinitas ticket
|
||||
item_id: v.str('I1000000'),
|
||||
not_free_count: v.s32(items_count.infinitas_ticket),
|
||||
free_count: v.s32(items_count.infinitas_ticket_free),
|
||||
}, {
|
||||
// ldisc
|
||||
item_id: v.str('I1000001'),
|
||||
not_free_count: v.s32(items_count.ldisc),
|
||||
free_count: v.s32(0),
|
||||
}]
|
||||
item: [
|
||||
...ITEM_LIST,
|
||||
{
|
||||
// infinitas ticket
|
||||
item_id: v.str('I1000000'),
|
||||
not_free_count: v.s32(items_count.infinitas_ticket),
|
||||
free_count: v.s32(items_count.infinitas_ticket_free),
|
||||
}, {
|
||||
// ldisc
|
||||
item_id: v.str('I1000001'),
|
||||
not_free_count: v.s32(items_count.ldisc),
|
||||
free_count: v.s32(0),
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user