clarkwinkelmann / flarum-ext-godot-embed

在 Flarum 帖子中嵌入 Godot pck 文件

安装次数: 56

依赖项: 0

建议者: 0

安全: 0

星标: 4

关注者: 2

分支: 2

开放问题: 0

语言:Blade

类型:flarum-extension

1.0.0 2022-01-10 21:22 UTC

This package is auto-updated.

Last update: 2024-09-16 23:22:47 UTC


README

MIT license Latest Stable Version Total Downloads Donate

此扩展向 Flarum 添加了 [godot]<URL to pck file>[/godot] bbcode,该 bbcode 以 iframe 的形式渲染一个嵌入式播放器。

该 bbcode 已注册为 FoF 上传模板。

bbcode 参数(全部为可选)

  • filesize=INTpck 文件大小(字节)。使用 FoF 上传时自动填充。对于进度条可见是必要的。
  • version=TEXT:在管理员面板中定义的版本的唯一键。
  • cover=URL:将要渲染为游戏加载前背景的图像文件的 URL。
  • args=TEXT:传递给 Godot 引擎的参数。将类似于命令行参数解析,并与 --main-pack 参数合并。
  • width=NUMBER(默认 600):嵌入式播放器的宽度(像素)。
  • height=NUMBER(默认 400):嵌入式播放器的高度(像素)。设计是响应式的,如果播放器被缩小,比例将得到保持。
  • touch=1:隐藏“不兼容触摸设备”的消息。
  • autoload=1:无需点击 iframe 即可加载游戏。
  • toolbar=left|right|hidden(默认:right):更改工具栏插入播放器的位置。使用 hidden 完全删除工具栏(将无法进入全屏或重新启动)。

在使用扩展之前,您需要从 https://godotengine.org/download 下载模板,并将 webassembly_release.zip 文件托管在您的服务器上的某个位置。然后,在管理员面板中的“基本路径”设置中提供该文件夹的公共 URL。例如,您可以将其解压缩到 <Flarum installation>/public/assets/godot 并在设置中将 /assets/godot 设置为设置值。可选地,在相应的设置中添加 wasm 文件的大小(字节),以便进度条可以渲染。

在管理员面板中可以配置多个 Godot 版本。版本顺序不重要,唯一键可以是使用字符 - +,.0-9A-Za-z_ 使用的任何内容。选定的“默认”版本将注入到 FoF 上传模板以及未提供版本的 bbcode 中。

此扩展不提供任何内置安全功能! 对于生产使用,请确保引擎和游戏文件通过不允许访问 Flarum Cookie 的 CDN URL 访问。

例如,如果您的论坛托管在 www.example.com,则可以将 sandbox.example.com 配置为虚拟主机中的别名。然后,将使用该域名设置“iframe 主机”设置以及 FoF 上传 CDN URL,如果文件使用 local 适配器托管。

如果您的论坛使用裸露/ apex 域作为规范 URL,则不能使用子域作为沙盒域!您需要不同的域!(抱歉,这是 Cookie 的工作方式!)

您应添加 Apache 或 nginx 重写以下 URL

  • /godot-embed 在主 Flarum 域上:使用 401 或 404 堵塞访问。防止滥用,因为它可以通过查询参数加载任意文件。
  • /assets/files/* 在主 Flarum 域:使用 401 或 404 块访问(当使用 FoF Upload local 适配器时)。恶意行为者可能会利用宽松的文件验证来上传 HTML 文件,并诱使用户访问进行 XSS 攻击。
  • /(或除 /godot-embed/assets/* 之外的所有内容)在沙盒域:重定向到主域。这可以防止任何人意外尝试在错误域登录或搜索引擎索引重复内容。

资源加载方式如下

  • 浏览器: [Flarum 域] / 讨论
    • Iframe: [沙盒域] /godot-embed?url=<pck url>&cover=<cover url>
      • [沙盒域] / Flarum CSS
      • [沙盒域] / Flarum 字体
      • [基本路径] / Godot 引擎
      • [基本路径] / Godot WASM
      • <Pck url>
      • <Cover url>

安装

composer require clarkwinkelmann/flarum-ext-godot-embed

支持

此扩展处于 最小维护 状态。

它是为某个客户开发的,作为开源项目发布,以造福社区。我可能会免费发布简单的错误修复或兼容性更新。

您可以通过 联系我 来赞助额外功能或更新。

通过 Flarum 社区线程提供“尽力而为”的支持。

赞助商Xwdit

链接