1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-13 10:04:51 +02:00

Revert "I honestly have no idea if this works, but on paper it does. Will be great, now to figure out how to test." until there is a real alternative.

This reverts commit 7b8a9d60d7.
This commit is contained in:
snowleo
2012-03-03 02:40:22 +01:00
parent 7b8a9d60d7
commit 22a37a0c1b
10 changed files with 119 additions and 42 deletions

View File

@@ -72,7 +72,7 @@
nbproject/build-impl.xml file.
-->
<!--<target name="-post-jar">
<target name="-post-jar">
<jar jarfile="${dist.dir}/EssentialsProtect.jar">
<zipfileset src="${dist.jar}" excludes="META-INF/*" />
<zipfileset src="../lib/c3p0-0.9.1.2.jar" excludes="META-INF/*" />
@@ -80,5 +80,5 @@
<attribute name="Classpath" value="EssentialsProtect.jar"/>
</manifest>
</jar>
</target>-->
</target>
</project>

View File

@@ -64,12 +64,14 @@ dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
file.reference.bukkit.jar=../lib/bukkit.jar
file.reference.c3p0-0.9.1.2.jar=..\\lib\\c3p0-0.9.1.2.jar
includes=**
jar.archive.disabled=${jnlp.enabled}
jar.compress=true
jar.index=${jnlp.enabled}
javac.classpath=\
${reference.Essentials.jar}:\
${file.reference.c3p0-0.9.1.2.jar}:\
${file.reference.bukkit.jar}
# Space-separated list of extra javac options
javac.compilerargs=

View File

@@ -66,6 +66,10 @@ public class EssentialsConnect
@Override
public void onReload()
{
if (protect.getStorage() != null)
{
protect.getStorage().onPluginDeactivation();
}
/*
* for (ProtectConfig protectConfig : ProtectConfig.values()) { if (protectConfig.isList()) {
@@ -93,7 +97,7 @@ public class EssentialsConnect
settings.getData().getDbuser(),
settings.getData().getDbpassword()));
}
catch (ClassNotFoundException ex)
catch (PropertyVetoException ex)
{
LOGGER.log(Level.SEVERE, null, ex);
}
@@ -104,15 +108,15 @@ public class EssentialsConnect
{
protect.setStorage(new ProtectedBlockSQLite("jdbc:sqlite:plugins/Essentials/EssentialsProtect.db"));
}
catch (ClassNotFoundException ex)
catch (PropertyVetoException ex)
{
LOGGER.log(Level.SEVERE, null, ex);
}
}
/*
* if (protect.getSettingBool(ProtectConfig.memstore)) { protect.setStorage(new
* ProtectedBlockMemory(protect.getStorage(), protect)); }
*/
/*if (protect.getSettingBool(ProtectConfig.memstore))
{
protect.setStorage(new ProtectedBlockMemory(protect.getStorage(), protect));
}*/
}
finally

View File

@@ -1,7 +1,9 @@
package com.earth2me.essentials.protect;
import com.earth2me.essentials.protect.data.IProtectedBlock;
import java.util.logging.Filter;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
@@ -12,6 +14,7 @@ import org.bukkit.plugin.java.JavaPlugin;
public class EssentialsProtect extends JavaPlugin implements IProtect
{
private static final Logger LOGGER = Logger.getLogger("Minecraft");
private static com.mchange.v2.log.MLogger C3P0logger;
//private final transient Map<ProtectConfig, Boolean> settingsBoolean = new EnumMap<ProtectConfig, Boolean>(ProtectConfig.class);
//private final transient Map<ProtectConfig, String> settingsString = new EnumMap<ProtectConfig, String>(ProtectConfig.class);
//private final transient Map<ProtectConfig, List<Integer>> settingsList = new EnumMap<ProtectConfig, List<Integer>>(ProtectConfig.class);
@@ -20,6 +23,18 @@ public class EssentialsProtect extends JavaPlugin implements IProtect
private transient ProtectHolder settings = null;
@Override
public void onLoad()
{
C3P0logger = com.mchange.v2.log.MLog.getLogger(com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.class);
C3P0logger.setFilter(new Filter()
{
public boolean isLoggable(LogRecord lr)
{
return lr.getLevel() != Level.INFO;
}
});
}
public void onEnable()
{
final PluginManager pm = this.getServer().getPluginManager();
@@ -56,10 +71,13 @@ public class EssentialsProtect extends JavaPlugin implements IProtect
LOGGER.log(Level.SEVERE, "Essentials not installed or failed to load. Essenials Protect is in emergency mode now.");
}
/*
* @Override public boolean checkProtectionItems(final ProtectConfig list, final int id) { final List<Integer>
* itemList = settingsList.get(list); return itemList != null && !itemList.isEmpty() && itemList.contains(id); }
*/
/*@Override
public boolean checkProtectionItems(final ProtectConfig list, final int id)
{
final List<Integer> itemList = settingsList.get(list);
return itemList != null && !itemList.isEmpty() && itemList.contains(id);
}*/
@Override
public IProtectedBlock getStorage()
{
@@ -76,20 +94,52 @@ public class EssentialsProtect extends JavaPlugin implements IProtect
{
return ess;
}
/*public Map<ProtectConfig, Boolean> getSettingsBoolean()
{
return settingsBoolean;
}
public Map<ProtectConfig, String> getSettingsString()
{
return settingsString;
}
public Map<ProtectConfig, List<Integer>> getSettingsList()
{
return settingsList;
}
@Override
public boolean getSettingBool(final ProtectConfig protectConfig)
{
final Boolean bool = settingsBoolean.get(protectConfig);
return bool == null ? protectConfig.getDefaultValueBoolean() : bool;
}
@Override
public String getSettingString(final ProtectConfig protectConfig)
{
final String str = settingsString.get(protectConfig);
return str == null ? protectConfig.getDefaultValueString() : str;
}*/
public void onDisable()
{
if (storage != null)
{
storage.onPluginDeactivation();
}
// Sleep for a second to allow the database to close.
try
{
Thread.sleep(1000);
}
catch (InterruptedException ex)
{
}
}
/*
* public Map<ProtectConfig, Boolean> getSettingsBoolean() { return settingsBoolean; }
*
* public Map<ProtectConfig, String> getSettingsString() { return settingsString; }
*
* public Map<ProtectConfig, List<Integer>> getSettingsList() { return settingsList; }
*
* @Override public boolean getSettingBool(final ProtectConfig protectConfig) { final Boolean bool =
* settingsBoolean.get(protectConfig); return bool == null ? protectConfig.getDefaultValueBoolean() : bool; }
*
* @Override public String getSettingString(final ProtectConfig protectConfig) { final String str =
* settingsString.get(protectConfig); return str == null ? protectConfig.getDefaultValueString() : str; }
*/
public ProtectHolder getSettings()
{
return settings;

View File

@@ -19,4 +19,6 @@ public interface IProtectedBlock
public List<String> getOwners(Block block);
public int unprotectBlock(Block block);
public void onPluginDeactivation();
}

View File

@@ -1,6 +1,11 @@
package com.earth2me.essentials.protect.data;
import java.sql.*;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
@@ -11,7 +16,7 @@ import org.bukkit.block.Block;
public abstract class ProtectedBlockJDBC implements IProtectedBlock
{
protected static final Logger LOGGER = Logger.getLogger("Minecraft");
protected String url;
protected final transient ComboPooledDataSource cpds;
protected abstract PreparedStatement getStatementCreateTable(Connection conn) throws SQLException;
@@ -29,20 +34,22 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
protected abstract PreparedStatement getStatementAllBlocks(Connection conn) throws SQLException;
public ProtectedBlockJDBC(String driver, String url) throws ClassNotFoundException
public ProtectedBlockJDBC(String driver, String url) throws PropertyVetoException
{
this(driver, url, null, null);
}
public ProtectedBlockJDBC(String driver, String url, String username, String password) throws ClassNotFoundException
public ProtectedBlockJDBC(String driver, String url, String username, String password) throws PropertyVetoException
{
Class.forName(driver);
this.url = url;
cpds = new ComboPooledDataSource();
cpds.setDriverClass(driver);
cpds.setJdbcUrl(url);
if (username != null)
{
url += "?user=" + username;
url += "&password=" + password;
cpds.setUser(username);
cpds.setPassword(password);
}
cpds.setMaxStatements(20);
createAndConvertTable();
}
@@ -52,7 +59,7 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
PreparedStatement ps = null;
try
{
conn = DriverManager.getConnection(url);
conn = cpds.getConnection();
ps = getStatementCreateTable(conn);
ps.execute();
ps.close();
@@ -96,7 +103,7 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
PreparedStatement ps = null;
try
{
conn = DriverManager.getConnection(url);
conn = cpds.getConnection();
ps = getStatementDeleteAll(conn);
ps.executeUpdate();
}
@@ -151,7 +158,7 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
List<OwnedBlock> blocks = new ArrayList<OwnedBlock>();
try
{
conn = DriverManager.getConnection(url);
conn = cpds.getConnection();
ps = getStatementAllBlocks(conn);
rs = ps.executeQuery();
while (rs.next())
@@ -220,7 +227,7 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
PreparedStatement ps = null;
try
{
conn = DriverManager.getConnection(url);
conn = cpds.getConnection();
ps = getStatementInsert(conn, world, x, y, z, playerName);
ps.executeUpdate();
}
@@ -262,7 +269,7 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
ResultSet rs = null;
try
{
conn = DriverManager.getConnection(url);
conn = cpds.getConnection();
ps = getStatementPlayerCountByLocation(conn, block.getWorld().getName(), block.getX(), block.getY(), block.getZ(), playerName);
rs = ps.executeQuery();
return rs.next() && rs.getInt(1) > 0 && rs.getInt(2) == 0;
@@ -318,7 +325,7 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
List<String> owners = new ArrayList<String>();
try
{
conn = DriverManager.getConnection(url);
conn = cpds.getConnection();
ps = getStatementPlayersByLocation(conn, block.getWorld().getName(), block.getX(), block.getY(), block.getZ());
rs = ps.executeQuery();
while (rs.next())
@@ -376,7 +383,7 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
PreparedStatement ps = null;
try
{
conn = DriverManager.getConnection(url);
conn = cpds.getConnection();
ps = getStatementDeleteByLocation(conn, block.getWorld().getName(), block.getX(), block.getY(), block.getZ());
return ps.executeUpdate();
}
@@ -411,4 +418,9 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
}
}
}
public void onPluginDeactivation()
{
cpds.close();
}
}

View File

@@ -240,4 +240,9 @@ public class ProtectedBlockMemory implements IProtectedBlock
}
return id;
}
public void onPluginDeactivation()
{
storage.onPluginDeactivation();
}
}

View File

@@ -1,5 +1,6 @@
package com.earth2me.essentials.protect.data;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -10,7 +11,7 @@ import java.util.logging.Logger;
public class ProtectedBlockMySQL extends ProtectedBlockJDBC
{
public ProtectedBlockMySQL(String url, String username, String password) throws ClassNotFoundException
public ProtectedBlockMySQL(String url, String username, String password) throws PropertyVetoException
{
super("com.mysql.jdbc.Driver", url, username, password);
}

View File

@@ -1,5 +1,6 @@
package com.earth2me.essentials.protect.data;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@@ -7,7 +8,7 @@ import java.sql.SQLException;
public class ProtectedBlockSQLite extends ProtectedBlockJDBC
{
public ProtectedBlockSQLite(String url) throws ClassNotFoundException
public ProtectedBlockSQLite(String url) throws PropertyVetoException
{
super("org.sqlite.JDBC", url);
}

BIN
lib/c3p0-0.9.1.2.jar Normal file

Binary file not shown.