Coins

Coins - 自定义货币与商店插件

让你的服务器拥有自定义货币与商店系统
Bukkit / Spigot 作者 JustEli 支持版本 1.7 - 1.10
服务器使用量
229
服务玩家数
172
下载量
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):为玩家增加货币。若 notifytrue,玩家将通过动作栏收到通知。
  • removeCoins(Player p, Integer coins, boolean notify):移除玩家的货币。若 notifytrue,玩家将通过动作栏收到通知。
  • 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);

物品自定义方法

DisplayItemBuyItem 都支持以下方法进行深度自定义:

  • 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 :)");
    }
    // ... 仍需重写三个消息方法
});
测试支持版本
1.7 1.8 1.9 1.10
版本分布
基本信息
插件名称 Coins
作者 JustEli
平台 Bukkit / Spigot
支持版本 1.7 - 1.10
点赞数 1
Modrinth 下载 3,083
最近版本
1.13.1 95
1.16.2 67
1.16.1 36
1.15 12
1.16 6
1.10.8 3
1.14 2
1.13 2
1.16.1-CLARITY 1
1.14.1 1
1.10.5 1
1.10.3 1

友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作

历史访问人数:2,634,093  |  历史访问人次:3,192,190

今日访问人数:8,975  |  今日访问人次:9,549

昨日访问人数:46,463  |  昨日访问人次:52,262

Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.

Powered by GermMC 京ICP备17023959号-6