Advertisement
Guest User

adsga

a guest
Jul 24th, 2014
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.49 KB | None | 0 0
  1. package in.mDev.MiracleM4n.ObsidianVote;
  2.  
  3. import java.sql.Connection;
  4. import java.util.ArrayList;
  5. import java.util.Date;
  6. import java.util.HashMap;
  7. import java.util.logging.Logger;
  8.  
  9. import lib.PatPeter.SQLibrary.MySQL;
  10.  
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.plugin.PluginDescriptionFile;
  13. import org.bukkit.plugin.PluginManager;
  14. import org.bukkit.plugin.java.JavaPlugin;
  15.  
  16. import com.miraclem4n.mchat.api.API;
  17. import com.miraclem4n.mchat.api.Parser;
  18.  
  19. public class ObsidianVote extends JavaPlugin {
  20.     // Default Plugin Data
  21.     PluginManager pm;
  22.     PluginDescriptionFile pdfFile;
  23.  
  24.     // MySQL Connection
  25.     MySQL mInfo;
  26.     Connection mConnection;
  27.  
  28.     // Timers
  29.     long sTime1;
  30.     long sTime2;
  31.     float sDiff1;
  32.  
  33.     // Debug Timers
  34.     long sTime3;
  35.     long sTime4;
  36.     long sTime5;
  37.     long sTime6;
  38.     long sTime7;
  39.     long sTime8;
  40.     float sDiff2;
  41.     float sDiff3;
  42.     float sDiff4;
  43.  
  44.     // Votes HashMap
  45.     HashMap<String, Integer> pVotes = new HashMap<String, Integer>();
  46.  
  47.     // Broadcast Waiting List
  48.     ArrayList<String> bList = new ArrayList<String>();
  49.  
  50.     public void onEnable() {
  51.         // 1st Startup Timer
  52.         sTime1 = new Date().getTime();
  53.  
  54.         // Initialize Plugin Data
  55.         pm = getServer().getPluginManager();
  56.         pdfFile = getDescription();
  57.  
  58.         // Config Stuff
  59.         loadConfiguration();
  60.  
  61.         mInfo = new MySQL(
  62.                 Logger.getLogger("Minecraft"),
  63.                 "[OV MySQL]",
  64.                 getConfig().getString("db.host"),
  65.                 getConfig().getString("db.port"),
  66.                 getConfig().getString("db.db"),
  67.                 getConfig().getString("db.user"),
  68.                 getConfig().getString("db.pass"));
  69.  
  70.         mConnection = mInfo.getConnection();
  71.  
  72.         setupTimers();
  73.         registerEvents();
  74.        
  75.         new oAPI(this);
  76.         new VoteListener(this);
  77.  
  78.         getCommand("obsidianvote").setExecutor(getCommandSender());
  79.        
  80.         API.initialize();
  81.         API.addGlobalVar("oVar", "");
  82.  
  83.         // 2nd Startup Timer
  84.         sTime2 = new Date().getTime();
  85.  
  86.         // Calculate Startup Timer
  87.         sDiff1 = new Float (sTime2 - sTime1) / 1000;
  88.     }
  89.  
  90.     public void onDisable() {
  91.         getServer().getScheduler().cancelTasks(this);
  92.  
  93.         mInfo.close();
  94.  
  95.     }
  96.    
  97.     public void loadConfiguration() {
  98.         getConfig().options().copyDefaults(true);
  99.         saveDefaultConfig();
  100.     }
  101.  
  102.     void registerEvents() {
  103.         pm.registerEvents(getPlayerListener(), this);
  104.     }
  105.  
  106.     // InfoReader
  107.     OVPlayerListener getPlayerListener() {
  108.         return new OVPlayerListener(this);
  109.     }
  110.  
  111.     // API
  112.     OVCommandSender getCommandSender() {
  113.         return new OVCommandSender(this);
  114.     }
  115.    
  116.     Boolean checkPlugin(String pluginName) {
  117.         return pm.getPlugin(pluginName) != null;
  118.     }
  119.  
  120.     @SuppressWarnings("deprecation")
  121.     void setupTimers() {
  122.         getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){
  123.             public void run() {
  124.                 sTime3 = new Date().getTime();
  125.  
  126.                 for (Player player : getServer().getOnlinePlayers())
  127.                     if (!oAPI.hasPlayerVoted(player))
  128.                         player.sendMessage(oAPI.addColour(oAPI.getRandomString(getConfig().getList("message.voteF"))));
  129.                     else if (getConfig().getBoolean("event.nagHasVoted"))
  130.                         player.sendMessage(oAPI.addColour(oAPI.getRandomString(getConfig().getList("message.voteT"))));
  131.  
  132.                 sTime4 = new Date().getTime();
  133.                 sDiff2 = new Float (sTime4 - sTime3) / 1000;
  134.             }
  135.         }, 20L * getConfig().getInt("event.serverNagTime"), 20L * getConfig().getInt("event.serverNagTime"));
  136.  
  137.         getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  138.             public void run() {
  139.                 sTime5 = new Date().getTime();
  140.  
  141.                 for (Player player : getServer().getOnlinePlayers()) {
  142.                     if (oAPI.hasVoteCountChanged(player.getName()))
  143.                         bList.add(player.getName());
  144.  
  145.                     if (!oAPI.hasPlayerVoted(player))
  146.                         API.addPlayerVar(player.getName(), "oVar", "");
  147.                     else
  148.                         API.addPlayerVar(player.getName(), "oVar", getConfig().getString("event.chatTag"));
  149.                 }
  150.  
  151.                 sTime6 = new Date().getTime();
  152.                 sDiff3 = new Float (sTime6 - sTime5) / 1000;
  153.  
  154.             }
  155.         }, 20L * getConfig().getInt("event.tagRefreshTime"), 20L * getConfig().getInt("event.tagRefreshTime"));
  156.  
  157.         getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  158.            
  159.             public void run() {
  160.                 if (bList.size() > 0) {
  161.                     if (getServer().getPlayer(bList.get(0)) != null)
  162.                         getServer().broadcastMessage(
  163.                                 oAPI.addColour(
  164.                                         oAPI.getRandomString(getConfig().getList("message.voteChanged")).replace("%Player%",
  165.                                                                    
  166.                                                 Parser.parsePlayerName(bList.get(0),getServer().getPlayer(bList.get(0)).getWorld().getName())
  167.                                         )
  168.                                 )
  169.                         );
  170.  
  171.                     bList.remove(0);
  172.                 }
  173.             }
  174.         }, 20L * getConfig().getInt("event.broadcastDelay"), 20L * getConfig().getInt("event.broadcastDelay"));
  175.     }
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement