ChestShop Notifier
Note: The latest version of this plugin works with every UUID-compatible CraftBukkit or Spigot version!
CSN (ChestShop Notifier) is a plugin that records ChestShop transactions to a SQLite or MySQL database. When a shop owner logs onto the server, they will be presented with an option to view sales from when they were offline.
Installation Instructions
Commands
- /csn help → Shows available commands
- /csn history [<page>] → Shows unread sale history from database
- /csn history [<username> [<page>]] → Shows sale history of another player
- /csn clear [<usernamse>] → Marks all sale history as read for your user
- /csn cleandatabase → Remove database entries. Parameters:
--older-than, -o days
→ Removes entries older than days--user, -user username/uuid
→ Removes entries from a single user only--read-only, -r
→ Removes only read entries, default behaviour--all, -a
→ Removes all entries - /csn upload → Forces the plugin to upload all data to the database (in v1.1 and higher this should be only used after database connection problems!)
- /csn reload → Reloads configuration and connects to database using new config
- /csn convert → Converts the database table csn to UUIDs. (table csn gets converted in csnUUID and the username table renamed to csnOLD)
Permissions
- csn.user → Allows user to receive notifications when they log in, and access to /csn history.
- csn.admin → Super permission node. Access to all commands. (especially upload, reload and convert)
For all permissions take a look at the plugin.yml
Config
# Chest Shop Notifier<br /> logging: admin-shop: true notifications: notify-on-user-join: true delay-seconds: 5 history: max-rows: 10 query-limit: 10000 debugging: verbose: true database: # Possible types: SQLite and MySQL type: sqlite dbname: 'database' # MySQL specific settings host: 'localhost' port: 3306 username: 'dbadmin' password: '123456' ssl: false clean-on-startup: enabled: false parameters: "--older-than 30 --all" messages: sales: "&c ** You made &f{sales} sales&c since you last checked." history-cmd: "&c ** To see them, type &f/csn history&c." history-caption: "&dChestShop Notifier // &7Latest Commissions" history-empty: "&cNothing to show." history-bought: "&a+ &9{player} &7bought &a{count}x&9{item} &f{timeago}&7 ago &a(+{money})" history-bought-read: "&a+ &7{player} &8bought &a{count}x&7{item} &7{timeago}&8 ago &a(+{money})" history-sold: "&c- &9{player} &7sold you &c{count}x&9{item} &f{timeago}&7 ago &c(-{money})" history-sold-read: "&c- &7{player} &8sold you &c{count}x&7{item} &7{timeago}&8 ago &c(-{money})" history-footer-page: "&c- Page &f{current}&c/&f{pages}&6 - &7/csn history <page>" history-footer-clear: "&f- &cTo remove all old entries, type /csn clear" history-clear: "&cHistory cleared! New sales will continue to be recorded." history-marked-read: "&cUnread entries marked read!" history-others-not-allowed: "&cYou are not allowed to check the history of {username}" # new translations reload-cmd: "&dChestShop Notifier // &7Reloading, please wait..." reload-success: "&aReloaded!" reload-database-success: "&aDatabase connected!" reload-database-fail: "&cDatabase failed to connect!" user-not-found: "&cThe user '{player}' was not found." page-not-found: "&e{page} &cis not a valid page number input for /csn history <page>!" page-not-found-other: "&e{page} &cis not a valid page number input for /csn history <user> <page>!" database-error: "&cInvalid database connection. Please edit config and /csn reload." database-error-oncommand: "&cDatabase error while executing this command!" database-cleaned: "&cCleaned database from {amount} entries!" database-uploaded: "&cBatch executed!" database-convert: "&cAttempting to convert database..." database-convert-fail: "&cError while trying to convert! Maybe you don't have a 'csn' table?" database-converted: "&cDatabase converted!" unrecognized-command: "&cCommand not recognized. Type /csn help for help." missing-arguments: "&cMissing parameter arguments: {usage}" invalid-number: "&c{typo} is not a valid number input for {usage}!" invalid-username: "&c{typo} is not a valid username/uuid input for {usage}!" missing-permission: "&cYou don't have the permission {permission}!" help: header: "&dChestShop Notifier // &7Commands" help: "&7 /csn &dhelp &f- Plugin usage & commands" history: "&7 /csn &dhistory [<page>]&f- View sales" clear: "&7 /csn &dclear &f- Remove read sales" history-others: "&7 /csn &dhistory <username> [<page>]&f- View sales of another account" clear-others: "&7 /csn &dclear <username>&f- Remove read sales of another account" cleandatabase: "&7 /csn &ccleandatabase &f- Remove database entries. Parameters:" cleandatabase-older-than: "&c --older-than, -o <days> &f- Removes entries older than <days>" cleandatabase-user: "&c --user, -user <username/uuid> &f- Removes entries from a single user only" cleandatabase-read-only: "&c --read-only, -r &f- Removes only read entries, default behaviour" cleandatabase-all: "&c --all, -a &f- Removes all entries" upload: "&7 /csn &cupload &f- Force update databases" convert: "&7 /csn &cconvert &f- Convert database to UUIDs" reload: "&7 /csn &creload &f- Reload configuration"
Requirements
- ChestShop installed and running.
- Optionally: MySQL server if you want to store the information in a real database/share it between servers.
Planned Features
UUID supportdone in v1.1.2Look up the sales of offline playersdone in v1.1.2Ignore ChestShop's Admin Shopdone in v1.1.2History paginationdone in v1.2SQLite supportdone in v1.3.3- Auto updater & version checker
- Translation system (partially done in v1.1.2, you can set your own messages in the config)
For more features and suggestion use the GitHub issues page!
Source Code & Dev Builds
- You can view the source code online at:
https://github.com/ChestShop-authors/ChestShopNotifier - Development builds are available on the Minebench.de Jenkins build server:
http://ci.minebench.de/job/ChestShopNotifier/
Donations
Feel free to comment with your ideas, bugs, or requests, ideally by opening an issue on the github repo.
If you really want to monetarily then click here.
I have some trouble with the plugin.
Pastebin.
@davewolax
ChestShop isn't supposed to save stuff to a remote database. ChestShop tells this plugin every time something happens, and this plugin saves it to the database. I am aware that developer versions of ChestShop have an API change, which this plugin isn't compatible with yet.
@BetaBlaze
I setup database and I connected the ChestShop notifier to my Database. But now, how can I connect the ChestShop Plugin to log and save the ChestShop transactions in my Database so the ChestShop notifier can read them? ChestShop plugin is now saving them in the local database in the ChestShop folder in my plugins folder and there seems to be no way to tell ChestShop plugin to save them on External Database. please help!!!...
@davewolax
This plugin requires a MySQL database. You can get a free database here: http://www.db4free.net/d4f_apply.php (be sure to leave the IP box as "%")
When done, use the username, password, host, and database name provided.
When everything is hooked right, ChestShop will notify this plugin of new sales and then this plugin will save them to that MySQL database.
@BetaBlaze
I installed this plugin, but it fails to connect to the ChestShop Database. In the ChestShop Config file I have set "LOG_TO_DATABASE" to true and it's logging all ChestShop activities, but there is no config to set the database username and password for the current database in the ChestShop Config. So In the CSN config I don't know what to put for the DB username and password and all other required informations. Please help...!
@erik75125690
Great to hear. The file is now available for download. Enjoy. :)
The plugin looks pretty good. Can't wait to download it and test it. :)