Бібліотеки, призначені для розробників, із кількома функціями, які полегшать роботу.
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); }
Рекомендовані коментарі
Приєднуйтесь до обговорення
Ви можете написати зараз та зареєструватися пізніше. Якщо у вас є обліковий запис, авторизуйтесь, щоб опублікувати від імені свого облікового запису.
Примітка: Ваш пост буде перевірено модератором, перш ніж стане видимим.