MagstarEconomy | 自由选择您的各类货币——让您的经济系统高端起来![支持itemsadder]

原创 开源 经济 MagstarEconomy | 自由选择您的各类货币——让您的经济系统高端起来![支持itemsadder] 1.0.0

Source of resources
Original
插件中文名称
幻素星辰-经济系统
插件英文名称
MagstarEconomy
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. Purpur
Language
Chinese(Simplified)
Precondition
[必需] MagstarLib | https://www.minebbs.com/resources/magstarlib-magstar.9774/?ref=141356
[必需] Vault | https://www.minebbs.com/resources/1-8-latest-vault.7869/?ref=141356
[可选] ItemsAdder | https://www.spigotmc.org/resources/%E2%9C%A8itemsadder%E2%AD%90emotes-mobs-items-armors-hud-gui-emojis-blocks-wings-hats-liquids.73355/
[可选] PlaceholderAPI | https://www.minebbs.com/resources/placeholderapi-api-1-8-1-20.8258/?ref=141356
适配版本(Java)
  1. 1.21
  2. 1.20
  3. 1.19
  4. 1.18
  5. 1.17
  6. 1.16
  7. 1.15
  8. 1.14
  9. 1.13
————————————————————

Magstar, 与您。

————————————————————​

欢迎您使用MagstarEconomy!这是一款功能十分强大的,拥有高达99.9%可自定义度的经济类插件。下面,请允许我为您介绍这款高端的经济插件。


这款插件设计的初衷就是提供一个可以自定义货币的平台,所以它最显著的功能就是可以自定义许多种货币。您可以在currencies.yml文件里配置您的货币,就像这样:
Code:
#手续费的计算方式
#兑换时,A货币兑换为B货币
#获得B货币的数量=A货币数量*(1-手续费百分比)*(A对B汇率)
#转账时
#转出账户获得货币的数量=原货币数量*(1-手续费百分比)
default-coin: #如果使用papi,请不要在货币id里面使用下划线。
  name: "金币" # 显示名称,以 & 代替 § 来输入彩色符号
  description: "黄金铸成的货币,是整个世界的硬通货" # 介绍
  value: 1 # 价值,这决定货币转换和财产评估时的数据
  default-content: 100 #默认持有量。在初始化玩家数据时用到。新玩家初次进服的时候拥有的货币量。默认为0。
  visible: true #设置能否在查询功能里查到。仅限message查询方式可用。
  exchange:
    in: true # 允许兑换为这种货币
    out: true # 允许将这种货币兑换为其它货币
    tax: 0 # 兑换为其它货币时不收税
  transfer:
    allow: true # 允许转账
    tax: 0 # 转账时不收费
crystal:
  name: "水晶币"
  description: "晶莹剔透的水晶打造成的货币,让人心旷神怡…"
  value: 20
  default-content: 0 #此行也可以不写。默认为0。
  max: 100 #最大持有量。主货币不允许设置最大值。
  visible: true #设置能否在查询功能里查到。仅限message查询方式可用。
  exchange:
    in: true
    out: false
    tax: 0.5
  transfer:
    allow: false
    tax: 0
在这些货币当中,您必须设置一种货币为主货币。此货币将会完成Vault的金币功能。这部分配置是在config.yml文件里,我们稍后会讲到。


插件支持游戏内Gui查询货币和文字消息查询货币两种方式。如果您选择使用Gui查询货币的方式,您需要到gui.yml文件中进行配置。如果您选择使用文字消息查询货币的方式,您需要到message.yml文件中进行配置。
我们将着重讲解Gui查询货币的方式。

Gui.yml:
Code:
#这个配置文件记载了查询货币余额时召唤Gui的配置。
#此配置文件应在插件刚刚加载时生成。
#此配置文件由插件作者提供。目的仅为提供一个Gui配置的范例。
#除此配置文件所标注的内容以外,没有其他占位符变量可用!
Title: "欢迎, {player} !"
Size: 54 #这里只能为9的倍数
Buttons:
red_stained_glass_pane: #物品id
    Display: "&fDesigned by &d&lBerry_so"
    Lore:
- ""
      - "&eYou can custom nearly all of this GUI."
      - ""
    Location: #在箱子内的格数
      - 0
      - 1
      - 2
      - 3
      - 5
      - 6
      - 7
      - 8
 player_head:
 Location:
      - 4
Skin: "player:{player}" #如果要指定UUID的话,可以直接写 "uuid:balabalabala"
    Display: "&fWelcome to use &bMagstar&3Economy &f, &a{player} &f!"
    Lore:
- ""
      - "&eIt is a powerful and high-end plug-in."
      - ""
  magenta_stained_glass_pane:
 Location:
      - 9
      - 10
      - 11
      - 12
      - 13
      - 14
      - 15
      - 16
      - 17
Display: "&fDesigned by &d&lBerry_so"
    Lore:
- ""
      - "&eYou can custom nearly all of this GUI."
      - ""
  white_stained_glass_pane:
 Location:
      - 36
      - 37
      - 38
      - 39
      - 40
      - 41
      - 42
      - 43
      - 44
Display: "&fDesigned by &d&lBerry_so"
    Lore:
- ""
      - "&eYou can custom nearly all of this GUI."
      - ""
  currency_config: #可以展示玩家所拥有的货币的位置
    default-coin: #货币id
      Type: minecraft #可选:minecraft, itemsadder。
      Item: raw_gold
#即使是使用了ItemsAdder,在Lore和Display中的变量依然是可用的。这允许用户批量生成货币的GUI配置文件。
      #你只需要在此配置文件中配置展示物品的Display和Lore节点,插件会自动忽略ItemsAdder中配置的物品名和描述,转而将其变为此配置文件中的物品名和描述。
      Display: "&8====&7> &e{currency_name} &7<&8===="
      Lore:
- ""
        - "&f[&b➥&f] {currency_description}"
        - ""
        - "&f[&b➥&f] 持有数量: &e{currency_count}"
        - "&f[&b➥&f] 允许兑入: {currency_exchange_in?<&a✔>:<&c✗>}" #对于布尔值类型的变量,三项表达式也是可用的。
        - "&f[&b➥&f] 允许兑出: {currency_exchange_out?<&a✔>:<&c✗>}"
        - "&f[&b➥&f] 允许转账: {transfer_allow?<&a✔>:<&c✗>}"
        - ""
      Location: 27
 crystal:
 Type: minecraft
 Item: diamond
Display: "&8====&7> &e{currency_name} &7<&8===="
      Lore:
- ""
        - "&f[&b➥&f] {currency_description}"
        - ""
        - "&f[&b➥&f] 持有数量: &e{currency_count}"
        - "&f[&b➥&f] 允许兑入: {currency_exchange_in?<&a✔>:<&c✗>}"
        - "&f[&b➥&f] 允许兑出: {currency_exchange_out?<&a✔>:<&c✗>}"
        - "&f[&b➥&f] 允许转账: {transfer_allow?<&a✔>:<&c✗>}"
        - ""
      Location: 28
其中,所有可用的变量都展示在此文档中了。值得注意的是,每种节点能使用的变量名都是对应的。例如,在Display节点下,可以使用{currency_name}变量,但这个变量就不能在Lore节点下使用。
在Lore节点中,您或许会注意到这样的变量,它看起来或许有些奇怪:

{currency_exchange_in?<&a✔>:<&c✗>}
这其实是一个三项表达式。意思是currency_exchange_in为true的时候,将表现为前一个"<>"内的字符串;相反,则表现为后一个"<>"内的字符串。
以此为例,当currency_exchange_in为true时,将会表现为&a✔
为了照顾广大用户的体验,本插件特意做出了ItemsAdder的兼容。您可以注意到在货币id下一级节点中有一个"Type"节点。当此节点填入"minecraft"时,则会检测原版的物品。当此节点填入"itemsadder"时,则会检测Item节点中填入的ItemsAdder物品ID。比如,fuben:fb_hb_20。而当您使用ItemsAdder物品时,您不必在意ItemsAdder原本配置内的物品名和描述。此插件会覆盖ItemsAdder原本配置内的物品名和描述,您只需要修改本文件内的配置就可以了,而无需去修改ItemsAdder的配置。




config.yml文件中,您也有一些东西需要配置。
Code:
prefix: "§f[§bMagStar§3Economy§f]"

mysql:
 enabled: false # false 以使用文件,true 以使用 MySQL
  host: localhost # 数据库主机
  db-name: economy # 数据库名
  username: root # 用户名
  password: 123456 # 密码
  port: 3306 # 端口

save-cycle: 300 # 数据库写入缓存时间,0 以禁用(仅在关闭时保存)

main-currency: default-coin #定义基础货币, 即为vault的基础货币.
query-gui: #设置是否开启使用查询gui。
  enabled: false #设为true时,使用查询gui。false时,使用查询消息。

#以下节点仅对使用papi占位符功能起作用。
boolean-true: "是" #当布尔值占位符返回true时,显示的字符串
boolean-false: "否" #当布尔值占位符返回false时,显示的字符串
max-infinite: "∞" #当货币最大持有量为无限时,显示的字符串
本插件支持MySQL和Yaml两种存储方式。本插件不提供自动部署数据库的功能,所以您如果选择使用MySQL,需要自己建立一个数据库,然后插件会自动填入表。
main-currency节点指的是您的基础货币,这个在上文有提到过。
最后三个节点仅在PlaceholderAPI装载时起作用。当解析的占位符返回一个布尔值时,便用到boolean-true和boolean-false,分别代替布尔值的true和false作为显示。而max-infinite节点意为当货币持有量为无限大时,显示该字符串。



语言文件message.yml 所有语言文件的显示均可支持ItemsAdder的emoji。
Code:
finished: "&a操作成功完成"
cancelled: "&c操作已经取消"
not-enough: "&c您没有足够的 &6{1.name} 来完成本操作!"
confirm: "&d&l要继续吗?&b(&ay&b/&cn&b)"
overflow-hint: "&e进行此操作后,您的 &6{1.name}&e 将超出 &6${overflow}\n&e超出部分将被转换为 &6${2.count} ${2.name}"
exchange:
 # {xxx} 代表 xxx 变量
  # 1 要兑出的货币
  # 2 要兑入的货币
  # count 数量,name 名字,tax.rate 税率,tax.result 合计后消耗
  # tax.rate 已经包括百分号
  # 使用 & 代替 § 渲染颜色
  to: "&e您正在将 &6{1.count} {1.name}&e 转换为 &6{2.count} {2.name}. &e这将收取手续费比率 &6{tax.rate}&e,合 &6{tax.result} {1.name}&e"
  no-out: "&c抱歉,&6{1.name}&c 目前不允许被兑出"
  no-in: "&c抱歉,&6{1.name}&c 目前不允许被兑入"
  confirmed: "&a已成功兑换。"
  denied: "&c已取消兑换。"
transfer:
 to: "&e您正在将 &6{1.count} {1.name}&e 转账给 {player.name}. &e这将收取手续费比率 &6{tax.rate}&e,合 &6{tax.result} {1.name}&e"
  from: "&e您收到来自 {player.name} 转账的 {1.count} {1.name}"
  no-transfer: "&c抱歉,&6{1.name}&c 目前不允许转账"
  confirmed: "&a已成功转账。"
  denied: "&c已取消转账。"
sprintf: "&6{1.name}  {1.count}/{1.max}\n&7{1.description}"
wrong-syntax: "&c指令格式错误!请检查指令格式。"
no-currency: "&a您目前还没拥有任何一种货币噢。"
reload: "&a成功重置 &b{config} &a配置文件!"
no-config: "&c没有这个配置文件!"
no-player: "&c此玩家不存在!"
player-offline: "&c此玩家不在线!"
no-such-currency: "&c此种货币不存在!"
currency-overflow: "&c添加/转账该货币后,该玩家的货币数量将超出限制!"
no-permission: "&c你没有权限做这件事!"
change-success: "&a成功将玩家的 &b{currency} &a货币从 &b{fromCount} &a变更为 &b{toCount} &a!"
exchange-same: "&c你不能将相同的货币进行转换!"
balancetop:
 top: "&8------&7====== &f[&b财富榜&f] &7======&8------"
  mid: "&f{rank}. &b{player.name} &f-> &e{player.value} &f财富值"
  bottom: "&8------&7====== &f[&b第 {page} 页&f] &7======&8------"
 overflow: "&c查询位置超出财富榜大小!"


命令及权限
Code:
/eco help                             | 打开指令帮助页面
/eco add <玩家名> <货币名> <钱数>     | 增加玩家货币数量 #需要magstareconomy.admin
/eco set <玩家名> <货币名> <钱数>     | 设置玩家货币数量 #需要magstareconomy.admin
/eco take <玩家名> <货币名> <钱数>    | 取走玩家货币数量 #需要magstareconomy.admin
/eco reload <配置名>                  | 重载某一配置文件 #需要magstareconomy.admin
/money                                | 查看自己的账户
/exchange <原货币> <目标货币> <钱数>  | 将一种货币向目标货币兑换
/transfer <玩家名> <货币名> <钱数>    | 向指定玩家转账
/balancetop [页数]                    | 查看财富榜




PAPI变量
Code:
#所有coinid都代表指定货币的id
%magstareconomy_coinid_value%               #指定货币的价值
%magstareconomy_coinid_name%                #指定货币的名称
%magstareconomy_coinid_description%         #指定货币的描述
%magstareconomy_coinid_content%             #指定货币的余额
%magstareconomy_coinid_exchange-in%         #指定货币是否可以兑入
%magstareconomy_coinid_exchange-out%        #指定货币是否可以兑出
%magstareconomy_coinid_exchange-tax%        #指定货币的单方兑换税
%magstareconomy_coinid_transfer-allow%      #指定货币是否可以转账
%magstareconomy_coinid_transfer-tax%        #指定货币的转账税
%magstareconomy_coinid_max%                 #指定货币的最大持有量





使用截图
此处多图预警!!!

ia.png

gui.png

console.png

balancetop.png

placeholderapi.png
command.png





常见问题

Q: 为什么我使用的部分插件无法正常接入MagstarEconomy的经济系统?
A: 请先在关闭服务器后尝试用【压缩文件预览】的方式打开出现问题的插件jar文件,然后找到这里的plugin.yml。仅将这个文件解压出来,然后删除原压缩包中的plugin.yml】。双击打开,找到【depend:】开头的节点,在里面加上MagstarEconomy,就像这样:
Code:
depend: [MagstarEconomy,CMILib]
或者
depend:
  - MagstarEconomy
  - CMILib
如果原文件中没有depend节点,那就按照上述给出的格式加上就可以。最后,将你的plugin.yml拖拽进压缩文件预览界面,再重启服务器。如果仍然出现相同的问题,请联系我。






尾声

开源地址:https://gitee.com/mag-star/magstar-economy
联系方式:QQ2057266133


烦请您对本插件评个分~


再次感谢您对Magstar系列插件的支持!

Author
Berryso
Downloads
39
Views
446
First release
Last update
Rating
0.00 star(s) 0 ratings

Share this resource