diff options
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/commands/Commandkit.java')
-rw-r--r-- | Essentials/src/com/earth2me/essentials/commands/Commandkit.java | 87 |
1 files changed, 53 insertions, 34 deletions
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandkit.java b/Essentials/src/com/earth2me/essentials/commands/Commandkit.java index baa8ba014..4130429f8 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandkit.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandkit.java @@ -1,82 +1,101 @@ package com.earth2me.essentials.commands; -import com.earth2me.essentials.*; import static com.earth2me.essentials.I18n._; -import java.util.*; -import org.bukkit.Server; +import com.earth2me.essentials.api.IUser; +import com.earth2me.essentials.economy.Trade; +import com.earth2me.essentials.permissions.KitPermissions; +import com.earth2me.essentials.settings.Kit; +import com.earth2me.essentials.utils.Util; +import java.util.Collection; +import java.util.List; +import java.util.Locale; import org.bukkit.command.CommandSender; +import org.bukkit.inventory.ItemStack; public class Commandkit extends EssentialsCommand { - public Commandkit() - { - super("kit"); - } - @Override - public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception + public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { if (args.length < 1) { - final String kitList = Kit.listKits(ess, user); - user.sendMessage(kitList.length() > 0 ? _("kits", kitList) : _("noKits")); + Collection<String> kitList = ess.getKits().getList(); + if (kitList.isEmpty()) + { + user.sendMessage(_("noKits")); + } + else + { + for (String kitName : kitList) + { + if (!KitPermissions.getPermission(kitName).isAuthorized(user)) + { + kitList.remove(kitName); + } + } + user.sendMessage(_("kits", Util.joinList(kitList))); + } throw new NoChargeException(); } - else if (args.length > 1 && user.isAuthorized("essentials.kit.others")) + else if (args.length > 1 && KitPermissions.getPermission("others").isAuthorized(user)) { - final User userTo = getPlayer(server, args, 1, true); + final IUser userTo = getPlayer(args, 1, true); final String kitName = Util.sanitizeString(args[0].toLowerCase(Locale.ENGLISH)); giveKit(userTo, user, kitName); + } else { final String kitName = Util.sanitizeString(args[0].toLowerCase(Locale.ENGLISH)); giveKit(user, user, kitName); + } } @Override - public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception + public void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception { if (args.length < 2) { - final String kitList = Kit.listKits(ess, null); - sender.sendMessage(kitList.length() > 0 ? _("kits", kitList) : _("noKits")); + listKits(sender); throw new NoChargeException(); } - else { - final User userTo = getPlayer(server, args, 1, true); + final IUser userTo = getPlayer(args, 1, true); final String kitName = args[0].toLowerCase(Locale.ENGLISH); - - final Map<String, Object> kit = ess.getSettings().getKit(kitName); - final List<String> items = Kit.getItems(userTo, kit); - Kit.expandItems(ess, userTo, items); - + final Kit kit = ess.getKits().getKit(kitName); + ess.getKits().sendKit(userTo, kit); sender.sendMessage(_("kitGive", kitName)); } } - private void giveKit(User userTo, User userFrom, String kitName) throws Exception + private void listKits(CommandSender sender) throws Exception { - final Map<String, Object> kit = ess.getSettings().getKit(kitName); + Collection<String> kitList = ess.getKits().getList(); + if (kitList.isEmpty()) + { + sender.sendMessage(_("kits", kitList)); + } + else + { + sender.sendMessage(_("kits", Util.joinList(kitList))); + } + } - if (!userFrom.isAuthorized("essentials.kit." + kitName)) + private void giveKit(IUser userTo, IUser userFrom, String kitName) throws Exception + { + if (!KitPermissions.getPermission(kitName).isAuthorized(userFrom)) { throw new Exception(_("noKitPermission", "essentials.kit." + kitName)); } - - final List<String> items = Kit.getItems(userTo, kit); - - Kit.checkTime(userFrom, kitName, kit); - + final Kit kit = ess.getKits().getKit(kitName); + ess.getKits().checkTime(userFrom, kit); final Trade charge = new Trade("kit-" + kitName, ess); charge.isAffordableFor(userFrom); - - Kit.expandItems(ess, userTo, items); - + ess.getKits().sendKit(userTo, kit); charge.charge(userFrom); userTo.sendMessage(_("kitGive", kitName)); } } + |