Allow Conversable rather than Player in SelectionPrompt

This commit is contained in:
fullwall 2013-08-16 12:12:17 +08:00
parent 9fc7c43ea5
commit 57ead921a2
2 changed files with 6 additions and 4 deletions

View File

@ -60,6 +60,7 @@ import org.bukkit.World;
import org.bukkit.command.BlockCommandSender; import org.bukkit.command.BlockCommandSender;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender; import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.conversations.Conversable;
import org.bukkit.entity.Ageable; import org.bukkit.entity.Ageable;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
@ -995,8 +996,9 @@ public class NPCCommands {
String name = args.getString(1); String name = args.getString(1);
List<NPC> possible = Lists.newArrayList(); List<NPC> possible = Lists.newArrayList();
double range = -1; double range = -1;
if (args.hasValueFlag("r")) if (args.hasValueFlag("r")) {
range = Math.abs(args.getFlagDouble("r")); range = Math.abs(args.getFlagDouble("r"));
}
for (NPC test : npcRegistry) { for (NPC test : npcRegistry) {
if (test.getName().equalsIgnoreCase(name)) { if (test.getName().equalsIgnoreCase(name)) {
if (range > 0 if (range > 0
@ -1010,7 +1012,7 @@ public class NPCCommands {
if (possible.size() == 1) { if (possible.size() == 1) {
toSelect = possible.get(0); toSelect = possible.get(0);
} else if (possible.size() > 1) { } else if (possible.size() > 1) {
SelectionPrompt.start(selector, (Player) sender, possible); SelectionPrompt.start(selector, (Conversable) sender, possible);
return; return;
} }
} }

View File

@ -10,12 +10,12 @@ import net.citizensnpcs.npc.NPCSelector;
import net.citizensnpcs.util.Messages; import net.citizensnpcs.util.Messages;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.conversations.Conversable;
import org.bukkit.conversations.Conversation; import org.bukkit.conversations.Conversation;
import org.bukkit.conversations.ConversationContext; import org.bukkit.conversations.ConversationContext;
import org.bukkit.conversations.ConversationFactory; import org.bukkit.conversations.ConversationFactory;
import org.bukkit.conversations.NumericPrompt; import org.bukkit.conversations.NumericPrompt;
import org.bukkit.conversations.Prompt; import org.bukkit.conversations.Prompt;
import org.bukkit.entity.Player;
public class SelectionPrompt extends NumericPrompt { public class SelectionPrompt extends NumericPrompt {
private final List<NPC> choices; private final List<NPC> choices;
@ -54,7 +54,7 @@ public class SelectionPrompt extends NumericPrompt {
return text; return text;
} }
public static void start(NPCSelector selector, Player player, List<NPC> possible) { public static void start(NPCSelector selector, Conversable player, List<NPC> possible) {
final Conversation conversation = new ConversationFactory(CitizensAPI.getPlugin()).withLocalEcho(false) final Conversation conversation = new ConversationFactory(CitizensAPI.getPlugin()).withLocalEcho(false)
.withEscapeSequence("exit").withModality(false) .withEscapeSequence("exit").withModality(false)
.withFirstPrompt(new SelectionPrompt(selector, possible)).buildConversation(player); .withFirstPrompt(new SelectionPrompt(selector, possible)).buildConversation(player);