GemsEconomy icon

GemsEconomy -----

This is a custom multi-currency economy plugin! Free & Open Sourced! With vault support




Please read the entire change log!
This version is well tested and should not be bugged at all!

Code (Text):
    /**
     *
     * MySQL would not write or read any data from database - Fixed (Some help from @FurryKitten @ github)
     * Rewritten many parts of loading / saving account data in MySQL.
     * YAML Storage would cache offline users when adding currency to them - Fixed
     * Balance Top command has been rewritten to support more efficient SQL queries.
     * Balance Top cache expiry lowered to 3 minutes from 5.
     * Added an option to enable/disable cheques in config.
     * There has also been many internal changes here and there.
     *
     * SQLITE Support has been dropped! IF this is relevant for you!
     * Please change your backend to YAML with the command /currency convert yaml
     * Before you update of course!
     *
     * THIS UPDATE MODIFIES HOW A PLAYERS BALANCE IS SAVED, ONLY RELEVANT FOR MYSQL USERS!
     * Please take a backup of your balances table before you start your server
     * with this new version of GemsEconomy!
     * The plugin will automatically update the old tables to the new format.
     * When players log in their data will be converted automatically.
     * IF you are using /baltop command a lot, the baltop might become
     * inaccurate due to the players need to log on your server before it can read their balances.
     *
     * Please let me know if you find bugs!
     * PM me here @ SpigotMC
     *
     */
----------, Jan 2, 2021

https://api.extendedclip.com/expansions/gemseconomy/versions/gemseconomy-16/

Code (Text):

   /**
     * Supports 1.16.4 now!
     * Bugs fixed:
     * The first currency you create was not set to default. This is now fixed
     *
     * HikariCP updated to 3.4.5
     * PlaceholderAPI expansion is also fixed!
     * I provided a link to download manually if it's not available yet.
     *
     * Please let me know if you find bugs!
     * PM me here at spigot!
     *
     */
 
----------, Dec 23, 2020

* Changes:
* Cheque validation has been changed. Due to this, all current cheques on your server will no longer be valid.
* Boosted MySql Performance a bit!
* Done a lot of clean up in the code. A lot more readable now :D
* Fixed a possible bug that you could pay yourself somehow?
* Added 1.16 support

This update was completed over a year ago but just not released. Therefore I don't know if I've forgot something. But I added NMSVer for 1.16!
----------, Sep 1, 2020

The syncing issue between servers should be no more now!
I've carefully tested this both with offline and online. It seems to work flawlessly :)
----------, Jul 13, 2019

Hey!
This update fixes the issue where a player would have more or less money on another server than they are playing on. In other words "same currency, different server, different balance" is fixed.

But!
Due to the limitations of the Bungee-Bukkit plugin messaging channels if there is no players on the other server that needs updating, it won't be updated either.
----------, Jul 8, 2019

  • Fixed the async event bug on /eco set
----------, Jun 9, 2019

Changes:
* Fixed the Cache, I made a cache for accounts but didn't actually use it.
So this would bring a performance boost regarding account lookups. (Data reading)
* Fixed a money dupe bug when a player joins first time, receives money and can pay infinite until they rejoin.

This update fixes the async event bug!

* Added support for 1.14!

* Please let me know if you find bugs!
* PM me or contact me on discord!
----------, Jun 8, 2019

This a version that might fix the problem in previous versions.
----------, Mar 9, 2019

I have not tested this version myself due to the time it takes to test this bug:
Database is not connected!

This happens when the server is left on for hours and hours and can happen after a while.
Let me know if this version does not fix this.
----------, Mar 1, 2019

Added:
  • /currency backend <mysql,yaml,sqlite> - This command allows you to change the current backend, this does not convert the data from the old to the new.
  • New messages to the command above, you can find them here, they are pointed out with an arrow. It is 2 new messages.
    Code (Text):
    # GemsEconomy
    # Version: 4.7.3
    # GemsEconomy Main Configuration file.
    # Developer(s): [Xanium]
    #
    # You have three valid storage methods, yaml, mysql or sqlite. If you choose mysql you would have to enter the database credentials down below.
    # All messages below are configurable, I hope you use them because it took 1 hour to make all of them into the plugin and configurable.
    storage: YAML
    debug: false
    vault: true
    transaction_log: true
    mysql:
      database: gemseconomy
      tableprefix: ge
      host: localhost
      port: 3306
      username: username
      password: password
    sqlite:
      file: database.sqlite
    cheque:
      material: PAPER
      name: '&aBank Note'
      lore:
      - '&7Worth: {value}.'
      - '&7&oWritten by {player}'
      console_name: Console
    Messages:
      prefix: '&2&lGemsEconomy> '
      nopermission: '&7You don''t have permission to do this.'
      noconsole: '&7Console cannot do this.'
      invalidamount: '&7Not a valid amount.'
      invalidpage: '&7Not a valid page number.'
      pay_yourself: '&7You can''t pay yourself.'
      player_is_null: '&7The specified player does not exist.'
      unknownCurrency: '&7Unknown Currency.'
      unknownCommand: '&7Unknown sub-command.'
      noDefaultCurrency: '&7No default currency.'
      currencyExists: '&7Currency already exists.'
      accountMissing: '&7Your account is missing. Please relog the server.'
      cannotReceiveMoney: '&a{player}&7 can''t receive money.'
      insufficientFunds: '&7You don''t have enough {currencycolor}{currency}&7!'
      targetInsufficientFunds: '&e{target} &7don''t have enough {currencycolor}{currency}&7!'
      paid: '&7You were paid {currencycolor}{amount} &7from &a{player}&7.'
      payer: '&7You paid {currencycolor}{amount} &7to &a{player}&7.'
      payNoPermission: '&7You don''t have permission to pay {currencycolor}{currency}&7.'
      currencyNotPayable: '{currencycolor}{currency} &7is not payable.'
      add: '&7You gave &a{player}&7: {currencycolor}{amount}. '
      take: '&7You took {currencycolor}{amount} &7from &a{player}&7.'
      set: '&7You set &a{player}&7''s balance to {currencycolor}{amount}&7.'
      exchange_rate_set: '&7Set the exchange rate for {currencycolor}{currency} &7to &a{amount}&7.'
      exchange_success_custom_other: '&7Successfully exchanged {currencycolor}({currEx})
        &7for {currencycolor2}{receivedCurr}&7 to player {player}&7.'
      exchange_success_custom: '&7Successfully exchanged {currencycolor}({currEx}) &7for
        {currencycolor2}{receivedCurr}&7.'
      exchange_success: '&7Successfully exchanged {currencycolor}{ex_curr} &7for equivalent
        value in {currencycolor2}{re_curr}&7.'
      exchange_command:
        no_perms:
          preset: '&7You don''t have permission to exchange currencies with a preset rate.'
          custom: '&7You don''t have permission to exchange currencies with a custom rate.'
      balance:
        current: '&a{player}&7''s balance is: {currencycolor}{balance}'
        multiple: '&a{player}&7''s balances:'
        list: '&a&l>> {currencycolor}{format}'
        none: '&7No balances to show for &c{player}&7.'
      balance_top:
        balance: '&a&l-> {number}. {currencycolor}{player} &7- {currencycolor}{balance}'
        header: '&f----- {currencycolor} Top Balances for {currencyplural} &7(Page {page})&f
          -----'
        empty: '&7No accounts to display.'
        next: '{currencycolor}/gbaltop {currencyplural} {page} &7for more.'
        nosupport: '&a{storage} &7doesn''t support /baltop.'
      cheque:
        success: '&7Cheque successfully written.'
        redeemed: '&7Cheque has been cashed in.'
        invalid: '&7This is not a valid cheque.'
      help:
        eco_command:
        - '{prefix}&e&lEconomy Help'
        - '&2&l>> &a/eco give <user> <amount> [currency] &8- &7Give a player an amount
          of a currency.'
        - '&2&l>> &a/eco take <user> <amount> [currency] &8- &7Take an amount of a currency
          from a player.'
        - '&2&l>> &a/eco set <user> <amount> [currency] &8- &7Set a players amount of
          a currency.'
        exchange_command:
        - '{prefix}&b&lExchange Help'
        - '&2&l>> &a/exchange <account> <currency_to_exchange> <amount> <currency_to_receive>
          <amount> &8- &7Exchange between currencies with a custom rate for an account.'
        - '&2&l>> &a/exchange <currency_to_exchange> <amount> <currency_to_receive> <amount>
          &8- &7Exchange between currencies with a custom rate.'
        - '&2&l>> &a/exchange <currency_to_exchange> <amount> <currency_to_receive> &8-
          &7Exchange with a pre-set exchange rate.'
        cheque_command:
        - '{prefix}&e&lCheque Help'
        - '&2&l>> &a/cheque write <amount> [currency] &8- &7Write a cheque with a specified
          amount and currency.'
        - '&2&l>> &a/cheque redeem &8- &7Redeem the cheque.'
        currency_command:
        - '{prefix}&e&lCurrency Help'
        - '&2&l>> &a/currency create <singular> <plural> &8- &7Create a currency.'
        - '&2&l>> &a/currency delete <plural> &8- &7Delete a currency.'
        - '&2&l>> &a/currency convert <method> &8- &7Convert storage method. WARN: Take
          backups first and make sure the storage you are switching to is empty!'
    -->    - '&2&l>> &a/currency backend <method> &8- &7Switch backend. This does not convert.'
        - '&2&l>> &a/currency view <plural> &8- &7View information about a currency.'
        - '&2&l>> &a/currency list &8- &7List of currencies.'
        - '&2&l>> &a/currency symbol <plural> <char|remove> &8- &7Select a symbol for
          a currency or remove it.'
        - '&2&l>> &a/currency color <plural> <color> &8- &7Select a color for a currency.'
        - '&2&l>> &a/currency colorlist &8- &7List of Colors.'
        - '&2&l>> &a/currency decimals <plural> &8- &7Enable decimals for a currency.'
        - '&2&l>> &a/currency payable <plural> &8- &7Set a currency payable or not.'
        - '&2&l>> &a/currency default <plural> &8- &7Set a currency as default.'
        - '&2&l>> &a/currency startbal <plural> <amount> &8- &7Set the starting balance
          for a currency.'
        - '&2&l>> &a/currency setrate <plural> <amount> &8- &7Sets the currency''s exchange
          rate.'
      usage:
        pay_command: '&2&l>> &a/pay <user> <amount> [currency] &8- &7Pay the specified
          user the specified amount.'
        give_command: '&2&l>> &a/eco give <user> <amount> [currency] &8- &7Give a player
          an amount of a currency.'
        take_command: '&2&l>> &a/eco take <user> <amount> [currency] &8- &7Take an amount
          of a currency from a player.'
        set_command: '&2&l>> &a/eco set <user> <amount> [currency] &8- &7Set a players
          amount of a currency.'
        currency_create: '&2&l>> &a/currency create <singular> <plural> &8- &7Create a
          currency.'
        currency_delete: '&2&l>> &a/currency delete <plural> &8- &7Delete a currency.'
        currency_convert: '&2&l>> &a/currency convert <method> &8- &7Convert storage method.
          WARN: Take backups first and make sure the storage you are switching to is empty!'
    --> currency_backend: '&2&l>> &a/currency backend <method> &8- &7Switch backend. This
          does not convert.'
        currency_view: '&2&l>> &a/currency view <plural> &8- &7View information about
          a currency.'
        currency_list: '&2&l>> &a/currency list &8- &7List of currencies.'
        currency_symbol: '&2&l>> &a/currency symbol <plural> <char|remove> &8- &7Select
          a symbol for a currency or remove it.'
        currency_color: '&2&l>> &a/currency color <plural> <color> &8- &7Select a color
          for a currency.'
        currency_colorlist: '&2&l>> &a/currency colorlist &8- &7List of Colors.'
        currency_payable: '&2&l>> &a/currency payable <plural> &8- &7Set a currency payable
          or not.'
        currency_default: '&2&l>> &a/currency default <plural> &8- &7Set a currency as
          default.'
        currency_decimals: '&2&l>> &a/currency decimals <plural> &8- &7Enable decimals
          for a currency.'
        currency_startbal: '&2&l>> &a/currency startbal <plural> <amount> &8- &7Set the
          starting balance for a currency.'
        currency_setrate: '&2&l>> &a/currency setrate <plural> <amount> &8- &7Sets the
          currency''s exchange rate.'
Fixed:
  • Possible NPE on the convert command.
----------, Feb 5, 2019

This small change makes that account creation happens later than the previous version because of anti bot plugins. This change is made because i had reports of this plugin crashing servers when they were bot attacked. So now it should not make any account unless the "player entity" is fully logged in.

Please let me know if this version breaks your server. I've tested it carefully but it worked fine for me.
----------, Jan 27, 2019

I've derped the unknown sub command message. Its now fixed and the plugin should work perfectly.
----------, Jan 21, 2019

I've added 3 events that can be used as an api.

  • GemsTransactionEvent
  • GemsPayEvent
  • GemsConversionEvent
Remember to regenerate your config file if you haven't done that when you updated to version 4.6
----------, Jan 20, 2019

Whats been done:
- Removed migration system from version 3.2.1
- Found unnecessary data saving, removed it, should be some what faster now.
- Commands have been renamed, still works with the old names as aliases. I've made this change because i think this plugin is worthy of overriding other "eco" plugins. You should not need any other when you got this.
- Fixed bugs regarding data storing conversions that made the account data not save.
- MySQL Data store backend is now HikariCP. (A lot better performance)
- New logging system. A lot more understandable log files!
- New Exchange and Conversion between currency rates system. Sorry for this being delayed so many times.
- You can now use underscores (___) in currency singular and plural to make the plugin format the name as this: US Dollar (When you actually typed in this to create the currency: US_Dollar)
- Logging is now enabled by default :)
- New messages in the config file you might want to backup your old one and let it generate a new one!
- New permissions regarding exchange command! ( gemseconomy.command.exchange.preset, gemseconomy.command.exchange.custom & gemseconomy.command.exchange.custom.other)
----------, Jan 14, 2019

Hey! I've added another storage method and that is SQLite some people requested this and I've added it in this version.

I've fixed the cheques part which was totally broken and now I haven't found a bug yet with an hour of testing different things with it.

What was broken with it:
  • If you had more than 1 cheque stacked you had infinite money.
  • You could write cheques that you did not have the money to pay for.
  • Basicly really broken xD

I also updated the cheque lore.

The convert command has been changed aswell so you can now convert between yaml, sqlite and mysql.
WARN: Please delete the prior gemseconomy tables in the sqlite or mysql database before you convert!
----------, Dec 1, 2018

Fixed a issue with the baltop command regarding double currency symbol which looks weird.
Please remove this variable from the config.yml:

Code (Text):
balance_top:
    balance: '&a&l-> {number}. {currencycolor}{player} &7- {currencycolor}{currencysymbol}{balance}'
change to this or what you have but just remove the {currencysymbol} variable
balance_top:
    balance: '&a&l-> {number}. {currencycolor}{player} &7- {currencycolor}{balance}'
----------, Nov 23, 2018

Fixed:
  • Vault Compatibility adding money when it should remove money.
  • Exchange Rate not found when loading currencies. This feature is delayed until I can get it working right.
----------, Nov 10, 2018

It has been a while since I last updated GemsEconomy but I've finally managed to get myself to do it.

There is some features that are in the plugin now but not enabled due to some problems I found but it is working as it should with MySQL and YML storage methods.

  • 1.13 Support has been added
  • A bug that makes a players balance -1 with mysql has been corrected.
  • New features are coming soon!

Please! Report! Bugs!
You can do so by private messaging or send me a message on discord. Do Not use the review section for this.
----------, Nov 9, 2018

This small update adds an check to make sure the default currency is not null in the pay command.
This has been added due to many people complaining about the command doesn't work, when in reality they have not created a currency.
----------, Aug 2, 2018

Added a message to the pay command.
----------, Jul 8, 2018

This update fixes the balance top command.
----------, Jul 1, 2018

I have added:
  1. Another API method. #getCurrency();
  2. /geco add|give
  3. /geco remove|take
----------, Jun 6, 2018

I've added a basic API for GemsEconomy.

Please read the API section of the main page.
----------, May 30, 2018

Whats been fixed:
  • Pay command now works.
  • Balance Top command now works.

Added:
  1. I added a message when the plugin does not find any currencies it tells you that you would have to create one.
----------, May 30, 2018

What has been done:
  • The plugin has been 100% recoded from scratch.
  • The new features are as following:
  • Balance Top command! (Only works on mysql)
  • Currency Command! This allows you to have multiple currencies at once! You must create a currency if you want the plugin to work. This means that if you don't create a currency, the plugin won't do anything.
  • Cheque's is working for all versions now.
  • Legacy Version support. 1.8, 1.7 etc.
  • Messages have been edited a lot! You might want to check those out.
  • Migration system from the old version of GemsEconomy (3.2.1)
  • New Permissions! See the resource page for those!
  • Transaction Logging! If enabled in config. This feature might need more work to make it detailed but should give a hint of what a player does etc.

What have not been edited:
  • Metrics.
  • The updater.

This update changes the plugin a lot! I hope you like this update thou :)
----------, May 1, 2018

  • Fixed /balance <player>
----------, Apr 14, 2018

Bug Fixes:
  • Fixed players not keeping their money after a world reset.
  • Removed offline player support, by this i mean using the class "OfflinePlayer". I've created something myself that is faster and better.
  • Removed alias "/bal" for BalanceCommand.
----------, Apr 12, 2018

  1. You can now change the table name for storing the accounts in the mysql database.
  2. Added an advanced option to set how much the max connection pool size can be. (MySQL)
----------, Mar 14, 2018

What's been done:
  • Updated compiler versions
  • Updated Hikari.
  • Added built-in Vault support, this can be enabled in the config file. It is disabled by default.
  • Added Update checker, do not worry! This won't spam your ingame chat. It will only print a message in the console when the plugin is loading.
  • Added Metrics, just because I am curious over how many servers is running this plugin.

Note:
The custom vault version is no longer needed, please if you used it, add the original vault version back in case of inconsistencies between them.
----------, Mar 2, 2018

  • This version has full support for Vault, may contain bugs with some plugins. Please report to me if you find an error between GemsEconomy and Vault when a plugin calls something.
  • You need to use the vault jar file supplied from this download if you want vault support.
  • (Vault) Updated vault to newest minecraft version. Should still work for all other versions.
  • (Vault) Dropped support for perms plugin DroxPerms, due to it being outdated and super old.
  • Aliases added! Commands have been renamed.
  • Offline support!
  • I have tested this bridge offline and online, found 0 bugs, it should work perfectly. If not please report to me by PM.

As I said, there might be bugs with some plugins. Please report it to me straight away, so I can fix it.

Enjoy the update.
----------, Feb 8, 2018

Last update didn't fix the issue for some people. But now it would for everyone hopefully.

NOTICE!
Never delete userdata file "loggedPlayers.yml" then everyone who logs in will receive the default amount again.
This is only for people who use flatfile/yml.
----------, Jan 1, 2018

Fixed:
  • You could not set default starting balance while using flatfile/yml
----------, Dec 31, 2017

Alias Update:

/balance -> /bal, /gembal, /gemsbalance, /gemsbal
/eco -> /economy, /geco, /gemeco, /gemseconomy
/pay -> /gpay, /gemspay, /gempay
/cheque -> /banknote, /note, /gnote, /gemcheque, /gemscheque
----------, Sep 26, 2017

Added:
  • A setting in the config to disable cheques on versions lower than 1.9. The reason for why I added this is because you will get a lot error spam in your console if you don't disable this.
----------, Sep 11, 2017

Fixed:
  • A bug which didn't correctly load the balance into the cache used inside GemsEconomy. Now it load the information instantly and the error with for example featherboard will not happen again hopefully.
----------, Aug 29, 2017

The cheque bug, might be fixed. I personally don't know since i can replicate this.
----------, Jul 27, 2017

Added:
  • Ability to set the starting balance.
Fixed:
  • A NPE being trigger when you simply right click anything.
----------, Jul 27, 2017

Fixed:
  • When having an item with both a custom displayname and lore, it would trigger the cheque listener.
----------, Jul 26, 2017

In this update the placeholders have been redone, I've made an expansion you will find in the expansion cloud in placeholderapi. The updated placeholders is available on the main page.

Added:
  • Cheques has been added. Now you can write a cheque and give it away or require a payment for it. Might be good for events.
Removed:
  • Old placeholder system. Now you would have to download the expansion ingame. /papi ecloud download GemsEconomy
  • The placeholders have changed.
----------, Jul 18, 2017

Fixed:
  • That you could not use clips placeholder when not using mysql.
----------, Jul 16, 2017

Added:
  • An API to modify the balance of an player.
----------, Jun 13, 2017

Huge update!
  • I have recoded the plugin from scratch with new and better solutions for almost everything, especially mysql.
  • The developer API is coming soon.
  • Permissions have changed.
  • Commands have changed.
  • Much better performance.
  • Support for MVdW's PlaceholderAPI is dropped, you can use the placeholder {placeholderapi_gemseconomy_gems} in MVdW Software, aslong as you have Clip's PlaceholderAPI installed.
Sadly the plugin is no longer open source. It's now under All Rights Reserved.
----------, Jun 11, 2017

I fixed a bug, where it could not find the main class.
----------, Jan 19, 2017

This plugin now supports 1.11!

I have added some checks here and there for some reason you would get under 0 gems, if it does, it will reset to 0.

The packages has been renamed for those who does use the API.
Due to that I do no longer have the domain minecoremc.com.
New names = me.JohnCrafted.gemseconomy.*
----------, Nov 17, 2016

I've finally got down to adding mysql support for this plugin!

I suspect there may be some bugs so please report them to me!
I have also redone the commands a bit.

Read through the config file! There is some critical information there.

Take a backup of your config.yml first! (Just in case)


New permissions:
- gemseconomy.command.balance.other - Allowing people to see other players balances.
- gemseconomy.command.pay - Allows people to pay each other.
----------, Sep 12, 2016

Hello, It is a long time since I updated GemsEconomy and I decided to add something you might like.



Added:
- Being able to edit messages fully. (Color Support)
- More Utils for devs. (API).
- An option to register an account for a player when he/her joins. If he/her don't have one.

Fixed:
- Not being able to pay anyone.
- Config reset bug.

Edited:
- Class Converter renamed to "UUIDConverter"
- MathConverter methods are found in "UtilMath".
----------, Apr 10, 2016

Resource Information
Author:
----------
Total Downloads: 85,767
First Release: Mar 7, 2016
Last Update: Dec 23, 2020
Category: ---------------
All-Time Rating:
112 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings