MongoDB API
MongoDB API
Purpose
- Centralized, single MongoClient instance per server.
- Construction of, and Dismantlement, of the client on reloads. (Reduces chance of memory leak)
- May remove the necessity of a META-INF file used to link the mongodriver.jar to the server
- Or remove the necessity of sealing the mongodriver.jar into your plugin.
API
This is an example on how you can use the MongoAPI with your plugin:
package com.zombiehippie.bukkit.playertracker; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; import com.inkblur.bukkit.mongodb.MongoHook; import com.mongodb.BasicDBObject; import com.mongodb.DBCollection; import com.mongodb.DBObject; public class PlayerTracker extends JavaPlugin implements Listener { DBCollection playerColl; @Override public void onEnable(){ playerColl = MongoHook.getCollection(this, "playerdata"); PluginManager pm = getServer().getPluginManager(); pm.registerEvents(this, this); } private void update(PlayerEvent event, BasicDBObject updateDoc) { String playerName = event.getPlayer().getName(); DBObject query = new BasicDBObject("name", playerName); if(playerColl.findOne(query) == null) playerColl.insert(query); playerColl.update(query, updateDoc); } @EventHandler public void onLogin(PlayerLoginEvent event) { update(event, new BasicDBObject("online",true)); } @EventHandler public void onQuit(PlayerQuitEvent event) { update(event, new BasicDBObject("online",false)); } }
plugin.yml
name: PlayerTracker description: Log player's online status to a MongoDB version: 0.0.1 author: AZombieHippie depends: [mongodb]
Hi I rlly need this api, could u pls link it