BenthKese

An advanced purse/economy plugin that enhances the economies of Towny servers with trade limits, treasury investment (interest), and a full GUI.

73

BenthKese

BenthKese

[Version]()

Advanced Virtual Pouch & Economy System

BenthKese is a modern Spigot plugin that allows players to deposit and withdraw valuable items (like Gold Ingots, by default) into a virtual pouch, converting them to a digital currency. Going beyond a simple item-to-money converter, it adds layers of depth and control to your server's economy with fully configurable systems.

With its user-friendly menus, powerful admin tools, transparent transaction history, and extensive PlaceHolderAPI support, BenthKese is the perfect addition to any server economy.

Screenshots

Main Menu

Ana Menü

Time Deposit Account

Vadeli Faiz Hesabı

Quick Deposit

Hızlı Para Yatırma

Withdraw Money

Para Çekme

Transaction History

İşlem Geçmişi

✨ Key Features

💎 Player-Focused Features

* Action Bar An interactive and stylish main menu, accessed with `/kese`, where all transactions can be handled with ease. * Action Bar Deposit a specific amount (`/kese deposit 64`), all items in your hand (`/kese deposit hand`), or all items in your inventory (`/kese deposit inventory`) with a single command. * Action Bar If your inventory is full when withdrawing, the plugin gives you the maximum amount you can carry and notifies you. * Action Bar Players can view their last 50 financial transactions (sending, receiving, level-ups, etc.) transparently through the GUI. * Action Bar A confirmation menu for high-cost actions (like upgrading limits or breaking a time deposit) prevents accidental clicks. * Action Bar * After a transfer, players receive an instant update on their current limit status via the Action Bar. * The remaining time for time deposits in the interest menu updates dynamically every second, allowing players to track their investments without refreshing the menu.

🏦 Advanced Systems

* Dynamic Buttons: * Create fully customizable limit levels in `limits.yml`. * Each level can have its own name, cost, and daily sending/receiving limits. * Players can upgrade their limit levels in-game by paying the configured cost. * Dynamic Buttons: * Players can lock their money for a specific duration (`1d`, `7d`, etc.) to earn interest based on rates defined in `config.yml`. * All time deposit accounts are easily managed through a dedicated GUI. * Dynamic Buttons: * Buttons in the GUI change dynamically based on the player's status. For example, if a player doesn't have enough money to upgrade their limit, the button turns red and explains why.

⚙️ Admin & Server Features

* all menus * all menus Instantly refresh all configuration files without a server restart. * all menus Add, remove, or set a player's Vault balance directly. * all menus Instantly change a player's limit level. * all menus * Choose between all menus, all menus (default), or all menus storage to fit your server's needs. MySQL is supported with the high-performance `HikariCP` connection pool. * all menus Customize every single message in the plugin via `messages.yml`, complete with color codes and variables. * all menus * In addition to `messages.yml` and `limits.yml`, you can now fully control the appearance and layout of all menus in the plugin through the `menus.yml` file. * Adjust menu sizes, titles, and the material, slot position, name, and lore of buttons to match your server's theme without any coding.

🌐 Integrations

* AnvilGUI (Embedded): Works seamlessly with any economy plugin on your server. * AnvilGUI (Embedded): Extensive placeholder support for integration with scoreboards, chat formats, and other plugins. * AnvilGUI (Embedded): Uses modern and user-friendly interfaces to get input like amounts or player names.

📦 Installation

1. Download the latest version of the plugin (`BenthKese-1.0.1.jar`) from the Releases page. 2. Ensure you have Vault installed on your server. 3. (Optional) Install PlaceHolderAPI. 4. Place the downloaded `.jar` file into your server's `plugins/` folder. 5. Start the server. The plugin will generate `config.yml`, `messages.yml`, `menus.yml`, and `limits.yml` in the `plugins/BenthKese/` directory. 6. Customize the configuration files to your liking and use `/bka reload` to apply the changes instantly.

🛠️ Commands & Permissions

Player Commands (`/kese`)

| Command | Description | Permission | | --- | --- | --- | | `/kese` | Opens the main GUI menu. | `benthkese.command.gui` | | `/kese help` | Shows the help menu. | `benthkese.command.help` | | `/kese deposit [amount|hand|inventory]` | Deposits items into the pouch. | `benthkese.command.koy` | | `/kese withdraw [amount]` | Withdraws items from the pouch. | `benthkese.command.al` | | `/kese send <player> <amount>` | Sends money to another player. | `benthkese.command.gonder` | | `/kese limit` | Shows info about all limit levels. | `benthkese.command.limit.info` | | `/kese limit status` | Shows your personal limit status. | `benthkese.command.limit.gor` | | `/kese limit upgrade` | Upgrades your limit level. | `benthkese.command.limit.yukselt`| | `/kese interest` | Opens the Time Deposit System menu. | `benthkese.command.faiz` | | `/kese interest create <amount> <duration>` | Creates a new time deposit account. | `benthkese.command.faiz.koy` |

Admin Commands (`/keseadmin` or `/bka`)

| Command | Description | Permission | | --- | --- | --- | | `/bka reload` | Reloads the plugin's configuration files. | `benthkese.admin.reload` | | `/bka limit set <player> <level>` | Sets a player's limit level. | `benthkese.admin.limit` | | `/bka balance <add|remove|set> <player> <amount>`| Manages a player's balance. | `benthkese.admin.bakiye` |

📊 PlaceHolderAPI Placeholders

You can use the following placeholders in any plugin that supports PlaceHolderAPI.

Personal Balance & Limits

| Placeholder | Description | | --- | --- | | `%benthkese_bakiye_formatted%` | Shows the player's current balance, formatted (`1,234 ⛁`). | | `%benthkese_bakiye_raw%` | Returns the player's raw balance as a number (`1234.56`). | | `%benthkese_limit_seviye_adi%` | Returns the name of the player's current limit level. | | `%benthkese_limit_seviye_id%` | Returns the numeric ID of the player's current limit level. | | `%benthkese_limit_gonderme_kalan%` | Returns the player's remaining daily send limit. | | `%benthkese_limit_gonderme_kullanilan%` | Shows the amount sent by the player today. | | `%benthkese_limit_gonderme_max%` | Shows the player's maximum daily send limit. | | `%benthkese_limit_alma_kalan%` | Returns the player's remaining daily receive limit. | | `%benthkese_limit_reset_suresi%` | Shows the time remaining until daily limits reset. | | `%benthkese_limit_sonraki_seviye_adi%` | Returns the name of the next limit level. | | `%benthkese_limit_sonraki_seviye_ucret%` | Returns the cost to upgrade to the next level. | | `%benthkese_limit_sonraki_seviye_ilerleme%`| Shows the player's progress to the next level as a percentage.| | `%benthkese_limit_yukseltebilir_mi%` | Shows if the player can afford to upgrade (`Yes`/`No`). |

Time Deposit System

| Placeholder | Description | | --- | --- | | `%benthkese_faiz_hesap_sayisi%` | Shows the number of the player's active time deposit accounts. | | `%benthkese_faiz_hesap_durum%` | Shows the account status in `current / max` format. | | `%benthkese_faiz_yatirim_toplam%` | Shows the total principal amount in all of the player's time deposits. | | `%benthkese_faiz_sonraki_kazanc_miktar%` | Shows the return from the next maturing account. | | `%benthkese_faiz_sonraki_kazanc_sure%` | Shows when the next account will mature. |

Personal Statistics

| Placeholder | Description | | --- | --- | | `%benthkese_toplam_islem_sayisi%` | Shows the player's total number of transactions. | | `%benthkese_gonderilen_toplam_para%` | Shows the total amount of money the player has ever sent. | | `%benthkese_odenen_toplam_vergi%` | Shows the total amount of taxes the player has ever paid. | | `%benthkese_siralama_bakiye%` | Shows the player's balance rank on the server. | | `%benthkese_siralama_bakiye_hedef_kalan%` | Shows the amount needed to overtake the player ranked above. |

Server Leaderboards (SQL Required)

| Placeholder | Description | | --- | --- | | `%benthkese_top_bakiye_isim_<1-10>%` | Shows the name of the top X richest player. | | `%benthkese_top_bakiye_deger_<1-10>%` | Shows the balance of the top X richest player. | | `%benthkese_top_seviye_isim_<1-10>%` | Shows the name of the player with the top X highest limit level. | | `%benthkese_top_seviye_deger_<1-10>%` | Shows the level name of the player with the top X highest limit level. |

Server Information

| Placeholder | Description | | --- | --- | | `%benthkese_ekonomi_item_adi%` | Shows the name of the physical item used for the economy. | | `%benthkese_vergi_yatirma_oran_yuzde%` | Shows the deposit tax rate as a percentage. | | `%benthkese_vergi_cekme_oran_yuzde%` | Shows the withdrawal tax rate as a percentage. | | `%benthkese_vergi_gonderme_oran_yuzde%` | Shows the send tax rate as a percentage. |

⚙️ Configuration

The plugin comes with four main configuration files:

* `menus.yml`: Main settings. Manage storage type, economy item, taxes, and interest rates here. * `menus.yml`: All text in the plugin. Fully customizable. * `menus.yml`: The heart of the plugin. Create your own limit levels, with custom names, costs, and values. * `menus.yml`: Manage the appearance, layout, and text of all in-game menus.

Example `limits.yml` structure: ```yaml limit-levels: 1: name: "&7Starter" cost: 1000.0 send-limit: 5000.0 receive-limit: 10000.0 2: name: "&aMerchant" cost: 5000.0 send-limit: 25000.0 receive-limit: 50000.0 3: name: "&dBaron" cost: 0.0 send-limit: -1.0 # -1 means infinite limit receive-limit: -1.0 ```

🤝 Support & Contribution

If you find a bug or want to suggest a feature, please use the Issues tab on the project's GitHub. Pull requests are always welcome.

📜 License

This project is licensed under the MIT License. See the `LICENSE` file for more details.

ADS