koishi-plugin-noah 2.3.0 → 2.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,7 @@ export declare class AsphyxiaSDVXService implements GameService {
10
10
  private constructor();
11
11
  static getInstance(logger: Logger, config: SDVXConfig): AsphyxiaSDVXService;
12
12
  private getModel;
13
- getRefid(ctx: Context, url: string, model: string, cardId: string): Promise<string>;
13
+ getRefid(ctx: Context, url: string, cardId: string): Promise<string>;
14
14
  getUserName(ctx: Context, url: string, cardId: string): Promise<string>;
15
15
  getAllScore(ctx: Context, url: string, cardId: string, config: SDVXConfig): Promise<SDVXScore[]>;
16
16
  private getClearType;
@@ -11,6 +11,7 @@ export declare class MaoSDVXService implements ISDVXService {
11
11
  getUserName(ctx: Context, url: string, cardId: string): Promise<string>;
12
12
  verifyPin(ctx: Context, url: string, cardId: string, pin: string): Promise<boolean>;
13
13
  private clearTypeToNum;
14
+ private gradeToNum;
14
15
  private diffNameToMusicType;
15
16
  uploadScore(ctx: Context, url: string, cardId: string, scores: SDVXScore[]): Promise<boolean>;
16
17
  getAllScore(ctx: Context, url: string, cardId: string, config: SDVXConfig): Promise<SDVXScore[]>;
@@ -14,7 +14,7 @@ export declare function getDiffName(diffStr: string, infVer: string | number): s
14
14
  export declare function getDiffFullName(diffStr: string, infVer: string | number): string;
15
15
  /**
16
16
  * 根据难度缩写名称获取难度字符串和 infVer
17
- * @param diffAbbr - 难度缩写名称 (例如: "NOV", "ADV", "EXH", "INF", "GRV", "HVN", "VVD", "XCD", "MXM")
17
+ * @param diffAbbr - 难度缩写名称 (例如: "NOV", "ADV", "EXH", "INF", "GRV", "HVN", "VVD", "XCD", "NBL", "MXM")
18
18
  * @returns 包含难度字符串和 infVer 的对象,如果是非 infinite 难度则 infVer 为 null
19
19
  */
20
20
  export declare function getDiffStringFromAbbr(diffAbbr: string): {
package/lib/index.cjs CHANGED
@@ -2927,7 +2927,7 @@ var SDVXDrawer = class extends BaseDrawer {
2927
2927
  const { loadImage } = this.ctx.skia;
2928
2928
  const grades = ["D", "C", "B", "A", "A+", "AA", "AA+", "AAA", "AAA+", "S"];
2929
2929
  const circles = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
2930
- const diffs = ["NOV", "ADV", "EXH", "INF", "MXM", "GRV", "HVN", "VVD", "XCD", "ULT"];
2930
+ const diffs = ["NOV", "ADV", "EXH", "INF", "MXM", "GRV", "HVN", "VVD", "XCD", "NBL", "ULT"];
2931
2931
  const clears = ["PUC", "SPUC", "UC", "MC", "HC", "NC", "PLAYED", "NOPLAY"];
2932
2932
  const [gradeImages, circleImages, difficultyBadges, clearTypeBadges] = await Promise.all([
2933
2933
  this.loadImageMap(loadImage, grades, (g) => `sdvx/vf/grade/${g}.png`),
@@ -3265,7 +3265,8 @@ var SDVXDrawer = class extends BaseDrawer {
3265
3265
  3: "GRV",
3266
3266
  4: "HVN",
3267
3267
  5: "VVD",
3268
- 6: "XCD"
3268
+ 6: "XCD",
3269
+ 7: "NBL"
3269
3270
  };
3270
3271
  diffKey = infVerNum != null && infMap[infVerNum] ? infMap[infVerNum] : "INF";
3271
3272
  }
@@ -4464,6 +4465,8 @@ function getDiffName(diffStr, infVer) {
4464
4465
  return "VVD";
4465
4466
  case "6":
4466
4467
  return "XCD";
4468
+ case "7":
4469
+ return "NBL";
4467
4470
  }
4468
4471
  }
4469
4472
  break;
@@ -4496,6 +4499,8 @@ function getDiffFullName(diffStr, infVer) {
4496
4499
  return "VIVID";
4497
4500
  case "6":
4498
4501
  return "EXCEED";
4502
+ case "7":
4503
+ return "NABLA";
4499
4504
  }
4500
4505
  }
4501
4506
  break;
@@ -4525,6 +4530,8 @@ function getDiffStringFromAbbr(diffAbbr) {
4525
4530
  return { diffStr: "infinite", infVer: 5 };
4526
4531
  case "XCD":
4527
4532
  return { diffStr: "infinite", infVer: 6 };
4533
+ case "NBL":
4534
+ return { diffStr: "infinite", infVer: 7 };
4528
4535
  case "MXM":
4529
4536
  return { diffStr: "maximum", infVer: null };
4530
4537
  case "ULT":
@@ -4556,13 +4563,12 @@ var AsphyxiaSDVXService = class _AsphyxiaSDVXService {
4556
4563
  }
4557
4564
  async getModel(ctx) {
4558
4565
  if (this.cachedModel) return this.cachedModel;
4559
- const resp = await ctx.http.get(
4560
- `${this.config.sdvx_data_url}/model`
4561
- );
4566
+ const resp = await ctx.http.get(`${this.config.sdvx_data_url}/model`);
4562
4567
  this.cachedModel = String(resp.model);
4563
4568
  return this.cachedModel;
4564
4569
  }
4565
- async getRefid(ctx, url, model, cardId) {
4570
+ async getRefid(ctx, url, cardId) {
4571
+ const model = await this.getModel(ctx);
4566
4572
  const requestUrl = `?model=KFC:J:G:A:${model}&f=message.get`;
4567
4573
  const xmlRequestBody = `<?xml version="1.0" encoding="UTF-8"?>
4568
4574
  <call model="KFC:J:G:A:${model}" srcid="00010203040506070809">
@@ -4577,7 +4583,7 @@ var AsphyxiaSDVXService = class _AsphyxiaSDVXService {
4577
4583
  }
4578
4584
  async getUserName(ctx, url, cardId) {
4579
4585
  const model = await this.getModel(ctx);
4580
- const refid = await this.getRefid(ctx, url, model, cardId);
4586
+ const refid = await this.getRefid(ctx, url, cardId);
4581
4587
  const requestUrl = `?model=KFC:J:G:A:${model}&f=message.get`;
4582
4588
  const xmlRequestBody = `<call model="KFC:J:G:A:${model}" srcid="00010203040506070809">
4583
4589
  <game method="sv7_load" ver="0">
@@ -4596,7 +4602,7 @@ var AsphyxiaSDVXService = class _AsphyxiaSDVXService {
4596
4602
  }
4597
4603
  async getAllScore(ctx, url, cardId, config) {
4598
4604
  const model = await this.getModel(ctx);
4599
- const refid = await this.getRefid(ctx, url, model, cardId);
4605
+ const refid = await this.getRefid(ctx, url, cardId);
4600
4606
  const requestUrl = `?model=KFC:J:G:A:${model}&f=message.get`;
4601
4607
  const xmlRequestBody = `<call model="KFC:J:G:A:${model}" srcid="00010203040506070809">
4602
4608
  <game method="sv7_load_m" ver="0">
@@ -4766,6 +4772,30 @@ var MaoSDVXService = class _MaoSDVXService {
4766
4772
  return 0;
4767
4773
  }
4768
4774
  }
4775
+ gradeToNum(grade) {
4776
+ switch (grade) {
4777
+ case "S":
4778
+ return 9;
4779
+ case "AAA+":
4780
+ return 8;
4781
+ case "AAA":
4782
+ return 7;
4783
+ case "AA+":
4784
+ return 6;
4785
+ case "AA":
4786
+ return 5;
4787
+ case "A+":
4788
+ return 4;
4789
+ case "A":
4790
+ return 3;
4791
+ case "B":
4792
+ return 2;
4793
+ case "C":
4794
+ return 1;
4795
+ default:
4796
+ return 0;
4797
+ }
4798
+ }
4769
4799
  diffNameToMusicType(diffName) {
4770
4800
  switch (diffName.toUpperCase()) {
4771
4801
  case "NOV":
@@ -4779,6 +4809,7 @@ var MaoSDVXService = class _MaoSDVXService {
4779
4809
  case "HVN":
4780
4810
  case "VVD":
4781
4811
  case "XCD":
4812
+ case "NBL":
4782
4813
  return 3;
4783
4814
  case "MXM":
4784
4815
  return 4;
@@ -4802,7 +4833,8 @@ var MaoSDVXService = class _MaoSDVXService {
4802
4833
  music_type: this.diffNameToMusicType(s.music.music_diff_name),
4803
4834
  score: s.music.score,
4804
4835
  exscore: s.music.exscore,
4805
- clear_type: this.clearTypeToNum(s.music.clear_type)
4836
+ clear_type: this.clearTypeToNum(s.music.clear_type),
4837
+ score_grade: this.gradeToNum(s.music.score_grade)
4806
4838
  }));
4807
4839
  if (payload.length === 0) return false;
4808
4840
  const resp = await ctx.http.post(
@@ -5511,6 +5543,8 @@ function parseDiffAndTitle(rawTokens) {
5511
5543
  vvd: "infinite",
5512
5544
  exceed: "infinite",
5513
5545
  xcd: "infinite",
5546
+ nabla: "infinite",
5547
+ nbl: "infinite",
5514
5548
  maximum: "maximum",
5515
5549
  mxm: "maximum"
5516
5550
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koishi-plugin-noah",
3
- "version": "2.3.0",
3
+ "version": "2.3.3",
4
4
  "contributors": [
5
5
  "Logthm <logthm@outlook.com>"
6
6
  ],