Перейти до змісту

⭐THE ASSISTANT⭐ Easy To Use Dependency Injection API

Рекомендовані відповіді

Опубліковано

⭐THE ASSISTANT⭐ Easy To Use Dependency Injection API


Бібліотеки, призначені для розробників, із кількома функціями, які полегшать роботу.
API

Код (Java):

/**
 * The Assistant API
 */
public interface TheAssistantAPI {
    /**
     * Retrieves Command Provider
     *
     * @return CommandProvider of {@link AssistantCommand}
     */
    public CommandProvider<AssistantCommand> getCommandProvider();

    /**
     * Retrieves Dependency Resolver
     * @return {@link DependencyResolver}
     */
    public DependencyResolver getDependencyResolver();

    /**
     * Retrieves Addon Service
     *
     * @return {@link AddonsService}
     */
    public AddonsService getAddons();

    /**
     * Retrieves NMS Multi Version handler
     *
     * @return {@link NMS}
     */
    public NMS getNms();


    /**
     * Retrieves Plugin instance
     *
     * @return {@link Plugin} instance
     */
    public Plugin getPlugin();
}

Служба додатків.
Ймовірно, найпотужніша функція цього помічника — можливість легко керувати хуками.

► Економічний аддон (Support Vault, PlayerPoints & TokenManager)

/**
 * Economy Addon
 */
public interface EconomyAddon extends DependencyPlugin {
    /**
     * Retrieves player money
     *
     * @param player {@link OfflinePlayer}
     * @return money amount
     */
    public double getMoney(final OfflinePlayer player);

    /**
     * Deposit money to player balance
     *
     * @param player {@link OfflinePlayer}
     * @param amount money to add
     */
    public void depositMoney(final OfflinePlayer player, final double amount);

    /**
     * Withdraw money from player balance
     *
     * @param player {@link OfflinePlayer}
     * @param amount money to remove
     */
    public void withdrawMoney(final OfflinePlayer player, final double amount);
}

► Регіональний аддон (підтримка WorldGuard, Residence & UltraRegions)

/**
 * Region Addon
 */
public interface RegionAddon extends DependencyPlugin {
    /**
     * Retrieves if a location is inside any of given regions
     *
     * @param location {@link Location}
     * @param regions  List of regions
     * @return true if location is in any region
     */
    public default boolean isInAnyRegion(final Location location, final List<String> regions) {
        if (regions.isEmpty()) {
            return false;
        }

        return getRegions(location)
                .stream()
                .anyMatch(regions::contains);
    }

    /**
     * Retrieves if a location is inside given region
     *
     * @param location {@link Location}
     * @param region   region
     * @return true if location is in region
     */
    public default boolean isInRegion(final Location location, final String region) {
        if (region == null) {
            return false;
        }

        return getRegions(location)
                .stream()
                .anyMatch(region::equals);
    }

    /**
     * Retrieves location's regions
     *
     * @param location {@link Location}
     * @return Set of regions
     */
    public Set<String> getRegions(final Location location);
}

► Доповнення Paster (підтримка WorldEdit)

/**
 * Paster Addon interface
 */
public interface PasterAddon extends DependencyPlugin {
    /**
     * Paste World edit schematic in specific location
     *
     * @param location  {@link Location}
     * @param schematic {@link Schematic}
     * @return CompletableFuture of {@link PasterSession}
     */
    public CompletableFuture<PasterSession> pasteSchematic(final Location location, final Schematic schematic);
}

► Аддон NPC (підтримка громадян)

/**
 * NPC Addon
 */
public interface NPCAddon extends DependencyPlugin {
    /**
     * Retrieves if an entity is an npc
     *
     * @param entity {@link Entity}
     * @return true if it's npc
     */
    public boolean isNPC(final Entity entity);
}

► Додаток Placeholders (Підтримка PlaceholderAPI та MVdW PlaceholderAPI)

/**
 * Placeholder Addon
 */
public interface PlaceholdersAddon extends DependencyPlugin {
    /**
     * Register a placeholder with custom placeholder replacer
     *
     * @param identifier placeholder key
     * @param replacer   {@link PlaceholderReplacer}
     */
    public void registerPlaceholders(final String identifier, final PlaceholderReplacer replacer);
}

CommandProvider
Реєструйте команди в реальному часі, вони повинні бути в plugin.yml.

1- Зареєструйте постачальника етикетки

LabelProvider.builder()
                .id("theAssistantCommand")
                .label("assistant")
                .plugin(box.plugin())
                .useHelpMessage("&cUse Help")
                .unknownCommandMessage("&cUnknown Command")
                .onlyForPlayersMessage("&cThis command can be executed only for players!")
                .noPermissionMessage("&cYou don't have permission to use that command!")
                .build()
                .register();

2-Зареєструвати команду з обробником

/**
 * Command provider implementation for the assistant
 */
public final class TheAssistantCommandProvider implements CommandProvider<AssistantCommand> {
    /**
     * Register a command with specific handler
     *
     * @param command Command to be registered
     * @param handler Command handler
     */
    public void registerCommand(final AssistantCommand command, final CommandHandler<AssistantCommand> handler);
}


 


 

Приєднуйтесь до обговорення

Ви можете написати зараз та зареєструватися пізніше. Якщо у вас є обліковий запис, авторизуйтесь, щоб опублікувати від імені свого облікового запису.
Примітка: Ваш пост буде перевірено модератором, перш ніж стане видимим.

Гість
Відповісти на цю тему...