diff options
author | ementalo <ementalodev@gmx.co.uk> | 2012-06-27 13:35:39 +0100 |
---|---|---|
committer | ementalo <ementalodev@gmx.co.uk> | 2012-06-27 13:35:39 +0100 |
commit | 16d0b5c228dd8d981a0d79944c70248ea813d63b (patch) | |
tree | b76e6966bfc2b4b9b668b89b13e30307e0b81988 /EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java | |
parent | c1230bd6ae4e17539e1f6f2c82691fa7a8395e8c (diff) | |
download | Essentials-16d0b5c228dd8d981a0d79944c70248ea813d63b.tar Essentials-16d0b5c228dd8d981a0d79944c70248ea813d63b.tar.gz Essentials-16d0b5c228dd8d981a0d79944c70248ea813d63b.tar.lz Essentials-16d0b5c228dd8d981a0d79944c70248ea813d63b.tar.xz Essentials-16d0b5c228dd8d981a0d79944c70248ea813d63b.zip |
package name change to net.ess3
Diffstat (limited to 'EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java')
-rw-r--r-- | EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java b/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java new file mode 100644 index 000000000..c3fcfe441 --- /dev/null +++ b/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java @@ -0,0 +1,124 @@ +package net.ess3.protect; + +import static net.ess3.I18n._; +import net.ess3.api.IEssentials; +import net.ess3.api.IReload; +import net.ess3.api.IUser; +import net.ess3.protect.data.ProtectedBlockMySQL; +import net.ess3.protect.data.ProtectedBlockSQLite; +import java.beans.PropertyVetoException; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; + + +public class EssentialsConnect +{ + private static final Logger LOGGER = Logger.getLogger("Minecraft"); + private final transient IEssentials ess; + private final transient IProtect protect; + + public EssentialsConnect(final Plugin essPlugin, final Plugin essProtect) + { + if (!essProtect.getDescription().getVersion().equals(essPlugin.getDescription().getVersion())) + { + LOGGER.log(Level.WARNING, _("versionMismatchAll")); + } + ess = (IEssentials)essPlugin; + protect = (IProtect)essProtect; + protect.setSettings(new ProtectHolder(ess)); + final ProtectReloader pr = new ProtectReloader(); + pr.onReload(); + ess.addReloadListener(pr); + } + + public IEssentials getEssentials() + { + return ess; + } + + public void alert(final Player user, final String item, final String type) + { + final Location loc = user.getLocation(); + final String warnMessage = _("alertFormat", user.getName(), type, item, + loc.getWorld().getName() + "," + loc.getBlockX() + "," + + loc.getBlockY() + "," + loc.getBlockZ()); + LOGGER.log(Level.WARNING, warnMessage); + for (Player p : ess.getServer().getOnlinePlayers()) + { + final IUser alertUser = ess.getUser(p); + if (Permissions.ALERTS.isAuthorized(alertUser)) + { + alertUser.sendMessage(warnMessage); + } + } + } + + + private class ProtectReloader implements IReload + { + @Override + public void onReload() + { + if (protect.getStorage() != null) + { + protect.getStorage().onPluginDeactivation(); + } + + /* + * for (ProtectConfig protectConfig : ProtectConfig.values()) { if (protectConfig.isList()) { + * protect.getSettingsList().put(protectConfig, + * ess.getSettings().getProtectList(protectConfig.getConfigName())); } else if (protectConfig.isString()) { + * protect.getSettingsString().put(protectConfig, + * ess.getSettings().getProtectString(protectConfig.getConfigName())); } else { + * protect.getSettingsBoolean().put(protectConfig, + * ess.getSettings().getProtectBoolean(protectConfig.getConfigName(), + * protectConfig.getDefaultValueBoolean())); } + * + * } + */ + + final ProtectHolder settings = protect.getSettings(); + settings.acquireReadLock(); + try + { + if (settings.getData().getDbtype().equalsIgnoreCase("mysql")) + { + try + { + protect.setStorage(new ProtectedBlockMySQL( + settings.getData().getDburl(), + settings.getData().getDbuser(), + settings.getData().getDbpassword())); + } + catch (PropertyVetoException ex) + { + LOGGER.log(Level.SEVERE, null, ex); + } + } + else + { + try + { + protect.setStorage(new ProtectedBlockSQLite("jdbc:sqlite:" + ess.getDataFolder() + "/EssentialsProtect.db")); + } + catch (PropertyVetoException ex) + { + LOGGER.log(Level.SEVERE, null, ex); + } + } + /*if (protect.getSettingBool(ProtectConfig.memstore)) + { + protect.setStorage(new ProtectedBlockMemory(protect.getStorage(), protect)); + }*/ + + } + finally + { + settings.unlock(); + } + } + } +} |