XPlayerKits

一个轻量级且完全可定制的套件系统,仅加载必要的数据,从而节省RAM。

资源图片

banner

这是一个允许您为玩家创建套件的插件。 这个插件的创建是由于缺乏针对此功能的优化解决方案。 它使用的 RAM 非常少,并且高度可定制。 | XPlayerKits | XLeaderboards | StellarProtect | | --- | --- | --- |

feature

**与其他加载服务器上每个注册玩家数据的插件不同(浪费宝贵资源),XPlayerKits 采取更智能的方法。** 它仅在玩家实际加入时才加载玩家数据,并仅缓存必要信息。 这意味着 **RAM 使用量显著降低**,而不会影响性能。 除此之外,XPlayerKits 默认内置 **SQLite 支持**,为您提供可靠且轻量级的数据库解决方案。 无需再处理将玩家数据存储在混乱 YML 文件中的限制和问题。

features

### 功能 - **迁移:**从其他插件迁移数据和套件,以节省资源并避免物品栏漏洞。 - **套件占位符要求:** 使用系统来检查占位符条件。 - **完全可编辑的物品栏:** 使用物品名称系统进行图标定制,自定义套件物品栏。 - **认领/拒绝操作:** 在认领或拒绝套件时设置操作,例如命令或声音。 - **游戏内 GUI:** 直接在游戏中编辑套件,包括属性、图标和内容。 - **一次性套件:** 创建只能认领一次的套件,存储在玩家数据中。 - **首次加入套件:** 在玩家首次加入服务器时传送套件。 - **数据库支持:** 支持 MongoDB、MySQL 和 SQLite (推荐:MongoDB)。

commands

### 命令 - `/xkits editor` - 打开编辑器进行快速套件创建。 - `/xkits kits` - 打开套件选择菜单。 - `/xkits open [rotation/category]` - 使用类别或轮换套件打开套件选择。 - `/xkits preview [player]` - 打开预览菜单。 - `/xkits give ` - 在不进行检查的情况下直接给予玩家套件。 - `/xkits claim ` - 对玩家进行检查后给予套件。 - `/xkits reset ` - 重置特定套件的玩家数据。 - `/xkits resetall ` - 重置玩家的所有数据。 - `/xkits delete ` - 删除套件。 - `/xkits migrate playerkits2_yml/playerkits2_mysql` - 从其他插件迁移数据。 - `/xkits migratekits playerkits2` - 从其他插件迁移套件。

permissions

### 权限 - `xkits.admin` - 允许玩家使用 `/xkits editor` 和 `/xkits slots` 命令。 - `xkits.preview` - 允许玩家使用 `/xkits preview`。 - `xkits.countdown.bypass` - 允许玩家绕过套件倒计时。 - `xkits.onetime.bypass` - 允许玩家绕过一次性限制。

placeholders

### 占位符 - `%xplayerkits_cooldown_%` - 显示下次认领的时间。 - `%xplayerkits_claimed_onetime_%` - 如果玩家认领了套件,则返回“是”或“否”。 - `%xplayerkits_claimed_cooldown_%` - 如果玩家的套件处于冷却状态,则返回“是”或“否”。

actions

### 操作 | 操作 | 描述 | 示例 | |-------------------------|-----------------------------------------------|-----------------------------------------------------------| | console | 从控制台执行命令。 | `console:say test` | | command | 作为玩家执行命令。 | `command:dm open main` | | sound | 为玩家播放声音。 | `sound:ENTITY_ENDERMAN_TELEPORT;1.0f;1.0f` | | playsound_resource_pack | 从资源包播放声音。 | `playsound_resource_pack:ENTITY_ENDERMAN_TELEPORT;1.0f;1.0f` | | message | 向玩家发送聊天消息。 | `message:You can’t claim this kit.` | | center_message | 向玩家发送居中消息。 | `center_message:You can’t claim this kit.` | | mini_message | 发送 MiniMessage 格式的消息。 | `mini_message:You can’t claim this kit.` | | broadcast | 向所有玩家发送消息。 | `broadcast:You can’t claim this kit.` | | titles | 向玩家发送标题和副标题。 | `titles:Kit Claimed!;<subtitle>Enjoy your rewards!`| | wait_ticks | 在执行下一个操作之前等待。 | `wait_ticks:40` | <p align="center"> <img src="https://i.imgur.com/OosO7SC.jpeg" alt="links"> </p> | <a href="https://discord.gg/4R9teKVcbM" target="_blank"><img src="https://i.imgur.com/5mATCrI.jpeg" alt="Discord" /></a> | <a href="https://www.patreon.com/c/insideranh" target="_blank"><img src="https://i.imgur.com/G31oZIG.jpeg" alt="Patreon" /></a> | <a href="https://www.insideranh.dev/docs/xplayerkits.md" target="_blank"><img src="https://i.imgur.com/zdRGBIY.jpeg" alt="Wiki" /></a> | | --- | --- | --- |</div> </main> <footer> <h2 style="text-align:center; margin-bottom:1rem;">同类资源推荐</h2> <div class="recommend"> <div class="recommend-item"> <h3> <a class="recommend-link" href="/view/EDF1833.html" target="_blank" rel="noopener noreferrer" aria-label="RevoPurpurUpdater">RevoPurpurUpdater</a> </h3> </div> <div class="recommend-item"> <h3> <a class="recommend-link" href="/view/BCCE665.html" target="_blank" rel="noopener noreferrer" aria-label="Crouch-Jump">Crouch-Jump</a> </h3> </div> <div class="recommend-item"> <h3> <a class="recommend-link" href="/view/8B64901.html" target="_blank" rel="noopener noreferrer" aria-label="SimpleRename">SimpleRename</a> </h3> </div> </div> </footer> <script> const converter = new showdown.Converter({ tables: true, simplifiedAutoLink: true, strikethrough: true, tasklists: true }); const dom = document.getElementById('content'); console.log(dom.innerText) dom.innerHTML = converter.makeHtml(dom.innerText); const logo = document.getElementById('logo'); const goRoot = () => { window.location.href = '/'; }; logo.addEventListener('click', goRoot); // 新增:为“立即下载”按钮添加点击事件,跳转到 /download/71CB9D4 const downloadBtn = document.querySelector('.download-btn'); downloadBtn.addEventListener('click', () => { window.location.href = '/download/71CB9D4'; }); </script> </body> </html>