Coins - 自定义货币与商店插件
让你的服务器拥有自定义货币与商店系统
Bukkit / Spigot
作者 JustEli
支持版本 1.7 - 1.10
服务器使用量
236
服务玩家数
174
下载量
6,042
插件详细介绍
Coins 插件为您的 Minecraft 服务器创建了一个基于 MySQL 的自定义货币系统,支持多服务器数据同步,并提供了丰富的 API 和可自定义的 GUI 商店功能。
核心功能
- 创建基于 MySQL 的自定义货币。
- 支持多服务器共享同一个货币数据表。
- 提供完整的命令集,用于查看、添加、移除和设置玩家货币。
- 包含一个功能强大的 API,供开发者调用。
- 内置可高度自定义的 GUI 商店系统。
配置说明
配置文件允许您设置以下内容
- MySQL 数据库的连接信息(服务器地址、数据库名、用户名、密码等)。
- 插件发送的所有消息的前缀。
- 插件发送给玩家的各类消息内容。
- 服务器名称(用于区分或同步多服务器数据)。
- 插件的主命令(默认为
/coins)。
消息与占位符
大多数消息的含义一目了然,以下是一些特殊说明
addCoins,removeCoins,setCoins:当玩家自行修改货币数量时发送给该玩家。支持%COINS%占位符。addTargetCoins,removeTargetCoins,setTargetCoins:当玩家的货币被他人修改时发送给该玩家。支持%COINS%和%PLAYER%占位符。addPlayerCoins,removePlayerCoins,setPlayerCoins:当执行者修改他人货币时发送给执行者。支持%COINS%和%TARGET%占位符。loadingerror:当命令执行者输入了无效的 UUID 或玩家名时发送。
**可用占位符**(并非所有消息都支持)
%COINS%:在消息中显示货币数量。%TARGET%:在消息中显示目标玩家。%PLAYER%:在消息中显示操作执行者。
权限与命令
权限
Coins.Commands:允许使用/coins命令及其所有子命令。
命令
/coins:查看自己的余额(无需权限)。/coins <玩家名/UUID>:查看指定玩家的余额。/coins add <数量>:为自己增加指定数量的货币。/coins add <玩家名> <数量>:为指定玩家增加货币。/coins remove <数量>:从自己这里移除指定数量的货币。/coins remove <玩家名> <数量>:从指定玩家处移除货币。/coins set <数量>:设置自己的货币数量。/coins set <玩家名> <数量>:设置指定玩家的货币数量。
API 参考
在代码中调用 Coins. 后可使用以下方法:
getCoins(Player p):返回玩家当前的货币数量。setCoins(Player p, Integer Amount):设置玩家的货币数量。addCoins(Player p, Integer coins, boolean notify):为玩家增加货币。若notify为true,玩家将通过动作栏收到通知。removeCoins(Player p, Integer coins, boolean notify):移除玩家的货币。若notify为true,玩家将通过动作栏收到通知。getOfflineCoins(String data):获取离线玩家的货币。data可以是玩家的 UUID 或名称。
商店 GUI 使用指南
您可以使用 InventoryManager.createShopInventory(ShopInventory) 来创建一个商店。
创建基础商店
创建新的商店 GUI 时,需要重写三个基础方法以自定义提示信息:
getSuccessfulPurchaseMessage(String defaultmessage):购买成功时发送的消息。getNotEnoughMoneyMessage(String defaultmessage):货币不足时发送的消息。getNoPermissionMessage(String defaultmessage):无购买权限时发送的消息。
参数 defaultmessage 是插件预设的默认消息。如果您返回 null,则不会向玩家发送任何消息。
代码示例:创建商店
ShopInventory inventory = InventoryManager.createShopInventory(new ShopInventory(ChatColor.AQUA + "Shop", 9) {
@Override
public String getSuccessfulPurchaseMessage(String defaultmessage) {
return defaultmessage;
}
@Override
public String getNotEnoughMoneyMessage(String defaultmessage) {
return ChatColor.RED + "You don't have enough money";
}
@Override
public String getNoPermissionMessage(String defaultmessage) {
return null;
}
});
inventory.addItem(displayitem);
inventory.open(player);DisplayItem(展示物品)
这是在商店界面中显示的物品。有多种构造方法
new DisplayItem(ItemStack item, int price, int slot, BuyItem buyitem);new DisplayItem(ItemStack item, String permission, int slot, BuyItem buyitem);new DisplayItem(ItemStack item, int price, String permission, int slot, BuyItem buyitem);new DisplayItem(Material material, byte data, int price, int slot, BuyItem buyitem);new DisplayItem(Material material, byte data, String permission, int slot, BuyItem buyitem);new DisplayItem(Material material, byte data, int price, String permission, int slot, BuyItem buyitem);
BuyItem(购买物品)
这是玩家购买后实际添加到背包的物品。构造方法
new BuyItem(Material material, int amount);new BuyItem(Material material, int amount, byte data);new BuyItem(ItemStack item);
物品自定义方法
DisplayItem 和 BuyItem 都支持以下方法进行深度自定义:
setDisplayName(String name):设置物品显示名称。setAmount(int amount):设置物品数量。setUnbreakable(boolean unbreakable):设置物品是否不可破坏。setItemMeta(ItemMeta meta):设置物品元数据。addItemFlag(ItemFlag... flags):添加物品标志。removeItemFlag(ItemFlag... flags):移除物品标志。setLore(String... lore)/setLore(ArrayList<String> lore):设置物品描述。addLore(String... lore):追加物品描述。setColor(Color color):设置颜色(仅限皮革盔甲)。setColor(int red, int green, int blue):设置 RGB 颜色(仅限皮革盔甲)。addEnchantment(Enchantment ench, int level):添加附魔(任何附魔,任何等级)。setGlow(boolean enchanted):设置物品是否发光。
重写 onClick 方法
如果您重写了 onClick 方法,该界面将不再具有商店的自动购买行为。此方法在玩家点击商店界面时被调用(即使点击的是空位)。
InventoryManager.createShopInventory(new ShopInventory(ChatColor.AQUA + "Shop", 9) {
@Override
public void onClick(Player p, DisplayItem item, ClickType click) {
if (item == null)
return;
p.sendMessage(ChatColor.GRAY + "You clicked a shop item :)");
}
// ... 仍需重写三个消息方法
});测试支持版本
版本分布
基本信息
插件名称
Coins
作者
JustEli
平台
Bukkit / Spigot
支持版本
1.7 - 1.10
点赞数
1
Modrinth 下载
3,083
最近版本
1.16.3
96
1.13.1
64
1.16.2
28
1.16.1
18
1.15
8
1.10.8
3
1.9.5
1
1.16.1-CLARITY
1
1.16
1
1.14.1
1
1.14
1
1.13
1