Custom parameter types
This page will explain how you can create and resolve custom parameter types
Creating a Quest type
public record Quest(
String id,
String description
) {}data class Quest(
val id: String,
val description: String
)Creating a QuestManager
public final class QuestManager {
private final Map<String, Quest> quests = new HashMap<>();
public boolean questExists(@NotNull String name) {
return quests.containsKey(name);
}
public void add(@NotNull Quest quest) {
if (questExists(quest.name()))
throw new IllegalArgumentException("Quest with name '" + quest.name() + "' already exists!");
quests.put(quest.name(), quest);
}
public Quest remove(@NotNull Quest quest) {
return quests.remove(quest.name());
}
public void clearAllQuests() {
quests.clear();
}
public Quest quest(@NotNull String name) {
return quests.get(name);
}
public Map<String, Quest> quests() {
return quests;
}
}Creating a QuestParameterType
Adding tab completion to our Quest type
Registering our QuestParameterType to Lamp
Creating our QuestCommands class
Using a ParameterType Factory
Example: Enum Parameter Type Factory
Last updated
Was this helpful?