Опубліковано 16 вересня, 202416 верес Перегляд файла ⭐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); } Додав Ciko Додано 16.09.24 Категорія Плагина
Приєднуйтесь до обговорення
Ви можете написати зараз та зареєструватися пізніше. Якщо у вас є обліковий запис, авторизуйтесь, щоб опублікувати від імені свого облікового запису.
Примітка: Ваш пост буде перевірено модератором, перш ніж стане видимим.