Visitors
This page explains how to use visitors, which enable modular, reusable configurations for Lamp and Lamp.Builder through customizable registration and hooks.
Modular Visitors in Lamp
LampBuilderVisitor
Overview
Creating a LampBuilderVisitor
/**
* Registers the following parameter types:
* <ul>
* <li>{@link Player}</li>
* <li>{@link OfflinePlayer}</li>
* <li>{@link World}</li>
* <li>{@link EntitySelector}</li>
* </ul>
*
* @param <A> The actor type
* @return The visitor
*/
public static <A extends BukkitCommandActor> @NotNull LampBuilderVisitor<A> bukkitParameterTypes() {
return builder -> {
builder.parameterTypes()
.addParameterTypeLast(Player.class, new PlayerParameterType())
.addParameterTypeLast(OfflinePlayer.class, new OfflinePlayerParameterType())
.addParameterTypeLast(World.class, new WorldParameterType())
.addParameterTypeFactoryLast(new EntitySelectorParameterTypeFactory());
if (BukkitVersion.isBrigadierSupported())
builder.parameterTypes()
.addParameterTypeLast(Entity.class, new EntityParameterType());
};
}Using a LampBuilderVisitor
LampVisitor
Overview
Creating a LampVisitor
Using a LampVisitor
Last updated
Was this helpful?