💡简介
SignShop 允许你通过敲击箱子和带有红石粉的告示牌来建立实体商店。它易于设置,且更容易自定义!本插件需要 Vault 和一个与 Vault 兼容的经济插件。
💡版本兼容性
- Minecraft 1.8 - 1.12:请使用此版本。
- Minecraft 1.13 - 1.19:请使用此版本。
- Minecraft 1.20:请使用此版本。
- 最新版本(上方下载按钮)支持 Minecraft 1.21+。
🎮告示牌类型
玩家商店告示牌
这些告示牌可由玩家创建和使用。
- [Buy] — 从商店箱子中购买物品,价格在告示牌第四行指定。
- [Sell] — 将物品卖给商店箱子,价格在告示牌第四行指定。
- [Trade] — 用一组物品交换另一组物品,需要 2 个箱子。
- [Share] — 链接到另一个 SignShop 以分摊利润。第二、三行填写其他玩家名,第四行填写百分比(例如“25/50”表示 75% 分给他人)。
- [Bank] — 链接到另一个 SignShop,使商店从银行账户存取钱。银行账户在告示牌第二行指定(注意:你必须拥有该银行账户)。
- [Donate] — 将物品赠予商店箱子。
- [DonateHand] — 将手中的物品捐赠给商店箱子。
- [Dispose] — 取走手中的物品并安全分解该材料。
- [Slot] — 从所选箱子物品(非整个库存)中随机给予玩家一个物品。
- [DeviceOn] — 打开一个拉杆。
- [DeviceOff] — 关闭一个拉杆。
- [DeviceToggle] — 切换一个拉杆的状态。
- [Device] — 临时打开一个拉杆。
- [DeviceItem] — 使用物品作为支付来临时打开一个拉杆。
- [Jukebox] — 允许玩家通过将音乐唱片放入箱子来创建点唱机。
- [Restricted] — 使得只有特定权限组才能使用链接的 SignShop(组名列在第二、三、四行)。
管理员商店告示牌
需要 OP 权限或 SignShop.Admin.* 权限才能创建。
- [gBuy] — 从商店箱子购买物品,但店主不会收到钱。
- [gSell] — 将物品卖给商店箱子,玩家会收到钱,但钱不从店主处扣除。
- [iBuy] — 从“商店”购买物品,钱不归任何人,物品无限。
- [iSell] — 将物品卖给“商店”,钱无限,物品会消失。
- [iTrade] — 用一组物品交换另一组物品,库存无限。
- [Class] — 取走用户的物品栏,并用箱子里的物品替换,库存无限。
- [Kit] — 给予购买者一套物品一次(库存无限),必须使用 ResetKit 告示牌重置后才能再次使用。
- [ResetKit] — 允许玩家再次使用 Kit 告示牌。
- [iBuyXP] — 购买告示牌第三行指定数量的经验等级。
- [iSellXP] — 出售告示牌第三行指定数量的经验等级。
- [iXPBuy] — 使用告示牌第三行指定的原始经验点数购买物品。
- [iXPSell] — 使用告示牌第三行指定的原始经验点数出售物品。
- [iSlot] — 从所选箱子物品中随机给予一个物品,库存无限。
- [Day] — 将时间设为白天。
- [Night] — 将时间设为夜晚。
- [Rain] — 开启降雨和雷暴。
- [ClearSkies] — 关闭降雨和雷暴。
- [Repair] — 修复当前手持的物品。
- [Heal] — 完全治愈玩家。
- [Enchant] — 出售箱子中物品的附魔。
- [Disenchant] — 移除物品的附魔。
- [TpToOwner] — 一个用于运行命令的自定义告示牌示例。
- [Command] — 允许玩家运行告示牌第二、三行上的命令。
- [UserCommand] — 允许玩家运行告示牌第二、三行上的命令,如同他们自己输入的一样。
- [Promote] — 将玩家提升到告示牌第二行列出的权限组。
> 如果你要找的告示牌不在这里,可以在配置文件中创建自定义告示牌。只需将其添加到 signs: 部分并赋予相应的方块。查看你的 plugins/SignShop 文件夹中的 SignShop Quick Reference 以获取帮助。
🔧重要链接
- 查看配置
- SignShop 快速参考(也在你的
/plugins/SignShop 文件夹中) - 在 GitHub 上 Fork 我们
- 加入我们的 Discord
❓使用方法
观看 SignShop2 教程视频。以下是一个设置 [Buy] 告示牌的示例。告示牌链接到一个装有物品的箱子。在此示例中,它将出售一个附魔镐,价格为 600 Waffles(Waffles 是我们服务器的货币)。在评论中发送你服务器的 SignShop 图片,上图可能就是你的商店!
查看更多图片!
✨基本功能
- 无需记忆任何烦人的命令。
- 可以创建全局商店(使用 [iBuy] 和 [iSell] 实现无限物品和无限金钱)。
- 可以创建玩家拥有的商店。
- 可以购买和出售原始经验点和经验等级。
- 告示牌有颜色标识:[蓝色] 表示商店有货且正常运作,[红色] 表示商店缺货或库存已满,[黑色] 表示告示牌未激活。
- 每个告示牌可以出售多种物品(例如,炼药启动包,包含 3 个玻璃瓶、1 个酿造台、地狱疣、恶魂之泪等)。
- 箱子不必直接在告示牌下方,可以放在任何地方(距离可在配置中自定义)。
- 每个箱子可以使用多个告示牌(只需移除任何额外物品,将箱子链接到新告示牌,并在箱子中存放多种物品类型!)。
- 能够设置商店来控制红石拉杆(用于收费进门、启动某种装置、引爆一堆 TNT,随你想象!)。
- 可以限制每个玩家或权限组的商店数量。
- 可以通过使用墨囊点击带有所需文本的告示牌,然后点击活动的 SignShop 来编辑活动告示牌。
- 可以禁用与村民的交易。
- 使用链接到 SignShop 的 [Share] 告示牌进行利润分享。
- 将商店使用限制为仅 [Restricted] 告示牌上列出的组。
- 支持本地化(如果你希望支持你的母语,请帮助我们翻译配置!更多信息请查看此页面)。
- 支持自定义药水、书、烟花和物品描述。
- 悬停工具提示会在鼠标悬停在聊天消息中的物品名称上时显示物品详细信息(在 Paper 上显示完整详情,在 Spigot 上有限)。
✨高级功能
- 可以设置告示牌以在控制台运行命令。
- 可以运行命令,如同购买者自己输入了命令一样(在配置中使用
runCommand{asUser} 块。注意:此功能需要你的权限插件支持 * 权限节点)。 - 可以在一定时间后运行命令,允许你出售如临时权限之类的东西。
- 可以向告示牌出售部分数量的物品(默认禁用)。
- 可自定义的消息。
- 可自定义的告示牌。
- 可以为组定义乘数,以允许某些组获得折扣或出售物品时赚取更多钱。
⭐建议与问题
如果你在使用 SignShop 时遇到问题,请加入 Discord 或查看我们的工单,确保其他人尚未报告该问题!如果没有,请在提交工单时填写所需信息。谢谢!
喜欢这个插件吗?请我们喝杯啤酒和/或含咖啡因的饮料!
❓常见问题解答
提问前须知
- 确保已安装 Vault 和一个 Vault 兼容的经济插件。
- 始终使用
/restart 或停止/启动你的服务器——不要使用 Plugman 或类似插件。 - 检查服务器控制台是否有错误消息。
经济与金钱
问:如何获得金钱?
你需要 Vault 加一个经济插件。我们推荐 EssentialsX、Gringotts(基于物品的经济)或 CMI。使用你的经济插件的命令给自己钱(通常是类似 /eco give 或 /money grant 的命令——请查看它们的文档)。
问:为什么钱没有从我的账户扣除?
如果你从自己拥有的商店购买,钱会付给你自己(店主)。为避免这种情况,要么:
- 使用像 [iBuy] 这样的管理员商店——钱不归店主。
- 让其他人创建一个商店供你使用。
商店设置
问:为什么我的商店只给 X 件物品?我想要 Y 件!
链接时箱子中的数量决定了每次交易的物品数量。要一次出售 8 件物品:在箱子中放入恰好 8 件,将其链接到告示牌,然后之后在箱子中补充更多库存。
问:如何制作无限物品/无箱子的商店?
使用像 [iBuy] 或 [iSell] 这样的管理员告示牌。初始设置商店时需要箱子,但之后可以将其破坏。
问:我可以出售玩家物品栏或手中的所有物品吗?
不能直接出售,但你可以设置一个商店以更高价格出售一整组(或更多)物品,然后在配置中启用 AllowVariableAmounts: true。拥有较少物品的玩家将按比例出售他们拥有的物品。
问:如何销毁一个商店?
用除了红石粉或墨囊以外的任何东西破坏告示牌或箱子。在创造模式下,如果配置中启用了 ProtectShopsInCreative,请使用金斧。这些材料是可配置的。
权限与访问
问:为什么我的玩家不能使用商店?他们只看到确认消息。
这通常由以下原因引起
- 原版出生点保护——将
server.properties 中的 spawn-protection=16 改为 spawn-protection=0。 - Essentials 干扰——在 Essentials 配置中注释掉所有 Essentials 告示牌(包括
-color)。 - 另一个插件阻止——使用你的权限插件的详细日志记录来查看正在检查什么:
- LuckPerms: `/lp verbose on`
问:制作 [iBuy] 告示牌时,“You are not allowed to link this”是什么意思?
另一个插件正在保护该区域。使用权限详细日志记录来查找你需要的权限。注意:一些保护插件会忽略 OP 状态。
问:为什么 OP 可以使用商店但普通玩家不能?
与上述原因相同——出生点保护或另一个插件阻止交互。检查 server.properties 并使用详细日志记录。
特殊告示牌
问:我的 [Slot] 告示牌总是随机用完物品!
每个箱子格子被选中的几率相等。如果你想要 10% 钻石,90% 煤:将钻石放在 1 个格子,煤放在 9 个单独的格子(总共 10 个格子)。当钻石被抽中后,该结果将不再可能,直到你补充库存。链接后,你可以在箱子中填充更多每种物品以维持几率。
问:为什么 [Device] 告示牌没有激活我的红石?
[Device] 告示牌只对放在地上的拉杆有效,而不是墙上的。这是 Bukkit API 的一个限制。
其他问题
问:能否让玩家在告示牌上写下他们出售的东西?
我们故意不要求这样做,因为
- 你可以在一个告示牌上出售多种物品(一个包含酿造台、瓶子、地狱疣等的“炼药包”)——不可能全部写在告示牌上。
- 物品名称多样(木台阶、木质台阶、木台阶……)并且正确输入会很令人沮丧。
- 购买者可以左键点击任何商店来查看它具体出售什么。
问:你能为最新的 Minecraft 版本更新插件吗?
通常 SignShop 无需更改即可跨 Minecraft 更新工作。如果有问题:
- 首先尝试最新的开发构建。
- 如果不行,请在 GitHub 上创建一个问题,附上你的服务器版本、SignShop 版本和任何错误消息。
问:如何获得帮助?
- 运行
/signshop help 获取版本信息。 - 运行
/version 获取你的服务器版本。 - 从服务器日志中复制任何错误消息。
- 加入 Discord 或创建 GitHub 问题。
🔧通过其他插件扩展 SignShop
- Vault — 经济与权限所必需。可与 EssentialsX、Gringotts 和 CMI 等经济插件配合使用。对于权限,我们推荐 LuckPerms(如果不使用权限系统,则默认为 OP 权限)。
- Grief Prevention, Residence, LWC Extended, BlockLocker — 用于告示牌和箱子保护(SignShop 也有内置的告示牌保护)。
- EssentialsX, CMI — 使用
worth.yml 实现动态告示牌价格,方法是在告示牌最下面一行写上 [worth](必须在 SignShop 配置中启用)。 - SignShopGuardian — 在你死亡时保存你的物品栏。
- SignShopHotel — 允许玩家租用房间一段时间。
- Dynmap — 在你的网络地图上显示商店位置。
- Multiverse — 支持 Multiverse 世界。
- Towny — 使用 Towny 银行,并只允许玩家在 Towny 商店地块中创建商店。
- WorldGuard — 尊重建筑权限,你可以将商店创建限制在具有
allow-shop 标志的区域。 - ChestShop — 通过用红石点击告示牌,从 ChestShop 格式转换为 SignShop 格式。
SignShop 是一款功能强大的商店插件,允许玩家通过告示牌与容器(如箱子)的交互来创建各种类型的商店或功能站。它支持从基础的买卖到复杂的交易、权限控制及与其他插件的集成,为服务器经济与互动系统提供了高度可定制化的解决方案。
💡支持的告示牌类型
以下列出了所有可用的告示牌类型及其功能。带有“Admin”标记的告示牌需要管理员权限才能创建。
基础商店告示牌
这些是用于创建常规玩家商店的核心告示牌。
- [Buy]:从商店箱子购买物品,价格写在告示牌第四行。
- [Sell]:向商店箱子出售物品,价格写在告示牌第四行。
- [Trade]:用一组物品交换另一组物品,需要两个箱子。
- [Share]:链接到另一个 SignShop 以分摊利润。第二、三行写其他玩家名,第四行写百分比(例如“25/50”表示75%分给他人)。
- [Bank]:链接到另一个 SignShop,使商店从/向一个银行账户存取钱。银行账户名写在告示牌第二行(注意:你必须拥有该银行账户)。
- [Donate]:向商店箱子捐赠物品。
- [DonateHand]:捐赠手中的物品到商店箱子。
- [Dispose]:安全分解手中的物品材料。
- [Slot]:从选定箱子的物品中随机抽取一件给予玩家(非整个箱子库存)。
设备控制告示牌
这些告示牌用于控制红石设备或其他游戏机制。
- [DeviceOn]:打开一个拉杆。
- [DeviceOff]:关闭一个拉杆。
- [Toggle]:切换一个拉杆的状态。
- [Device]:临时打开一个拉杆。
- [DeviceItem]:使用物品作为支付来临时打开一个拉杆。
- [Jukebox]:允许玩家通过将音乐唱片放入箱子来创建点唱机。
权限与限制告示牌
这些告示牌用于对商店的使用者进行限制。
- [Restricted]:使得只有特定权限组的玩家才能使用链接的 SignShop(组名列在第二、三、四行)。
管理员/无限商店告示牌 (Admin)
这些是功能特殊的告示牌,通常需要管理员权限。
- [gBuy]:从商店箱子购买物品,但店主不会收到钱。
- [gSell]:向商店箱子出售物品,玩家会收到钱,但这笔钱并非来自店主。
- [iBuy]:从“商店”购买物品,钱不归任何人,物品无限。
- [iSell]:向“商店”出售物品,钱无限,物品会消失。
- [iTrade]:交换物品,库存无限。
- [Class]:清空使用者背包,并用一个箱子里的物品替换,库存无限。
- [Kit]:给予购买者一套物品(仅限一次,库存无限),必须使用 ResetKit 告示牌重置后才能再次使用。
- [ResetKit]:允许玩家再次使用一个 Kit 告示牌。
- [iBuyXP]:购买告示牌第三行指定数量的经验等级。
- [iSellXP]:出售告示牌第三行指定数量的经验等级。
- [iXPBuy]:使用告示牌第三行指定的原始经验点数购买物品。
- [iXPSell]:使用告示牌第三行指定的原始经验点数出售物品。
- [iSlot]:从选定箱子的物品中随机抽取一件给予玩家,库存无限。
- [Day]:将时间设为白天。
- [Night]:将时间设为黑夜。
- [Rain]:开启降雨和雷暴。
- [ClearSkies]:关闭降雨和雷暴。
- [Repair]:修复当前手持的物品。
- [Heal]:完全治愈玩家。
- [Enchant]:出售箱子中物品上的附魔。
- [Disenchant]:移除物品上的附魔。
- [TpToOwner]:一个运行命令的自定义告示牌示例。
- [Command]:允许玩家运行写在告示牌第二、三行上的命令。
- [UserCommand]:允许玩家以自己身份运行写在告示牌第二、三行上的命令。
- [Promote]:将玩家提升至告示牌第二行所列的权限组。
> 注意:“Admin”类告示牌需要 OP 或 SignShop.Admin.* 权限才能创建。
>
> 如果你需要的告示牌不在此列表中,可以在配置文件中创建自定义告示牌。只需将其添加到 signs: 部分并分配相应的方块即可。如需帮助,请查看插件目录 plugins/SignShop 中的 SignShop 快速参考。
❓权限系统介绍
首先,你需要使用一个权限管理插件。SignShop 通过 Vault 支持以下插件(推荐 LuckPerms):
- LuckPerms (推荐)
- Permissions 3
- bPermissions
- PEX
- GroupManager
- PermissionsBukkit
- zPermission
如果你没有使用上述任何插件,SignShop 将默认使用 OP 权限。
基础权限节点
有几个基础的 SignShop 权限节点。符号“*”可以代表告示牌名称或方块类型(取决于具体的权限节点)。该权限将影响对应的告示牌或方块类型。此规则也适用于自定义告示牌。SignShop 权限节点不区分大小写。
- Signshop.DenyUse.*
- 此权限用于拒绝使用告示牌。
- 注意:
Signshop.Signs.* 权限会覆盖此节点。 - 示例:如果你想禁止某个群组向无限商店(如
[iSell] 告示牌)出售物品,可以给予他们:Signshop.DenyUse.iSell
- Signshop.DenyLink.*
- 此权限用于拒绝将商店链接到特定的游戏方块(如 Chest, Sign, Lever, Dispenser, Furnace, Brewingstand, Enchantmenttable, Slab)。
- 注意:OP 权限会覆盖此节点。
- 示例:如果你想禁止某个群组将商店链接到熔炉以防止自动冶炼,可以给予他们:
Signshop.DenyLink.Furnace
- Signshop.Signs.*
- 此权限允许玩家创建告示牌。
- 示例:你可能想禁止某个群组创建用于控制红石拉杆的告示牌,可以通过否定以下权限节点来实现(假设你的权限插件支持否定权限):
`-Signshop.Signs.Device` `-Signshop.Signs.DeviceOn` `-Signshop.Signs.DeviceOff` `-Signshop.Signs.Toggle`
- Signshop.CopyPaste
- 此权限允许玩家使用黑色染料点击告示牌,将信息复制到一个已激活的 SignShop 上。
- 示例:如果你想更新物品价格,可以创建一个新告示牌,将新价格写在底行,其他三行留空,然后用黑色染料点击。你可以通过这种方式修改描述、价格和告示牌类型。空行会被忽略。但是,你不能将 Device 告示牌改为 Buy 告示牌,因为它们的操作不兼容。
- 你还可以通过
Signshop.CopyPaste.Others 允许管理员编辑其他玩家的告示牌。
- Signshop.Permit
- 如果全局设置中的“AllowPermits”选项设为 true,玩家必须拥有此节点,他们的商店才能正常工作。
- 示例:你可以使用 SignShop 和权限插件来出售“商人许可证”。没有许可证的玩家,其商店将被禁用,需要购买新的许可证才能继续使用。
- 你也可以使用
Signshop.Permit.Stone 来仅允许包含“石头”材料的商店。材料名称列表可参考:http://jd.bukkit.org/rb/apidocs/org/bukkit/Material.html(请确保将空格替换为下划线,例如“BAKED POTATO”变为“BAKED_POTATO”)。
- Signshop.ChangeOwner
- 此权限允许玩家用红石点击另一名玩家,然后点击告示牌来更改 SignShop 的所有者。
- 示例:如果你想建立一个玩家银行账户,或将商店转让给另一名玩家,可以使用此功能。如果你要修改的告示牌不属于你,则还需要
Signshop.ChangeOwner.Others 权限。
- Signshop.Destroy.Others
- 此权限允许玩家销毁不属于自己的商店。
- 示例:将此权限给予管理员或助手,让他们可以清理废弃的商店,同时又不具备其他 SignShop 管理权限。
- Signshop.IgnoreMax
- 此权限可绕过
config 中定义的任何最大商店数量限制。 - 示例:你可以设置普通玩家只能创建10个告示牌,而捐赠者可以通过拥有
Signshop.IgnoreMax 权限来创建无限个。
- Signshop.IgnoreRepair
- 此权限可绕过
config 中的 AllowEnchantedRepair 设置。 - 示例:你可以让“铁匠”通过拥有
Signshop.IgnoreRepair 权限来修复附魔物品。
- Signshop.BypassShopPlots.*
- 此权限可绕过
config 中的 EnableShopPlotSupport 设置。 - 示例:你可以让 VIP 玩家在 Worldguard 区域中即使“allow-shop”标志设为“deny”时也能创建商店,权限节点为:
Signshop.BypassShopPlots.Worldguard - 支持的插件:Worldguard 的“allow-shop”标志、Towny 的商店地块。
- Signshop.Admin.*
- 此权限允许玩家创建管理类告示牌(例如用于全局商店的无限物品商店)。
- 示例:你可以使用此权限来授予玩家创建带有
playerIsOp 标签(在 config 中定义)的告示牌的能力。Signshop.Admin.Heal 允许玩家创建一个治疗站。
- Signshop.SuperAdmin
- 拥有此权限的玩家在 SignShop 看来等同于 OP。
- 示例:你可以使用此权限来授予玩家绕过黑名单、破坏其他用户的商店、使用
/signshop reload 命令等能力。
🔧其他注意事项
- 权限继承与使用:如果一个玩家拥有创建
[Buy] 告示牌的能力(通过 Signshop.Signs.Buy 权限),但同时又被权限系统禁止使用该告示牌(例如其继承的群组权限中包含 Signshop.DenyUse.Buy),他仍然能够使用这个告示牌。这确保了你在使用权限继承时的安全性。简而言之,如果玩家被允许创建一个告示牌,那么他也被允许使用它,Signshop.DenyUse 设置对此无效。
- 管理员告示牌的创建:为了让拥有
Signshop.Signs.Repair 权限的玩家创建一个 [Repair] 告示牌(或任何其他在 config 中定义为 playerIsOp 的告示牌),他们还必须拥有相应的管理员权限节点,在此例中即 Signshop.Admin.Repair。这意味着,你可以安全地给予一个玩家群组 Signshop.Signs.* 权限以允许他们创建所有告示牌,而无需担心他们会创建无限库存或其他管理类 SignShop。