Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.st0rm.ss;
- import java.sql.*;
- import net.st0rm.ss.objects.Item;
- public class Database {
- private static Database instance = null;
- private Connection con = null;
- private Database() {
- }
- public static Database getInstance() {
- try {
- if (instance == null || instance.con.isClosed()) {
- instance = new Database();
- instance.connect();
- }
- } catch (SQLException e) {
- instance = new Database();
- instance.connect();
- }
- return instance;
- }
- /**
- * Returns the connection, connects only if current connection does not
- * exist openly
- *
- * @return Connection to MySQL
- */
- public Connection connect() {
- try {
- if (con != null && !con.isClosed())
- return con;
- con = DriverManager.getConnection("jdbc:mysql://"
- + Config.prop.getProperty("MySQLHost") + ":"
- + Config.prop.getProperty("MySQLPort") + "/"
- + Config.prop.getProperty("MySQLDatabase"), Config.prop
- .getProperty("MySQLUser"), Config.prop
- .getProperty("MySQLPass"));
- /*
- * con.prepareStatement("" +
- * "CREATE TABLE IF NOT EXISTS `aliases` (`alias` text NOT NULL,`definition` text NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;"
- * +
- * "CREATE TABLE IF NOT EXISTS `bans` (`id` bigint(20) unsigned NOT NULL auto_increment,`name` varchar(50) default NULL,`ip` varchar(15) default NULL,`serial` varchar(64) default NULL,`time_placed` varchar(30) default '0',`time_expires` varchar(30) default '0',`reason` text, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=1417 DEFAULT CHARSET=latin1;"
- * +
- * "CREATE TABLE IF NOT EXISTS `fame` (`name` varchar(50) NOT NULL,`fame` int(11) default '0',`last_famed` varchar(15) default '0',PRIMARY KEY (`name`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"
- * +
- * "CREATE TABLE IF NOT EXISTS `join_messages` (`name` varchar(50) NOT NULL,`message` text,PRIMARY KEY (`name`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"
- * +
- * "CREATE TABLE IF NOT EXISTS `mods` (`name` varchar(50) NOT NULL,`flags` varchar(30) NOT NULL,`ip` varchar(15) default NULL,`last_login` int(30) default '0',`suspended` int(1) default '0',PRIMARY KEY (`name`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"
- * +
- * "CREATE TABLE IF NOT EXISTS `modules` (`name` varchar(100) NOT NULL,`enabled` int(1) default '1',PRIMARY KEY (`name`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"
- * +
- * "CREATE TABLE IF NOT EXISTS `music` (`song` text NOT NULL,`file` varchar(50) NOT NULL,`length` decimal(10,0) NOT NULL,PRIMARY KEY (`file`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"
- * +
- * "CREATE TABLE IF NOT EXISTS `offenses` (`case` int(11) NOT NULL auto_increment,`name` varchar(50) NOT NULL,`time` varchar(30) default '0',`ip` varchar(15) default '255.255.255.255',`data` text,PRIMARY KEY (`case`)) ENGINE=MyISAM AUTO_INCREMENT=9155 DEFAULT CHARSET=latin1;"
- * +
- * "CREATE TABLE IF NOT EXISTS `rank_table` (`name` text NOT NULL,`min_points` int(11) NOT NULL default '0',`max_points` int(11) NOT NULL default '0',`credits` int(5) default NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;"
- * +
- * "CREATE TABLE IF NOT EXISTS `ranks` (`name` varchar(50) NOT NULL,`rank` int(11) default '0',`banned` int(1) default '0',PRIMARY KEY (`name`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"
- * +
- * "CREATE TABLE IF NOT EXISTS `sounds` (`keywords` text NOT NULL,`soundfile` varchar(500) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;"
- * + "").executeUpdate();
- */
- return con;
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return null;
- }
- public boolean getIsEnabled(String name) {
- con = connect();
- PreparedStatement ps = null;
- ResultSet rs = null;
- try {
- ps = con
- .prepareStatement("SELECT enabled FROM modules WHERE name=? LIMIT 1");
- ps.setString(1, name);
- rs = ps.executeQuery();
- if (rs.next()) {
- return rs.getInt("enabled") == 1;
- } else {
- Database.close(ps);
- ps = con
- .prepareStatement("INSERT INTO modules (name,enabled) VALUES (?,?)");
- ps.setString(1, name);
- ps.setInt(2, 1);
- ps.executeUpdate();
- }
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally {
- Database.close(rs,ps);
- }
- return true;
- }
- public boolean agetIsEnabled(String name) {
- con = connect();
- PreparedStatement ps = null;
- ResultSet rs = null;
- try {
- ps = con
- .prepareStatement("SELECT enabled FROM adminmodules WHERE name=? LIMIT 1");
- ps.setString(1, name);
- rs = ps.executeQuery();
- if (rs.next()) {
- return rs.getInt("enabled") == 1;
- } else {
- ps = con
- .prepareStatement("INSERT INTO adminmodules (name,enabled) VALUES (?,?)");
- ps.setString(1, name);
- ps.setInt(2, 1);
- ps.executeUpdate();
- }
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally {
- Database.close(rs,ps);
- }
- return true;
- }
- /**
- * Toggles a module in the database, you still need to load() to update
- * settings
- *
- * @param name
- * Module to toggle
- */
- public void toggle(String name) {
- PreparedStatement ps = null;
- try {
- ps = connect()
- .prepareStatement(
- "UPDATE modules SET `enabled`=IF(`enabled`='1','0','1') WHERE name=?");
- ps.setString(1, name);
- ps.executeUpdate();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally {
- Database.close(ps);
- }
- }
- public void atoggle(String name) {
- PreparedStatement ps = null;
- try {
- ps = connect()
- .prepareStatement(
- "UPDATE adminmodules SET `enabled`=IF(`enabled`='1','0','1') WHERE name=?");
- ps.setString(1, name);
- ps.executeUpdate();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally {
- Database.close(ps);
- }
- }
- public void load() {
- try {
- Config.moduleShowKills = getIsEnabled("Show Kills");
- Config.moduleShowDetailedKills = getIsEnabled("Show Detailed Kills");
- Config.moduleShowSerials = getIsEnabled("Show Serials");
- Config.moduleShowGameNotices = getIsEnabled("Show Game Notices");
- Config.moduleShowGameSpyData = getIsEnabled("Show GameSpy Data");
- Config.moduleShowVehicleKills = getIsEnabled("Show Vehicle Kills");
- Config.moduleShowCTF = getIsEnabled("Show CTF");
- Config.moduleShowErrors = getIsEnabled("Show Errors");
- Config.moduleShowCinematics = getIsEnabled("Show Cinematics");
- Config.moduleShowMoney = getIsEnabled("Show Money");
- Config.moduleShowSecurity = getIsEnabled("Show Security");
- Config.moduleShowBiatch = getIsEnabled("Show BIATCH");
- Config.moduleShowPurchases = getIsEnabled("Show Purchases");
- Config.moduleNewKillMessages = getIsEnabled("New Kill Messages");
- // Config.moduleShowVersion = getIsEnabled("Show Versions");
- Config.moduleShowCharChanges = getIsEnabled("Show Char Changes");
- Config.POLL_GAMEOVER = getIsEnabled("Poll Gameovers");
- Config.POLL_QKICK = getIsEnabled("Poll QKicks");
- Config.POLL_KICK = getIsEnabled("Poll Kicks");
- Config.amoduleShowKills = agetIsEnabled("Admin Show Kills");
- Config.amoduleShowDetailedKills = agetIsEnabled("Admin Show Detailed Kills");
- Config.amoduleShowSerials = agetIsEnabled("Admin Show Serials");
- Config.amoduleShowGameNotices = agetIsEnabled("Admin Show Game Notices");
- Config.amoduleShowGameSpyData = agetIsEnabled("Admin Show GameSpy Data");
- Config.amoduleShowVehicleKills = agetIsEnabled("Admin Show Vehicle Kills");
- Config.amoduleShowCTF = agetIsEnabled("Admin Show CTF");
- Config.amoduleShowErrors = agetIsEnabled("Admin Show Errors");
- Config.amoduleShowCinematics = agetIsEnabled("Admin Show Cinematics");
- Config.amoduleShowMoney = agetIsEnabled("Admin Show Money");
- Config.amoduleShowSecurity = agetIsEnabled("Admin Show Security");
- Config.amoduleShowBiatch = agetIsEnabled("Admin Show BIATCH");
- Config.amoduleShowPurchases = agetIsEnabled("Admin Show Purchases");
- Config.amoduleNewKillMessages = agetIsEnabled("Admin New Kill Messages");
- // Config.moduleShowVersion = getIsEnabled("Show Versions");
- Config.amoduleShowCharChanges = agetIsEnabled("Admin Show Char Changes");
- Config.amoduleShowTeamMessages = agetIsEnabled("Admin Show Team Messages");
- Config.amoduleShowPlayerMessages = agetIsEnabled("Admin Show Player Messages");
- AliasManager.getInstance().reload();
- PreparedStatement ps = Database.getInstance().connect()
- .prepareStatement("SELECT * FROM sounds");
- ResultSet rs = ps.executeQuery();
- while (rs.next()) {
- Config.soundTriggers.put(rs.getString(1).toLowerCase(), rs
- .getString(2).toLowerCase());
- }
- Database.close(rs,ps);
- ps = Database.getInstance().connect().prepareStatement(
- "SELECT * FROM items");
- rs = ps.executeQuery();
- while (rs.next()) {
- Item item = new Item();
- item.aliases = rs.getString("item").split(",");
- item.gdi_cin = rs.getString("gdicin");
- item.neu_cin = rs.getString("neucin");
- item.nod_cin = rs.getString("nodcin");
- item.cost = rs.getInt("cost");
- item.rank = rs.getInt("rank");
- item.itemname = rs.getString("itemname");
- item.maps = rs.getString("maps").split(";");
- String servers = rs.getString("servers");
- int c_servers = servers.split(",").length;
- int[] a_servers = new int[c_servers];
- int i = 0;
- for (String s : servers.split(",")) {
- a_servers[i] = Integer.parseInt(s.trim());
- i++;
- }
- item.type = rs.getInt("type");
- synchronized (Item.items) {
- Item.items.add(item);
- }
- Database.close(rs, ps);
- }
- } catch (Exception e) {
- Log.log("Could not load from DB.");
- Log.die(e);
- }
- }
- public static void close(ResultSet rs, PreparedStatement ps) {
- if (rs != null) {
- try {
- rs.close();
- } catch (SQLException e) {
- }
- }
- if (ps != null) {
- try {
- ps.close();
- } catch (SQLException e) {
- }
- }
- }
- public static void close(PreparedStatement ps) {
- close(null, ps);
- }
- public static void close(ResultSet rs) {
- close(rs, null);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement