Skip to content

雀魂Plus v1.12.1

Compare
Choose a tag to compare
@iamapig120 iamapig120 released this 07 Jul 04:35

欢迎

  由于开发者们的时间安排问题,距离上次更新雀魂 Plus 正式版已经过去了长达四个月时间,深表抱歉!
  随着雀魂 Plus 用户的增多,插件和模组不断涌现,账号的安全保护也愈发重要。在全新的 v1.12 版本中,雀魂 Plus 加入了全新的沙箱机制,并在插件中允许了引入 node 模块,力求在安全和扩展上两开花。(虽然目前沙箱写的超超超烂)
  开发者注意:新版雀魂 Plus 新增了破坏性改动,并不再信任所有证书,详细破坏性改动请参考后续说明。

新特性

  • 独立插件和模组内置插件现在需要进行权限申请才可访问一些敏感数据,具体权限申请说明请参考后部分破坏性改动说明 f78218b f14e47b

修正

  1. adm-zip 包已更新,现在雀魂 Plus 导出的扩展资源会是标准 zip 格式了
    0e6adf1
  2. macOS 下修正了无法使用复制粘贴的问题 398ec6c
  3. 修正了自带的强制报番插件无法正常工作的问题 d0f9625

改进

  1. 雀魂 Plus 访问远程服务器的安全性被提高了,现在不再会信任所有 https 证书 e2c886c
  2. 内置插件新加入了跳过实名认证插件 faab210 69bfe5c
  3. 牌谱查和好友房功能得到了改进,现在复制其他人发送的链接,启动游戏,就会自动查牌谱或加入房间了 e4d2cbb

开发

  1. node-sass 模块的引用已被移动至开发依赖 #48 f0e2e27
  2. i18n 修改了 Proxy 的生成策略,略微提升了运行性能 22c1839
  3. 在设置页面加入了 禁用 GPU 黑名单 选项以在部分不受支持的硬件下启动游戏 c41a825 7f03b87
  4. 您现在可以在插件中通过申请权限使用 node 模块了 f78218b
  5. adm-zip 包已更新,现在雀魂 Plus 导出的扩展资源可被雀魂 X 正确读取了
    0e6adf1

已知问题

  1. 微信登录失效,无法使用微信登录

TODO

  1. 添加证书信任列表以及相关 API,以方便开发者使用自签名证书等
  2. 添加日/美服支持(原型已实现,尝试添加至当前项目中)
  3. 添加雀魂游戏语言选取功能,恢复雀魂隐藏的该功能
  4. 完全重构项目 UI 组件,模仿 POI 将管理器和游戏窗口合并

破坏性改动说明

在新版本中,雀魂 Plus 加入了插件的权限控制功能,插件在使用一些敏感对象时需要预先申请权限,以下是具体权限说明。
插件需要在 execute.json 或是 mod.jsonexecute 属性下使用 executePreferences 对象,以键值对方式声明插件会使用到的权限,一个典型的 execute.json 举例如下

{
  "name": "雀魂Plus插件",
  "author": "Majsoul Plus Team",
  "description": "这个插件申请了文档对象,本地存储对象的访问权和对全局对象的写入权",
  "entry": "main.js",
  "executePreferences": {
      "document": true,
      "localStorage": true,
      "writeableWindowObject": true
  }
}

对于 executePreferences 对象,在当前版本雀魂 Plus 环境下可以拥有以下可选属性,插件开发者可以根据需求进行使用。

属性名 说明 默认值
nodeRequire 是否允许使用 node require 语句 false
document 是否允许访问和编辑 document 对象 false
localStorage 是否允许访问和编辑 localStorage 对象 false
XMLHttpRequest 是否允许使用 XHR 对象 false
WebSocket 是否允许使用 WebSocket 对象 false
writeableWindowObject 是否允许写入全局对象 false

提示

  • 本次更新后可能会导致部分旧有插件失效,如果出现此情况,建议联系插件开发者按照上述说明改动。(此外,因为沙箱实现问题很大且意义很小,未来可能会移除该特性,如果真的发生了这种事的话,提前向各位插件开发者道歉。)