Allow selecting by NPC uuid (global)

This commit is contained in:
fullwall 2020-07-08 12:18:49 +08:00
parent 3ecd3300ce
commit 202c2487a6

View File

@ -1,6 +1,17 @@
package net.citizensnpcs.commands;
import java.util.List;
import java.util.UUID;
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 com.google.common.collect.Lists;
import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.command.CommandContext;
@ -16,16 +27,6 @@ import net.citizensnpcs.api.util.Messaging;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.Util;
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 com.google.common.collect.Lists;
public class NPCCommandSelector extends NumericPrompt {
private final Callback callback;
private final List<NPC> choices;
@ -91,6 +92,12 @@ public class NPCCommandSelector extends NumericPrompt {
public static void startWithCallback(Callback callback, NPCRegistry npcRegistry, CommandSender sender,
CommandContext args, String raw) throws CommandException {
try {
UUID uuid = UUID.fromString(raw);
callback.run(npcRegistry.getByUniqueIdGlobal(uuid));
return;
} catch (IllegalArgumentException e) {
}
try {
int id = Integer.parseInt(raw);
callback.run(npcRegistry.getById(id));