# 更新日志

# 未发布

# 新增

  • 黑暗模式

# 调整

  • PHP 版本要求提高到 7.4.0
  • 不允许上传单层 Alex 皮肤

# 修复

  • 不对非皮肤材质生成头像
  • 修复通知内容为空时出现的错误
  • 修复不正确的前端本地化文本加载
  • 修复衣柜中点击当前分类的标签页也触发材质分类切换的问题
  • 修复衣柜中切换材质分类时页码不更新的问题
  • 修复不对披风尺寸进行检查的问题
  • 修复处理举报时举报人不存在的问题

# 移除

  • 移除 JWT 登录功能

# 5.2.0

# 新增

  • 支持 .well-known/change-password

# 调整

  • 放松对禁用函数的限制
  • 验证邮箱时要求输入邮箱
  • 优化表单相关的用户体验

# 修复

  • 修复丢失的语言文本
  • 修复超级管理员可以删除自己账号的问题

# 5.1.1

# 修复

  • 修复 IPv6 下 route 函数结果被转义的问题
  • 修复无法再次启用一个已被启用的插件的问题
  • 修复插件前端国际化文本无法被更新的问题
  • 修复调用 option_localized 函数时默认值没有被使用的问题
  • 修复将材质设为私密时,材质会从上传者的衣柜中消失的问题

# 5.1.0

# 新增

  • 新增以材质 hash 方式获取材质的预览图和头像的 API

# 调整

  • 材质详情页中点击 hash 文本时自动选择整条文本

# 修复

  • 修复重复的路由命名
  • 修复私有材质的重复问题
  • 修复预览图和头像不能根据图像格式来单独缓存的问题
  • 修复针对私有材质的错误消息不与 HTTP 状态码相符的问题
  • 修复应用材质到角色时未检查材质是否在衣柜中的问题
  • 修复可将私有材质设为头像的问题

# 5.0.0

# 新增

  • 插件系统:config.blade.php 为默认情况下配置视图文件名
  • 插件系统:支持自动注册服务容器(Service Provider)
  • 插件系统:新增 Filters API
  • 支持以 php artisan plugin:enable {name} 的方式开启插件
  • 支持以 php artisan plugin:disable {name} 的方式关闭插件
  • 允许通过 php artisan options:cache 命令缓存站点选项
  • 支持指定多个插件目录(在 .env 文件中以逗号分隔)
  • 新增「运行状态」页面
  • 支持自定义 UI 文本
  • 西班牙语支持(感谢 @poopingpenis (opens new window)
  • 全新的站点配色设置
  • 自动识别插件的说明文件
  • 增加管理员专有的「STAFF」badge
  • 在材质详情页中显示上传者的 badge
  • 在错误页面增加指向 FAQ 页面的链接
  • 第三方登录(目前仅支持 GitHub 和 Microsoft Live)
  • 角色名支持字符「§」(需开启「CJK」模式)
  • 新的密码哈希算法:Argon2i
  • 将材质应用到角色时可进行搜索
  • 支持自定义材质存储目录
  • 角色页面可进行搜索
  • 新增 Blessing Skin Shell
  • 支持单独指定邮件发件人的地址和名称
  • 3D 皮肤预览现在是带背景的
  • 可通过上传压缩包来安装插件
  • 可通过提交 URL 来安装插件
  • 皮肤库中可通过点击上传者昵称来查看该用户的其它上传
  • 增加 php artisan update 命令以便通过命令行进行升级数据库
  • 支持自定义 fallback locale

# 调整

  • 修改 GuzzleHttp 库获取 CA 证书的策略
  • 重构用户系统
  • PHP 版本最低要求为 7.2.5
  • 使用 install.lock 文件来检测安装状态
  • 插件系统:自动从 lang/front-end.yml 中加载前端多语言
  • AdminLTE 升级到 v3
  • ip 字段的长度增加到 39 以支持 IPv6
  • 优化角色名校验的性能
  • 修改获取 IP 地址的方法
  • MySQL/MariaDB 使用 utf8mb4 编码
  • 响应未格式化过的 Profile JSON 以节省流量
  • 使用新的 PHP 材质渲染器
  • 将材质应用到角色时显示角色的 3D 头像
  • 新的「插件管理」页面
  • 衣柜中未选择材质时点击「应用到角色」不弹出「选择角色」对话框
  • 使 "CSRF token mismatched" 的错误提示变得友好
  • 减少发送验证邮件的次数
  • 更换皮肤预览器的「行走/奔跑」按钮图标
  • 更改获取角色的 API
  • 头像和预览图的格式改为 WebP
  • 减少不必要的 SQL 查询语句
  • 改进邮箱地址输入框
  • 延长 locale Cookie 的有效时间

# 修复

  • 管理面板的列表中某些字段不应是可排序的
  • 补充部分缺失的语言文本
  • 重置皮肤预览后,皮肤模型也被重置的问题
  • AJAX 出现错误时,堆栈中不显示来自插件的部分
  • 当使用了不支持的密码加密算法时,错误页面没有正确显示的问题
  • 修复不能针对未知语言进行降级的问题
  • 与 PHP 7.4 的兼容问题
  • 材质名过长时的显示问题
  • 下载插件前不检查依赖和冲突的问题
  • 修复皮肤库中从 query string 获取搜索关键字的问题
  • 修复未能正确设置 HTML 的 lang 属性的问题
  • 修复获取不存在的用户的头像时,未能正确设置尺寸的问题
  • 修复同一材质文件但模型不同被认为不同材质的问题
  • 修复上传重复材质时没有提示用户的问题
  • 「材质上传」页面的积分消耗没有计算衣柜收藏所需的积分
  • 修复管理员不能添加私有材质到衣柜的问题
  • 修复未登录的用户在浏览皮肤库时出现「我的上传」按钮问题
  • 修复可能的「Invalid Signature」问题
  • 修复在管理面板中修改角色名时不检测角色名是否重复的问题
  • 修复普通管理员可设置其他用户为管理员的问题
  • 修复处理举报中删除材质时不删除材质文件的问题
  • 修复「材质上传」页面的积分计算与后端不一致的问题
  • 修复重命名材质时不对新名称进行检查的问题
  • 修复移除衣柜物品后不更新角色的问题
  • 修复管理面板的图表中标签显示为小数的问题

# 移除

  • 移除 Artisan 命令:php artisan key:random
  • 移除为 v3 迁移到 v4 而编写的 Artisan 命令
  • 放弃对 IIS 的支持
  • 移除扩展包 swiggles/memcache
  • 从全局变量 blessing 中移除 commit 属性
  • 移除 Element UI
  • 移除对材质名和用户昵称的要求
  • 移除「IP 获取方法」的设置
  • 移除「第三方评论」功能,如有需要请安装独立插件
  • 移除通过 UI 来开启或关闭 Redis 的功能
  • 移除「传统皮肤加载方式」(如有需要,请安装插件)
  • 移除 Universal Skin API(如有需要,请安装插件)
  • 移除自动更新检查
  • 移除对 Profile JSON 的缓存
  • 移除对角色存在与否的缓存
  • 移除「对不存在的角色返回 204」的选项(如有需要,请安装插件)
  • 移除皮肤库右上角的 breadcrumb

# 内部更改

  • Laravel 升级到 v7
  • 使用 Twig 重写大部分 Blade 模板
  • 使用 React 重写前端

# 4.4.0

# 新增

  • 增加 Docker 支持。(实验性)
  • 增加「隐藏首页底部的网站介绍」的选项(即 2.x 时的样式)
  • 增加「固定首页背景」的选项

# 调整

  • 发送通知时将任务推送到队列
  • 优化 Ajax 中的错误显示
  • 优化登录、注册等页面的表单校验

# 修复

  • 修复不能重命名衣柜物品的问题
  • 修复首页底部 Font Awesome 的问题
  • 修复插件系统中加载前端国际化文本的问题
  • 修复登录重定向没有包含 URL 查询的问题

# 4.3.6

# 新增

# 调整

  • 调整管理面板中的图表样式
  • 优化「更改配色」的面板
  • 调整衣柜页面上的某些链接
  • 限制仅超级管理员才能访问升级页面
  • 更新源信息 spec 版本更改为 2

# 修复

  • 修复可能存在的重复签到问题
  • 修复安装皮肤站时未创建 OAuth 相关数据表的问题
  • 修复插件系统中前端 mounted 事件的时机问题

# 4.2.1

# 修复

  • 修复皮肤展示功能中可能的模型错误
  • 「材质详情」中「更多操作」面板不再对无权限的用户显示
  • 修复处理举报时,封禁上传者实际上会封禁举报人
  • 修复处理举报时,若材质已被删除,则会出错
  • 未验证邮箱的用户能使用 OAuth 的问题

# 4.2.0

# 新增

  • 管理面板中的图表可显示当天的数据
  • 新的插件事件:TextureDeleting

# 调整

  • 当用户只有一个角色时,角色页面会自动预览该角色
  • 允许多次处理同一条举报

# 修复

  • 修复「个性化」页面不能重置选项的问题
  • 修复用户中心仪表盘不能居中的问题(感谢 @outtimes)
  • 修复删除材质时的数据一致性
  • 修复皮肤预览中重置预览后不能使模型行走的问题
  • 修复不能保存皮肤库页面状态的问题

# 4.1.4

# 新增

  • 上传皮肤时自动检测类型

# 调整

  • 调整部分 UI 文本
  • 构建时附加 commit 信息

# 修复

  • 修复移动端下皮肤库下拉菜单失效的问题
  • 修复 Alex 材质的预览
  • 修复皮肤库中的排序问题

# 4.1.3

# 修复

  • 修复升级过程中的错误

# 4.1.2

# 修复

  • 修复升级页面可能的出错
  • 修复语言选择菜单的样式
  • 修复衣柜的分页

# 4.1.1

# 修复

  • 修复升级脚本

# 4.1.0

# 新增

  • 允许添加多个插件市场源
  • 支持基于 JWT 的 API 认证
  • 支持基于 OAuth2 的 API 认证
  • 开放基于 HTTP 的 Blessing Skin API(目前处于试验阶段,随时会出现不兼容的变更)
  • 插件前端事件:i18nLoaded

# 调整

  • 完全拒绝 IE 用户的访问
  • 优化管理面板中的图表

# 修复

  • 某些情况下禁用插件时出错
  • 在关闭首页顶部导航栏的情况下滚动时仍然变透明
  • 移动端下语言选择栏异常
  • 材质页面当材质名过长时未被截断的问题

# 4.0.0

# 显著的更改

  • 升级 Laravel 至 5.8 版本(需要 PHP 版本 >= 7.1.8),更好地支持 PHP 7.2 及以上版本
  • 应用入口已由 index.php 改为 public/index.php,您需要修改 Web Server 的网站根目录为原目录下的 public 目录
  • 角色不再有「模型」的概念,并且 players 表结构发生变化,您需要执行 php artisan bs:migrate-v4:players-table 进行更新
  • 重写了衣柜的代码,您需要执行 php artisan bs:migrate-v4:closet 进行更新
  • 重构了认证系统
  • 浏览器兼容性:不再支持 IE
  • PHP 的 fileinfo 扩展现在是必须安装并启用的
  • 开源许可证已从 GPL v3 更改为 MIT

# 新增

  • 安装时要求填写超级管理员的昵称
  • 安装时可填写数据库信息,免去手动修改 .env 文件
  • 「衣柜」页面在选择角色时显示角色对应材质的头像
  • 上传材质前显示所上传的材质消耗的可能的积分
  • 皮肤库中增加「可将材质应用到角色」的按钮
  • 皮肤库中添加「下载材质」的按钮
  • 可用的 API:访问 /avatar/player/{size}/{name}.png 可获取角色对应的皮肤头像,使用时把 {size} 换成您需要的尺寸大小、{name} 换成相应的角色名。(您可以考虑在启动器中使用此 API!)
  • 添加自定义前端资源文件 CDN 地址的选项
  • 添加为 SEO 而自定义 meta 标签的选项
  • 现在可以直接从皮肤库中打开皮肤页面然后设为头像,不再需要添加到衣柜中
  • 允许重置头像
  • 内置对 Redis 的支持
  • 可设置用户分享材质时额外获得的积分
  • 更多关于缓存的配置
  • 支持纯命令行方式的安装
  • 内置对 reCAPTCHA 的支持(感谢 @tnqzh123 )
  • 增加举报材质的功能
  • 增加「内容策略」选项,此选项的内容将在材质上传时显示
  • 增加新的密码加密算法 Bcrypt。新安装的 Blessing Skin 将使用此算法作默认算法;已安装的用户不受影响(如果您正在使用的是 PHP_PASSWORD_HASH 算法,那么也可以改为使用此算法,这不会影响现有用户的登录)

# 调整

  • 页面左上角的 Logo 使用 Minecraft 字体(之前是 Ubuntu 字体)
  • 简化上传材质时对材质类型的选择
  • 皮肤库的筛选和搜索功能从顶部移到主体的 box 内
  • Font Awesome 升级到 v5
  • 将设置管理员或封禁合并在一个操作内
  • 移除 Toastr 库和 SweetAlert2 库,改为使用 ElementUI
  • 美化用户中心的仪表盘
  • 美化管理面板的仪表盘
  • 在安装好 Blessing Skin 后,避免不必要的环境检查
  • 使用新的 DataTables 库
  • 在皮肤库中更改材质名时若发现重复材质提示返回材质名而不是 TID
  • 优化访问管理面板中仪表盘时的数据库查询性能
  • 改善「在衣柜中创建角色」的体验
  • 改善「在皮肤库中应用材质到角色」的体验
  • 延迟更新检查
  • 当没有启用评论功能时隐藏评论框
  • 默认下首页顶部导航栏为不透明,可通过设置进行修改

# 修复

  • 在删除账号时后端不检查用户是否为管理员的问题
  • 「衣柜」页面在重置所选材质后,衣柜列表中被选过的项目的 item-selected 类未被移除的问题
  • Firefox 下左侧菜单栏显示更新提示的错位问题
  • 移动端显示管理面板选项的错位问题
  • 管理面板中「角色名长度」选项文本过多导致输入框太小的问题
  • 获取头像时没有按指定大小来生成头像的问题

# 移除

  • 皮肤库按关键字搜索后左上角不再显示「xxx 的搜索结果」
  • 移除了 App\Services\Utils
  • 移除了前端的 iCheck 库

# 3.5.0

# 新增

  • 姗姗来迟的官方「插件市场」
  • 全新的「插件管理」页面
  • 自带更完善的用户邮箱验证功能(移除旧有的「注册邮箱验证」插件)
  • 支持通过 Mailgun、Amazon SES、sendmail 等服务发送邮件
  • 支持上传皮肤时自动检测 Steve / Alex 模型
  • 支持拖放文件上传皮肤
  • 材质云存储支持(「腾讯云 COS」「阿里云 OSS」「七牛云存储」插件)
  • 支持更多的角色名规则(与 Mojang 一致、允许汉字等 CJK 字符、自定义正则表达式)
  • 允许通过正则表达式自定义皮肤库材质名称规则
  • 在皮肤库首页显示材质的「喜欢」计数
  • 在皮肤库材质详情页面添加「快速使用」选项
  • 允许在皮肤库材质详情页面直接修改皮肤的适用模型
  • 选项「注册时要求填写游戏内角色名」(移除注册页面上的「注册成功后自动新建同名角色」)
  • 选项「允许用户直接下载皮肤库中材质的原始文件」
  • 允许为每一种支持的语言设置不同的站点名称、站点描述、公告、版权文字等内容
  • 允许自定义程序的语言文件与视图文件

# 改进

  • 不再强制要求安装 PHP fileinfo 扩展
  • 更完善的数据对接(原数据对接插件已拆分为 Authme、CrazyLogin 与论坛数据对接三个插件)
  • 提升获取静态内容(材质 PNG 文件、玩家 Json Profile 等)的性能
  • 增强登录次数限制与密码重置功能的安全性
  • 不允许普通管理员访问「插件市场」「插件管理」「检查更新」等页面
  • 将「请求不存在的角色时返回 200 而不是 404」选项修改为返回 204
  • 安装向导默认勾选「生成随机 APP_KEY 和 SALT 以保证安全」
  • 更新 .htaccessweb.config 文件,修复可能的伪静态问题
  • 翻新语言文件,更新程序文本
  • 为一个全新的角色设置 alex 皮肤时自动设置其优先模型
  • 为「角色管理」页面的「优先模型」设置项添加更详细的描述文字
  • 支持通过 UNIX Socket 连接 Redis(「Redis」插件已更新)
  • 使用 .env 变量指定自动更新所用的更新源
  • 使用 MAIL_DRIVER 而非 MAIL_HOST 判断是否关闭邮件发送功能
  • 改进后台用户管理、角色管理等页面的错误提示
  • 在某些页面使用弹窗而非右上角的 Toast 提示来显示错误信息
  • 在「严重错误」弹出框标题处添加指向 FAQ 的超链接
  • 当邮件发送失败时记录详细的错误日志
  • 添加对 .env 文件的读权限检测
  • 更新 console 彩蛋的样式

# 修复

  • Alex 模型皮肤预览手臂像素错位的问题
  • 某些页面上的 CSRF 与 XSS 漏洞
  • 开启 CDN 时「插件管理」页面出现 414 Request-URI Too Large 的问题
  • Json Profile 中 Last-Modified 响应标头中时区错误的问题
  • 可能出现的 Undefined property: stdClass::$column_name 问题
  • 密码长度上限在某些情况下由 32 变为 16 的问题
  • 登录验证码为空时提示信息不符的问题

# 移除

  • 移除密码 Hash 算法 CrazyCrypt1
  • 移除材质 PNG 文件响应中的 Expires 标头(已有 Cache-Control 标头)

# 3.4.0

# 新增

# 改进

  • 调整密码长度上限为 32 个字符
  • 你可以直接在侧边栏访问所有已启用插件的配置页面了
  • 规避可能出现的越权操作角色的行为
  • 当用户收藏至衣柜的材质被设为隐私或删除时,返还用户相应积分
  • 优化后台管理面板首页上的 SQL 查询性能
  • 调整管理面板首页上的「概览」图表样式
  • 当检测到安装不完整时提示用户而不是强行覆盖安装,以避免可能出现的数据丢失
  • 安装时检查主机是否启用 escapeshellarg 函数,如被禁用,请手动安装本程序
  • 当普通用户访问被设置为隐私的材质时返回 403 而不是 404

# 修复

  • Alex 模型皮肤的 2D 预览上出现的像素偏移问题
  • Firefox 上「设为隐私」等按钮失效(地址栏显示 javascript:xxx;)的问题
  • IE 和 Edge 浏览器上自动语言检测失效,导致默认访问显示英文界面的问题
  • 程序报错中可能出现的中文乱码问题

# 3.3.2

# 改进

  • 更新 .htaccess 重写配置文件,排除可能的兼容性问题
  • 根据窗口大小自动调整衣柜每一页显示的物品数
  • 添加适用于 Blessing Skin 插件的开源许可证例外情况
  • 注册时添加「自动创建与昵称同名的角色」选项
  • 尝试避免因为站点地址后加上 index.php 而造成的资源加载错误

# 修复

  • 设置材质为隐私时检查积分,防止出现负数积分的情况
  • 收藏材质至衣柜时可能出现的错误
  • 衣柜物品重命名后不显示其材质类型的问题
  • 加强密码重置操作的安全检查

# 3.3.1

# 改进

  • 首页的响应式样式,修复双滚动条的问题 #80
  • 调整用户反馈发送的频率
  • 当后台「首页背景图」选项留空时使用默认背景图
  • 当签到剩余时间小于一小时时显示具体分钟
  • 一键升级中可能导致失败的问题
  • 检查安装完整性时报错的中文翻译
  • 报错展示并关闭后不会造成页面变形
  • 可能造成清除视图缓存失败的问题

# 修复

  • 修改密码后登出出错的问题
  • 皮肤库无法上传 Alex 模型皮肤的问题
  • 后台「用户管理」中管理员无法操作自己的问题
  • 在衣柜中移除物品时报错的问题
  • TextureController 中的多语言翻译
  • 错误日志记录的问题

# 3.3.0

# 新增

  • 衣柜页面的无刷新分页与即时搜索
  • 皮肤库页面的无刷新筛选、分页、搜索
  • 皮肤库中「清除筛选」的选项
  • 删除角色材质时可选择要删除的材质类型
  • 可以在「管理面板」中修改角色名
  • 在「用户管理」中显示用户拥有的角色数量
  • 现在「管理面板」中「用户管理」与「角色管理」可相互跳转
  • 在点击用户头像出现的菜单中添加到管理面板的链接
  • 提供选项以自定义检测用户 IP 地址的方法
  • storageresourcesplugins 目录的写权限检查
  • PHP 版本过低、Composer 依赖未安装时的中文报错
  • 插件 name 定义重复时报错而不是静默覆盖
  • 为 JavaScript 文件添加自动化测试(感谢 @g-plane 的帮助)
  • 「配置生成」插件现在提供 CustomSkinLoader 的 ExtraList 下载支持
  • Profile 文件缓存、举报材质、Yggdrasil API 支持等插件

# 改进

  • 上传页面重新选择材质文件后自动更新「材质名称」输入框的值
  • 自动从其他人的衣柜中与角色上删除失效材质(被删除或被设为隐私)
  • 点击「我的衣柜」页面的「齿轮」图标不再同时更新材质预览
  • 「管理面板」中更改用户积分后输入框自动失去焦点
  • 「用户管理」、「角色管理」、「插件管理」页面中列表加载的性能
  • 「角色管理」修改角色名时的提示不再是「参考本站设置」
  • 使用漂亮的 sweetalert2 替换管理面板中的原生对话框
  • 让渡角色时输入 UID 可实时显示对应用户的昵称
  • 重命名材质名称时输入框内自动填入原来的名称
  • 与返还积分有关的文本将取决于「返还积分」选项是否开启
  • 现在管理员无法操作其他管理员与超级管理员的角色
  • 登录后重定向至上一个试图访问的地址
  • 自动生成页面底部版权信息的年份
  • 添加首页背景图片的占位高度
  • 添加对高清皮肤格式的检测
  • 增强数据对接插件的稳定性
  • 调整登录页面的样式
  • 皮肤库的使用体验
  • 启用「数据对接」插件时合并用户中心首页与角色管理页面
  • 弃用 Bower 与 Laravel Elixir,使用 Yarn 管理依赖,添加 ESLint 语法检查
  • 使用 ES6 重写并模块化 JavaScript 代码
  • 更新 AdminLTE、jQuery 等依赖库至最新版

# 修复

  • 皮肤站搜索页的 XSS 漏洞
  • 语言文件中的拼写错误
  • 更新个人资料后不跳转的问题
  • 皮肤库中切换语言后不再会清除原来的筛选条件
  • 修改邮箱时不检测新地址是否冲突的问题
  • 点击无披风的角色时 3D 预览仍然显示披风的问题
  • 管理面板中「角色管理」页面的材质预览链接
  • 皮肤库中不显示上传者自己的隐私材质问题
  • 为照顾 v2 用户,除了修改新密码外需要密码的地方要求改为最少 6 位
  • 安装时超级管理员的密码长度最少为 8 位
  • 对接 CrazyLogin 时的密码加密问题
  • 当用户总积分低于积分倍率时出现的问题

# 3.2.1

# 新增

  • 安装时生成随机 APP_KEY & SALT(可选)
  • 新的密码加密算法 —— 使用 PHP 自带的 password_hash()
  • 便于插件开发的帮助函数 e.g. plugin() & plugin_assets()
  • 错误页 / 安装页上可以选择语言了
  • 为 JavaScript 添加了帮助函数 url()
  • 匿名发送统计信息的选项
  • 启用 / 禁用 / 删除插件时的回调函数定义
  • 插件 package.json 文件中的 url 字段

# 改进

  • 移除页面上默认的面包屑元素
  • assets 的目录结构
  • 当配置项为空时加载默认的站点图标
  • 现在用户密码最长可以设置 64 位
  • 使用 hash_equals() 来对比密码 Hash 以避免时序攻击
  • 加密 cookie 中存储的 token
  • 自定义错误页面的样式
  • 升级时清除视图缓存文件
  • 更详细的错误提示 (for stupids)
  • 现在你可以在每个页面的 F12 Console 上看到一个 badge 了
  • 在用户中心 / 管理面板的侧边栏上显示当前用户权限

# 修复

  • 用户 / 角色 / 插件管理页表格的横向滚动
  • 无法搜索衣柜
  • 弹出对话框的字体粗细
  • 负载均衡 / 反向代理下的 HTTP/HTTPS 协议判断
  • 某些加密方式不可用的问题
  • 当积分消耗设置为 0 时出现 division by zero 的问题

# 3.2.0

# 新增

  • 炫酷的插件系统!
  • 完全国际化,支持中英文!
  • 自定义站点图标的选项
  • 收藏消耗积分的选项
  • 返还积分的选项
  • 自动判断资源文件的选项
  • 站点公告现在支持 Markdown 排版了
  • 运行时环境检查
  • 右下角程序版权文字有多种样式可供选择(修改右下角将不再被允许)
  • Memcahce 的支持
  • 为 JavaScript 脚本添加了 blessing 变量,可获取程序基本信息(只包含版本等,不会泄露敏感信息)
  • 现在在衣柜可以一起试穿皮肤和披风,并一起应用了
  • 密码重置现在会留下记录
  • JSON Profile 现在会带上 last-modified 头
  • 用户注册和材质上传的图表

# 改进

  • 全新的首页!
  • 更完善更稳定的一键更新系统(现在也有下载进度条了)
  • 更灵活的更新源设置
  • 更好的 用户 / 角色管理,现在可以无刷新地操作 / 分页了!
  • 当 APP_DEBUG 关闭时显示更好看的错误页面
  • 添加 RewriteBase 到 .htaccess
  • 缓存、配置生成、数据对接等功能现在以插件的形式提供

# 修复

  • 当上传图片过大时出现「文件不能为空」
  • 禁止中文角色名失效的问题
  • 无法从衣柜中删除物品
  • 安装在子目录时登出会跳转到奇怪的地方去
  • 在未完全安装时再次运行安装程序时会出现错误
  • location path 以 . 开始造成的 IIS 错误
  • 当材质重复并取消上传时不删除缓存文件
  • 当材质上传者被删除时访问材质详情页出现奇怪的问题

# 3.1.2

# 新增

  • 管理面板首页添加概览图表
  • 添加「从 v2 导入数据」项到菜单
  • 最大允许上传大小的选项
  • 衣柜搜索

# 改进

  • 优化性能
  • 允许其他用户重新上传已上传的私密材质

# 修复

  • undefined 的比较
  • return_200_when_notfound 开启时的 cache-control
  • 安装页面上 PrettyPageException 的翻译问题
  • 语言文件中的错误
  • Json Profile 的 cache-control

# 3.1.1

# 改进

  • 升级 phpdotenv 至 v2.4.0
  • 错误页面的翻译字符串
  • 登出后重新生成 SESSION ID
  • 衣柜中更多按钮可能被 ADB 屏蔽的提示

# 修复

  • 更新页面的 CDN 缓存控制
  • JSON Profile 的 Cache-Control
  • 皮肤库搜索页面
  • 手机上看不见语言选单中的项目
  • String.prototype.endsWith 的兼容性
  • 上传时先选择材质类型造成的实时预览出错
  • 使用 CDN 造成的 url() 问题
  • 现在不会出现负数页数了
  • 无法使用零点后可签到的问题
  • 获取环境变量的问题
  • 密码错误时的提示信息
  • 无法展示 Flash Messages 的问题
  • HTTP 错误页上国际化失效的问题
  • 数据表前缀失效的问题
  • 默认的 APP_KEY 长度问题

# 3.1.0

# 新增

  • 全新的项目框架
  • 重命名衣柜物品
  • 缓存相关配置
  • 材质预览、头像等的文件缓存
  • 国际化!

# 改进

  • 暂停 3D 预览同时停止旋转
  • 默认打开 display_errors
  • 部分主机读取不到 $_ENV 内容的情况
  • 密码输入错误太多次时的提示
  • 皮肤库按用户搜索不再显示 UID

# 修复

  • 双层皮肤的预览
  • 相对 URL 的问题
  • 安装在子目录的问题
  • 上传页选择材质类型时实时预览的问题
  • 让渡角色的 BUG
  • 管理页上用户和角色搜索的问题

# 3.0.4

# 新增

  • 重新加入自动更新
  • 更多的更新源

# 改进

  • 移动框架文件至 app/Core 目录
  • 自动决定存储空间的显示单位
  • 使用 SQL 来计算用户已使用的存储空间,提升性能
  • 使用 callout 代替 alert
  • 调整个性化配置页面的列比例
  • 使上传页面模型选择更加醒目

# 修复

  • 卡「注册中」的问题
  • 访问 /index.php 出现 404
  • Migrations 的 BUG
  • 更新日志不换行
  • 清空角色材质时出现的问题
  • 依据 UID 查找皮肤库时分页的 URL 问题

# 3.0.3

# 新增

  • 单独设置私有材质的积分消耗
  • 使用 sweetalert2 来呈现更好的通知
  • 左下角版权文字自定义
  • IIS 的 MIME 类型配置
  • 可使用所拥有角色的角色名登录站点
  • v2 用户的数据迁移

# 修复

  • 修复时区问题
  • 皮肤库上传链接的相对路径 #27
  • 数据表中某些字段的默认值
  • 不再转义自定义 CSS/JS
  • 计算皮肤库总页数的逻辑

# 改进

  • 使用 CSS 来省略过长材质名称
  • 当材质失效时通知用户(或自动删除)

# 3.0.2

# 新增

  • 迁移 v2 用户皮肤至 v3 皮肤库,请访问 /setup/migrations
  • 为头像添加 Query String 的选项(用于头像的 CDN 缓存)
  • 检查更新功能(自动更新还没写好
  • 评论脚本的占位符,可自动替换为材质的 id 等信息

# 改进

  • 使用 mbstring 来进行更好的中文分割
  • 检查安装完整性的逻辑

# 修复

  • 首页的背景图片不能全屏
  • 中文角色名的 Bug
  • Bug of converting object to string
  • 带 api 的 json 地址返回无法访问的 textures 地址