Guest User

Untitled

a guest
Apr 22nd, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.53 KB | None | 0 0
  1. package me.slamakans.zombieapocalypse;
  2.  
  3. import java.util.logging.Logger;
  4.  
  5. import org.bukkit.ChatColor;
  6. import org.bukkit.command.Command;
  7. import org.bukkit.command.CommandSender;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.event.Event;
  10. import org.bukkit.plugin.PluginManager;
  11. import org.bukkit.plugin.java.JavaPlugin;
  12.  
  13. import java.sql.Connection;
  14. import java.sql.DriverManager;
  15. import java.sql.PreparedStatement;
  16. import java.sql.ResultSet;
  17. import java.sql.SQLException;
  18. import java.sql.Statement;
  19.  
  20. public class ZAMain extends JavaPlugin{
  21.     public static ZAMain plugin;
  22.     public Logger logger = Logger.getLogger("Minecraft");
  23.    
  24.     public ZAPlayerListener playerListener = new ZAPlayerListener(this);
  25.     public ZAEntityListener entityListener = new ZAEntityListener(this);
  26.    
  27.     String user = "root";
  28.     String pass = "root";
  29.     String url = "jdbc:mysql://localhost:3306/za";
  30.    
  31.    
  32.     @Override
  33.     public void onDisable() {
  34.         logger.info("Zombie Apocalypse has been stopped!");
  35.        
  36.     }
  37.     @Override
  38.     public void onEnable() {
  39.         PluginManager pm = this.getServer().getPluginManager();
  40.        
  41.         pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Event.Priority.Low, this);
  42.         pm.registerEvent(Event.Type.PLAYER_MOVE, playerListener, Event.Priority.Highest, this);
  43.         pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Event.Priority.Highest, this);
  44.        
  45.     }
  46.    
  47.     public boolean onCommand(CommandSender sender, Command command, String cmd, String[] args){
  48.        
  49.         Player player = (Player) sender;
  50.         String playerName = player.getName();
  51.        
  52.         switch(cmd.toLowerCase()){
  53.            
  54.         case "class":
  55.             switch(args[0].toLowerCase()){
  56.            
  57.             case "archer": iNCSetClass(playerName, "archer"); break;
  58.             case "bruiser": iNCSetClass(playerName, "bruiser"); break;
  59.             case "tank": iNCSetClass(playerName, "tank"); break;
  60.             case "assassin": iNCSetClass(playerName, "assassin"); break;
  61.            
  62.             case "list":
  63.                 player.sendMessage("Archer");
  64.                 player.sendMessage("Bruiser");
  65.                 player.sendMessage("Tank");
  66.                 player.sendMessage("Assassin");
  67.                 player.sendMessage("  ");
  68.                 player.sendMessage("Type /class help [class] to see more info about a certain class.");
  69.                 break;
  70.            
  71.             case "help":
  72.                 switch(args[1].toLowerCase()){
  73.                
  74.                 case "archer":
  75.                     player.sendMessage("  ");
  76.                     player.sendMessage("Archer");
  77.                     player.sendMessage("------------------");
  78.                     player.sendMessage(ChatColor.GREEN + "+ Can use bow.");
  79.                     player.sendMessage(ChatColor.GREEN + "+ Greatly increased bow damage. (Scales with level)");
  80.                     player.sendMessage(ChatColor.RED + "- Can only use up to Iron Armor.");
  81.                     player.sendMessage(ChatColor.RED + "- Can only use up to Stone Sword.");
  82.                     break;
  83.                 case "bruiser":
  84.                     player.sendMessage("  ");
  85.                     player.sendMessage("Bruiser");
  86.                     player.sendMessage("------------------");
  87.                     player.sendMessage(ChatColor.GREEN + "+ Increased weapon damage. (Scales with level)");
  88.                     player.sendMessage(ChatColor.GREEN + "+ Can use up to diamond sword.");
  89.                     player.sendMessage(ChatColor.RED + "- Can only use up to Iron Armor.");
  90.                     player.sendMessage(ChatColor.RED + "- Can't use bow.");
  91.                     break;
  92.                 case "tank":
  93.                     player.sendMessage("  ");
  94.                     player.sendMessage("Tank");
  95.                     player.sendMessage("------------------");
  96.                     player.sendMessage(ChatColor.GREEN + "+ Decreased damage taken. (Scales with level)");
  97.                     player.sendMessage(ChatColor.GREEN + "+ Can use up to diamond armor");
  98.                     player.sendMessage(ChatColor.RED + "- Can only use up to Iron Sword.");
  99.                     player.sendMessage(ChatColor.RED + "- Can't use bow.");
  100.                     player.sendMessage(ChatColor.RED + "- Can't sprint.");
  101.                     break;
  102.                 case "assassin":
  103.                     player.sendMessage("  ");
  104.                     player.sendMessage("Archer");
  105.                     player.sendMessage("------------------");
  106.                     player.sendMessage(ChatColor.GREEN + "+ Increased movement speed. (Scales with level)");
  107.                     player.sendMessage(ChatColor.GREEN + "+ Even more increased movement speed when wearing full leather.");
  108.                     player.sendMessage(ChatColor.GREEN + "+ Increased jump height.");
  109.                     player.sendMessage(ChatColor.GREEN + "+ No fall damage.");
  110.                     player.sendMessage(ChatColor.RED + "- Slightly decreased damage. (Increases by level)");
  111.                     player.sendMessage(ChatColor.RED + "- Can only use up to Iron Armor.");
  112.                     player.sendMessage(ChatColor.RED + "- Can only use up to Stone Sword.");
  113.                     break;
  114.                    
  115.                 } break;
  116.                
  117.             case "mine": if(!getDBString("SELECT `class` FROM `classes` WHERE `playerName` = '" + playerName + "'").equals(""))  player.sendMessage("You're a " + getDBString("SELECT `class` FROM `classes` WHERE `playerName` = '" + playerName + "'") + "."); else player.sendMessage(ChatColor.RED + "You haven't chosen a class yet."); break;
  118.            
  119.             case "reset": if(player.isOp() && !getDBString("SELECT `class` FROM `classes` WHERE `playerName` = '" + playerName + "'").equals("")){ player.sendMessage(ChatColor.GREEN + "Your class has been reset."); queryTable("UPDATE `classes` SET `class`= '' WHERE `playerName` = '" + playerName + "'"); } else player.sendMessage(ChatColor.RED + "You haven't chosen a class yet."); break;
  120.                
  121.                
  122.             } break;
  123.        
  124.         }
  125.        
  126.        
  127.         return true;
  128.        
  129.     }
  130.    
  131.     public void iNCSetClass(String playerName, String playerClass){
  132.        
  133.         if(getDBString("SELECT `class` FROM `classes` WHERE `playerName` = '" + playerName + "'").equals("")){
  134.             queryTable("UPDATE `classes` SET `class`='" + playerClass + "' WHERE `playerName`='" + playerName + "'");
  135.             this.getServer().getPlayerExact(playerName).sendMessage(ChatColor.GREEN + "Class chosen.");
  136.         }else this.getServer().getPlayerExact(playerName).sendMessage(ChatColor.RED + "You've already chosen a class.");
  137.     }
  138.    
  139.     public void setLevel(Player player, int level){
  140.        
  141.         String playerName = player.getName();
  142.        
  143.         queryTable("UPDATE `levels` SET `level`= " + level + " WHERE `playerName` = '" + playerName + "'");
  144.        
  145.     }
  146.    
  147.     public void setExp(Player player, int exp){
  148.        
  149.         String playerName = player.getName();
  150.        
  151.         queryTable("UPDATE `exp` SET `level`= " + exp + " WHERE `playerName` = '" + playerName + "'");
  152.        
  153.         if(getExp(playerName) > (getLevel(playerName)*150)+150){
  154.             setLevel(player, getLevel(playerName) + 1);
  155.            
  156.             player.sendMessage(ChatColor.LIGHT_PURPLE + "Leveled up! You are now level " + getLevel(playerName));
  157.            
  158.         }
  159.        
  160.     }
  161.    
  162.     public String getDBString(String dataToGet){
  163.        
  164.         String string = null;
  165.        
  166.         try {
  167.            
  168.             Connection conn = DriverManager.getConnection(url, user, pass);
  169.             Statement stmt = conn.createStatement();
  170.             ResultSet rs = stmt.executeQuery(dataToGet);
  171.            
  172.             if(rs.next()) string = rs.getString(1);
  173.             stmt.close();
  174.             conn.close();
  175.            
  176.             }catch( Exception e ) {
  177.                 e.printStackTrace();
  178.             }
  179.         return string;
  180.        
  181.     }
  182.    
  183.     public int getDBInt(String dataToGet){
  184.        
  185.         int value = 1;
  186.        
  187.         try {
  188.            
  189.             Connection conn = DriverManager.getConnection(url, user, pass);
  190.             Statement stmt = conn.createStatement();
  191.             ResultSet rs = stmt.executeQuery(dataToGet);
  192.            
  193.             if(rs.next()) value = rs.getInt(1);
  194.             stmt.close();
  195.             conn.close();
  196.            
  197.            }catch( Exception e ) {
  198.               e.printStackTrace();
  199.              
  200.             }
  201.         return value;
  202.     }
  203.    
  204.     public void queryTable(String query) {
  205.        
  206.         try{
  207.            
  208.             Connection conn = DriverManager.getConnection(url, user, pass);
  209.             PreparedStatement queryStatement = conn.prepareStatement(query);
  210.             queryStatement.executeUpdate();
  211.             queryStatement.close();
  212.             conn.close();
  213.            
  214.         }catch(SQLException e){
  215.            
  216.             e.printStackTrace();
  217.            
  218.         }
  219.     }
  220.    
  221.     public String getClass(String playerName){
  222.        
  223.         return getDBString("SELECT `class` FROM `classes` WHERE `playerName` = '" + playerName + "'"); 
  224.        
  225.     }
  226.    
  227.     public int getLevel(String playerName){
  228.        
  229.         return getDBInt("SELECT `level` FROM `levels` WHERE `playerName` = '" + playerName + "'");
  230.        
  231.     }
  232.    
  233.     public int getExp(String playerName){
  234.        
  235.         return getDBInt("SELECT `exp` FROM `levels` WHERE `playerName` = '" + playerName + "'");
  236.        
  237.     }
  238.    
  239.     public boolean newPlayerJoin(String playerName){
  240.            
  241.         try {
  242.            
  243.             Connection conn = DriverManager.getConnection(url, user, pass);
  244.             Statement stmt = conn.createStatement();
  245.             ResultSet rs = stmt.executeQuery("SELECT `playerName` FROM `classes`");
  246.             int counter = 0;
  247.            
  248.             while(rs.next()){
  249.                
  250.                 counter++;
  251.                 if(rs.getString(counter).equals(playerName)) return false;
  252.                
  253.             }
  254.            
  255.             stmt.close();
  256.             conn.close();
  257.            
  258.            }catch( Exception e ) {
  259.               e.printStackTrace();
  260.              
  261.            }
  262.        
  263.         return true;
  264.        
  265.     }
  266.        
  267. }
Add Comment
Please, Sign In to add comment