@sjtdev/koishi-plugin-dota2tracker 2.5.7 → 2.5.8
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.
- package/changelog.md +10 -0
- package/lib/index.js +5 -1
- package/lib/templates/hero/hero_1.ejs +1 -9
- package/package.json +3 -3
package/changelog.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# 更新日志
|
|
2
2
|
|
|
3
|
+
### [2.5.8](https://github.com/sjtdev/koishi-plugin-dota2tracker/compare/v2.5.7...v2.5.8) (2026-03-31)
|
|
4
|
+
|
|
5
|
+
### 🚀 功能优化
|
|
6
|
+
|
|
7
|
+
* **templates/hero:** 优化部分显示逻辑,避免在数据失效时显示错误字符 ([480b418](https://github.com/sjtdev/koishi-plugin-dota2tracker/commit/480b4181310afaff45dfa7c98ff52390fe1e59f4))
|
|
8
|
+
|
|
9
|
+
### 🐛 Bug 修复
|
|
10
|
+
|
|
11
|
+
* **opendota-adapter:** 提升`dotaconstants`依赖版本以修复使用`opendota`查询比赛数据失败的问题 ([81b56fd](https://github.com/sjtdev/koishi-plugin-dota2tracker/commit/81b56fdcc636b792e1371855fdbbcd9416d3eefc))
|
|
12
|
+
|
|
3
13
|
### [2.5.7](https://github.com/sjtdev/koishi-plugin-dota2tracker/compare/v2.5.6...v2.5.7) (2026-03-25)
|
|
4
14
|
|
|
5
15
|
### 🚀 功能优化
|
package/lib/index.js
CHANGED
|
@@ -1181,6 +1181,7 @@ var HeroService = class _HeroService extends import_koishi2.Service {
|
|
|
1181
1181
|
}
|
|
1182
1182
|
}
|
|
1183
1183
|
}
|
|
1184
|
+
talent.name_loc = talent.name_loc.replace(/\{s:.*?\}/g, "?");
|
|
1184
1185
|
});
|
|
1185
1186
|
return hero;
|
|
1186
1187
|
}
|
|
@@ -2751,7 +2752,10 @@ var ViewRenderer = class extends import_koishi10.Service {
|
|
|
2751
2752
|
async: true
|
|
2752
2753
|
});
|
|
2753
2754
|
}
|
|
2754
|
-
if (process.env.NODE_ENV === "development")
|
|
2755
|
+
if (process.env.NODE_ENV === "development") {
|
|
2756
|
+
const debugFileName = template.source === "CODE" ? "code" : template.templateName;
|
|
2757
|
+
import_node_fs2.default.writeFileSync(import_node_path2.default.resolve(process.cwd(), "temp", `${debugFileName}.html`), html);
|
|
2758
|
+
}
|
|
2755
2759
|
return html;
|
|
2756
2760
|
} catch (error) {
|
|
2757
2761
|
this.logger.error(error);
|
|
@@ -21,15 +21,7 @@
|
|
|
21
21
|
const hasScepterVal = sv.values_scepter && sv.values_scepter.length;
|
|
22
22
|
const hasShardVal = sv.values_shard && sv.values_shard.length;
|
|
23
23
|
const hasTalentVal = sv.bonuses.length > 0;
|
|
24
|
-
|
|
25
|
-
// 如果基础值全为0,且没有任何额外加成(A杖/魔晶/命石),则该条目其实没意义,但在原逻辑里似乎是作为空 primary 渲染?
|
|
26
|
-
// 原逻辑:如果 (全0) 且 (有任意额外加成) -> 显示空 primary。
|
|
27
|
-
// 如果 (全0) 且 (无额外加成) -> 这条根本不会显示?不,原逻辑里 primary 即使全0也会渲染 span,只是加了 empty class。
|
|
28
|
-
|
|
29
|
-
// 让我们遵循原逻辑:
|
|
30
|
-
// Primary 部分:除非 (全0 且 有额外加成),否则渲染数值。
|
|
31
|
-
// 如果 (全0 且 有额外加成) -> 渲染内容为空字符串。
|
|
32
|
-
%> <p><span class="heading"><%= sv.heading_loc %></span><span class="values"> <% if (!isAllZero || (isAllZero && (hasScepterVal || hasShardVal))) { %> <span class="primary<%= isAllZero ? ' empty' : '' %>"> <% if (!isAllZero) { %> <%= sv.values_float.map(value => value + (sv.is_percentage ? "%" : "")).join(" / ") %> <% } %> </span> <% } %> <% if (hasScepterVal) { %> <span class="alternative scepter"><img src="<%= getImageUrl("scepter") %>"/> <%- sv.values_scepter.map(value => (value > 0 ? '<span class="plus">+</span>' : "") + value + (sv.is_percentage ? "%" : "")).join(" / ") %> </span> <% } %> <% if (hasShardVal) { %> <span class="alternative shard"><img src="<%= getImageUrl("shard") %>"/> <%- sv.values_shard.map(value => (value > 0 ? '<span class="plus">+</span>' : "") + value + (sv.is_percentage ? "%" : "")).join(" / ") %> </span> <% } %> <% if (hasTalentVal) { %> <span class="alternative talent"> <% sv.bonuses.forEach(bonus => { %> <img src="<%= getImageUrl("talents", "icons", "svg") %>"/> <%- (bonus.value > 0 ? '<span class="plus">+</span>' : "") + bonus.value + (sv.is_percentage ? "%" : "") %> <% }); %> </span> <% } %> </span></p> <% }); %> </div><p> <% if (hasCd) { %> <span class="cooldown"> <%= cdStats.values_float.join(" / ") %> </span> <% } %> <% if (hasMana) { %> <span class="mana_cost"> <%= manaStats.values_float.join(" / ") %> </span> <% } %> </p> <% if (item.lore_loc) { %> <p class="lore"><%= item.lore_loc %></p> <% } %> </div> <% }); %> </div><div class="lore"> <%- hero.bio_loc %> </div></div></body><script>document.addEventListener('DOMContentLoaded', function() {
|
|
24
|
+
%> <% if (!isAllZero || hasScepterVal || hasShardVal || hasTalentVal) { %> <p><span class="heading"><%= sv.heading_loc %></span><span class="values"> <% if (!isAllZero || (isAllZero && (hasScepterVal || hasShardVal))) { %> <span class="primary<%= isAllZero ? ' empty' : '' %>"> <% if (!isAllZero) { %> <%= sv.values_float.map(value => value + (sv.is_percentage ? "%" : "")).join(" / ") %> <% } %> </span> <% } %> <% if (hasScepterVal) { %> <span class="alternative scepter"><img src="<%= getImageUrl("scepter") %>"/> <%- sv.values_scepter.map(value => (value > 0 ? '<span class="plus">+</span>' : "") + value + (sv.is_percentage ? "%" : "")).join(" / ") %> </span> <% } %> <% if (hasShardVal) { %> <span class="alternative shard"><img src="<%= getImageUrl("shard") %>"/> <%- sv.values_shard.map(value => (value > 0 ? '<span class="plus">+</span>' : "") + value + (sv.is_percentage ? "%" : "")).join(" / ") %> </span> <% } %> <% if (hasTalentVal) { %> <span class="alternative talent"> <% sv.bonuses.forEach(bonus => { %> <img src="<%= getImageUrl("talents", "icons", "svg") %>"/> <%- (bonus.value > 0 ? '<span class="plus">+</span>' : "") + bonus.value + (sv.is_percentage ? "%" : "") %> <% }); %> </span> <% } %> </span></p> <% } %> <% }); %> </div><p> <% if (hasCd) { %> <span class="cooldown"> <%= cdStats.values_float.join(" / ") %> </span> <% } %> <% if (hasMana) { %> <span class="mana_cost"> <%= manaStats.values_float.join(" / ") %> </span> <% } %> </p> <% if (item.lore_loc) { %> <p class="lore"><%= item.lore_loc %></p> <% } %> </div> <% }); %> </div><div class="lore"> <%- hero.bio_loc %> </div></div></body><script>document.addEventListener('DOMContentLoaded', function() {
|
|
33
25
|
const items = document.querySelectorAll('.skills > .skill');
|
|
34
26
|
items.forEach(item => {
|
|
35
27
|
// const name = item.getAttribute('data-name');
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sjtdev/koishi-plugin-dota2tracker",
|
|
3
3
|
"description": "koishi插件-追踪群友的DOTA2对局 | A Koishi plugin to track Dota 2 matches",
|
|
4
|
-
"version": "2.5.
|
|
4
|
+
"version": "2.5.8",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"dota2"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"axios": "^1.
|
|
28
|
-
"dotaconstants": "^10.
|
|
27
|
+
"axios": "^1.14.0",
|
|
28
|
+
"dotaconstants": "^10.8.0",
|
|
29
29
|
"ejs": "^4.0.1",
|
|
30
30
|
"fontkit": "^2.0.4",
|
|
31
31
|
"https-proxy-agent": "^7.0.6",
|