Economics is a basic economics system that other plugins can make use of by using the provided API. On its own, this plugin only provides the features listed and has no shop.
Permissions
economics.balance
-- Allows player to use thebalance
command for other playerseconomics.deposit
-- Allows player to use thedeposit
commandeconomics.depositall
-- Allows player to use thedeposit
command to deposit amount to all playerseconomics.setbalance
-- Allows player to use thesetbalance
commandeconomics.setbalanceall
-- Allows player to use thesetbalance
command to set money for all playerseconomics.transfer
-- Allows player to use thetransfer
commandeconomics.transferall
-- Allows player to use thetransfer
command to transfer amount to all connected playerseconomics.withdraw
-- Allows player to use thewithdraw
commandeconomics.withdrawall
-- Allows player to use thewithdraw
command to withdraw amount from all playerseconomics.wipe
-- Allows player to use theecowipe
command to wipe data
Commands
balance
Check your balance (does not require or use a permission)balance <player name or id>
Check [name] player balance (requires economics.balance)deposit <player name or id | *> <amount>
Deposit [amount] to [name] player (requires economics.deposit)setbalance <player name or id | *> <amount>
Set balance to [amount] for [name] player (requires economics.setbalance)transfer <player name or id | *> <amount>
Transfer [amount] to [name] player (requires economics.transfer)withdraw <player name or id | *> <amount>
Withdraw [amount] from [name] player (requires economics.withdraw)ecowipe
Wipe all saved Economics data, including balances (requires economics.wipe)
Note: The asterisk (*) in the above command usage means ALL players; use with caution. Using the * for ALL players requires to associated *All permission.
Configuration
{
"Allow negative balance for accounts": false,
"Balance limit for accounts (0 to disable)": 0,
"Negative balance limit for accounts (0 to disable)": 0,
"Remove unused accounts": true,
"Log transactions to file": false,
"Starting account balance (0 or higher)": 1000,
"Wipe balances on new save file": false
}
Note: The wipe on new save option currently only works with Rust and Hurtworld.
Localization
{
"CommandBalance": "balance",
"CommandDeposit": "deposit",
"CommandSetBalance": "SetBalance",
"CommandTransfer": "transfer",
"CommandWithdraw": "withdraw",
"CommandWipe": "ecowipe",
"DataSaved": "Economics data saved!",
"DataWiped": "Economics data wiped!",
"DepositedToAll": "Deposited {0:C} total ({1:C} each) to {2} player(s)",
"LogDeposit": "{0:C} deposited to {1}",
"LogSetBalance": "{0:C} set as balance for {1}",
"LogTransfer": "{0:C} transferred to {1} from {2}",
"LogWithdrawl": "{0:C} withdrawn from {1}",
"NegativeBalance": "Balance can not be negative!",
"NotAllowed": "You are not allowed to use the '{0}' command",
"NoPlayersFound": "No players found with name or ID '{0}'",
"PlayerBalance": "Balance for {0}: {1:C}",
"PlayerLacksMoney": "'{0}' does not have enough money!",
"PlayersFound": "Multiple players were found, please specify: {0}",
"ReceivedFrom": "You have received {0} from {1}",
"SetBalanceForAll": "Balance set to {0:C} for {1} player(s)",
"TransactionFailed": "Transaction failed! Make sure amount is above 0",
"TransferredTo": "{0} transferred to {1}",
"TransferredToAll": "Transferred {0:C} total ({1:C} each) to {2} player(s)",
"TransferToSelf": "You can not transfer money yourself!",
"UsageBalance": "{0} - check your balance",
"UsageBalanceOthers": "{0} <player name or id> - check balance of a player",
"UsageDeposit": "{0} <player name or id> <amount> - deposit amount to player",
"UsageSetBalance": "Usage: {0} <player name or id> <amount> - set balance for player",
"UsageTransfer": "Usage: {0} <player name or id> <amount> - transfer money to player",
"UsageWithdraw": "Usage: {0} <player name or id> <amount> - withdraw money from player",
"UsageWipe": "Usage: {0} - wipe all economics data",
"YouLackMoney": "You do not have enough money!",
"YouLostMoney": "You lost: {0:C}",
"YouReceivedMoney": "You received: {0:C}",
"YourBalance": "Your balance is: {0:C}",
"WithdrawnForAll": "Withdrew {0:C} total ({1:C} each) from {2} player(s)",
"ZeroAmount": "Amount cannot be zero"
}
For Developers
API Methods
private double Balance(string playerId)
private double Balance(ulong playerId)
private bool Deposit(string playerId, double amount)
private bool Deposit(ulong playerId, double amount)
private bool SetBalance(string playerId, double amount)
private bool SetBalance(ulong playerId, double amount)
private bool Transfer(string playerId, string targetId, double amount)
private bool Transfer(ulong playerId, string targetId, double amount)
private bool Withdraw(string playerId, double amount)
private bool Withdraw(ulong playerId, double amount)
Hooks
private void OnEconomicsBalanceUpdated(string playerId, double amount)
Called when a player's account balance changes.
private OnEconomicsDeposit(string playerId, double amount)
Called when a deposit is made to a player's account.
private void OnEconomicsWithdrawl(string playerId, double amount)
Called when a withdrawal is made from a player's account.
private void OnEconomicsTransfer(string playerId, string targetId, double amount)
Called when a transfer is made between player accounts.
private void OnEconomicsDataWiped()
Called when all economics data is wiped.
private void OnEconomicsDataWiped(IPlayer player)
Called when economics data for a specific player.
Credits
- Nogrod, for the original C# version of this plugin
- Bombardir, for the original Lua version of this plugin
- Wulf, for maintaining the plugin
MIT License, with distribution exclusivity for uMod.org
Copyright (c) 2020 Wulf
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.