diff options
Diffstat (limited to 'EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockJDBC.java')
-rw-r--r-- | EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockJDBC.java | 392 |
1 files changed, 259 insertions, 133 deletions
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockJDBC.java b/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockJDBC.java index 567c7e23b..1d09f95c4 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockJDBC.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockJDBC.java @@ -12,285 +12,411 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.bukkit.block.Block; -public abstract class ProtectedBlockJDBC implements IProtectedBlock { - protected static final Logger logger = Logger.getLogger("Minecraft"); - protected ComboPooledDataSource cpds; + +public abstract class ProtectedBlockJDBC implements IProtectedBlock +{ + protected static final Logger LOGGER = Logger.getLogger("Minecraft"); + protected final transient ComboPooledDataSource cpds; protected abstract PreparedStatement getStatementCreateTable(Connection conn) throws SQLException; + protected abstract PreparedStatement getStatementUpdateFrom2_0Table(Connection conn) throws SQLException; + protected abstract PreparedStatement getStatementDeleteAll(Connection conn) throws SQLException; + protected abstract PreparedStatement getStatementInsert(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException; + protected abstract PreparedStatement getStatementPlayerCountByLocation(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException; + protected abstract PreparedStatement getStatementPlayersByLocation(Connection conn, String name, int x, int y, int z) throws SQLException; + protected abstract PreparedStatement getStatementDeleteByLocation(Connection conn, String world, int x, int y, int z) throws SQLException; + protected abstract PreparedStatement getStatementAllBlocks(Connection conn) throws SQLException; - - public ProtectedBlockJDBC(String driver, String url) throws PropertyVetoException { + + public ProtectedBlockJDBC(String driver, String url) throws PropertyVetoException + { this(driver, url, null, null); } - - public ProtectedBlockJDBC(String driver, String url, String username, String password) throws PropertyVetoException { + + public ProtectedBlockJDBC(String driver, String url, String username, String password) throws PropertyVetoException + { cpds = new ComboPooledDataSource(); cpds.setDriverClass(driver); cpds.setJdbcUrl(url); - if (username != null) { + if (username != null) + { cpds.setUser(username); cpds.setPassword(password); } cpds.setMaxStatements(20); createAndConvertTable(); } - - - private void createAndConvertTable() { + + private void createAndConvertTable() + { Connection conn = null; PreparedStatement ps = null; - try { + try + { conn = cpds.getConnection(); ps = getStatementCreateTable(conn); ps.execute(); ps.close(); ps = getStatementUpdateFrom2_0Table(conn); ps.execute(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); - } finally { - if (ps != null) { - try { + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); + } + finally + { + if (ps != null) + { + try + { ps.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } - if (conn != null) { - try { + if (conn != null) + { + try + { conn.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } } } - - public void clearProtections() { + + public void clearProtections() + { Connection conn = null; PreparedStatement ps = null; - try { + try + { conn = cpds.getConnection(); ps = getStatementDeleteAll(conn); ps.executeUpdate(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); - } finally { - if (ps != null) { - try { + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); + } + finally + { + if (ps != null) + { + try + { ps.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } - if (conn != null) { - try { + if (conn != null) + { + try + { conn.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } } } - - public void importProtections(List<OwnedBlock> blocks) { - for (OwnedBlock ownedBlock : blocks) { - if (ownedBlock.playerName == null) { + + public void importProtections(List<OwnedBlock> blocks) + { + for (OwnedBlock ownedBlock : blocks) + { + if (ownedBlock.playerName == null) + { continue; } protectBlock(ownedBlock.world, ownedBlock.x, ownedBlock.y, ownedBlock.z, ownedBlock.playerName); } } - - public List<OwnedBlock> exportProtections() { + + public List<OwnedBlock> exportProtections() + { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; List<OwnedBlock> blocks = new ArrayList<OwnedBlock>(); - try { + try + { conn = cpds.getConnection(); ps = getStatementAllBlocks(conn); rs = ps.executeQuery(); - while (rs.next()) { - OwnedBlock ob = new OwnedBlock(); - ob.world = rs.getString(1); - ob.x = rs.getInt(2); - ob.y = rs.getInt(3); - ob.z = rs.getInt(4); - ob.playerName = rs.getString(5); + while (rs.next()) + { + OwnedBlock ob = new OwnedBlock( + rs.getInt(2), + rs.getInt(3), + rs.getInt(4), + rs.getString(1), + rs.getString(5)); blocks.add(ob); } return blocks; - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); return blocks; - } finally { - if (rs != null) { - try { + } + finally + { + if (rs != null) + { + try + { rs.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } - if (ps != null) { - try { + if (ps != null) + { + try + { ps.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } - if (conn != null) { - try { + if (conn != null) + { + try + { conn.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } } } - - public void protectBlock(Block block, String playerName) { + + public void protectBlock(Block block, String playerName) + { protectBlock(block.getWorld().getName(), block.getX(), block.getY(), block.getZ(), playerName); } - - private void protectBlock(String world, int x, int y, int z, String playerName) { + + private void protectBlock(String world, int x, int y, int z, String playerName) + { Connection conn = null; PreparedStatement ps = null; - try { + try + { conn = cpds.getConnection(); ps = getStatementInsert(conn, world, x, y, z, playerName); ps.executeUpdate(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); - } finally { - if (ps != null) { - try { + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); + } + finally + { + if (ps != null) + { + try + { ps.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } - if (conn != null) { - try { + if (conn != null) + { + try + { conn.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } } } - - public boolean isProtected(Block block, String playerName) { + + public boolean isProtected(Block block, String playerName) + { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; - try { + try + { conn = cpds.getConnection(); ps = getStatementPlayerCountByLocation(conn, block.getWorld().getName(), block.getX(), block.getY(), block.getZ(), playerName); rs = ps.executeQuery(); rs.next(); return rs.getInt(1) > 0 && rs.getInt(2) == 0; - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); return true; - } finally { - if (rs != null) { - try { + } + finally + { + if (rs != null) + { + try + { rs.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } - if (ps != null) { - try { + if (ps != null) + { + try + { ps.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } - if (conn != null) { - try { + if (conn != null) + { + try + { conn.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } } } - - public List<String> getOwners(Block block) { + + public List<String> getOwners(Block block) + { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; List<String> owners = new ArrayList<String>(); - try { + try + { conn = cpds.getConnection(); ps = getStatementPlayersByLocation(conn, block.getWorld().getName(), block.getX(), block.getY(), block.getZ()); rs = ps.executeQuery(); - while (rs.next()) { + while (rs.next()) + { owners.add(rs.getString(1)); } return owners; - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); return owners; - } finally { - if (rs != null) { - try { + } + finally + { + if (rs != null) + { + try + { rs.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } - if (ps != null) { - try { + if (ps != null) + { + try + { ps.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } - if (conn != null) { - try { + if (conn != null) + { + try + { conn.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } } } - public int unprotectBlock(Block block) { + public int unprotectBlock(Block block) + { Connection conn = null; PreparedStatement ps = null; - try { + try + { conn = cpds.getConnection(); ps = getStatementDeleteByLocation(conn, block.getWorld().getName(), block.getX(), block.getY(), block.getZ()); return ps.executeUpdate(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); return 0; - } finally { - if (ps != null) { - try { + } + finally + { + if (ps != null) + { + try + { ps.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } - if (conn != null) { - try { + if (conn != null) + { + try + { conn.close(); - } catch (SQLException ex) { - logger.log(Level.SEVERE, null, ex); + } + catch (SQLException ex) + { + LOGGER.log(Level.SEVERE, null, ex); } } } } - } |