# The official Minetest lurkcoin mod Adds (cross-server) ATMs to Minetest. **This mod is currently in beta**, and this README probably needs rewriting. ## How to use/install After installing, you will need to add `lurkcoin` to `secure.http_mods` in minetest.conf to allow cross-server transactions. The minetest.conf settings `lurkcoin.username` and `lurkcoin.token` must be set to the username and token you get from the lurkcoin website, and should not contain leading or trailing spaces. ## API The following lurkcoin-specific functions and variables exist: - `lurkcoin.exchange_rate`: The raw exchange rate, *do not modify this!* - `lurkcoin.get_exchange_rate(amount, to, callback)`: Get an exchange rate from this server. - `lurkcoin.pay(from, to, server, amount, callback)`: Makes `from` pay someone `amount`cr, and calls `callback` on success/faliure. `callback` should have two parameters, `success` and `msg`. - `lurkcoin.server_name`: The account name used to log into lurkcoin. ### Bank API This mod creates a "universal"™ bank API. The below functions (except `getbal` and `pay`) return `true` on success and `false` on failure. - `lurkcoin.bank.getbal(name)`: Gets a balance - `lurkcoin.bank.setbal(name, balance, reason)`: Sets a balance - `lurkcoin.bank.user_exists(name)`: Checks if a user exists. - `lurkcoin.bank.changebal(name, amount, reason)`: Changes a balance (use either positive or negative numbers) - `lurkcoin.bank.add(name, amount, reason)`: Adds `amount` to `name`'s balance. Will return false if `amount` is below `0`. - `lurkcoin.bank.subtract(name, amount, reason)`: Subtracts `amount` from `name`'s balance. Will return false if `amount` is below `0`. - `lurkcoin.bank.pay(from, to, amount)`: Makes user `from` pay a user `amount`cr. This will return two values, `success` (true/false) and `message` (a string). #### Changing the currently used bank By default, this mod will check for a few bank mods, and if it doesn't find any will use the built-in (≈34 line) `minibank.lua`. `minibank` does not store any transaction history and will disregard the `reason` parameter when updating balances. To change the currently used bank, use `lurkcoin.change_bank(bank)`, where `bank` is a table containing at least `getbal`, `setbal` and `user_exists`. `getbal` should not create users on balance checking, and if it returns `nil` for non-existent users, `user_exists` is not required. Any other functions implemented (except `pay`) must have the same return values as described in this documentation, and are entirely optional (they will be automatically created if they are not included). Any missing functions are "filled in" automatically. *By default, payments are rounded down to the nearest 0.01cr.*