From 653e06dd03eacf425f60b25cf72fa931822f1bc0 Mon Sep 17 00:00:00 2001 From: GJ Date: Wed, 7 Mar 2012 01:42:43 -0500 Subject: [PATCH] Database.java cleanup --- src/main/java/com/gmail/nossr50/Database.java | 516 +++++++++--------- .../nossr50/commands/mc/McremoveCommand.java | 12 +- .../nossr50/commands/mc/MctopCommand.java | 24 +- .../gmail/nossr50/datatypes/AbilityType.java | 2 +- .../nossr50/datatypes/PlayerProfile.java | 38 +- src/main/java/com/gmail/nossr50/m.java | 24 +- src/main/java/datatypes/DatabaseUpdate.java | 24 + 7 files changed, 341 insertions(+), 299 deletions(-) create mode 100644 src/main/java/datatypes/DatabaseUpdate.java diff --git a/src/main/java/com/gmail/nossr50/Database.java b/src/main/java/com/gmail/nossr50/Database.java index 34d5c961c..4adf5c47a 100644 --- a/src/main/java/com/gmail/nossr50/Database.java +++ b/src/main/java/com/gmail/nossr50/Database.java @@ -1,173 +1,164 @@ /* - This file is part of mcMMO. - - mcMMO is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mcMMO is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mcMMO. If not, see . + * Copyright (C) 2012 Matt 'The Yeti' Burnett & mcMMO Development + * Copyright (C) 2010-2011 'nossr50' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ + package com.gmail.nossr50; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.PreparedStatement; import java.util.HashMap; import java.util.ArrayList; -import java.sql.PreparedStatement; +import java.util.Properties; import com.gmail.nossr50.config.LoadProperties; +import datatypes.DatabaseUpdate; + public class Database { - private mcMMO plugin; - private String connectionString = "jdbc:mysql://" + LoadProperties.MySQLserverName + ":" + LoadProperties.MySQLport + "/" + LoadProperties.MySQLdbName + "?user=" + LoadProperties.MySQLuserName + "&password=" + LoadProperties.MySQLdbPass; - private boolean isConnected = false; - private Connection conn = null; - - public void connect() - { - try - { - System.out.println("[mcMMO] Attempting connection to MySQL..."); - java.util.Properties conProperties = new java.util.Properties(); - conProperties.put("autoReconnect", "true"); - conProperties.put("maxReconnects", "3"); - conn = DriverManager.getConnection(connectionString, conProperties); - isConnected = true; - System.out.println("[mcMMO] Connection to MySQL established!"); - } catch (SQLException ex) - { - isConnected = false; - ex.printStackTrace(); - System.out.println("SQLException: " + ex.getMessage()); - System.out.println("SQLState: " + ex.getSQLState()); - System.out.println("VendorError: " + ex.getErrorCode()); - } - } - - public boolean isConnected() - { - return isConnected; - } + private mcMMO plugin; + private String connectionString = "jdbc:mysql://" + LoadProperties.MySQLserverName + ":" + LoadProperties.MySQLport + "/" + LoadProperties.MySQLdbName + "?user=" + LoadProperties.MySQLuserName + "&password=" + LoadProperties.MySQLdbPass; + private boolean isConnected; + private Connection conn = null; - public Database(mcMMO instance) { - connect(); //Connect to MySQL - this.plugin = instance; - // Load the driver instance - try { - Class.forName("com.mysql.jdbc.Driver"); - DriverManager.getConnection(connectionString); - } catch (ClassNotFoundException e) { - plugin.getServer().getLogger().warning(e.getLocalizedMessage()); - } catch (SQLException e) { - plugin.getServer().getLogger().warning(e.getLocalizedMessage()); - System.out.println("SQLException: " + e.getMessage()); - System.out.println("SQLState: " + e.getSQLState()); - System.out.println("VendorError: " + e.getErrorCode()); - } - } - - //Create the DB structure - public void createStructure() { - Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "huds` (`user_id` int(10) unsigned NOT NULL," - + "`hudtype` varchar(50) NOT NULL DEFAULT ''," - + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); - Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "users` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT," - + "`user` varchar(40) NOT NULL," - + "`lastlogin` int(32) unsigned NOT NULL," - + "`party` varchar(100) NOT NULL DEFAULT ''," - + "PRIMARY KEY (`id`)," - + "UNIQUE KEY `user` (`user`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;"); - Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "cooldowns` (`user_id` int(10) unsigned NOT NULL," - + "`taming` int(32) unsigned NOT NULL DEFAULT '0'," - + "`mining` int(32) unsigned NOT NULL DEFAULT '0'," - + "`woodcutting` int(32) unsigned NOT NULL DEFAULT '0'," - + "`repair` int(32) unsigned NOT NULL DEFAULT '0'," - + "`unarmed` int(32) unsigned NOT NULL DEFAULT '0'," - + "`herbalism` int(32) unsigned NOT NULL DEFAULT '0'," - + "`excavation` int(32) unsigned NOT NULL DEFAULT '0'," - + "`archery` int(32) unsigned NOT NULL DEFAULT '0'," - + "`swords` int(32) unsigned NOT NULL DEFAULT '0'," - + "`axes` int(32) unsigned NOT NULL DEFAULT '0'," - + "`acrobatics` int(32) unsigned NOT NULL DEFAULT '0'," - + "`blast_mining` int(32) unsigned NOT NULL DEFAULT '0'," - + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); - Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "skills` (`user_id` int(10) unsigned NOT NULL," - + "`taming` int(10) unsigned NOT NULL DEFAULT '0'," - + "`mining` int(10) unsigned NOT NULL DEFAULT '0'," - + "`woodcutting` int(10) unsigned NOT NULL DEFAULT '0'," - + "`repair` int(10) unsigned NOT NULL DEFAULT '0'," - + "`unarmed` int(10) unsigned NOT NULL DEFAULT '0'," - + "`herbalism` int(10) unsigned NOT NULL DEFAULT '0'," - + "`excavation` int(10) unsigned NOT NULL DEFAULT '0'," - + "`archery` int(10) unsigned NOT NULL DEFAULT '0'," - + "`swords` int(10) unsigned NOT NULL DEFAULT '0'," - + "`axes` int(10) unsigned NOT NULL DEFAULT '0'," - + "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0'," - + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); - Write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "experience` (`user_id` int(10) unsigned NOT NULL," - + "`taming` int(10) unsigned NOT NULL DEFAULT '0'," - + "`mining` int(10) unsigned NOT NULL DEFAULT '0'," - + "`woodcutting` int(10) unsigned NOT NULL DEFAULT '0'," - + "`repair` int(10) unsigned NOT NULL DEFAULT '0'," - + "`unarmed` int(10) unsigned NOT NULL DEFAULT '0'," - + "`herbalism` int(10) unsigned NOT NULL DEFAULT '0'," - + "`excavation` int(10) unsigned NOT NULL DEFAULT '0'," - + "`archery` int(10) unsigned NOT NULL DEFAULT '0'," - + "`swords` int(10) unsigned NOT NULL DEFAULT '0'," - + "`axes` int(10) unsigned NOT NULL DEFAULT '0'," - + "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0'," - + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); - - Write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"skills2`"); - Write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"experience2`"); - Write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"spawn`"); - - checkDatabaseStructure(); - checkDatabaseStructureForBlastMining(); - } + public Database(mcMMO instance) { + connect(); //Connect to MySQL + this.plugin = instance; - public void checkDatabaseStructure() - { - String sql = "SELECT * FROM `"+LoadProperties.MySQLtablePrefix+"experience` ORDER BY `"+LoadProperties.MySQLtablePrefix+"experience`.`fishing` ASC LIMIT 0 , 30"; - - ResultSet rs = null; - HashMap> Rows = new HashMap>(); - try { - PreparedStatement stmt = conn.prepareStatement(sql); - if (stmt.executeQuery() != null) { - stmt.executeQuery(); - rs = stmt.getResultSet(); - while (rs.next()) { - ArrayList Col = new ArrayList(); - for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { - Col.add(rs.getString(i)); - } - Rows.put(rs.getRow(), Col); - } - } - } catch (SQLException ex) { - System.out.println("Updating mcMMO MySQL tables for Fishing..."); - Write("ALTER TABLE `"+LoadProperties.MySQLtablePrefix + "skills` ADD `fishing` int(10) NOT NULL DEFAULT '0' ;"); - Write("ALTER TABLE `"+LoadProperties.MySQLtablePrefix + "experience` ADD `fishing` int(10) NOT NULL DEFAULT '0' ;"); - } - } - - public void checkDatabaseStructureForBlastMining() - { - String sql = "SELECT * FROM `"+LoadProperties.MySQLtablePrefix+"cooldowns` ORDER BY `"+LoadProperties.MySQLtablePrefix+"cooldowns`.`blast_mining` ASC LIMIT 0 , 30"; - + // Load the driver instance + try { + Class.forName("com.mysql.jdbc.Driver"); + DriverManager.getConnection(connectionString); + } + catch (ClassNotFoundException e) { + plugin.getServer().getLogger().warning(e.getLocalizedMessage()); + } + catch (SQLException ex) { + plugin.getServer().getLogger().warning(ex.getLocalizedMessage()); + printErrors(ex); + } + } + + /** + * Attempt to connect to the mySQL database. + */ + public void connect() { + try { + System.out.println("[mcMMO] Attempting connection to MySQL..."); + Properties conProperties = new Properties(); + conProperties.put("autoReconnect", "true"); + conProperties.put("maxReconnects", "3"); + conn = DriverManager.getConnection(connectionString, conProperties); + isConnected = true; + System.out.println("[mcMMO] Connection to MySQL established!"); + } + catch (SQLException ex) { + isConnected = false; + ex.printStackTrace(); + printErrors(ex); + } + } + + /** + * Attempt to create the database structure. + */ + public void createStructure() { + write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "huds` (`user_id` int(10) unsigned NOT NULL," + + "`hudtype` varchar(50) NOT NULL DEFAULT ''," + + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "users` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT," + + "`user` varchar(40) NOT NULL," + + "`lastlogin` int(32) unsigned NOT NULL," + + "`party` varchar(100) NOT NULL DEFAULT ''," + + "PRIMARY KEY (`id`)," + + "UNIQUE KEY `user` (`user`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;"); + write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "cooldowns` (`user_id` int(10) unsigned NOT NULL," + + "`taming` int(32) unsigned NOT NULL DEFAULT '0'," + + "`mining` int(32) unsigned NOT NULL DEFAULT '0'," + + "`woodcutting` int(32) unsigned NOT NULL DEFAULT '0'," + + "`repair` int(32) unsigned NOT NULL DEFAULT '0'," + + "`unarmed` int(32) unsigned NOT NULL DEFAULT '0'," + + "`herbalism` int(32) unsigned NOT NULL DEFAULT '0'," + + "`excavation` int(32) unsigned NOT NULL DEFAULT '0'," + + "`archery` int(32) unsigned NOT NULL DEFAULT '0'," + + "`swords` int(32) unsigned NOT NULL DEFAULT '0'," + + "`axes` int(32) unsigned NOT NULL DEFAULT '0'," + + "`acrobatics` int(32) unsigned NOT NULL DEFAULT '0'," + + "`blast_mining` int(32) unsigned NOT NULL DEFAULT '0'," + + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "skills` (`user_id` int(10) unsigned NOT NULL," + + "`taming` int(10) unsigned NOT NULL DEFAULT '0'," + + "`mining` int(10) unsigned NOT NULL DEFAULT '0'," + + "`woodcutting` int(10) unsigned NOT NULL DEFAULT '0'," + + "`repair` int(10) unsigned NOT NULL DEFAULT '0'," + + "`unarmed` int(10) unsigned NOT NULL DEFAULT '0'," + + "`herbalism` int(10) unsigned NOT NULL DEFAULT '0'," + + "`excavation` int(10) unsigned NOT NULL DEFAULT '0'," + + "`archery` int(10) unsigned NOT NULL DEFAULT '0'," + + "`swords` int(10) unsigned NOT NULL DEFAULT '0'," + + "`axes` int(10) unsigned NOT NULL DEFAULT '0'," + + "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0'," + + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + write("CREATE TABLE IF NOT EXISTS `" + LoadProperties.MySQLtablePrefix + "experience` (`user_id` int(10) unsigned NOT NULL," + + "`taming` int(10) unsigned NOT NULL DEFAULT '0'," + + "`mining` int(10) unsigned NOT NULL DEFAULT '0'," + + "`woodcutting` int(10) unsigned NOT NULL DEFAULT '0'," + + "`repair` int(10) unsigned NOT NULL DEFAULT '0'," + + "`unarmed` int(10) unsigned NOT NULL DEFAULT '0'," + + "`herbalism` int(10) unsigned NOT NULL DEFAULT '0'," + + "`excavation` int(10) unsigned NOT NULL DEFAULT '0'," + + "`archery` int(10) unsigned NOT NULL DEFAULT '0'," + + "`swords` int(10) unsigned NOT NULL DEFAULT '0'," + + "`axes` int(10) unsigned NOT NULL DEFAULT '0'," + + "`acrobatics` int(10) unsigned NOT NULL DEFAULT '0'," + + "PRIMARY KEY (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + + write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"skills2`"); + write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"experience2`"); + write("DROP TABLE IF EXISTS `"+LoadProperties.MySQLtablePrefix+"spawn`"); + + checkDatabaseStructure(DatabaseUpdate.FISHING); + checkDatabaseStructure(DatabaseUpdate.BLAST_MINING); + } + + /** + * Check database structure for missing values. + * + * @param update Type of data to check updates for + */ + public void checkDatabaseStructure(DatabaseUpdate update) { + String sql = null; ResultSet rs = null; HashMap> Rows = new HashMap>(); + + switch (update) { + case BLAST_MINING: + sql = "SELECT * FROM `"+LoadProperties.MySQLtablePrefix+"cooldowns` ORDER BY `"+LoadProperties.MySQLtablePrefix+"cooldowns`.`blast_mining` ASC LIMIT 0 , 30"; + break; + case FISHING: + sql = "SELECT * FROM `"+LoadProperties.MySQLtablePrefix+"experience` ORDER BY `"+LoadProperties.MySQLtablePrefix+"experience`.`fishing` ASC LIMIT 0 , 30"; + break; + default: + break; + } + try { PreparedStatement stmt = conn.prepareStatement(sql); if (stmt.executeQuery() != null) { @@ -181,111 +172,138 @@ public class Database { Rows.put(rs.getRow(), Col); } } - } catch (SQLException ex) { - System.out.println("Updating mcMMO MySQL tables for Blast Mining..."); - Write("ALTER TABLE `"+LoadProperties.MySQLtablePrefix + "cooldowns` ADD `blast_mining` int(32) NOT NULL DEFAULT '0' ;"); } - } - - // write query - public boolean Write(String sql) { - if(conn != null) - { - try { - PreparedStatement stmt = conn.prepareStatement(sql); - stmt.executeUpdate(); - return true; - } catch (SQLException ex) { - System.out.println("SQLException: " + ex.getMessage()); - System.out.println("SQLState: " + ex.getSQLState()); - System.out.println("VendorError: " + ex.getErrorCode()); - return false; - } - } else - { - isConnected = false; - connect(); //Attempt to reconnect - if(isConnected = true) - { - Write(sql); //Try the same operation again now that we are connected - } else { - System.out.println("[mcMMO] Unable to connect to MySQL! Make sure the SQL server is online!"); - } - } - return false; - } + catch (SQLException ex) { + if (update.equals(DatabaseUpdate.BLAST_MINING)) { + System.out.println("Updating mcMMO MySQL tables for Blast Mining..."); + write("ALTER TABLE `"+LoadProperties.MySQLtablePrefix + "cooldowns` ADD `blast_mining` int(32) NOT NULL DEFAULT '0' ;"); + } + else if (update.equals(DatabaseUpdate.FISHING)) { + System.out.println("Updating mcMMO MySQL tables for Fishing..."); + write("ALTER TABLE `"+LoadProperties.MySQLtablePrefix + "skills` ADD `fishing` int(10) NOT NULL DEFAULT '0' ;"); + write("ALTER TABLE `"+LoadProperties.MySQLtablePrefix + "experience` ADD `fishing` int(10) NOT NULL DEFAULT '0' ;"); + } + } + } - // Get Int - // only return first row / first field - public Integer GetInt(String sql) { - ResultSet rs = null; - Integer result = 0; - if(conn != null) - { - try { - PreparedStatement stmt = conn.prepareStatement(sql); - stmt = conn.prepareStatement(sql); - if (stmt.executeQuery() != null) { - stmt.executeQuery(); - rs = stmt.getResultSet(); - if (rs.next()) { - result = rs.getInt(1); - } else { - result = 0; - } - } - } catch (SQLException ex) { - System.out.println("SQLException: " + ex.getMessage()); - System.out.println("SQLState: " + ex.getSQLState()); - System.out.println("VendorError: " + ex.getErrorCode()); - } - } else { - isConnected = false; + /** + * Attempt to write the SQL query. + * + * @param sql Query to write. + * @return true if the query was successfully written, false otherwise. + */ + public boolean write(String sql) { + if (conn != null) { + try { + PreparedStatement stmt = conn.prepareStatement(sql); + stmt.executeUpdate(); + return true; + } + catch (SQLException ex) { + printErrors(ex); + return false; + } + } + else { + isConnected = false; connect(); //Attempt to reconnect - if(isConnected = true) - { - GetInt(sql); //Try the same operation again now that we are connected - } else { + if (isConnected) { + write(sql); //Try the same operation again now that we are connected + } + else { System.out.println("[mcMMO] Unable to connect to MySQL! Make sure the SQL server is online!"); } - } - return result; - } + } + return false; + } - // read query - public HashMap> Read(String sql) { - ResultSet rs = null; - HashMap> Rows = new HashMap>(); - if(conn != null) - { - try { - PreparedStatement stmt = conn.prepareStatement(sql); - if (stmt.executeQuery() != null) { - stmt.executeQuery(); - rs = stmt.getResultSet(); - while (rs.next()) { - ArrayList Col = new ArrayList(); - for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { - Col.add(rs.getString(i)); - } - Rows.put(rs.getRow(), Col); - } - } - } catch (SQLException ex) { - System.out.println("SQLException: " + ex.getMessage()); - System.out.println("SQLState: " + ex.getSQLState()); - System.out.println("VendorError: " + ex.getErrorCode()); - } - } else { - isConnected = false; + /** + * Get the Integer. Only return first row / first field. + * + * @param sql SQL query to execute + * @return the value in the first row / first field + */ + public Integer getInt(String sql) { + ResultSet rs = null; + Integer result = 0; + + if (conn != null) { + try { + PreparedStatement stmt = conn.prepareStatement(sql); + stmt = conn.prepareStatement(sql); + if (stmt.executeQuery() != null) { + stmt.executeQuery(); + rs = stmt.getResultSet(); + if (rs.next()) { + result = rs.getInt(1); + } + else { + result = 0; + } + } + } + catch (SQLException ex) { + printErrors(ex); + } + } + else { + isConnected = false; connect(); //Attempt to reconnect - if(isConnected = true) - { - Read(sql); //Attempt the same operation again now that we are connected - } else { + if (isConnected) { + getInt(sql); //Try the same operation again now that we are connected + } + else { System.out.println("[mcMMO] Unable to connect to MySQL! Make sure the SQL server is online!"); } - } - return Rows; - } + } + return result; + } + + /** + * Read SQL query. + * + * @param sql SQL query to read + * @return the rows in this SQL query + */ + public HashMap> read(String sql) { + ResultSet rs = null; + HashMap> Rows = new HashMap>(); + + if (conn != null) { + try { + PreparedStatement stmt = conn.prepareStatement(sql); + if (stmt.executeQuery() != null) { + stmt.executeQuery(); + rs = stmt.getResultSet(); + while (rs.next()) { + ArrayList Col = new ArrayList(); + for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { + Col.add(rs.getString(i)); + } + Rows.put(rs.getRow(), Col); + } + } + } + catch (SQLException ex) { + printErrors(ex); + } + } + else { + isConnected = false; + connect(); //Attempt to reconnect + if (isConnected) { + read(sql); //Attempt the same operation again now that we are connected + } + else { + System.out.println("[mcMMO] Unable to connect to MySQL! Make sure the SQL server is online!"); + } + } + return Rows; + } + + private static void printErrors(SQLException ex) { + System.out.println("SQLException: " + ex.getMessage()); + System.out.println("SQLState: " + ex.getSQLState()); + System.out.println("VendorError: " + ex.getErrorCode()); + } } diff --git a/src/main/java/com/gmail/nossr50/commands/mc/McremoveCommand.java b/src/main/java/com/gmail/nossr50/commands/mc/McremoveCommand.java index 0932bbeb9..2bce9a71e 100644 --- a/src/main/java/com/gmail/nossr50/commands/mc/McremoveCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/mc/McremoveCommand.java @@ -38,30 +38,30 @@ public class McremoveCommand implements CommandExecutor { //If the server is using MySQL if(LoadProperties.useMySQL) { - int userId = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + playerName + "'"); + int userId = mcMMO.database.getInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + playerName + "'"); //Remove user from tables - mcMMO.database.Write("DELETE FROM " + mcMMO.database.write("DELETE FROM " +LoadProperties.MySQLdbName+"." +LoadProperties.MySQLtablePrefix+"users WHERE " +LoadProperties.MySQLtablePrefix+"users.id="+userId); - mcMMO.database.Write("DELETE FROM " + mcMMO.database.write("DELETE FROM " +LoadProperties.MySQLdbName+"." +LoadProperties.MySQLtablePrefix+"cooldowns WHERE " +LoadProperties.MySQLtablePrefix+"cooldowns.user_id="+userId); - mcMMO.database.Write("DELETE FROM " + mcMMO.database.write("DELETE FROM " +LoadProperties.MySQLdbName+"." +LoadProperties.MySQLtablePrefix+"huds WHERE " +LoadProperties.MySQLtablePrefix+"huds.user_id="+userId); - mcMMO.database.Write("DELETE FROM " + mcMMO.database.write("DELETE FROM " +LoadProperties.MySQLdbName+"." +LoadProperties.MySQLtablePrefix+"skills WHERE " +LoadProperties.MySQLtablePrefix+"skills.user_id="+userId); - mcMMO.database.Write("DELETE FROM " + mcMMO.database.write("DELETE FROM " +LoadProperties.MySQLdbName+"." +LoadProperties.MySQLtablePrefix+"experience WHERE " +LoadProperties.MySQLtablePrefix+"experience.user_id="+userId); diff --git a/src/main/java/com/gmail/nossr50/commands/mc/MctopCommand.java b/src/main/java/com/gmail/nossr50/commands/mc/MctopCommand.java index 7ad739a14..a3ca3484d 100644 --- a/src/main/java/com/gmail/nossr50/commands/mc/MctopCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/mc/MctopCommand.java @@ -138,22 +138,22 @@ public class MctopCommand implements CommandExecutor { n = n * (n2 - 1); } // If a page number is specified - HashMap> userslist = mcMMO.database.Read("SELECT " + lowercase + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + lowercase + " > 0 ORDER BY `" + LoadProperties.MySQLtablePrefix + "skills`.`" + lowercase + "` DESC "); + HashMap> userslist = mcMMO.database.read("SELECT " + lowercase + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + lowercase + " > 0 ORDER BY `" + LoadProperties.MySQLtablePrefix + "skills`.`" + lowercase + "` DESC "); for (int i = n; i <= n + 10; i++) { - if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null) + if (i > userslist.size() || mcMMO.database.read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null) break; - HashMap> username = mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); + HashMap> username = mcMMO.database.read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); player.sendMessage(String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0)); } return true; } // If no page number is specified - HashMap> userslist = mcMMO.database.Read("SELECT " + lowercase + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + lowercase + " > 0 ORDER BY `" + LoadProperties.MySQLtablePrefix + "skills`.`" + lowercase + "` DESC "); + HashMap> userslist = mcMMO.database.read("SELECT " + lowercase + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + lowercase + " > 0 ORDER BY `" + LoadProperties.MySQLtablePrefix + "skills`.`" + lowercase + "` DESC "); for (int i = 1; i <= 10; i++) { // i<=userslist.size() - if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null) + if (i > userslist.size() || mcMMO.database.read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null) break; - HashMap> username = mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); + HashMap> username = mcMMO.database.read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); player.sendMessage(String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0)); } return true; @@ -169,20 +169,20 @@ public class MctopCommand implements CommandExecutor { n = n * (n2 - 1); } // If a page number is specified - HashMap> userslist = mcMMO.database.Read("SELECT " + powerlevel + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + powerlevel + " > 0 ORDER BY " + powerlevel + " DESC "); + HashMap> userslist = mcMMO.database.read("SELECT " + powerlevel + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + powerlevel + " > 0 ORDER BY " + powerlevel + " DESC "); for (int i = n; i <= n + 10; i++) { - if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null) + if (i > userslist.size() || mcMMO.database.read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null) break; - HashMap> username = mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); + HashMap> username = mcMMO.database.read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); player.sendMessage(String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0)); } return true; } - HashMap> userslist = mcMMO.database.Read("SELECT " + powerlevel + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + powerlevel + " > 0 ORDER BY " + powerlevel + " DESC "); + HashMap> userslist = mcMMO.database.read("SELECT " + powerlevel + ", user_id FROM " + LoadProperties.MySQLtablePrefix + "skills WHERE " + powerlevel + " > 0 ORDER BY " + powerlevel + " DESC "); for (int i = 1; i <= 10; i++) { - if (i > userslist.size() || mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null) + if (i > userslist.size() || mcMMO.database.read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'") == null) break; - HashMap> username = mcMMO.database.Read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); + HashMap> username = mcMMO.database.read("SELECT user FROM " + LoadProperties.MySQLtablePrefix + "users WHERE id = '" + Integer.valueOf(userslist.get(i).get(1)) + "'"); player.sendMessage(String.valueOf(i) + ". " + ChatColor.GREEN + userslist.get(i).get(0) + " - " + ChatColor.WHITE + username.get(1).get(0)); // System.out.println(username.get(1).get(0)); // System.out.println("Mining : " + userslist.get(i).get(0) + ", User id : " + userslist.get(i).get(1)); diff --git a/src/main/java/com/gmail/nossr50/datatypes/AbilityType.java b/src/main/java/com/gmail/nossr50/datatypes/AbilityType.java index 55caa5d1a..bc2b706b6 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/AbilityType.java +++ b/src/main/java/com/gmail/nossr50/datatypes/AbilityType.java @@ -15,7 +15,7 @@ public enum AbilityType SKULL_SPLIITER(LoadProperties.skullSplitterCooldown, mcLocale.getString("Skills.SkullSplitterOn"), mcLocale.getString("Skills.SkullSplitterOff"), "Skills.SkullSplitterPlayer", mcLocale.getString("Skills.YourSkullSplitter"), "Skills.SkullSplitterPlayerOff"), TREE_FELLER(LoadProperties.treeFellerCooldown, mcLocale.getString("Skills.TreeFellerOn"), mcLocale.getString("Skills.TreeFellerOff"), "Skills.TreeFellerPlayer", mcLocale.getString("Skills.YourTreeFeller"), "Skills.TreeFellerPlayerOff"), SERRATED_STRIKES(LoadProperties.skullSplitterCooldown, mcLocale.getString("Skills.SerratedStrikesOn"), mcLocale.getString("Skills.SerratedStrikesOff"), "Skills.SerratedStrikesPlayer", mcLocale.getString("Skills.YourSerratedStrikes"), "Skills.SerratedStrikesPlayerOff"), - BLAST_MINING(LoadProperties.blastMiningCooldown, "NOT NEEDED FOR BLAST MINING", "NOT NEEDED FOR BLAST MINING", "Skills.BlastMiningPlayer", mcLocale.getString("Skills.YourBlastMining"), "NOT NEEDED FOR BLAST MINING"); + BLAST_MINING(LoadProperties.blastMiningCooldown, null, null, "Skills.BlastMiningPlayer", mcLocale.getString("Skills.YourBlastMining"), null); private int cooldown; private String abilityOn; diff --git a/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java b/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java index 690697b5b..1351cd8f1 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java +++ b/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java @@ -145,15 +145,15 @@ public class PlayerProfile public boolean loadMySQL() { Integer id = 0; - id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + playerName + "'"); + id = mcMMO.database.getInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + playerName + "'"); if(id == 0) return false; this.userid = id; if (id > 0) { - HashMap> huds = mcMMO.database.Read("SELECT hudtype FROM "+LoadProperties.MySQLtablePrefix+"huds WHERE user_id = " + id); + HashMap> huds = mcMMO.database.read("SELECT hudtype FROM "+LoadProperties.MySQLtablePrefix+"huds WHERE user_id = " + id); if(huds.get(1) == null) { - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"huds (user_id) VALUES ("+id+")"); + mcMMO.database.write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"huds (user_id) VALUES ("+id+")"); } else { if(huds.get(1).get(0) != null) { @@ -168,17 +168,17 @@ public class PlayerProfile hud = LoadProperties.defaulthud; } } - HashMap> users = mcMMO.database.Read("SELECT lastlogin, party FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = " + id); + HashMap> users = mcMMO.database.read("SELECT lastlogin, party FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = " + id); //lastlogin = Integer.parseInt(users.get(1).get(0)); party = users.get(1).get(1); - HashMap> cooldowns = mcMMO.database.Read("SELECT mining, woodcutting, unarmed, herbalism, excavation, swords, axes, blast_mining FROM "+LoadProperties.MySQLtablePrefix+"cooldowns WHERE user_id = " + id); + HashMap> cooldowns = mcMMO.database.read("SELECT mining, woodcutting, unarmed, herbalism, excavation, swords, axes, blast_mining FROM "+LoadProperties.MySQLtablePrefix+"cooldowns WHERE user_id = " + id); /* * I'm still learning MySQL, this is a fix for adding a new table * its not pretty but it works */ if(cooldowns.get(1) == null) { - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"cooldowns (user_id) VALUES ("+id+")"); + mcMMO.database.write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"cooldowns (user_id) VALUES ("+id+")"); } else { @@ -191,7 +191,7 @@ public class PlayerProfile skillsDATS.put(AbilityType.SKULL_SPLIITER, Integer.valueOf(cooldowns.get(1).get(6))); skillsDATS.put(AbilityType.BLAST_MINING, Integer.valueOf(cooldowns.get(1).get(7))); } - HashMap> stats = mcMMO.database.Read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM "+LoadProperties.MySQLtablePrefix+"skills WHERE user_id = " + id); + HashMap> stats = mcMMO.database.read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM "+LoadProperties.MySQLtablePrefix+"skills WHERE user_id = " + id); skills.put(SkillType.TAMING, Integer.valueOf(stats.get(1).get(0))); skills.put(SkillType.MINING, Integer.valueOf(stats.get(1).get(1))); skills.put(SkillType.REPAIR, Integer.valueOf(stats.get(1).get(2))); @@ -204,7 +204,7 @@ public class PlayerProfile skills.put(SkillType.AXES, Integer.valueOf(stats.get(1).get(9))); skills.put(SkillType.ACROBATICS, Integer.valueOf(stats.get(1).get(10))); skills.put(SkillType.FISHING, Integer.valueOf(stats.get(1).get(11))); - HashMap> experience = mcMMO.database.Read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM "+LoadProperties.MySQLtablePrefix+"experience WHERE user_id = " + id); + HashMap> experience = mcMMO.database.read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM "+LoadProperties.MySQLtablePrefix+"experience WHERE user_id = " + id); skillsXp.put(SkillType.TAMING, Integer.valueOf(experience.get(1).get(0))); skillsXp.put(SkillType.MINING, Integer.valueOf(experience.get(1).get(1))); skillsXp.put(SkillType.REPAIR, Integer.valueOf(experience.get(1).get(2))); @@ -226,11 +226,11 @@ public class PlayerProfile } public void addMySQLPlayer() { Integer id = 0; - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"users (user, lastlogin) VALUES ('" + playerName + "'," + System.currentTimeMillis() / 1000 +")"); - id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + playerName + "'"); - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"cooldowns (user_id) VALUES ("+id+")"); - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"skills (user_id) VALUES ("+id+")"); - mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"experience (user_id) VALUES ("+id+")"); + mcMMO.database.write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"users (user, lastlogin) VALUES ('" + playerName + "'," + System.currentTimeMillis() / 1000 +")"); + id = mcMMO.database.getInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + playerName + "'"); + mcMMO.database.write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"cooldowns (user_id) VALUES ("+id+")"); + mcMMO.database.write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"skills (user_id) VALUES ("+id+")"); + mcMMO.database.write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"experience (user_id) VALUES ("+id+")"); this.userid = id; } @@ -345,11 +345,11 @@ public class PlayerProfile // if we are using mysql save to database if (LoadProperties.useMySQL) { - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"huds SET " + mcMMO.database.write("UPDATE "+LoadProperties.MySQLtablePrefix+"huds SET " +" hudtype = '"+hud.toString()+"' WHERE user_id = "+this.userid); - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET lastlogin = " + timestamp.intValue() + " WHERE id = " + this.userid); - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET party = '"+this.party+"' WHERE id = " +this.userid); - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"cooldowns SET " + mcMMO.database.write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET lastlogin = " + timestamp.intValue() + " WHERE id = " + this.userid); + mcMMO.database.write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET party = '"+this.party+"' WHERE id = " +this.userid); + mcMMO.database.write("UPDATE "+LoadProperties.MySQLtablePrefix+"cooldowns SET " +" mining = " + skillsDATS.get(AbilityType.SUPER_BREAKER) +", woodcutting = " + skillsDATS.get(AbilityType.TREE_FELLER) +", unarmed = " + skillsDATS.get(AbilityType.BERSERK) @@ -359,7 +359,7 @@ public class PlayerProfile +", axes = " + skillsDATS.get(AbilityType.SKULL_SPLIITER) +", blast_mining = " + skillsDATS.get(AbilityType.BLAST_MINING) +" WHERE user_id = "+this.userid); - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"skills SET " + mcMMO.database.write("UPDATE "+LoadProperties.MySQLtablePrefix+"skills SET " +" taming = "+skills.get(SkillType.TAMING) +", mining = "+skills.get(SkillType.MINING) +", repair = "+skills.get(SkillType.REPAIR) @@ -373,7 +373,7 @@ public class PlayerProfile +", acrobatics = "+skills.get(SkillType.ACROBATICS) +", fishing = "+skills.get(SkillType.FISHING) +" WHERE user_id = "+this.userid); - mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"experience SET " + mcMMO.database.write("UPDATE "+LoadProperties.MySQLtablePrefix+"experience SET " +" taming = "+skillsXp.get(SkillType.TAMING) +", mining = "+skillsXp.get(SkillType.MINING) +", repair = "+skillsXp.get(SkillType.REPAIR) diff --git a/src/main/java/com/gmail/nossr50/m.java b/src/main/java/com/gmail/nossr50/m.java index 0515b1253..e924dd6b9 100644 --- a/src/main/java/com/gmail/nossr50/m.java +++ b/src/main/java/com/gmail/nossr50/m.java @@ -493,18 +493,18 @@ public class m fishingXP = character[35]; //Check to see if the user is in the DB - id = mcMMO.database.GetInt("SELECT id FROM " + id = mcMMO.database.getInt("SELECT id FROM " + LoadProperties.MySQLtablePrefix + "users WHERE user = '" + playerName + "'"); if (id > 0) { theCount++; //Update the skill values - mcMMO.database.Write("UPDATE " + mcMMO.database.write("UPDATE " + LoadProperties.MySQLtablePrefix + "users SET lastlogin = " + 0 + " WHERE id = " + id); - mcMMO.database.Write("UPDATE " + mcMMO.database.write("UPDATE " + LoadProperties.MySQLtablePrefix + "skills SET " + " taming = taming+" + getInt(taming) + ", mining = mining+" @@ -524,7 +524,7 @@ public class m + getInt(acrobatics) + ", fishing = fishing+" + getInt(fishing) + " WHERE user_id = " + id); - mcMMO.database.Write("UPDATE " + mcMMO.database.write("UPDATE " + LoadProperties.MySQLtablePrefix + "experience SET " + " taming = " + getInt(tamingXP) + ", mining = " @@ -543,33 +543,33 @@ public class m } else { theCount++; //Create the user in the DB - mcMMO.database.Write("INSERT INTO " + mcMMO.database.write("INSERT INTO " + LoadProperties.MySQLtablePrefix + "users (user, lastlogin) VALUES ('" + playerName + "'," + System.currentTimeMillis() / 1000 + ")"); id = mcMMO.database - .GetInt("SELECT id FROM " + .getInt("SELECT id FROM " + LoadProperties.MySQLtablePrefix + "users WHERE user = '" + playerName + "'"); - mcMMO.database.Write("INSERT INTO " + mcMMO.database.write("INSERT INTO " + LoadProperties.MySQLtablePrefix + "skills (user_id) VALUES (" + id + ")"); - mcMMO.database.Write("INSERT INTO " + mcMMO.database.write("INSERT INTO " + LoadProperties.MySQLtablePrefix + "experience (user_id) VALUES (" + id + ")"); //Update the skill values - mcMMO.database.Write("UPDATE " + mcMMO.database.write("UPDATE " + LoadProperties.MySQLtablePrefix + "users SET lastlogin = " + 0 + " WHERE id = " + id); - mcMMO.database.Write("UPDATE " + mcMMO.database.write("UPDATE " + LoadProperties.MySQLtablePrefix + "users SET party = '" + party + "' WHERE id = " + id); - mcMMO.database.Write("UPDATE " + mcMMO.database.write("UPDATE " + LoadProperties.MySQLtablePrefix + "skills SET " + " taming = " + getInt(taming) + ", mining = " @@ -585,7 +585,7 @@ public class m + getInt(acrobatics) + ", fishing = " + getInt(fishing) + " WHERE user_id = " + id); - mcMMO.database.Write("UPDATE " + mcMMO.database.write("UPDATE " + LoadProperties.MySQLtablePrefix + "experience SET " + " taming = " + getInt(tamingXP) + ", mining = " diff --git a/src/main/java/datatypes/DatabaseUpdate.java b/src/main/java/datatypes/DatabaseUpdate.java new file mode 100644 index 000000000..7f13d4019 --- /dev/null +++ b/src/main/java/datatypes/DatabaseUpdate.java @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2012 Matt 'The Yeti' Burnett & mcMMO Development + * Copyright (C) 2010-2011 'nossr50' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + +package datatypes; + +public enum DatabaseUpdate { + FISHING, + BLAST_MINING; +}