h31ix

Untitled

Jan 11th, 2012
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.42 KB | None | 0 0
  1. package net.h31ix.nasprotect;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.text.SimpleDateFormat;
  10. import java.util.ArrayList;
  11. import java.util.Calendar;
  12. import java.util.Date;
  13. import java.util.HashMap;
  14. import java.util.Locale;
  15. import java.util.Map;
  16. import java.util.logging.Level;
  17. import java.util.logging.Logger;
  18. import org.bukkit.Location;
  19. import org.bukkit.block.Block;
  20. import org.bukkit.entity.Player;
  21. import org.bukkit.plugin.PluginManager;
  22. import org.bukkit.plugin.java.JavaPlugin;
  23.  
  24. public class Nasprotect extends JavaPlugin {
  25. private BlockBreakListener blockBreakListener = new BlockBreakListener(this);
  26. private BlockPlaceListener blockPlaceListener = new BlockPlaceListener(this);
  27. private NPPlayerListener playerListener = new NPPlayerListener(this);
  28.  
  29. public Player lastp = null;
  30. public Location lastb = null;
  31.  
  32. public Connection conn;
  33. private PluginManager pluginManager;
  34. private ResultSet rs = null;
  35. public Statement stmt;
  36.  
  37. public Map<Player, Boolean> freeze = new HashMap<Player, Boolean>();
  38. public Map<Player, Boolean> build = new HashMap<Player, Boolean>();
  39. public Map<Player, String> update = new HashMap<Player, String>();
  40.  
  41. public ArrayList<String> list = new ArrayList<String>();
  42.  
  43.  
  44. public void onDisable() {
  45. try {
  46. for (int i=0;i!=list.size();i++)
  47. {
  48. PreparedStatement pstmt = conn.prepareStatement(list.get(i));
  49. pstmt.executeUpdate();
  50. pstmt.close();
  51. }
  52. } catch (SQLException ex) {
  53. Logger.getLogger(Nasprotect.class.getName()).log(Level.SEVERE, null, ex);
  54. }
  55. System.out.println(this + " is now disabled!");
  56. }
  57.  
  58.  
  59. public void onEnable() {
  60. connectSQL();
  61. getCommand("freeze").setExecutor(new CommandFreeze(this));
  62. getCommand("last").setExecutor(new CommandLast(this));
  63. getCommand("build").setExecutor(new CommandBuild(this));
  64. getCommand("np").setExecutor(new CommandNP(this));
  65. pluginManager = getServer().getPluginManager();
  66. pluginManager.registerEvent(org.bukkit.event.Event.Type.BLOCK_BREAK, blockBreakListener, org.bukkit.event.Event.Priority.Highest, this);
  67. pluginManager.registerEvent(org.bukkit.event.Event.Type.BLOCK_PLACE, blockPlaceListener, org.bukkit.event.Event.Priority.Highest, this);
  68. pluginManager.registerEvent(org.bukkit.event.Event.Type.PLAYER_MOVE, playerListener, org.bukkit.event.Event.Priority.Highest, this);
  69. pluginManager.registerEvent(org.bukkit.event.Event.Type.PLAYER_INTERACT, playerListener, org.bukkit.event.Event.Priority.Monitor, this);
  70.  
  71. System.out.println(this + " is now enabled!");
  72. getServer().getScheduler().scheduleAsyncRepeatingTask(this, new Runnable() {
  73. public void run() {
  74. try {
  75. for (int i=0;i!=list.size();i++)
  76. {
  77. PreparedStatement pstmt = conn.prepareStatement(list.get(i));
  78. pstmt.executeUpdate();
  79. pstmt.close();
  80. }
  81. } catch (SQLException ex) {
  82. Logger.getLogger(Nasprotect.class.getName()).log(Level.SEVERE, null, ex);
  83. }
  84. System.out.println("Pushed all logs to master");
  85. }
  86. }, 1L, 3000L);
  87. }
  88.  
  89. public void getAction(Block block, Player player)
  90. {
  91. /**try {
  92. stmt = conn.createStatement();
  93. rs = stmt.executeQuery("SELECT * FROM mc_history WHERE loc_x BETWEEN '"+((int)block.getLocation().getX()-1)+"' AND '"+((int)block.getLocation().getX()+1)+"' AND loc_y BETWEEN '"+((int)block.getLocation().getY()-1)+"' AND '"+((int)block.getLocation().getY()+1)+"' AND loc_z BETWEEN '"+((int)block.getLocation().getZ()-1)+"' AND '"+((int)block.getLocation().getZ()+1)+"' AND world='"+block.getWorld().getName()+"'");
  94. while (rs.next())
  95. {
  96. player.sendMessage(rs.getString("player_name")+" "+rs.getString("type")+" "+rs.getString("block_name"));
  97. }
  98. } catch (SQLException ex) {
  99. Logger.getLogger(Nasprotect.class.getName()).log(Level.SEVERE, null, ex);
  100. }**/
  101. }
  102.  
  103. public void logBreak(Block block, Player player) throws SQLException
  104. {
  105. String sql = "INSERT INTO mc_history (date, type, player_name, world, loc_x, loc_y, loc_z, block_name) VALUES ('"+getDate()+"', 'BLOCK_BREAK', '"+player.getName()+"', '"+player.getWorld().getName()+"', '"+(int)player.getLocation().getX()+"', '"+(int)player.getLocation().getY()+"', '"+(int)player.getLocation().getZ()+"', '"+(block.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""))+"')";
  106. list.add(sql);
  107. //stmt.addBatch(sql);
  108. }
  109.  
  110. public void logPlace(Block block, Player player) throws SQLException
  111. {
  112. String sql = "INSERT INTO mc_history (date, type, player_name, world, loc_x, loc_y, loc_z, block_name) VALUES ('"+getDate()+"', 'BLOCK_PLACE', '"+player.getName()+"', '"+player.getWorld().getName()+"', '"+(int)player.getLocation().getX()+"', '"+(int)player.getLocation().getY()+"', '"+(int)player.getLocation().getZ()+"', '"+(block.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""))+"')";
  113. list.add(sql);
  114. //stmt.addBatch(sql);
  115. }
  116.  
  117. public String getDate()
  118. {
  119. Calendar cal = Calendar.getInstance();
  120. int year = cal.get(Calendar.YEAR);
  121. int month = cal.get(Calendar.MONTH);
  122. int day = cal.get(Calendar.DATE);
  123. Date date = new Date(year - 1900, month, day);
  124. SimpleDateFormat dformat = new SimpleDateFormat("MM/dd/yy");
  125. return dformat.format(date);
  126. }
  127.  
  128. private void connectSQL() {
  129. try {
  130. conn = DriverManager.getConnection("jdbc:mysql://66.85.173.242:3306/minecraft", "mc_admin", "e0667Oqk634M4ls");
  131. conn.setAutoCommit(false);
  132. stmt = conn.createStatement();
  133. System.out.println("[NAS-P] Stats MySQL Connection Established!");
  134. } catch (SQLException ex) {
  135. Logger.getLogger(Nasprotect.class.getName()).log(Level.SEVERE, null, ex);
  136. System.out.println("[NAS-P] MySQL Connection FAILED.");
  137. pluginManager.disablePlugin(this);
  138. }
  139. }
  140.  
  141. }
Advertisement
Add Comment
Please, Sign In to add comment