diff options
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/commands/Commandspawner.java')
-rw-r--r-- | Essentials/src/com/earth2me/essentials/commands/Commandspawner.java | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java b/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java index d2b50137d..81ae6a659 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java @@ -2,30 +2,32 @@ package com.earth2me.essentials.commands; import com.earth2me.essentials.*; import static com.earth2me.essentials.I18n._; +import com.earth2me.essentials.api.ISettings; +import com.earth2me.essentials.bukkit.Mob; +import com.earth2me.essentials.economy.Trade; +import com.earth2me.essentials.api.IUser; +import com.earth2me.essentials.permissions.SpawnerPermissions; +import com.earth2me.essentials.utils.LocationUtil; +import com.earth2me.essentials.utils.Util; import java.util.Locale; +import lombok.Cleanup; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.Server; import org.bukkit.block.CreatureSpawner; import org.bukkit.entity.EntityType; public class Commandspawner extends EssentialsCommand { - public Commandspawner() - { - super("spawner"); - } - @Override - protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception + protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception { if (args.length < 1 || args[0].length() < 2) { throw new NotEnoughArgumentsException(_("mobsAvailable", Util.joinList(Mob.getMobList()))); } - final Location target = Util.getTarget(user); + final Location target = LocationUtil.getTarget(user); if (target == null || target.getBlock().getType() != Material.MOB_SPAWNER) { throw new Exception(_("mobSpawnTarget")); @@ -39,11 +41,14 @@ public class Commandspawner extends EssentialsCommand { throw new Exception(_("invalidMob")); } - if (ess.getSettings().getProtectPreventSpawn(mob.getType().toString().toLowerCase(Locale.ENGLISH))) + @Cleanup + ISettings settings = ess.getSettings(); + settings.acquireReadLock(); + if (settings.getData().getGeneral().getPreventSpawn(mob.getType().toString().toLowerCase(Locale.ENGLISH))) { throw new Exception(_("disabledToSpawnMob")); } - if (!user.isAuthorized("essentials.spawner." + mob.name.toLowerCase(Locale.ENGLISH))) + if (!SpawnerPermissions.getPermission(mob.name.toLowerCase(Locale.ENGLISH)).isAuthorized(user)) { throw new Exception(_("noPermToSpawnMob")); } @@ -52,6 +57,7 @@ public class Commandspawner extends EssentialsCommand try { ((CreatureSpawner)target.getBlock().getState()).setSpawnedType(mob.getType()); + } catch (Throwable ex) { |