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!
S&A is not syncing to my database. Well, it wasn't in the first place. Then it started to work and update things in the mysql database and now it doesn't work again. No errors and all configuration is correct. What's the solution?
Nop. sqlite is bugged :( you must make a mysql database
so do you HAVE to have mysql? is there a way to use just achievements without it?
@Mayhem777
ups yeah, for kill achievements you need to put block 0 and entity id from this page in "data" :D dotn know how to see things ingame.. i just use my web gui :(
if i put 17 on block it says "kill x chests" and doesn't working, but if i set "block" to 0 and "data" to 17 gives the rewards and send messages well... how can it be?
Also how can i see the description in game? when i use /achievements list or just /achievements just say "NAME - TYPE BLOCK:DATA"
@Mayhem777
no, you have to put 17 on "block", 0 on "data" and 100 on "value".
Thanks! all working now i've a last question please ! What are "SimpleSpleefSupport" and "ForcePlaytimeUpdate" :) Also if i want (for example) to set 100 zombie kills i should: <block> to "54" (because is the id of the zombies) and <data> to "17" (because is the data value specified on this page "http://dev.bukkit.org/server-mods/saaplugin/pages/entity-ids-for-achievements-de-de/" is that right? :D But the problem is if i set block id to "54" zombie... its the sam as chest... so the achievement says "kill x chest:17" :/
@Mayhem777
http://dev.bukkit.org/server-mods/saaplugin/tickets/19-console-error/#c1
Please how solve this:
2012-06-25 02:38:26 [SEVERE] Could not pass event PlayerJoinEvent to StatsAndAchievements org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) at net.minecraft.server.ServerConfigurationManager.c(ServerConfigurationManager.java:132) at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:129) at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:94) at net.minecraft.server.Packet1Login.handle(SourceFile:68) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:48) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:61) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.AbstractMethodError: org.sqlite.Stmt.isClosed()Z at de.maniacraft.statsandachievements.listeners.SaAPlayerListener.isInDB(SaAPlayerListener.java:85) at de.maniacraft.statsandachievements.listeners.SaAPlayerListener.onPlayerJoin(SaAPlayerListener.java:124) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) ... 12 more
Authors don't ask tickets...
This is the only up to date plugin I could find. Please keep it that way :D
THANKS!!! I was asking for some helo since ages, thanks you two Oceanor and Chris, now we just need the author to fix the console errors :) don't know why but they're not answering any ticket :(
@Mayhem777 name/description columns: you can use spaces, is the achievement name and description, just be careful using -> ' in online achievement generator, it will thrown errors, To fix it, when you have finished, put a \ before your ' characters (example: " I'm " become " I\'m ")
type: the type of the achievement.. destroy blocks, create blocks etc, many of them are abusable (like dropping/picking up something, you can drop and pick something many time as you want and complete an achievement with a single item) and not supported on my achievements page, just for laziness.
value: the "quantity" you need. if you need to destroy some block, put here the quantiy, or how many monsters you have to kill etc etc.
block column: http://www.minecraftwiki.net/wiki/Data_values#Block_IDs
look these numbers.. "block" is the block id, 81 for cactus, 17 for wood etc etc.. for achievements with items/mobs involved and not blocks, you need to put itemid/entityid in "block" column anyway.. if you search in the same page you will find even data values, example: http://www.minecraftwiki.net/wiki/Data_values#Wool if you see, 12 0xC Brown, 12 is brown.
Just one thing: if you are using achievement generator online you need to change manually the query, replacing mob/animals name with IDs listed here.
The problem is i don't know what are some of the camps i need to set, like i said can i put spaces in description, what are categories? etc, please read my previous post :)
@Mayhem777
Use http://plugins.maniacraft.de/SaAPlugin/achgen to make achievements.
I use this, too.
Really good work oceanor :) but please can you tell me how to set the achievements? "/achievements admin add <name> <description> <category> <block> <data> <value> <command> - Adds a new achievement. "
Really thanks for the honest soul who helps me :D
Hi! I've done from scratch an achievement show system in html-css-php
I'm sooo bad in css and i wanted to remember something with php. And, because in my opinion share is a good thing, here you go:
Download
Just paste files inside this .zip and edit the file "config.php", read comments in it!
Here is an example of how it looks like (on my server) Just search for someone (example: oceanor) and click it :) or here for a direct link of a specific player
NOTE: this is a work in progress, some types of achievements are not handled (it writes a "NOT IMPLEMENTED YET" label near the achievement name), graphic is still horrid, i'm not a good designer, i've spent a lot of time in designing the main achievement player page
feel free to use, modify and share, but keep me as original author please :P Suggestions and bug reports are greatly appreciated.
So.. no if no sql doesn't works right? anyway i can't make one but i still don't know how to create them ....
Want Spout-Support
@Mayhem777
@Ferkswe
Fairly simple, as far as I've seen achievements seem to only work if you are using the MySQL backend, you use the achievement generator found above, and simply run the SQL statement in your Stats Database, it should add the achievement to the table, and players with "achievement.receive" can get the achievements.
@Mayhem777
I second you on that one, No clue o.O