RCAchievements
I am currently working on an Achievements Plugin for my Server but I will release it to the public a few days later, because I think it is so awesome everyone should habe a Chance to try it out :D
Here are some already finished Features:
- Customizable Achievements that can be put together by combining multiple so called Requirements and Rewards.
- API for developers to tag methods and provide them for the admin to configure.
- Multithreaded Achievement Checking. That means all events queue the players to checked based on the event type and the Worker Queue will work through all checks in parallel tasks.
- MySQL Support (SQLite still in development)
- Here are some already finished Requirements you can use: o LOCATION - When a player reaches a location (can be configured in game via command) o TIME - Supports a timer that works especially well with locations, e.g. you can make the player run from one waypoint to an other in 10 seconds. o CRAFT - Monitor any item a player crafts and award achievements accordingly o BLOCK - Monitor block placement and breaking of blocks o ENCHANT - Monitor players enchanting items o ACHIEVEMENT - Give an achievement when players gathered other achievements o CUSTOM - Use any tagged methods from your favorite plugins
- Some of the requirements can be counted, that means it will save the player progress to the database, e.g. make the player destroy 10 crop and make him craft 10 bread with that
- Possible Rewards: o COMMAND o MONEY o (WIP: Items)
- Spout Achievements PopUp on Achievement Gain
- Configurable Custom Sound on Achievement Gain
Here is a documented example file of how you could design an achievement. The achievement will be triggered and awarded to the player when all or some requirements are true. Requirements can be done in order or not.
This code can be used by developers to support RCAchievements:
private void registerAchievements() { // register a class for the achievement plugin Plugin rcAchievements = Bukkit.getPluginManager().getPlugin("RCAchievements"); if (rcAchievements != null && rcAchievements.isEnabled()) { AchievementHandler.registerPlugin(this, RCSkillAchievements.class); } }
And the RCSkillAchievements.class:
@ClassName("player") public class RCSkillAchievements implements TaggedAchievement { @MethodName("level") public static int getLevel(AchievementPlayer player) { return PlayerManager.getPlayer(player.getPlayer()).getRank().getId(); } @MethodName("exp") public static int getExp(AchievementPlayer player) { return PlayerManager.getPlayer(player.getPlayer()).getExp(); } @MethodName("skillpoints") public static int getSkillpoints(AchievementPlayer player) { return PlayerManager.getPlayer(player.getPlayer()).getSkillpoints(); } }
Finally here are some achievements we configured four the Beta Test on our server: http://pastebin.com/03FajmML
Whats ToDo and what will come:
- SQLite Support
- Parameters for the tagged API methods
- Tracking Shift Click Crafting is currently broken
- More Requirements and Rewards (let me know what you want!)
- English Localization and language.yml config
- Web Support with list of all configured Achievements
Oh and if you want to try a demo you can get the mostly stable version here. But be warned it is in german and still has some bugs. You will also need the RaidCraftCore (Base API for our plugins). You will not need the RCAchievements-API since it is compiled into the RCAchievements.jar:
I am happy about any feedback good or bad ;)
@somatorio
Love the sound of this, are you still working on it? The API would be great I can add support for tracking kills of my own custom entity types - and have it tie into CityWorld to have "visit schematic" as a requirement ;)
wow, this plugin is exactly what i'm looking for =o if you let me ask, how far from release? =x
I've almost finished a plugin like this too :P
Very excited about yours anyway!
I am going to try and finish this up this weekend. The reason why I didn't release it yet is because I want to change something on the API again to make it even more flexible.
Please let me use this amazing plugin soon~~~~~~~~~
How far away from release is this if you don't mind me asking? I'm going to be rebooting my server with a completely new world and player stats and so on when 1.3 hits... but this looks like it could be better than the current achievements plugin (which -isn't- obsolete Mayhem... =/)
Is it possible to reward players when they have a certain percentage of achievements?
OMG THAT'S AWESOME! The others achievent plugins are obsolete :(