001package com.ericlam.mc.eld.registration;
002
003import com.ericlam.mc.eld.common.CommonCommandNode;
004
005import java.util.function.Consumer;
006
007/**
008 * 指令註冊
009 * @param <T> 該平台所屬的指令類型
010 */
011public interface CommandRegistry<T extends CommonCommandNode<?>> {
012
013    /**
014     * 註冊含分支指令的指令
015     *
016     * @param node  指令類
017     * @param child 分支指令註冊
018     */
019    void command(Class<? extends T> node, Consumer<CommandRegistry<T>> child);
020
021    /**
022     * 註冊指令
023     *
024     * @param node 指令類
025     */
026    void command(Class<? extends T> node);
027
028}