![]()
Tokens system for Pocketmine-MP
Always wanted to add a token system to your Pocketmine-MP server? Look no more, with this plugin you can now give players token balances! Players can pay eachother and much more!
This plugin also supports multi-language support, The only downside is that I used Google translate so some messages may appear out of placed/unright. Sorry if Google butchered your language! Help is always wanted so if you want to contribute please open a pull request thank you!
ScoreHud is supported scroll down to the Addon section to download!
Easy to use API for developers! ❤️
TokensAPI had a huge code rewrite on January 24, 2025
This rewrite introduced new features aswell as fixes/improvements. Configurable messages, added multiple storage types for storing token balances and rewrote 99% of the code.
- Configurable messages
- Multi-language support (English, Spanish, German, French, Traditional Chinese, Simplified Chinese and more to come!)
- 2 storage types (MySQL and SQLite)
- Easy to use API
- ScoreHud support (See
Addonsection)
| Command | Description | Permission | Default |
|---|---|---|---|
/addtokens <player> <amount> |
Allows the op-player to add tokens from another player token balance. |
tokensapi.addtoken |
op |
/settokens <player> <amount> |
Allows the op-player to set another from anothet player token balance. |
tokensapi.settoken |
op |
/removetokens <player> <amount> |
Allows the op-player to remove tokens another player token balance. |
tokensapi.removetoken |
op |
/paytokens <player> <amount> |
Allows the player to pay tokens to another player token balance. |
tokensapi.paytoken |
true |
/seetokens <player> |
Allows the player to see another players token balance. |
tokensapi.seetoken |
true |
/mytokens |
Allows the player to see their token balance. |
tokensapi.mytoken |
true |
/toptokens |
Allows the player to see the top token balances on the server. |
tokensapi.topbalances |
true |
# Terpz710
# NOTE: All translations were done via Google translate, Sorry if Google butchered your language!
# Choose the language for all the messages:
# Options:
# - "en": English (default)
# - "es": Spanish
# - "fr": French
# - "de": German
# - "zh-t": Traditional Chinese
# - "zh-s": Simplified Chinese
language: "en"
# Choose the storage type for player token balances:
database:
# The database type. "sqlite" and "mysql" are supported.
type: sqlite
# Edit these settings only if you choose "sqlite".
sqlite:
# The file name of the database in the plugin data folder.
# You can also put an absolute path here.
file: tokens.db
# Edit these settings only if you choose "mysql".
mysql:
host: 127.0.0.1
# Avoid using the "root" user for security reasons.
username: root
password: ""
schema: your_schema
# The maximum number of simultaneous SQL queries
# Recommended: 1 for sqlite, 2 for MySQL. You may want to further increase this value if your MySQL connection is very slow.
worker-limit: 1
# Starting amount for new player accounts
starting-amount: 1000How to get the token instance:
/** Import this class */
use terpz710\tokensapi\TokensAPI;
$api = TokensAPI::getInstance();How to retrieve a players token balance:
/** $player can be either an instance of Player::class or PlayerName (e.g. Steve) */
$api = TokensAPI::getInstance();
$api->getTokens($player);
or
$name = "Steve";
$api->getTokens($name);How to add tokens to a player:
/** $player can be either an instance of Player::class or PlayerName (e.g. Steve) */
$amount = 100;
$api = TokensAPI::getInstance();
$api->addTokens($player, $amount);
or
$name = "Steve";
$amount = 100;
$api->addTokens($name, $amount);How to remove tokens from a player:
/** $player can be either an instance of Player::class or PlayerName (e.g. Steve) */
$amount = 100;
$api = TokensAPI::getInstance();
$api->removeTokens($player, $amount);
or
$name = "Steve";
$amount = 100;
$api->removeTokens($name, $amount);How to set a players token balance:
/** $player can be either an instance of Player::class or PlayerName (e.g. Steve) */
$amount = 100;
$api = TokensAPI::getInstance();
$api->setTokens($player, $amount);
or
$name = "Steve";
$amount = 100;
$api->setTokens($name, $amount);How to check if a player has a token balance before adding tokens:
/** $player can be either an instance of Player::class or PlayerName (e.g. Steve) */
$amount = 100;
$api = TokensAPI::getInstance();
/**
* Call this before attempting to add/remove/set tokens
* Take a look at AddTokensCommand.php for a refrence
*/
if (!$api->hasTokenBalance($player)) {
$player->sendMessage("Steve does not have a token balance");
return;
}
$api->setTokens($player, $amount);
or
$name = "Steve";
$amount = 100;
/**
* Call this before attempting to add/remove/set tokens
* Take a look at AddTokensCommand.php for a refrence
*/
if (!$api->hasTokenBalance($name)) {
$player->sendMessage($name . " does not have a token balance");
return;
}
$api->setTokens($name, $amount);Make sure to make a fork before creating a pull request.
Note I dont accept any pull request!
I wont accept request IF the following change isnt major.
Click below to open a pull request:
I appreciate your help and support to make sure this project is bug/error free!
Click below to sumbit a bug report:
This plugin supports ScoreHud!
Link to addon: TokensAPIScoreTag
-
Configurable messages (completed)
-
MySQL and MySQL Lite (completed)
-
Multi-language support (completed)
Got any ideas? DM me via discord Ace873056