Allow Conversable rather than Player in SelectionPrompt

This commit is contained in:
fullwall 2013-08-16 12:12:17 +08:00
parent 9fb5771cae
commit b56c6f0c1f
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.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.conversations.Conversable;
import org.bukkit.entity.Ageable;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
@ -995,8 +996,9 @@ public class NPCCommands {
String name = args.getString(1);
List<NPC> possible = Lists.newArrayList();
double range = -1;
if (args.hasValueFlag("r"))
if (args.hasValueFlag("r")) {
range = Math.abs(args.getFlagDouble("r"));
}
for (NPC test : npcRegistry) {
if (test.getName().equalsIgnoreCase(name)) {
if (range > 0
@ -1010,7 +1012,7 @@ public class NPCCommands {
if (possible.size() == 1) {
toSelect = possible.get(0);
} else if (possible.size() > 1) {
SelectionPrompt.start(selector, (Player) sender, possible);
SelectionPrompt.start(selector, (Conversable) sender, possible);
return;
}
}

View File

@ -10,12 +10,12 @@ import net.citizensnpcs.npc.NPCSelector;
import net.citizensnpcs.util.Messages;
import org.bukkit.command.CommandSender;
import org.bukkit.conversations.Conversable;
import org.bukkit.conversations.Conversation;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.conversations.ConversationFactory;
import org.bukkit.conversations.NumericPrompt;
import org.bukkit.conversations.Prompt;
import org.bukkit.entity.Player;
public class SelectionPrompt extends NumericPrompt {
private final List<NPC> choices;
@ -54,7 +54,7 @@ public class SelectionPrompt extends NumericPrompt {
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)
.withEscapeSequence("exit").withModality(false)
.withFirstPrompt(new SelectionPrompt(selector, possible)).buildConversation(player);