summaryrefslogtreecommitdiffstats
path: root/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java
diff options
context:
space:
mode:
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/commands/Commandspawner.java')
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandspawner.java26
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)
{