Stats & Achievements
This Project is currently abandoned (and probably will forever be). See here for a alternative plugin
2-in-1 Stats and Achievements
This plugin logs various player activity as stats in a MySQL or SQLite database. With the integrated achievement system it is possible to award players when they reached a predefined target.
Features
- Logs block, mob, pvp and miscellaneous player statistics very detailled
- Logs also crafting statistics when spout is installed
- Integrated achievements system
- New database format which is more performant than older databases
- Integrated time delay to reduce server load and the number of SQL queries
- Planned web stats system
- Compatible with every Bukkit version since 1.1-R4
Tools
- You can convert older databases using our utility: http://89.144.25.51:8888/convert.php
- Achievements generator (will be extended soon): http://plugins.maniacraft.de/SaAPlugin/achgen
Requirements
- Vault (Permissions)
- Spout (if you want to get crafting stats)
Commands
- /stats help - General Help
- /stats [<player>] - Shows your stats or stats by <player>.
- /stats block [<player>] <block>[:<data>] - Shows stats for <block>.
- /stats pvp [<player>] [<player2>] - Shows PVP stats.
- /stats mob [<player>] [<mob>] - Shows mob damage stats.
- /achievements help - General Help
- /achievements [<player>] - Shows your obtained achievements or achievements obtained by <player>.
- /achievements list [<page>] - Lists all available achievements.
- /achievements admin add <name> <description> <category> <block> <data> <value> <command> - Adds a new achievement.
- /achievements admin remove <id> - Removes the achievement <id>.
- /achievements admin convert - Convert old achievements.
Achievement Commands
- /give <block>[:<data>] [<amount>] - gives the player the item <block> <data>
- All commands available on your server. Example (Essentials warp): /warp darkroom %player%
Permissions
Permission | Description |
---|---|
stats.show.blocks.own | Show own block stats |
stats.show.blocks.other | Show block stats by others |
stats.show.pvp.own | Show own pvp stats |
stats.show.pvp.other | Show pvp stats by others |
stats.show.mob.own | Show own mob stats |
stats.show.mob.other | Show mob stats by others |
stats.overview.own | Show your overview |
stats.overview.other | Show overview by others |
stats.receive | Log stats at all (for example not for Guests) |
achievements.receive | Gives achievements at all (for example not for Guests) |
achievements.admin.remove | Admin Command Remove |
achievements.admin.add | Admin Command Add |
achievements.admin.convert | Admin Command Convert achievements from old DB |
achievements.list | List all achievements |
achievements.show.own | Show obtained achievements |
achievements.show.other | Show achievements obtained by others |
Config
general: language: en # Language (Available: en/de, other languages can be added in plugins/StatsAndAchievements/lang/) update-delay: 30 # The time interval in seconds how often the stats will be updated in the database (Default and recommended: 30) achievements: true # Activating and deactivating Achievements text_color: '&6' # Color of command texts (1st color) data_color: '&7' # Color of data output (2nd color) debug: false # Debug output (Default and recommended: false) database: type: mysql # Database type, either mysql or sqlite table_prefix: '' # Table prefix to save stats of more than one server in a single database host: localhost # Only MySQL: Database server (Default: localhost) port: 3306 # Only MySQL: Database server port (MySQL default 3306) database: minecraft # Only MySQL: Database name user: root # Only MySQL: Database user password: stats123 # Only MySQL: Database password DisabledWorlds: # In this worlds the stats will be deactivated - disabledworld1 - creative listeners: blockStats: true # Block related stats brewingStats: true # Brewing related stats (maybe bugged) craftingStats: true # Crafting related stats (maybe bugged) enchantingStats: true # Enchanting related stats (maybe bugged) entityStats: true # Entity related stats playerStats: true # Player related stats (Your really should NOT disable this or you'll break everything!) playerMoveStats: true # Player move stats (if you experience lags you should set this to false) vehicleStats: true # Vehicle related stats
Language file formating
{br} - Line break &[0-f] - Color codes (http://img109.imageshack.us/img109/4334/mccolors.png) %[A-Z0-9]% - Internal variables, don't supposed to be translated!
@ChrisX930
i think u need to use as type: KILLS or KILLS_TOTAL then? i really like the plugin, i also just start to use the tables to create some achieves ^^
oh and btw the EXP_TOTAL, EXP_CURRENT, LEVEL tables are broken... when i reach ingame level 5 i get the achieve for reaching level 50! and in the table im at 15/16 really wierd
edit für deutsche: habe die language file aus der .jar gezogen und in plugins\StatsAndAchievements\lang ordner platziert, hier der download: https://dl.dropbox.com/u/63000354/SaAPlugin_de.properties
Is any PHP script ready to parse stats and achievements of users from MySQL? Could you make one?
Need help again. I want to make a Achievement for kiling 1000 Monsters.(not zombie only or somthing). How can I do this?
@ManiacTwister: Thank you very much :)
@ChrisX930
Take a look here: http://dev.bukkit.org/server-mods/saaplugin/pages/entity-ids-for-achievements-de-de/
Problem. I can't create Achievements where a player should kill enemies.
INSERT INTO `achievements_achievements` (`name`, `description`, `type`, `block`, `data`, `value`, `command`) VALUES ('Test', 'Test.', 'KILLS', '', 'VILLAGER', '1', 'money give 30');
Will not work because "data" is a tinyint-Field, not a textfield
Any ideas?
@Lucskywalk75
Have your new Players the right permission nodes? If yes, enable debug-mode in config and see if there are any errors.
This plugin is awesome! I had a quick concern though.. all my older players on my server have their stats recorded and such (when they type /stats, it shows something). Yet all my newer players see nothing when they type /stats. Is there something that can be done to fix this?
@Schickles
Thanks, added the node above.
@mmuziek
you need to add an undocumented permission node: - achievements.recieve
also, to fix the broken achieements you'll have to make your own locale, you can find an example of that somewhere in these comments.
it seems the plugin makers are both not really fast in responding to problems. only ops receive achievements? even when the players have correct perms. the language file is missing and the text ingame is blurred
and nobody of them helping me? strange?
So basically I want to use achievements and quests as a way to let my users rank up. I had a great idea, which was to give users sponge (as you cant get it in-game, and its more or less useless) each time they complete a quest (using the qQuests plugin) and/or achievement (harder achievements get more sponge, that sorta thing). Then I was going to have an achievement that was given once a player had x amount of sponge... that would run the rank up command. But I cant seem to get the sponge achievement to work? =/ Any ideas?
@Hadersjm
you'll have to login to mysql and use your stats database, then use the command it gave you.
Umm i used the achievement generator, since none of the IG commands seem to work... But where do i add the text it gave me? My config folder only has the DB and config.yml... Thanks, Haders~
This doesn't seem to work for me. I was able to put an achievement (level50) into my sql, but when a player reaches level 50 it does nothing. Is it incompatible with Heroes?
@juloo65
stats.receive is the permission node you're looking for, there is a handy guide for this just underneath the plugin description above ^^ :3
What is the permissions to be count into database ?
There should be a way to create achievements in a YAML file I think.
@Schickles
Thank you Schickles!
@Lucskywalk75
Plugin Table Info
Pair that info with a block ID list, and this: SaAPlugin Achievement Gen and you should be good :3
is a pretty good source.
So in this example you are using PermissionsEx, and want to add the player to the 'TestGroup' after breaking 1000 stone blocks,
Its Named 'Lucky's Test Achievement', Described as 'Will Promote a User for breaking 1000 stone blocks.' The Type is 'BLOCKDESTROY' block is '1 (the ID for stone)' and the value is '1000' as in 1000 broken stone blocks. On achievement, it will run this command as if it were console: '/pex user %player% group add TestGroup' you can use any command avaliable to you by other plugins :3. If you have any other questions about it let me know.
and if you want to try it, this is the MYSQL statement you'd use to insert this achievement, assuming you are using stats as your prefix.
INSERT INTO `stats_achievements` (`name`, `description`, `type`, `block`, `data`, `value`, `command`) VALUES
('Lucky's Test Achievement', 'Will Promote a User for braking 1000 stone blocks.', 'BLOCKDESTROY', '1', '', '1000', '/pex user %player% group add testgroup');