服务器使用量
42
服务玩家数
112
下载量
217,064
插件详细介绍
ShopChest 是一款简单易用的箱子商店插件。玩家通过点击箱子即可进行交易,而商店管理则通过命令完成。商店上方会显示一个全息投影,展示商店的各种信息,其显示格式可通过配置文件自定义。插件提供了大量可配置选项,并支持多种保护插件的高级集成。
依赖与版本说明
- 必需依赖:Vault 及支持 Vault 的经济插件(例如 JustMoney)。
- 版本支持:此版本不适用于 1.18 及以上。支持 1.17 及以下版本的最终版本可[在此处](here)找到。
核心特性
- 简单交互:创建与管理商店非常简单。
- 视觉美观:提供信息全息投影与物品悬浮展示。
- 管理员商店:支持无限供应的管理员商店。
- 物品复制:直接复制手中物品,无需处理复杂的物品属性或标签。
- 内置保护:包含漏斗与爆炸保护。
- 悬浮物品保护:防止被水、岩浆、活塞、僵尸破坏,无法被拾取、自然消失或被 ClearLag 等插件清除。
- 多语言支持:完全可翻译,支持 Minecraft 语言文件。
- 数据库支持:支持 MySQL 和 SQLite。
- 插件兼容:支持大多数领地保护插件,并可深度集成 WorldGuard、PlotSquared、Towny 等。
- 经济集成:通过 Vault 接入经济系统。
- 高度可配置:提供广泛的配置选项。
使用方法
- 默认操作:
- 右键点击箱子:从商店购买物品。- 左键点击箱子:向商店出售物品。- (此操作可在配置文件中反转)- 批量交易:潜行状态下点击可一次购买或出售一整组物品。
- 查看信息:
- 使用命令 `/shop info`。- 或用配置中设定的物品(默认为木棍)点击箱子。命令列表
主命令名称可在配置中自定义,此处以 /shop 为例。
<buy-price>:玩家从商店购买物品的价格。<sell-price>:玩家向商店出售物品的价格。
/shop create <amount> <buy-price> <sell-price>– 创建一个普通商店/shop create <amount> <buy-price> <sell-price> admin– 创建一个管理员商店/shop remove– 移除一个商店/shop info– 查看商店信息/shop open– 打开一个商店/shop removeall <player>– 移除某玩家的所有商店/shop reload– 重载商店与配置文件/shop config (set|add|remove) <property> <value>– 设置配置值/shop update– 检查插件更新
权限节点
shopchest.*– 所有权限shopchest.create– 创建商店(默认允许)shopchest.create.admin– 创建管理员商店shopchest.create.protected– 在被保护的箱子或区域内创建商店shopchest.extend.other– 扩展他人商店shopchest.extend.protected– 在被保护的箱子或区域内扩展商店shopchest.buy– 购买物品(默认允许)shopchest.sell– 出售物品(默认允许)shopchest.external.bypass– 在被禁止使用商店的区域内使用商店shopchest.openOther– 打开他人商店shopchest.remove.other– 移除他人商店shopchest.remove.admin– 移除管理员商店shopchest.reload– 重载插件shopchest.config– 修改配置shopchest.update– 检查更新shopchest.notification.update– 接收更新通知
开发者 API
ShopChest 发布于 CodeMC 的 Maven 仓库。请将 {version} 替换为具体版本号。
Maven 依赖
<repositories>
<repository>
<id>codemc-repo</id>
<url>https://repo.codemc.io/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>de.epiceric</groupId>
<artifactId>ShopChest</artifactId>
<version>{version}</version>
<scope>provided</scope>
</dependency>
</dependencies>Gradle 依赖
repositories {
maven {
url = "https://repo.codemc.io/repository/maven-public/"
}
}
dependencies {
compileOnly 'de.epiceric:ShopChest:{version}'
}示例代码
监听商店交易事件
@EventHandler(ignoreCancelled = true)
public void onShopBuySell(ShopBuySellEvent event) {
Shop shop = event.getShop();
long worldTime = shop.getLocation().getWorld().getTime();
if (worldTime > 20000 || worldTime < 7000) {
event.setCancelled(true);
event.getPlayer().sendMessage("You can only use a shop between 7am and 8pm.");
}
}创建商店
ShopProduct product = new ShopProduct(itemStack, amount);
Shop shop = new Shop(shopChest, vendor, product, location, buyPrice, sellPrice, shopType);
boolean success = shop.create(true); // 创建商店全息投影和悬浮物品,true 表示将错误日志输出到控制台
if (success) {
// 将商店添加到服务器商店列表,true 表示同时存入数据库
shopChest.getShopUtils().addShop(shop, true, new Callback<Void>(shopChest) {
@Override
public void onResult(Void result) {
// 可选:处理成功情况
}
@Override
public void onError(Throwable throwable) {
// 可选:处理错误情况
}
});
}获取商店
Collection<Shop> shops = shopChest.getShopUtils().getShops();
Shop shop = shopChest.getShopUtils().getShop(location);获取商店数量限制
int shopAmount = shopChest.getShopUtils().getShopAmount(player);
int shopLimit = shopChest.getShopUtils().getShopLimit(player);常见问题
支持哪些版本?
- 此版本不支持 1.13 至 1.16。如需支持 1.13 至 1.16.1 的版本,请[在此处](here)获取包含最新功能集的开发版构建。
AreaShop 集成无效?
- 尝试移除区域名称中的所有大写字母,或等待插件下一次更新。
无法购买或出售,提示“You don't have permission to buy/sell something here”?
- 如果安装了 WorldGuard 或 PlotSquared,你需要允许或设置自定义标志
use-shop和use-admin-shop(默认均为拒绝或仅所有者可用)。 - 你也可以授予玩家权限
shopchest.external.bypass,以允许他们在禁止使用商店的区域内使用商店。
无法创建商店,提示“You don't have permission to create a shop here”?
- WorldGuard:若启用了集成,需要允许自定义标志
create-shop(默认拒绝)。 - Towny:若启用了集成,玩家只能在配置指定类型的地块中创建商店。
- PlotSquared:只有拥有允许创建商店的等级(可通过标志
create-shop设置)的玩家才能创建。 - ASkyBlock/uSkyBlock/IslandWorld:玩家只能在自己拥有或作为成员的岛屿上创建商店(或按配置设定)。
- GriefPrevention:玩家只能在允许其打开箱子的领地内创建商店。
- 其他箱子保护插件:如果安装了 Lockette 或 LWC 等插件,且玩家无法打开箱子,则 ShopChest 也不允许其在此创建商店。
- 调试:在配置中启用调试日志(并重载或重启服务器),然后在
debug.txt文件中查看具体原因。 - 通用权限:授予权限
shopchest.create.protected可允许玩家在任何受保护的箱子或区域内创建商店。
控制台提示“Could not find translation "..." in selected language file. Using default translation ("...")”?
- 这意味着所选语言文件已过时,缺少特定消息、物品名称等的本地化。
- 若未修改过语言文件:直接删除该文件,ShopChest 会生成一个新的、已更新的文件。
- 若已修改过语言文件:
- 备份已修改的条目,删除原文件,让插件生成新文件后再将条目粘贴回去。- 或按照正确格式将缺失的翻译值添加到现有语言文件中。---
- 查看源代码:[GitHub](GitHub)
- 获取开发版构建:[此处](Get development builds)
测试支持版本
版本分布
基本信息
插件名称
ShopChest
作者
EpicEric
平台
Bukkit / Spigot
支持版本
1.8 - 1.12
点赞数
52
最近版本
1.15.0-SNAPSHOT
17
1.13-SNAPSHOT
10
1.14.0-SNAPSHOT
8
1.12.3
7
1.14.3-SNAPSHOT
1
1.14.0-SNAPSHOT-20260818074800-1ac6770
1
1.13.3
1