DataManagerAPI
Overview
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.
Installation , Commands and Permissions
API
The API is for developers who want to use features of this library. Read the following for more info!
- https://github.com/louis1234567890987654321/dm-api/wiki/Using-DataManagers
- https://github.com/louis1234567890987654321/dm-api/tree/master/DataManager-examples/MyKillCounter
Summary of API
- Create 2 classes that extends Data and DataLoader
- Use to generate a new data manager for your plugin
DataManager<[your data class name]>.generateDataManager("myPluginName",this,myDataLoader);
- Use to remove and save all your data.
DataManager.removeAndSaveDataManagers(this);
- The above functions are mostly used in onEnable and onDisable respectively
- Use to get data of a player.
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); } }