API Docs Help

Menus

Les menus peuvent être entièrement créé via SquidCore

Création

Le MenuContainer est la manière la plus moderne d'enregistrer vos menus

Exemple:

BukkitSCorePlugin plugin; MenuContainer container = new MenuContainerBuilder(plugin) //.withMenusFolder(File) //.withTemplatesFolder(File) //.withBlueprintBuilder(MenuBlueprintBuilder) .build(); MenuReference reference = container.getMenuReference("test"); reference.getBlueprint(); // MenuBlueprint@id1 container.reload(); reference.getBlueprint(); // MenuBlueprint@id2

MenuContainerBuilder

Méthode

Description

.withMenusFolder(File)

Permet de définir le dossier ou le contenaire doit chercher les menus

.withTemplatesFolder(File)

Permet de définir le dossier ou le contenaire doit chercher les templates

.withBlueprintBuilder(File)

Permet de définir le blueprint builder à copier en tant que base

.build()

Permet de construire le contenaire

MenuContainer

Méthode

Description

.reload()

Permet de recharger les menus et templates depuis le dossier

.getMenuReference(String)

Permet d'avoir une référence vers un menu, ce dernier sera toujours valide même un reload est appelé

.getBlueprint(String)

Permet d'avoir un MenuBlueprint, ce dernier ne sera pas changé automatiquement en cas de reload

.getTemplate(String)

Permet d'avoir un MenuTemplate, ce dernier ne sera pas changé automatiquement en cas de reload

.getMenus()

Permet d'avoir tout les MenuBlueprint actuellement chargé (immutable)

.getTemplates()

Permet d'avoir tout les MenuTemplate actuellement chargé (immutable)

.getFailedLoads()

Permet d'avoir le nombre de menu & template n'ayant pas réussi à se charger

MenuReference

Méthode

Description

.getBlueprint()

Permet d'obtenir le MenuBlueprint actuellement derrière cette référence (à ne pas stocker, hormis temporairement)

Seul le MenuBlueprintBuilder sera expliqué dans cette documentation, les deux sont assez similaire.
Le MenuBlueprintBuilder est une manière alternative de charger des menus

Exemple:

BukkitSCorePlugin plugin; File file = ...; ConfigurationSection section = ...; MenuBlueprint blueprint = new MenuBlueprintBuilder(). .withOwningPlugin(plugin) //.withConfig(section) //.withFile(file) .build();

MenuBlueprintBuilder

Méthode

Description

.withOwningPlugin

Méthode obligatoire définissant le plugin propriétaire du menu

.withConfig

Défini la ConfigurationSection à lire

.withFile

Défini le File à ouvrir et lire

.build

Construit le menu

Ouverture

Pour ouvrir un menu, deux méthodes (et une deprecated non expliquée ici) sont disponibles

MenuBlueprint blueprint = ...; Player target = ...; blueprint.computeView(target).whenComplete((menuView, throwable) -> { if(throwable != null){ // log exception return; } if(menuView == null) return; // register de layouts, ... menuView.open(); }); Map<String, Object> parameters = ...; blueprint.computeView(target, parameters).whenComplete(...)

MenuBlueprint

Méthode

Description

.computeView(Player)

Créer un MenuView pour le joueur désigné, retourne un future

.computeView(Player, Map<String, Object>)

Créer un MenuView pour le joueur désigné en passant les paramètres, retourne un future

MenuView

Méthode

Description

.open()

Ouvre le menu

Layouts

Les layouts prennent une zone et la remplisse à l'aide des paramètres leur étant fourni

... if(menuView == null) return; // register de layouts, ... ItemProvider provider = ...; menuView.registerLayout("taint", provider); menuView.open();

ItemProvider

L'ItemProvider est une simple classe retournant un PlaceholderRequestable (cf. Placeholders)

List<ItemStackRequestable> requestables = new ArrayList<>(); ItemStack stack = ...; requestables.add(new ItemStackRequestable(stack)); ItemProvider provider = ItemProvider.of(requestables); // méthodes utilitaire ItemProvider.ofCollection(Collection); ItemProvider.ofMap(Map); provider.asList(); // transforme le provider en liste
Last modified: 17 septembre 2024