• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
[Python脚本]Folia插件识别,便于传统核心的腐竹快速找出哪些插件不支持Folia

原创 JE核心 [Python脚本]Folia插件识别,便于传统核心的腐竹快速找出哪些插件不支持Folia 0.0.1

请登录后获取
版权类型
原创
原帖地址
#
适配版本(Java)
  1. 1.21
  2. 1.20
  3. 1.19
  4. 1.18
  5. 1.17
  6. 1.16
  7. 1.15
  8. 1.14
  9. 1.13
  10. 1.12
  11. 1.11
  12. 1.10
  13. 1.9
  14. 1.8
  15. 1.7
  16. 1.6
  17. 1.5
  18. 1.4
[MD] # Folia插件识别器 很简单,批量识别你的plugins文件夹下哪些插件支持Folia ## 用处? 这是一个Python脚本,同时提供打包好的exe 有些腐竹(比如我)需要快速迁徙到Folia核心,但是旧有服务端可能比较大,一个个去看是不是支持folia工作量有点大 如果直接强行用Folia加载游戏的话,Folia对不支持的插件确实会报错通知,但是不直观 这时候你可以用这个脚本快速识别,全程大约两三秒 ## 用法 ### 如果你是普通用户? 1. 用金粒购买,因为脚本很小很简单我就不放Github了,但是我会在帖子里面贴上源码 2. 下载`IsFoliaSupporet.exe`,塞到你服务器的plugins文件夹下 3. 运行 4. 选择是否输出报告文件,如果输出,则会在plugins文件夹下生成`folia_supported.txt`(所有支持Folia的插件)和`no_folia_supported.txt`(所有不支持Folia的插件) ### 如果你是Python大佬? 1. 你还需要安装`pyyaml`库 2. 下载地址里面还有`scripts.py`,这就是源码 ## 其他 问题反馈请在本贴反馈 支持[OpenMoPlugins](https://openmo.molab.top)谢谢喵,点点Star和赞赏谢谢喵 ## 源码 [/MD]

代码:
import os
from zipfile import ZipFile

import yaml

folia_supported = []
no_folia_supported = []

for filename in os.listdir('.'):
    if not "jar" in filename[-4:]:
        continue
    with ZipFile(filename, 'r') as f:
        try:
            path = f.extract("plugin.yml")
            print(f"找到Spigot插件:{filename}")
        except KeyError:
            try:
                path = f.extract("paper-plugin.yml")
                print(f"找到Paper插件:{filename}")
            except Exception as e:
                print(f"{filename}这玩意真是插件嘛?")
                raise Exception("有个jar疑似不是插件") from e
        with open(path, 'r') as plugin_yml:
            dic = yaml.load(plugin_yml, Loader=yaml.FullLoader)
            # print(dic)
            try:
                if dic["folia-supported"]:
                    print(f"{filename}支持Folia")
                    folia_supported.append(filename)
                else:
                    print(f"{filename}不支持Folia")
                    no_folia_supported.append(filename)
            except KeyError:
                print(f"{filename}不支持Folia")
                no_folia_supported.append(filename)

print("Folia支持的插件:")
for filename in folia_supported:
    print(filename)
print("\n不支持Folia的插件:")
for filename in no_folia_supported:
    print(filename)

need_output = input("是否需要输出结果?(y/n)")
if need_output == "y":
    with open("folia_supported.txt", "w") as f:
        for filename in folia_supported:
            f.write(filename + "\n")
    with open("no_folia_supported.txt", "w") as f:
        for filename in no_folia_supported:
            f.write(filename + "\n")
作者
moran0710
价格
20.00金粒
下载
17
查看
391
首次发布
最后更新

评分

0.00 星 0 次评分
后退
顶部 底部