From 6d3e1b862e8513ad68e9bc5fb576c70a0791355d Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sat, 3 Dec 2011 20:51:57 +0000 Subject: [PATCH] New command: /feed New permission: essentials.feed.others Test #1191 --- .../essentials/commands/Commandfeed.java | 41 +++++++++++++------ Essentials/src/plugin.yml | 4 +- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandfeed.java b/Essentials/src/com/earth2me/essentials/commands/Commandfeed.java index ac3078309..0c1579835 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandfeed.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandfeed.java @@ -1,7 +1,10 @@ package com.earth2me.essentials.commands; +import static com.earth2me.essentials.I18n._; import com.earth2me.essentials.User; +import java.util.List; import org.bukkit.Server; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -13,25 +16,37 @@ public class Commandfeed extends EssentialsCommand } @Override - protected void run(Server server, User user, String commandLabel, String[] args) throws Exception + protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception { - if (args.length > 0) + if (args.length > 0 && user.isAuthorized("essentials.feed.others")) { - Player player = ess.getServer().getPlayer(args[0]); - if (player != null) - { - player.setFoodLevel(20); - player.setSaturation(10); - } - else - { - throw new NotEnoughArgumentsException(); // TODO: Translate "Player not found" - } + feedOtherPlayers(server,user,args[0]); } else { user.setFoodLevel(20); - user.setSaturation(10); // 10 because 20 seems way overpowered + user.setSaturation(10); + user.sendMessage(_("feed")); + } + } + + private void feedOtherPlayers(final Server server, final CommandSender sender, final String name) + { + final List players = server.matchPlayer(name); + if (players.isEmpty()) + { + sender.sendMessage(_("playerNotFound")); + return; + } + for (Player player : players) + { + if (ess.getUser(player).isHidden()) + { + continue; + } + player.setFoodLevel(20); + player.setSaturation(10); + sender.sendMessage(_("feedOther", player.getDisplayName())); } } } diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml index efeaf2648..cc6620613 100644 --- a/Essentials/src/plugin.yml +++ b/Essentials/src/plugin.yml @@ -99,8 +99,8 @@ commands: usage: / [player] aliases: [extinguish,eext,eextinguish] feed: - description: Shove food down someone's throat. - usage: / + description: Satisfy the hunger. + usage: / [player] aliases: [efeed] fireball: description: Throw a fireball.