26.1.2-0339f8a
on 2026 Jul 200339f8a 修复插件重载时全息图未更新的问题
26.1.2-d9188a1
on 2026 Jul 20d9188a1 修复保存位置时重复写入 Y 坐标导致全息图移动的问题。
26.1.2-98ad8b7
on 2026 Jul 2098ad8b7 修复板条箱位置……传送?哈哈
26.1.2-1773a7b
on 2026 Jul 201773a7b - 修复了一个问题:若操作足够快,可在动画播放过程中打开另一个储物箱。
- 新增命令
/crates delete,用于删除你当前所注视的储物箱位置。 - 通过将地图与区块的持久性数据容器(PersistentDataContainer)配对使用,优化了内部位置校验逻辑(同时提升了可读性)。
- 当尝试破坏方块时,若物理储物箱不存在,则新增一条提示消息。
- 若在宇宙匣(Cosmic Crate)的动画 shuffle 过程中退出,将返还钥匙。如发现此功能存在问题,请及时告知。
- 在
data.yml中新增 UUID 字段(若文件中不存在则自动添加)。 - 移除了针对世界是否被禁用的一处冗余校验。
- 修复了“随身储物箱”(CrateOnTheGo)的重新抽奖菜单。
26.1.2-3fa5077
on 2026 Jul 203fa5077 修复 /keys 命令中使用了错误的消息
26.1.2-e58fa51
on 2026 Jul 19e58fa51 修复了每次仅加载一个位置的问题。关闭 #926
CrazyCrates 5.2.0
on 2026 Jul 18更改内容
- 现在可在箱子预览界面中添加基于插槽的物品。
- 所有打开箱子的操作现在均会尊重您禁用世界的功能。
Settings.Border.Glass-Border.Air现已作为配置选项加入。- 若该值设为 false,则不会将 AIR(空气)填充至这些插槽,从而允许分页功能使用底部一行。
- 此设置适用于插槽数量始终不超过 27 的特殊场景,此时分页功能实际上无法正常运作。
- 内部消息处理机制得到优化。
- 已用我们自研的“仿制”系统替代 ConfigMe(该系统基于 Configurate 构建)。
- 您将在 config.yml 中注意到注释得以保留,并额外增加了若干空行(当前尚无法修改此行为)!
- 尚未编写针对极旧版配置文件的自动迁移逻辑。
- 配置文件将自动添加注释,并补充缺失或新增的配置项。
- 位置存储与启动时加载位置的功能得到优化。现有位置数据仍可正常使用。
- 位置现以随机 UUID 存储,不再需要像以往那样奇怪地递增数字编号。
- 若箱子位置数据损坏,其名称将在启动或重载时打印至控制台。
/crazycrates fix现已作为命令启用,并取代了原先在启动时自动修复箱子位置的功能。- 新增
{broken_locations}占位符,供/crazycrates list命令使用。
箱子相关更改
配置更改
若 config.yml 中已存在原有配置项,将优先沿用。更新后的用法示例请参阅 examples/crates 目录!
crate.knock-back现支持按单个箱子单独配置,新安装环境不再将其写入config.yml。crate.disabled-worlds现支持按单个箱子单独配置,新安装环境不再将其写入config.yml。crate.quad-crate.timer现支持按单个箱子单独配置,新安装环境不再将其写入config.yml。crate.types.csgo.cycling-material现支持按单个箱子单独配置,新安装环境不再将其写入config.yml。crate.types.csgo.finished-material现支持按单个箱子单独配置,新安装环境不再将其写入config.yml。crate.keys.key-sound.toggle与crates.keys.key-sound.name现支持按单个箱子单独配置,新安装环境不再将其写入config.yml。
API 更改
CrazyCrates API 版本已升级至 1.0.0
ISettings接口已从 CrazyCrates API 中移除。- 您可通过
CratesProvider#api()#getConfigManager()调用ConfigManager类实现配置管理,但该类未来可能随时重构。 - 我本人并不认可
ISettings的实现方式,结合当前配置管理逻辑,现阶段直接调用接口更为合适。
- 您可通过
IServer接口已被弃用,并标记为即将移除。请改用CrazyCrates类而非IServer。- 当前仍可继续使用
IServer(但无法获得任何新特性)。如遇异常,请及时反馈。
- 当前仍可继续使用
已知问题
- 鞭炮尚未正常运作。
已移除内容
use-different-random配置项已从config.yml中移除,因其内部实现并无实际影响。
修复内容
- 修正
AdvancedExample.yml中netherite_chestplate的拼写错误。 - 修复
fusion.yml中递归深度不生效的问题。 - 修复未明确指定时仍对物品应用伤害组件的问题。
- 此问题会导致某些插件因禁止受损物品交互而出现异常。
- 控制台发送者不再尝试发送动作栏消息。
- 不再允许玩家反复退出编辑模式。
- 新增提示消息,告知玩家当前未处于编辑模式。
- 执行
/crates debug <crate>时,不再检查奖品物品是否为空。
CrazyCrates 5.1.0
on 2026 Jun 23变更 🔨
- 优化了通过 PlaceholderAPI 检查占位符时的性能
- 同时也降低了内部维护负担!
- 优化了
examples文件夹的更新流程。 - 移除了
LegacyItemBuilder,因同时维护两个 ItemBuilder 并不愉快。- 除非您启用了
HideItemFlags: true,否则无需修改配置 - 若您确实使用了
HideItemFlags,请点击此处查看说明
- 除非您启用了
- 通过遍历文件夹而非依赖 FileManager 缓存来改进迁移类型,避免了不必要的检查。
- 全面优化了插件的日志输出详细程度。
- 改进了配置迁移器中的占位符迁移逻辑。
- 优化了
/crazycrates teleport <crate_id>命令。 - 全面优化了插件中占位符的解析逻辑。
- 将“钥匙不足”消息中的
{key_amount}替换为{amount}。{key_amount}已不再可用。
- 原本仅可在物品显示名称(DisplayName)中使用的占位符,现也可用于显示描述(DisplayLore)。
- 清理了与向玩家发送消息或向服务器广播消息相关的代码。
- 移除了 Cosmic Crate 中一段不必要的奖品循环——只要初始计算无误,该循环便无存在必要。
- 切换为使用
StringUtils#tryParseInt方法(返回 Optional 类型),以提供更清晰的错误提示,替代原先的Integer#parseInt。 - 更新了默认配置文件。
奖励箱变更
- 优化了奖励箱的追踪代码。
- 提升了构建奖励箱对象时的性能与可读性。
- 优化了加载/添加奖励箱位置时的性能。
- 在奖励箱开启结束时,改进了相关任务及各类缓存的清理逻辑。
- 此项修复应能解决若干其他异常问题。
钥匙变更
- 修复了使用
/crazycrates mass-open或在 QuickCrate 上潜行点击领取奖品后扣除钥匙时的逻辑错误:正确顺序应为先发放奖品、再扣除钥匙,从而最大限度减少因异常情况导致的免费战利品获取。- 此外,若因背包已满等任何原因未能成功扣除钥匙,系统将自动为您退款。
奖励箱类型
- CrateOnTheGo 现在也会调用
openCrate方法,因此诸如“必需钥匙”等其他奖励箱所支持的功能现已一并生效。
物品布局
- 默认启用
use-different-items-layout(即启用独立物品布局)。- 已更新配置文件的现有服务器无需进行任何更改。
物品变更
- 移除了对刷怪笼预览图的配置选项。
- 此选项已无意义,因所有刷怪笼在奖励箱菜单中外观完全一致。
- 更新了发光效果配置:
Glowing现支持"add_glow"、"remove_glow"或"none"等取值。- 当前使用的
true/false仍可兼容,但建议尽快更新。
- 当前使用的
移除内容
权限系统
- 移除了
use-new-permission-system开关,回归大家普遍喜爱的原始权限行为。
新增功能
钥匙占位符
- 为钥匙占位符新增简写格式支持,例如
1,000将自动显示为1k,依此类推。
插件支持
注意:请将 <item_id> 替换为对应自定义物品插件中的正确标识符。
第二条注意:凡支持输入 diamond_axe 的位置,均可使用以下格式。
第三条注意:您仍可继续直接使用 emerald_helmet 等原生物品 ID。
- 新增对 HMCWraps 的支持。
DisplayItem: hmcwraps@<item_id>
- 同时为 Oraxen、Nexo、CraftEngine 和 ItemsAdder 等插件引入新格式支持:
DisplayItem: nexo@<item_id>DisplayItem: oraxen@<item_id>DisplayItem: itemsadder@<item_id>DisplayItem: craftengine@<item_id>
新增命令
- 新增
/crates version命令,显示当前 Git 提交哈希、上一版本提交哈希及当前插件版本。- 若任一信息无法获取,则显示 “N/A”。
其他新增
- 在此前未支持自定义物品的区域新增了自定义物品支持。
- 为 FancyHolograms 新增文字阴影支持。
配置变更
发光效果
Glowing不再仅接受true/false,但旧版true/false配置仍将兼容(内部已做适配)。
# 物品是否发光?
# 可选值:add_glow、remove_glow、none
Glowing: "none"
隐藏组件
若您此前在配置中使用了 Hidden-Components 或 Components,现已被 flags.components 所替代;旧配置仍可正常运行。
已修复漏洞 🐛
- 修复了部分场景下错误消息被误用,或变量未被正确替换的问题。
- 修复了日志方法在 UUID 为空时引发控制台报错的问题。
getPrize方法未能正确过滤无效权重,导致奖品抽取结果异常。- 我们虽已对
totalWeight变量做了正确校验,但在遍历奖品列表时,权重为-1的奖品仍会被保留。 - 若将
-1加入数值计算,反而会增大该数值,进而干扰奖品概率分配。 - 所有值为
0.0、0或小于0的奖品,现统一视为填充类奖品。
- 我们虽已对
- 分页式 GUI 会在物品数量不足时错误生成第二页。
- 日志消息可能未被正确保存。
- 更新了 ExcellentCrates 迁移器,修复了若干迁移相关 Bug。
- 修复了
/crazycrates transfer命令的一项关键问题。- 若暂无法升级,建议禁用该命令的使用权限。
- 通过限制数量为所需值,修复了
/crazycrates take/give与/crazycrates mass-open命令的问题。 - CMI 在近期更新中(无论是 CMI Lib 还是 CMI API)发生了接口断裂;我已将其 Fork、编译并发布至个人仓库……目前运行正常。
/crazycrates debug命令此前未能正常工作。- 日志消息中使用了正确的变量。
- 修复了多个自定义头颅/骷髅无法正确生成的问题。
- 当玩家执行
/keys命令却无任何钥匙时,现在会显示正确的提示消息。 - 修复了
mass-open功能中,若某行为空或层级为空时导致钥匙被错误扣除且未退款的问题;现钥匙将被全额退还。 - 命令执行后的消息响应未能正确发送至控制台的问题。
一如既往,欢迎前往 https://github.com/Crazy-Crew/CrazyCrates/issues 提交漏洞报告 🐛
CrazyCrates 5.0.0
on 2026 Jan 15变更内容 🔨
新增 API
CrazyCrates API 已升级至 0.9.0
新增一个类
钥匙管理器类(Key Manager class),允许你检查玩家手持的物品是否为钥匙。
可通过 CratesProvider#get()#getKeyManager() 获取。
/**
* 钥匙管理器类,用于处理实体钥匙的检测,以及未来可能需要的其他功能。
*
* @author Ryder Belserion
* @version 0.9.0
* @since 0.9.0
*/
public abstract class KeyManager<I> {
/**
* {@link KeyManager<I>} 的默认构造函数。
*
* @author Ryder Belserion
* @since 0.9.0
*/
public KeyManager() {}
/**
* 检查该物品是否为有效钥匙。
*
* @param item ItemStack
* @return true 或 false
* @since 0.9.0
*/
public abstract boolean isKey(@NotNull final I item);
/**
* 检查一个物品是否与另一个物品匹配。
*
* @param item 初始 ItemStack
* @param comparing 要比较的 ItemStack
* @return true 或 false
* @since 0.9.0
*/
public abstract boolean isMatchingKey(@NotNull final I item, @NotNull final I comparing);
/**
* 获取钥匙所属宝箱的名称。
*
* @param item ItemStack
* @return 宝箱名称
* @since 0.9.0
*/
public abstract String getKey(@NotNull final I item);
}
配置变更
- 宝箱配置文件中的
ChestLines已重命名为Rows,5eec53b- 所有现有配置仍可正常运行。你可以运行
/crazyrates migrate -mt CratesDeprecated进行转换,或直接使用查找替换功能。
- 所有现有配置仍可正常运行。你可以运行
其他变更
- 新增自定义返回/下一页和菜单按钮所在行/列的功能。
- 新增对 CSGO 动画的自定义选项,可设置顶部/底部为静态或动态。95de51e
- 若运行
/crazycrates migrate -mt CratesDeprecated,所需选项将自动生成。 - 请参考
examples/crates/CrateExample.yml文件夹获取完整示例。 - 支持与文档中
Items部分相同的新物品结构。
- 若运行
- 在宝箱菜单中改为点击时执行命令,而非打开时执行。
- 在奖励/默认消息中新增 %chance% / %weight% 占位符。
- 为所有现有命令添加命令语法建议。
- 若文件为空,则返回 "N/A",因为 files#getFirst() 在无元素时会抛出错误。
- 利用 CMI/DecentHolograms 内置方法处理消息着色,以提高与其插件的兼容性。
- 这也可能支持其他插件特定功能,例如 CMI 的全息图众多特性。
- 移除 QuickCrate 上方显示物品的自定义名称中的括号。
- 使用空气填充底部边框,防止按钮导致物品溢出。
- 新增切换选项以禁用开启追踪宝箱功能。
已修复的漏洞 🐛
- 修复首次安装时 WonderCrate.yml 的错误,因某个奖励缺少
Items部分。 - 修复由双大括号初始化引起的潜在内存泄漏问题。
- 修复 PlaceholderAPI 支持中的多个漏洞。
- 修复 CosmicCrateManager 中的拼写错误。#873
- 修复 %crate_opened_raw% 中的拼写错误。
- 修复 Folia 上物品掉落的问题。#856
- 修复问题:改用 #runNow 而非 #run 来调用内部 void 方法。
- 修复多种迁移类型的问题。
- 修复因未在需要时使用调度器而导致的 Folia 上的多个问题。
- 修复新物品部分中药水颜色未正确应用的问题。
- 修复盾牌旗帜使用新物品格式时的问题。
- 修复每个奖励的等级几率未正确显示的问题。
- 修复宝箱调试命令。
一如既往,请前往 https://github.com/Crazy-Crew/CrazyCrates/issues 报告 🐛
1.21.8-fde1b0e
on 2025 Nov 15fde1b0e 更新消息中 {prefix} 的替换方式
1.21.8-2e73bce
on 2025 Nov 152e73bce 将所有双大括号初始化替换为不可变映射,或在需要时使用新的 HashMap/列表
1.21.8-b92b47f
on 2025 Nov 15b92b47f 修复占位符需要玩家名称的问题
1.21.8-5cfc069
on 2025 Nov 145cfc069 首次启动时为奖品#2添加缺失的物品奖励
1.21.8-1ef6553
on 2025 Nov 141ef6553 修复占位符拼写错误
1.21.8-496e4d0
on 2025 Nov 121.21.8-e3d85d5
on 2025 Nov 12e3d85d5 更新占位符API支持
1.21.8-6c580b1
on 2025 Nov 126c580b1 使用 GUI 自定义功能时,将命令执行时机从打开时改为点击时。
1.21.8-f99bb83
on 2025 Nov 05f99bb83 为奖励/默认消息添加 %chance% / %weight% 占位符
1.21.8-f2c5fbd
on 2025 Nov 05f2c5fbd 暂时禁用 CMI 支持,因为当前可用的 API 似乎与新版 CMI 不兼容
1.21.8-c0b8105
on 2025 Oct 13c0b8105 修复了由于使用了未去除格式代码的名称,导致玩家默认无法打开宝箱的问题。




