Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.slamakans.zombieapocalypse;
- import java.util.logging.Logger;
- import org.bukkit.ChatColor;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.Event;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.java.JavaPlugin;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- public class ZAMain extends JavaPlugin{
- public static ZAMain plugin;
- public Logger logger = Logger.getLogger("Minecraft");
- public ZAPlayerListener playerListener = new ZAPlayerListener(this);
- public ZAEntityListener entityListener = new ZAEntityListener(this);
- String user = "root";
- String pass = "root";
- String url = "jdbc:mysql://localhost:3306/za";
- @Override
- public void onDisable() {
- logger.info("Zombie Apocalypse has been stopped!");
- }
- @Override
- public void onEnable() {
- PluginManager pm = this.getServer().getPluginManager();
- pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Event.Priority.Low, this);
- pm.registerEvent(Event.Type.PLAYER_MOVE, playerListener, Event.Priority.Highest, this);
- pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Event.Priority.Highest, this);
- }
- public boolean onCommand(CommandSender sender, Command command, String cmd, String[] args){
- Player player = (Player) sender;
- String playerName = player.getName();
- switch(cmd.toLowerCase()){
- case "class":
- switch(args[0].toLowerCase()){
- case "archer": iNCSetClass(playerName, "archer"); break;
- case "bruiser": iNCSetClass(playerName, "bruiser"); break;
- case "tank": iNCSetClass(playerName, "tank"); break;
- case "assassin": iNCSetClass(playerName, "assassin"); break;
- case "list":
- player.sendMessage("Archer");
- player.sendMessage("Bruiser");
- player.sendMessage("Tank");
- player.sendMessage("Assassin");
- player.sendMessage(" ");
- player.sendMessage("Type /class help [class] to see more info about a certain class.");
- break;
- case "help":
- switch(args[1].toLowerCase()){
- case "archer":
- player.sendMessage(" ");
- player.sendMessage("Archer");
- player.sendMessage("------------------");
- player.sendMessage(ChatColor.GREEN + "+ Can use bow.");
- player.sendMessage(ChatColor.GREEN + "+ Greatly increased bow damage. (Scales with level)");
- player.sendMessage(ChatColor.RED + "- Can only use up to Iron Armor.");
- player.sendMessage(ChatColor.RED + "- Can only use up to Stone Sword.");
- break;
- case "bruiser":
- player.sendMessage(" ");
- player.sendMessage("Bruiser");
- player.sendMessage("------------------");
- player.sendMessage(ChatColor.GREEN + "+ Increased weapon damage. (Scales with level)");
- player.sendMessage(ChatColor.GREEN + "+ Can use up to diamond sword.");
- player.sendMessage(ChatColor.RED + "- Can only use up to Iron Armor.");
- player.sendMessage(ChatColor.RED + "- Can't use bow.");
- break;
- case "tank":
- player.sendMessage(" ");
- player.sendMessage("Tank");
- player.sendMessage("------------------");
- player.sendMessage(ChatColor.GREEN + "+ Decreased damage taken. (Scales with level)");
- player.sendMessage(ChatColor.GREEN + "+ Can use up to diamond armor");
- player.sendMessage(ChatColor.RED + "- Can only use up to Iron Sword.");
- player.sendMessage(ChatColor.RED + "- Can't use bow.");
- player.sendMessage(ChatColor.RED + "- Can't sprint.");
- break;
- case "assassin":
- player.sendMessage(" ");
- player.sendMessage("Archer");
- player.sendMessage("------------------");
- player.sendMessage(ChatColor.GREEN + "+ Increased movement speed. (Scales with level)");
- player.sendMessage(ChatColor.GREEN + "+ Even more increased movement speed when wearing full leather.");
- player.sendMessage(ChatColor.GREEN + "+ Increased jump height.");
- player.sendMessage(ChatColor.GREEN + "+ No fall damage.");
- player.sendMessage(ChatColor.RED + "- Slightly decreased damage. (Increases by level)");
- player.sendMessage(ChatColor.RED + "- Can only use up to Iron Armor.");
- player.sendMessage(ChatColor.RED + "- Can only use up to Stone Sword.");
- break;
- } break;
- 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;
- 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;
- } break;
- }
- return true;
- }
- public void iNCSetClass(String playerName, String playerClass){
- if(getDBString("SELECT `class` FROM `classes` WHERE `playerName` = '" + playerName + "'").equals("")){
- queryTable("UPDATE `classes` SET `class`='" + playerClass + "' WHERE `playerName`='" + playerName + "'");
- this.getServer().getPlayerExact(playerName).sendMessage(ChatColor.GREEN + "Class chosen.");
- }else this.getServer().getPlayerExact(playerName).sendMessage(ChatColor.RED + "You've already chosen a class.");
- }
- public void setLevel(Player player, int level){
- String playerName = player.getName();
- queryTable("UPDATE `levels` SET `level`= " + level + " WHERE `playerName` = '" + playerName + "'");
- }
- public void setExp(Player player, int exp){
- String playerName = player.getName();
- queryTable("UPDATE `exp` SET `level`= " + exp + " WHERE `playerName` = '" + playerName + "'");
- if(getExp(playerName) > (getLevel(playerName)*150)+150){
- setLevel(player, getLevel(playerName) + 1);
- player.sendMessage(ChatColor.LIGHT_PURPLE + "Leveled up! You are now level " + getLevel(playerName));
- }
- }
- public String getDBString(String dataToGet){
- String string = null;
- try {
- Connection conn = DriverManager.getConnection(url, user, pass);
- Statement stmt = conn.createStatement();
- ResultSet rs = stmt.executeQuery(dataToGet);
- if(rs.next()) string = rs.getString(1);
- stmt.close();
- conn.close();
- }catch( Exception e ) {
- e.printStackTrace();
- }
- return string;
- }
- public int getDBInt(String dataToGet){
- int value = 1;
- try {
- Connection conn = DriverManager.getConnection(url, user, pass);
- Statement stmt = conn.createStatement();
- ResultSet rs = stmt.executeQuery(dataToGet);
- if(rs.next()) value = rs.getInt(1);
- stmt.close();
- conn.close();
- }catch( Exception e ) {
- e.printStackTrace();
- }
- return value;
- }
- public void queryTable(String query) {
- try{
- Connection conn = DriverManager.getConnection(url, user, pass);
- PreparedStatement queryStatement = conn.prepareStatement(query);
- queryStatement.executeUpdate();
- queryStatement.close();
- conn.close();
- }catch(SQLException e){
- e.printStackTrace();
- }
- }
- public String getClass(String playerName){
- return getDBString("SELECT `class` FROM `classes` WHERE `playerName` = '" + playerName + "'");
- }
- public int getLevel(String playerName){
- return getDBInt("SELECT `level` FROM `levels` WHERE `playerName` = '" + playerName + "'");
- }
- public int getExp(String playerName){
- return getDBInt("SELECT `exp` FROM `levels` WHERE `playerName` = '" + playerName + "'");
- }
- public boolean newPlayerJoin(String playerName){
- try {
- Connection conn = DriverManager.getConnection(url, user, pass);
- Statement stmt = conn.createStatement();
- ResultSet rs = stmt.executeQuery("SELECT `playerName` FROM `classes`");
- int counter = 0;
- while(rs.next()){
- counter++;
- if(rs.getString(counter).equals(playerName)) return false;
- }
- stmt.close();
- conn.close();
- }catch( Exception e ) {
- e.printStackTrace();
- }
- return true;
- }
- }
Add Comment
Please, Sign In to add comment