[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")