DataManagerAPI is a library for plugins that needs to save data that is associated with players (such as kills, deaths, wins of games and much more)! This plugin supports MySQL.
The API is for developers who want to use features of this library. Read the following for more info!
DataManager<[your data class name]>.generateDataManager("myPluginName",this,myDataLoader);
DataManager.removeAndSaveDataManagers(this);
myDataManager.getData("some_player_name")
Here is an example of an implementation of DataManagerAPI. For a better example please read this.
public class MyPointsPlugin extends JavaPlugin{ DataManager<XX> dm; public void onEnable(){ XXLoader myLoader = new XXLoader(); dm = DataManager<XX>.generateNewDataManager("MyPointsPlugin", this, myLoader); } public void onDisable(){ DataManager.removeAndSaveDataManagers(this); } public boolean onCommand(CommandSender s,Command c,String lbl,String[]args){ if(c.equalsIgnoreCase("points")){ s.sendMessage("Points:"+dm.getData(s.getName()).points); }else if(c.equalsIgnoreCase("givepoints")){ if(s.isOp()){ XX data = DataManager.getData(args[0]); data.points=Integer.parseInt(args[1]); dm.forceSave(data); } } } } class XX extends Data{ int points; XX(DataManager<XX>manager,Player p,JavaPlugin plug){super(manager,p,plug); points=0; } public void onSave(){ set("points",points); } } class XXLoader extends DataLoader<XX>{ @Override protected XX loadData(Player p, JavaPlugin plugin) { int points=getInt("points",0); XX data=new XX(getDataManager(),p,plugin); XX.points=points; return data; } @Override protected XX getNewData(Player p, JavaPlugin plugin) { return new XX(getDataManager(),p,plugin); } }