Nattiden 2 лет назад
Родитель
Сommit
4c69ed4e5b

+ 1 - 0
Libraries/Versions/__LIBRARY__.yml

@@ -6,5 +6,6 @@ fill:
   title: ${file_name}
   templates:
     - VersionPlaceholder
+    - VersionLatestCard
     - VersionMarkdownCard
     - Raw

+ 3 - 4
Pages/News.yml

@@ -5,11 +5,10 @@ alias:
  - 主界面
 cards:
  - animated_noticebar
- - 24w13a | s = false 
- - 24w12a
+ - ${@LatestVersion|snapshot|1} | s = false 
  - T:Separator | content = 历史版本
- - 24w11a
- - 1.20.4
+ - ${@LatestVersion|snapshot|2}
+ - ${@LatestVersion|release}
  - jumpCard
  - T:Separator | content = 周边新闻
  - feedback_hint

+ 29 - 0
Resources/Scripts/LatestVersion.py

@@ -0,0 +1,29 @@
+from Core.Debug import LogWarning
+import requests
+import json
+import re
+
+LAUNCHER_MANIFSET_URL = 'https://piston-meta.mojang.com/mc/game/version_manifest.json'
+
+def fetch_mainfest():
+    try:
+        response = requests.get(LAUNCHER_MANIFSET_URL)
+        return json.loads(response.content)
+    except Exception as e:
+        LogWarning(f'获取版本列表失败:{e.with_traceback()}')
+        return {}
+
+MANIFSET = fetch_mainfest()
+LATEST_VERSIONS = {'snapshot':'','release':''}
+LATEST_VERSIONS.update(MANIFSET['latest'])
+FULL_VERSIONS = MANIFSET.get('versions')
+
+def script(card,arg,res):
+    if len(arg) <= 2 or (count := int(arg[2])) <= 1:
+        return f"{LATEST_VERSIONS[arg[1]]} | latest = true"
+    for version in FULL_VERSIONS:
+        if version['type'] == arg[1]:
+            count -= 1
+            if count == 0:
+                return version['id']
+    return ''

+ 10 - 0
Resources/Templates/VersionLatestCard.yml

@@ -0,0 +1,10 @@
+components:
+ - $MarkdownPresenter
+base: VersionMarkdownCard
+filter:
+  file_exten:
+    - md
+    - markdown
+  latest: true
+cover:
+  title: 最新${version-type} - ${version-id}