1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-12 09:35:26 +02:00

Merge of server-layer branch

This commit is contained in:
ementalo
2012-07-17 12:26:55 +01:00
445 changed files with 13482 additions and 14755 deletions

View File

@@ -29,7 +29,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.5</version>
<version>1.7</version>
<executions>
<execution>
<goals>
@@ -41,6 +41,7 @@
<include>c3p0:c3p0</include>
</includes>
</artifactSet>
<minimizeJar>true</minimizeJar>
</configuration>
</execution>
</executions>

View File

@@ -1,121 +0,0 @@
package com.earth2me.essentials.protect;
/*public enum ProtectConfig
{
datatype("protect.datatype", "sqlite"),
mysqlDB("protect.mysqlDb", "jdbc:mysql://localhost:3306/minecraft"),
dbUsername("protect.username", "root"),
dbPassword("protect.password", ""),
memstore("protect.memstore", false),
disable_contactdmg("protect.disable.contactdmg", false),
disable_lavadmg("protect.disable.lavadmg", false),
disable_build("protect.disable.build", true),
disable_use("protect.disable.use", true),
disable_pvp("protect.disable.pvp", false),
disable_projectiles("protect.disable.projectiles", false),
disable_fall("protect.disable.fall", false),
disable_suffocate("protect.disable.suffocate", false),
disable_firedmg("protect.disable.firedmg", false),
disable_lightning("protect.disable.lightning", false),
disable_drown("protect.disable.drown", false),
disable_weather_storm("protect.disable.weather.storm", false),
disable_weather_lightning("protect.disable.weather.lightning", false),
disable_weather_thunder("protect.disable.weather.thunder", false),
prevent_fire_spread("protect.prevent.fire-spread", true),
prevent_flint_fire("protect.prevent.flint-fire", false),
prevent_lava_fire_spread("protect.prevent.lava-fire-spread", true),
prevent_lightning_fire_spread("protect.prevent.lightning-fire-spread", true),
prevent_water_flow("protect.prevent.water-flow", false),
prevent_lava_flow("protect.prevent.lava-flow", false),
prevent_water_bucket_flow("protect.prevent.water-bucket-flow", false),
prevent_portal_creation("protect.prevent.portal-creation", false),
prevent_block_on_rail("protect.protect.prevent-block-on-rails", false),
prevent_tnt_explosion("protect.prevent.tnt-explosion", false),
prevent_tnt_playerdmg("protect.prevent.tnt-playerdamage", false),
prevent_fireball_explosion("protect.prevent.fireball-explosion", false),
prevent_fireball_fire("protect.prevent.fireball-fire", false),
prevent_fireball_playerdmg("protect.prevent.fireball-playerdamage", false),
prevent_creeper_explosion("protect.prevent.creeper-explosion", true),
prevent_creeper_playerdmg("protect.prevent.creeper-playerdamage", false),
prevent_creeper_blockdmg("protect.prevent.creeper-blockdamage", false),
prevent_enderman_pickup("protect.prevent.enderman-pickup", false),
prevent_villager_death("protect.prevent.villager-death", false),
prevent_enderdragon_blockdmg("protect.prevent.enderdragon-blockdamage", true),
prevent_entitytarget("protect.prevent.entitytarget", false),
protect_rails("protect.protect.rails", true),
protect_below_rails("protect.protect.block-below", true),
protect_signs("protect.protect.signs", true),
protect_against_signs("protect.protect.block-below", true),
enderdragon_fakeexplosions("protect.enderdragon-fakeexplosions", false),
alert_on_placement("protect.alert.on-placement"),
alert_on_use("protect.alert.on-use"),
alert_on_break("protect.alert.on-break"),
blacklist_placement("protect.blacklist.placement"),
blacklist_usage("protect.blacklist.usage"),
blacklist_break("protect.blacklist.break"),
blacklist_piston("protect.blacklist.piston");
private final String configName;
private final String defValueString;
private final boolean defValueBoolean;
private final boolean isList;
private final boolean isString;
private ProtectConfig(final String configName)
{
this(configName, null, false, true, false);
}
private ProtectConfig(final String configName, final String defValueString)
{
this(configName, defValueString, false, false, true);
}
private ProtectConfig(final String configName, final boolean defValueBoolean)
{
this(configName, null, defValueBoolean, false, false);
}
private ProtectConfig(final String configName, final String defValueString, final boolean defValueBoolean, final boolean isList, final boolean isString)
{
this.configName = configName;
this.defValueString = defValueString;
this.defValueBoolean = defValueBoolean;
this.isList = isList;
this.isString = isString;
}
/**
* @return the configName
*//*
public String getConfigName()
{
return configName;
}
/**
* @return the default value String
*//*
public String getDefaultValueString()
{
return defValueString;
}
/**
* @return the default value boolean
*//*
public boolean getDefaultValueBoolean()
{
return defValueBoolean;
}
public boolean isString()
{
return isString;
}
public boolean isList()
{
return isList;
}
}*/

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.protect;
package net.ess3.protect;
import net.ess3.api.IPermission;
import net.ess3.permissions.AbstractSuperpermsPermission;
@@ -8,26 +8,30 @@ import java.util.Map;
import org.bukkit.Material;
import org.bukkit.permissions.PermissionDefault;
public class BlockBreakPermissions extends AbstractSuperpermsPermission{
private static Map<Material,IPermission> permissions = new EnumMap<Material, IPermission>(Material.class);
public final class BlockBreakPermissions extends AbstractSuperpermsPermission
{
private static Map<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class);
private static final String base = "essentials.protect.blockbreak.";
private final String permission;
public static IPermission getPermission(Material mat)
public static IPermission getPermission(final Material mat)
{
IPermission perm = permissions.get(mat);
if (perm == null) {
if (perm == null)
{
perm = new BlockBreakPermissions(mat.toString().toLowerCase(Locale.ENGLISH));
permissions.put(mat, perm);
}
return perm;
}
private BlockBreakPermissions(String matName)
private BlockBreakPermissions(final String matName)
{
super();
this.permission = base + matName;
}
@Override
public String getPermission()
{
@@ -40,4 +44,3 @@ public class BlockBreakPermissions extends AbstractSuperpermsPermission{
return PermissionDefault.TRUE;
}
}

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.protect;
package net.ess3.protect;
import net.ess3.api.IPermission;
import net.ess3.permissions.AbstractSuperpermsPermission;
@@ -8,26 +8,30 @@ import java.util.Map;
import org.bukkit.Material;
import org.bukkit.permissions.PermissionDefault;
public class BlockPlacePermissions extends AbstractSuperpermsPermission{
private static Map<Material,IPermission> permissions = new EnumMap<Material, IPermission>(Material.class);
public class BlockPlacePermissions extends AbstractSuperpermsPermission
{
private static Map<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class);
private static final String base = "essentials.protect.blockplace.";
private final String permission;
public static IPermission getPermission(Material mat)
public static IPermission getPermission(final Material mat)
{
IPermission perm = permissions.get(mat);
if (perm == null) {
if (perm == null)
{
perm = new BlockPlacePermissions(mat.toString().toLowerCase(Locale.ENGLISH));
permissions.put(mat, perm);
}
return perm;
}
private BlockPlacePermissions(String matName)
private BlockPlacePermissions(final String matName)
{
super();
this.permission = base + matName;
}
@Override
public String getPermission()
{

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.protect;
package net.ess3.protect;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;

View File

@@ -1,11 +1,11 @@
package com.earth2me.essentials.protect;
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 com.earth2me.essentials.protect.data.ProtectedBlockMySQL;
import com.earth2me.essentials.protect.data.ProtectedBlockSQLite;
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;
@@ -20,7 +20,7 @@ public class EssentialsConnect
private final transient IEssentials ess;
private final transient IProtect protect;
public EssentialsConnect(Plugin essPlugin, Plugin essProtect)
public EssentialsConnect(final Plugin essPlugin, final Plugin essProtect)
{
if (!essProtect.getDescription().getVersion().equals(essPlugin.getDescription().getVersion()))
{
@@ -29,15 +29,11 @@ public class EssentialsConnect
ess = (IEssentials)essPlugin;
protect = (IProtect)essProtect;
protect.setSettings(new ProtectHolder(ess));
ProtectReloader pr = new ProtectReloader();
final ProtectReloader pr = new ProtectReloader();
pr.onReload();
ess.addReloadListener(pr);
}
public void onDisable()
{
}
public IEssentials getEssentials()
{
return ess;
@@ -84,7 +80,7 @@ public class EssentialsConnect
* }
*/
ProtectHolder settings = protect.getSettings();
final ProtectHolder settings = protect.getSettings();
settings.acquireReadLock();
try
{
@@ -106,7 +102,7 @@ public class EssentialsConnect
{
try
{
protect.setStorage(new ProtectedBlockSQLite("jdbc:sqlite:plugins/Essentials/EssentialsProtect.db"));
protect.setStorage(new ProtectedBlockSQLite("jdbc:sqlite:" + ess.getDataFolder() + "/EssentialsProtect.db"));
}
catch (PropertyVetoException ex)
{
@@ -114,9 +110,9 @@ public class EssentialsConnect
}
}
/*if (protect.getSettingBool(ProtectConfig.memstore))
{
protect.setStorage(new ProtectedBlockMemory(protect.getStorage(), protect));
}*/
{
protect.setStorage(new ProtectedBlockMemory(protect.getStorage(), protect));
}*/
}
finally

View File

@@ -1,10 +1,11 @@
package com.earth2me.essentials.protect;
package net.ess3.protect;
import com.earth2me.essentials.protect.data.IProtectedBlock;
import net.ess3.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;
import org.bukkit.plugin.PluginManager;
@@ -21,6 +22,7 @@ public class EssentialsProtect extends JavaPlugin implements IProtect
private transient IProtectedBlock storage = null;
private transient EssentialsConnect ess = null;
private transient ProtectHolder settings = null;
private transient com.mchange.v2.c3p0.management.ActiveManagementCoordinator temp; // leave this here for maven
@Override
public void onLoad()
@@ -28,17 +30,18 @@ public class EssentialsProtect extends JavaPlugin implements IProtect
C3P0logger = com.mchange.v2.log.MLog.getLogger(com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.class);
C3P0logger.setFilter(new Filter()
{
public boolean isLoggable(LogRecord lr)
public boolean isLoggable(final LogRecord lr)
{
return lr.getLevel() != Level.INFO;
}
});
}
@Override
public void onEnable()
{
final PluginManager pm = this.getServer().getPluginManager();
final Plugin essPlugin = pm.getPlugin("Essentials3");
final Plugin essPlugin = pm.getPlugin("Essentials-3");
if (essPlugin == null || !essPlugin.isEnabled())
{
enableEmergencyMode(pm);
@@ -72,12 +75,11 @@ public class EssentialsProtect extends JavaPlugin implements IProtect
}
/*@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);
}*/
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()
{
@@ -85,45 +87,46 @@ public class EssentialsProtect extends JavaPlugin implements IProtect
}
@Override
public void setStorage(IProtectedBlock pb)
public void setStorage(final IProtectedBlock pb)
{
storage = pb;
}
@Override
public EssentialsConnect getEssentialsConnect()
{
return ess;
}
/*public Map<ProtectConfig, Boolean> getSettingsBoolean()
{
return settingsBoolean;
}
{
return settingsBoolean;
}
public Map<ProtectConfig, String> getSettingsString()
{
return settingsString;
}
public Map<ProtectConfig, String> getSettingsString()
{
return settingsString;
}
public Map<ProtectConfig, List<Integer>> getSettingsList()
{
return settingsList;
}
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;
}*/
@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)
@@ -140,11 +143,13 @@ public class EssentialsProtect extends JavaPlugin implements IProtect
}
}
@Override
public ProtectHolder getSettings()
{
return settings;
}
@Override
public void setSettings(final ProtectHolder settings)
{
this.settings = settings;

View File

@@ -1,10 +1,11 @@
package com.earth2me.essentials.protect;
package net.ess3.protect;
import static net.ess3.I18n._;
import net.ess3.api.IEssentials;
import com.earth2me.essentials.protect.data.IProtectedBlock;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
@@ -18,22 +19,15 @@ import org.bukkit.event.block.*;
public class EssentialsProtectBlockListener implements Listener
{
final private transient IProtect prot;
final private transient IEssentials ess;
public EssentialsProtectBlockListener(final IProtect parent)
{
this.prot = parent;
this.ess = prot.getEssentialsConnect().getEssentials();
}
@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockPlace(final BlockPlaceEvent event)
{
if (event.isCancelled())
{
return;
}
final Player user = event.getPlayer();
final ProtectHolder settings = prot.getSettings();
settings.acquireReadLock();
@@ -46,7 +40,6 @@ public class EssentialsProtectBlockListener implements Listener
}
final Block blockPlaced = event.getBlockPlaced();
final int id = blockPlaced.getTypeId();
if (!BlockPlacePermissions.getPermission(blockPlaced.getType()).isAuthorized(user))
{
@@ -54,8 +47,8 @@ public class EssentialsProtectBlockListener implements Listener
return;
}
if (!Permissions.ALERTS_NOTRIGGER.isAuthorized(user) &&
settings.getData().getAlertOnPlacement().contains(blockPlaced.getType()))
if (!Permissions.ALERTS_NOTRIGGER.isAuthorized(user)
&& settings.getData().getAlertOnPlacement().contains(blockPlaced.getType()))
{
prot.getEssentialsConnect().alert(user, blockPlaced.getType().toString(), _("alertPlaced"));
}
@@ -82,18 +75,18 @@ public class EssentialsProtectBlockListener implements Listener
}
}
/*if ((blockPlaced.getType() == Material.SIGN_POST || blockPlaced.getType() == Material.WALL_SIGN)
&& settings.getData().getSignsAndRails().isProtectSigns()
&& user.isAuthorized("essentials.protect"))
{
protect.add(blockPlaced);
if (settings.getData().getSignsAndRails().isBlockBelow()
&& event.getBlockAgainst().getType() != Material.SIGN_POST
&& event.getBlockAgainst().getType() != Material.WALL_SIGN
&& !isProtected(event.getBlockAgainst(), user, settings))
{
protect.add(event.getBlockAgainst());
}
}*/
&& settings.getData().getSignsAndRails().isProtectSigns()
&& user.isAuthorized("essentials.protect"))
{
protect.add(blockPlaced);
if (settings.getData().getSignsAndRails().isBlockBelow()
&& event.getBlockAgainst().getType() != Material.SIGN_POST
&& event.getBlockAgainst().getType() != Material.WALL_SIGN
&& !isProtected(event.getBlockAgainst(), user, settings))
{
protect.add(event.getBlockAgainst());
}
}*/
for (Block block : protect)
{
prot.getStorage().protectBlock(block, user.getName());
@@ -105,13 +98,9 @@ public class EssentialsProtectBlockListener implements Listener
}
}
@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockIgnite(BlockIgniteEvent event)
{
if (event.isCancelled())
{
return;
}
final ProtectHolder settings = prot.getSettings();
settings.acquireReadLock();
try
@@ -165,13 +154,9 @@ public class EssentialsProtectBlockListener implements Listener
}
}
@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockFromTo(final BlockFromToEvent event)
{
if (event.isCancelled())
{
return;
}
final ProtectHolder settings = prot.getSettings();
settings.acquireReadLock();
try
@@ -214,13 +199,9 @@ public class EssentialsProtectBlockListener implements Listener
}
}
@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockBurn(final BlockBurnEvent event)
{
if (event.isCancelled())
{
return;
}
final ProtectHolder settings = prot.getSettings();
settings.acquireReadLock();
try
@@ -260,13 +241,9 @@ public class EssentialsProtectBlockListener implements Listener
BlockFace.SELF
};
@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockBreak(final BlockBreakEvent event)
{
if (event.isCancelled())
{
return;
}
final Player user = event.getPlayer();
if (!Permissions.BUILD.isAuthorized(user))
@@ -275,7 +252,6 @@ public class EssentialsProtectBlockListener implements Listener
return;
}
final Block block = event.getBlock();
final int typeId = block.getTypeId();
if (!BlockBreakPermissions.getPermission(block.getType()).isAuthorized(user))
{
@@ -366,13 +342,9 @@ public class EssentialsProtectBlockListener implements Listener
}
}
@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockPistonExtend(final BlockPistonExtendEvent event)
{
if (event.isCancelled())
{
return;
}
final ProtectHolder settings = prot.getSettings();
settings.acquireReadLock();
try
@@ -428,10 +400,10 @@ public class EssentialsProtectBlockListener implements Listener
}
}
@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockPistonRetract(final BlockPistonRetractEvent event)
{
if (event.isCancelled() || !event.isSticky())
if (!event.isSticky())
{
return;
}
@@ -482,7 +454,6 @@ public class EssentialsProtectBlockListener implements Listener
}
}
}
finally
{
settings.unlock();
@@ -499,31 +470,31 @@ public class EssentialsProtectBlockListener implements Listener
return prot.getStorage().isProtected(block, user.getName());
}
final Block up = block.getRelative(BlockFace.UP);
if (up != null && up.getType() == Material.SIGN_POST)
final Block up = block.getRelative(BlockFace.UP);
if (up != null && up.getType() == Material.SIGN_POST)
{
return prot.getStorage().isProtected(block, user.getName());
}
final BlockFace[] directions = new BlockFace[]
{
BlockFace.NORTH,
BlockFace.EAST,
BlockFace.SOUTH,
BlockFace.WEST
};
for (BlockFace blockFace : directions)
{
final Block signblock = block.getRelative(blockFace);
if (signblock.getType() == Material.WALL_SIGN)
{
return prot.getStorage().isProtected(block, user.getName());
}
final BlockFace[] directions = new BlockFace[]
{
BlockFace.NORTH,
BlockFace.EAST,
BlockFace.SOUTH,
BlockFace.WEST
};
for (BlockFace blockFace : directions)
{
final Block signblock = block.getRelative(blockFace);
if (signblock.getType() == Material.WALL_SIGN)
final org.bukkit.material.Sign signMat = (org.bukkit.material.Sign)signblock.getState().getData();
if (signMat != null && signMat.getFacing() == blockFace)
{
final org.bukkit.material.Sign signMat = (org.bukkit.material.Sign)signblock.getState().getData();
if (signMat != null && signMat.getFacing() == blockFace)
{
return prot.getStorage().isProtected(block, user.getName());
}
return prot.getStorage().isProtected(block, user.getName());
}
}
}
}
if (settings.getData().getSignsAndRails().isProtectRails())
{

View File

@@ -1,7 +1,6 @@
package com.earth2me.essentials.protect;
package net.ess3.protect;
import net.ess3.api.IEssentials;
import net.ess3.craftbukkit.FakeExplosion;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
@@ -9,30 +8,24 @@ import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.*;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.EntityTargetEvent.TargetReason;
import org.bukkit.event.entity.*;
public class EssentialsProtectEntityListener implements Listener
{
private final transient IProtect prot;
private final transient IEssentials ess;
public EssentialsProtectEntityListener(final IProtect prot)
{
super();
this.prot = prot;
this.ess = prot.getEssentialsConnect().getEssentials();
}
@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onEntityDamage(final EntityDamageEvent event)
{
if (event.isCancelled())
{
return;
}
final ProtectHolder settings = prot.getSettings();
settings.acquireReadLock();
try
@@ -172,13 +165,9 @@ public class EssentialsProtectEntityListener implements Listener
}
}
@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onEntityExplode(final EntityExplodeEvent event)
{
if (event.isCancelled())
{
return;
}
final ProtectHolder settings = prot.getSettings();
settings.acquireReadLock();
try
@@ -196,9 +185,8 @@ public class EssentialsProtectEntityListener implements Listener
|| settings.getData().getPrevent().isCreeperBlockdamage()
|| (maxHeight >= 0 && event.getLocation().getBlockY() > maxHeight)))
{
//Nicccccccccce plaaacccccccccce..
FakeExplosion.createExplosion(event, ess.getServer(), ess.getServer().getOnlinePlayers());
event.setCancelled(true);
event.getLocation().getWorld().createExplosion(event.getLocation(), 0F);
return;
}
else if (event.getEntity() instanceof TNTPrimed
@@ -249,57 +237,23 @@ public class EssentialsProtectEntityListener implements Listener
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onCreatureSpawn(final CreatureSpawnEvent event)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onEntityTarget(final EntityTargetEvent event)
{
if (event.getEntity() instanceof Player)
if (event.getTarget().getType() == EntityType.PLAYER)
{
return;
}
if (event.isCancelled())
{
return;
}
final CreatureType creature = event.getCreatureType();
if (creature == null)
{
return;
}
final ProtectHolder settings = prot.getSettings();
settings.acquireReadLock();
try
{
final Boolean prevent = settings.getData().getPrevent().getSpawn().get(creature);
if (prevent != null && prevent)
final Player user = (Player)event.getTarget();
if ((event.getReason() == TargetReason.CLOSEST_PLAYER
|| event.getReason() == TargetReason.TARGET_ATTACKED_ENTITY
|| event.getReason() == TargetReason.PIG_ZOMBIE_TARGET
|| event.getReason() == TargetReason.RANDOM_TARGET
|| event.getReason() == TargetReason.TARGET_ATTACKED_OWNER
|| event.getReason() == TargetReason.OWNER_ATTACKED_TARGET)
&& Permissions.ENTITYTARGET.isAuthorized(user))
{
event.setCancelled(true);
}
}
finally
{
settings.unlock();
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onEntityTarget(final EntityTargetEvent event)
{
if (event.isCancelled() || !(event.getTarget() instanceof Player))
{
return;
}
final Player user = (Player)event.getTarget();
if ((event.getReason() == TargetReason.CLOSEST_PLAYER
|| event.getReason() == TargetReason.TARGET_ATTACKED_ENTITY
|| event.getReason() == TargetReason.PIG_ZOMBIE_TARGET
|| event.getReason() == TargetReason.RANDOM_TARGET
|| event.getReason() == TargetReason.TARGET_ATTACKED_OWNER
|| event.getReason() == TargetReason.OWNER_ATTACKED_TARGET)
&& Permissions.ENTITYTARGET.isAuthorized(user))
{
event.setCancelled(true);
return;
}
}
@EventHandler(priority = EventPriority.HIGHEST)
@@ -321,13 +275,9 @@ public class EssentialsProtectEntityListener implements Listener
}
}
@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onEntityChangeBlock(final EntityChangeBlockEvent event)
{
if (event.isCancelled())
{
return;
}
final ProtectHolder settings = prot.getSettings();
settings.acquireReadLock();
try

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.protect;
package net.ess3.protect;
import static net.ess3.I18n._;
import net.ess3.api.IEssentials;
@@ -16,12 +16,10 @@ import org.bukkit.inventory.ItemStack;
public class EssentialsProtectPlayerListener implements Listener
{
private final transient IProtect prot;
private final transient IEssentials ess;
public EssentialsProtectPlayerListener(final IProtect prot)
{
this.prot = prot;
this.ess = prot.getEssentialsConnect().getEssentials();
}
@EventHandler(priority = EventPriority.LOW)

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.protect;
package net.ess3.protect;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;

View File

@@ -1,6 +1,6 @@
package com.earth2me.essentials.protect;
package net.ess3.protect;
import com.earth2me.essentials.protect.data.IProtectedBlock;
import net.ess3.protect.data.IProtectedBlock;
import org.bukkit.plugin.Plugin;

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.protect;
package net.ess3.protect;
import net.ess3.api.IPermission;
import net.ess3.permissions.AbstractSuperpermsPermission;
@@ -8,26 +8,29 @@ import java.util.Map;
import org.bukkit.Material;
import org.bukkit.permissions.PermissionDefault;
public class ItemUsePermissions extends AbstractSuperpermsPermission{
private static Map<Material,IPermission> permissions = new EnumMap<Material, IPermission>(Material.class);
public class ItemUsePermissions extends AbstractSuperpermsPermission
{
private static Map<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class);
private static final String base = "essentials.protect.itemuse.";
private final String permission;
public static IPermission getPermission(Material mat)
public static IPermission getPermission(final Material mat)
{
IPermission perm = permissions.get(mat);
if (perm == null) {
if (perm == null)
{
perm = new ItemUsePermissions(mat.toString().toLowerCase(Locale.ENGLISH));
permissions.put(mat, perm);
}
return perm;
}
private ItemUsePermissions(String matName)
private ItemUsePermissions(final String matName)
{
this.permission = base + matName;
}
@Override
public String getPermission()
{

View File

@@ -1,7 +1,7 @@
package com.earth2me.essentials.protect;
package net.ess3.protect;
import net.ess3.utils.Util;
import net.ess3.api.IPermission;
import net.ess3.utils.Util;
import java.util.Locale;
import org.bukkit.command.CommandSender;
import org.bukkit.permissions.Permission;
@@ -74,7 +74,7 @@ public enum Permissions implements IPermission
}
@Override
public boolean isAuthorized(CommandSender sender)
public boolean isAuthorized(final CommandSender sender)
{
return sender.hasPermission(getBukkitPermission());
}

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.protect;
package net.ess3.protect;
import net.ess3.api.IEssentials;
import net.ess3.settings.protect.Protect;
@@ -9,7 +9,7 @@ import java.io.IOException;
public class ProtectHolder extends AsyncStorageObjectHolder<Protect>
{
public ProtectHolder(IEssentials ess)
public ProtectHolder(final IEssentials ess)
{
super(ess, Protect.class);
}
@@ -19,4 +19,14 @@ public class ProtectHolder extends AsyncStorageObjectHolder<Protect>
{
return new File(ess.getDataFolder(), "protect.yml");
}
@Override
public void finishRead()
{
}
@Override
public void finishWrite()
{
}
}

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.protect.data;
package net.ess3.protect.data;
import java.util.List;
import org.bukkit.block.Block;

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.protect.data;
package net.ess3.protect.data;
public class OwnedBlock

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.protect.data;
package net.ess3.protect.data;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.beans.PropertyVetoException;
@@ -34,12 +34,12 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
protected abstract PreparedStatement getStatementAllBlocks(Connection conn) throws SQLException;
public ProtectedBlockJDBC(String driver, String url) throws PropertyVetoException
public ProtectedBlockJDBC(final String driver, final String url) throws PropertyVetoException
{
this(driver, url, null, null);
}
public ProtectedBlockJDBC(String driver, String url, String username, String password) throws PropertyVetoException
public ProtectedBlockJDBC(final String driver, final String url, final String username, final String password) throws PropertyVetoException
{
cpds = new ComboPooledDataSource();
cpds.setDriverClass(driver);
@@ -97,6 +97,7 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
}
}
@Override
public void clearProtections()
{
Connection conn = null;
@@ -138,7 +139,8 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
}
}
public void importProtections(List<OwnedBlock> blocks)
@Override
public void importProtections(final List<OwnedBlock> blocks)
{
for (OwnedBlock ownedBlock : blocks)
{
@@ -150,6 +152,7 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
}
}
@Override
public List<OwnedBlock> exportProtections()
{
Connection conn = null;
@@ -216,12 +219,13 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
}
}
public void protectBlock(Block block, String playerName)
@Override
public void protectBlock(final Block block, final 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(final String world, final int x, final int y, final int z, final String playerName)
{
Connection conn = null;
PreparedStatement ps = null;
@@ -262,7 +266,8 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
}
}
public boolean isProtected(Block block, String playerName)
@Override
public boolean isProtected(final Block block, final String playerName)
{
Connection conn = null;
PreparedStatement ps = null;
@@ -317,7 +322,8 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
}
}
public List<String> getOwners(Block block)
@Override
public List<String> getOwners(final Block block)
{
Connection conn = null;
PreparedStatement ps = null;
@@ -377,7 +383,8 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
}
}
public int unprotectBlock(Block block)
@Override
public int unprotectBlock(final Block block)
{
Connection conn = null;
PreparedStatement ps = null;
@@ -419,6 +426,7 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
}
}
@Override
public void onPluginDeactivation()
{
cpds.close();

View File

@@ -1,13 +1,13 @@
package com.earth2me.essentials.protect.data;
package net.ess3.protect.data;
import java.util.Map.Entry;
import java.util.*;
import java.util.Map.Entry;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.plugin.Plugin;
public class ProtectedBlockMemory implements IProtectedBlock
public final class ProtectedBlockMemory implements IProtectedBlock
{
private final transient List<String> worlds = new ArrayList<String>();
private final transient List<String> playerNames = new ArrayList<String>();
@@ -123,12 +123,14 @@ public class ProtectedBlockMemory implements IProtectedBlock
importProtections(storage.exportProtections());
}
@Override
public void clearProtections()
{
blocks.clear();
}
public final void importProtections(final List<OwnedBlock> blocks)
@Override
public void importProtections(final List<OwnedBlock> blocks)
{
for (OwnedBlock ownedBlock : blocks)
{
@@ -141,6 +143,7 @@ public class ProtectedBlockMemory implements IProtectedBlock
}
}
@Override
public List<OwnedBlock> exportProtections()
{
final List<OwnedBlock> blockList = new ArrayList<OwnedBlock>(blocks.size());
@@ -160,12 +163,14 @@ public class ProtectedBlockMemory implements IProtectedBlock
return blockList;
}
@Override
public void protectBlock(final Block block, final String playerName)
{
final ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld()));
protectBlock(pl, playerName);
plugin.getServer().getScheduler().scheduleAsyncDelayedTask(plugin, new Runnable()
{
@Override
public void run()
{
storage.protectBlock(block, playerName);
@@ -173,9 +178,9 @@ public class ProtectedBlockMemory implements IProtectedBlock
});
}
private final void protectBlock(ProtectedLocation pl, String playerName)
private void protectBlock(final ProtectedLocation pl, final String playerName)
{
int playerId = getPlayerId(playerName);
final int playerId = getPlayerId(playerName);
ProtectedBy pb = blocks.get(pl);
if (pb == null)
{
@@ -185,27 +190,31 @@ public class ProtectedBlockMemory implements IProtectedBlock
pb.add(playerId);
}
public boolean isProtected(Block block, String playerName)
@Override
public boolean isProtected(final Block block, final String playerName)
{
int playerId = getPlayerId(playerName);
ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld()));
ProtectedBy pb = blocks.get(pl);
final int playerId = getPlayerId(playerName);
final ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld()));
final ProtectedBy pb = blocks.get(pl);
return !pb.contains(playerId);
}
public List<String> getOwners(Block block)
@Override
public List<String> getOwners(final Block block)
{
ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld()));
ProtectedBy pb = blocks.get(pl);
return pb.getPlayers(playerNames);
}
@Override
public int unprotectBlock(final Block block)
{
ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld()));
ProtectedBy pb = blocks.remove(pl);
final ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld()));
final ProtectedBy pb = blocks.remove(pl);
plugin.getServer().getScheduler().scheduleAsyncDelayedTask(plugin, new Runnable()
{
@Override
public void run()
{
storage.unprotectBlock(block);
@@ -214,7 +223,7 @@ public class ProtectedBlockMemory implements IProtectedBlock
return pb.size();
}
private int getPlayerId(String playername)
private int getPlayerId(final String playername)
{
int id = playerNames.indexOf(playername);
if (id < 0)
@@ -225,12 +234,12 @@ public class ProtectedBlockMemory implements IProtectedBlock
return id;
}
private int getWorldId(World world)
private int getWorldId(final World world)
{
return getWorldId(world.getName());
}
private int getWorldId(String name)
private int getWorldId(final String name)
{
int id = worlds.indexOf(name);
if (id < 0)
@@ -241,6 +250,7 @@ public class ProtectedBlockMemory implements IProtectedBlock
return id;
}
@Override
public void onPluginDeactivation()
{
storage.onPluginDeactivation();

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.protect.data;
package net.ess3.protect.data;
import java.beans.PropertyVetoException;
import java.sql.Connection;
@@ -11,7 +11,7 @@ import java.util.logging.Logger;
public class ProtectedBlockMySQL extends ProtectedBlockJDBC
{
public ProtectedBlockMySQL(String url, String username, String password) throws PropertyVetoException
public ProtectedBlockMySQL(final String url, final String username, final String password) throws PropertyVetoException
{
super("com.mysql.jdbc.Driver", url, username, password);
}
@@ -24,7 +24,7 @@ public class ProtectedBlockMySQL extends ProtectedBlockJDBC
+ ") ENGINE=MyISAM DEFAULT CHARSET=utf8";
@Override
protected PreparedStatement getStatementCreateTable(Connection conn) throws SQLException
protected PreparedStatement getStatementCreateTable(final Connection conn) throws SQLException
{
return conn.prepareStatement(QueryCreateTable);
}
@@ -40,7 +40,7 @@ public class ProtectedBlockMySQL extends ProtectedBlockJDBC
+ "DROP PRIMARY KEY ;";
@Override
protected PreparedStatement getStatementUpdateFrom2_0Table(Connection conn) throws SQLException
protected PreparedStatement getStatementUpdateFrom2_0Table(final Connection conn) throws SQLException
{
PreparedStatement testPS = null;
ResultSet testRS = null;
@@ -86,7 +86,7 @@ public class ProtectedBlockMySQL extends ProtectedBlockJDBC
private static final String QueryDeleteAll = "DELETE FROM EssentialsProtect;";
@Override
protected PreparedStatement getStatementDeleteAll(Connection conn) throws SQLException
protected PreparedStatement getStatementDeleteAll(final Connection conn) throws SQLException
{
return conn.prepareStatement(QueryDeleteAll);
}
@@ -94,9 +94,10 @@ public class ProtectedBlockMySQL extends ProtectedBlockJDBC
"INSERT INTO EssentialsProtect (worldName, x, y, z, playerName) VALUES (?, ?, ?, ?, ?);";
@Override
protected PreparedStatement getStatementInsert(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException
protected PreparedStatement getStatementInsert(final Connection conn, final String world, final int x, final int y, final int z,
final String playerName) throws SQLException
{
PreparedStatement ps = conn.prepareStatement(QueryInsert);
final PreparedStatement ps = conn.prepareStatement(QueryInsert);
ps.setString(1, world);
ps.setInt(2, x);
ps.setInt(3, y);
@@ -109,9 +110,10 @@ public class ProtectedBlockMySQL extends ProtectedBlockJDBC
+ "WHERE worldName = ? AND x = ? AND y = ? AND z = ? GROUP BY x;";
@Override
protected PreparedStatement getStatementPlayerCountByLocation(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException
protected PreparedStatement getStatementPlayerCountByLocation(final Connection conn, final String world, final int x, final int y, final int z,
final String playerName) throws SQLException
{
PreparedStatement ps = conn.prepareStatement(QueryCountByPlayer);
final PreparedStatement ps = conn.prepareStatement(QueryCountByPlayer);
ps.setString(1, playerName);
ps.setString(2, world);
ps.setInt(3, x);
@@ -123,9 +125,10 @@ public class ProtectedBlockMySQL extends ProtectedBlockJDBC
"SELECT playerName FROM EssentialsProtect WHERE worldname = ? AND x = ? AND y = ? AND z = ?;";
@Override
protected PreparedStatement getStatementPlayersByLocation(Connection conn, String world, int x, int y, int z) throws SQLException
protected PreparedStatement getStatementPlayersByLocation(final Connection conn, final String world,
final int x, final int y, final int z) throws SQLException
{
PreparedStatement ps = conn.prepareStatement(QueryPlayersByLocation);
final PreparedStatement ps = conn.prepareStatement(QueryPlayersByLocation);
ps.setString(1, world);
ps.setInt(2, x);
ps.setInt(3, y);
@@ -136,9 +139,10 @@ public class ProtectedBlockMySQL extends ProtectedBlockJDBC
"DELETE FROM EssentialsProtect WHERE worldName = ? AND x = ? AND y = ? AND z = ?;";
@Override
protected PreparedStatement getStatementDeleteByLocation(Connection conn, String world, int x, int y, int z) throws SQLException
protected PreparedStatement getStatementDeleteByLocation(final Connection conn, final String world,
final int x, final int y, final int z) throws SQLException
{
PreparedStatement ps = conn.prepareStatement(QueryDeleteByLocation);
final PreparedStatement ps = conn.prepareStatement(QueryDeleteByLocation);
ps.setString(1, world);
ps.setInt(2, x);
ps.setInt(3, y);
@@ -149,7 +153,7 @@ public class ProtectedBlockMySQL extends ProtectedBlockJDBC
"SELECT worldName, x, y, z, playerName FROM EssentialsProtect;";
@Override
protected PreparedStatement getStatementAllBlocks(Connection conn) throws SQLException
protected PreparedStatement getStatementAllBlocks(final Connection conn) throws SQLException
{
return conn.prepareStatement(QueryAllBlocks);
}

View File

@@ -1,4 +1,4 @@
package com.earth2me.essentials.protect.data;
package net.ess3.protect.data;
import java.beans.PropertyVetoException;
import java.sql.Connection;
@@ -8,7 +8,7 @@ import java.sql.SQLException;
public class ProtectedBlockSQLite extends ProtectedBlockJDBC
{
public ProtectedBlockSQLite(String url) throws PropertyVetoException
public ProtectedBlockSQLite(final String url) throws PropertyVetoException
{
super("org.sqlite.JDBC", url);
}
@@ -18,7 +18,7 @@ public class ProtectedBlockSQLite extends ProtectedBlockJDBC
+ "x NUMERIC, y NUMERIC, z NUMERIC)";
@Override
protected PreparedStatement getStatementCreateTable(Connection conn) throws SQLException
protected PreparedStatement getStatementCreateTable(final Connection conn) throws SQLException
{
return conn.prepareStatement(QueryCreateTable);
}
@@ -27,14 +27,14 @@ public class ProtectedBlockSQLite extends ProtectedBlockJDBC
+ "worldName, x, z, y)";
@Override
protected PreparedStatement getStatementUpdateFrom2_0Table(Connection conn) throws SQLException
protected PreparedStatement getStatementUpdateFrom2_0Table(final Connection conn) throws SQLException
{
return conn.prepareStatement(QueryUpdateFrom2_0Table);
}
private static final String QueryDeleteAll = "DELETE FROM EssentialsProtect;";
@Override
protected PreparedStatement getStatementDeleteAll(Connection conn) throws SQLException
protected PreparedStatement getStatementDeleteAll(final Connection conn) throws SQLException
{
return conn.prepareStatement(QueryDeleteAll);
}
@@ -42,9 +42,10 @@ public class ProtectedBlockSQLite extends ProtectedBlockJDBC
"INSERT INTO EssentialsProtect (worldName, x, y, z, playerName) VALUES (?, ?, ?, ?, ?);";
@Override
protected PreparedStatement getStatementInsert(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException
protected PreparedStatement getStatementInsert(final Connection conn, final String world,
final int x, final int y, final int z, final String playerName) throws SQLException
{
PreparedStatement ps = conn.prepareStatement(QueryInsert);
final PreparedStatement ps = conn.prepareStatement(QueryInsert);
ps.setString(1, world);
ps.setInt(2, x);
ps.setInt(3, y);
@@ -57,9 +58,10 @@ public class ProtectedBlockSQLite extends ProtectedBlockJDBC
+ "WHERE worldName = ? AND x = ? AND y = ? AND z = ? GROUP BY x;";
@Override
protected PreparedStatement getStatementPlayerCountByLocation(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException
protected PreparedStatement getStatementPlayerCountByLocation(final Connection conn, final String world,
final int x, final int y, final int z, final String playerName) throws SQLException
{
PreparedStatement ps = conn.prepareStatement(QueryPlayerCountByLocation);
final PreparedStatement ps = conn.prepareStatement(QueryPlayerCountByLocation);
ps.setString(1, playerName);
ps.setString(2, world);
ps.setInt(3, x);
@@ -71,9 +73,10 @@ public class ProtectedBlockSQLite extends ProtectedBlockJDBC
"SELECT playerName FROM EssentialsProtect WHERE worldname = ? AND x = ? AND y = ? AND z = ?;";
@Override
protected PreparedStatement getStatementPlayersByLocation(Connection conn, String world, int x, int y, int z) throws SQLException
protected PreparedStatement getStatementPlayersByLocation(final Connection conn, final String world,
final int x, final int y, final int z) throws SQLException
{
PreparedStatement ps = conn.prepareStatement(QueryPlayersByLocation);
final PreparedStatement ps = conn.prepareStatement(QueryPlayersByLocation);
ps.setString(1, world);
ps.setInt(2, x);
ps.setInt(3, y);
@@ -84,9 +87,10 @@ public class ProtectedBlockSQLite extends ProtectedBlockJDBC
"DELETE FROM EssentialsProtect WHERE worldName = ? AND x = ? AND y = ? AND z = ?;";
@Override
protected PreparedStatement getStatementDeleteByLocation(Connection conn, String world, int x, int y, int z) throws SQLException
protected PreparedStatement getStatementDeleteByLocation(final Connection conn, final String world,
final int x, final int y, final int z) throws SQLException
{
PreparedStatement ps = conn.prepareStatement(QueryDeleteByLocation);
final PreparedStatement ps = conn.prepareStatement(QueryDeleteByLocation);
ps.setString(1, world);
ps.setInt(2, x);
ps.setInt(3, y);
@@ -97,7 +101,7 @@ public class ProtectedBlockSQLite extends ProtectedBlockJDBC
"SELECT worldName, x, y, z, playerName FROM EssentialsProtect;";
@Override
protected PreparedStatement getStatementAllBlocks(Connection conn) throws SQLException
protected PreparedStatement getStatementAllBlocks(final Connection conn) throws SQLException
{
return conn.prepareStatement(QueryAllBlocks);
}

View File

@@ -1,9 +1,9 @@
# This determines the command prefix when there are conflicts (/name:home, /name:help, etc.)
name: EssentialsProtect
main: com.earth2me.essentials.protect.EssentialsProtect
main: net.ess3.protect.EssentialsProtect
# Note to developers: This next line cannot change, or the automatic versioning system will break.
version: ${build.number}
website: http://tiny.cc/EssentialsWiki
description: Provides protection for various parts of the world.
authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology, KHobbits]
softdepend: [Essentials3]
softdepend: [Essentials-3]