Skip to content

FR: Créer le portail pour une Dimension

Florian C edited this page Dec 23, 2016 · 3 revisions

Introduction

L'API de Dimensions permet de créer et de personnaliser entièrement le portail pour accéder à une Dimension.
Il est également possible de ne pas paramétrer de portail pour une Dimension, auquel cas elle sera inaccessible sans l'aide de plugins comme Multiverse ou autres. Il suffit de renseigner l'argument Portal de la Dimension par null.

Créer un portail

Il existe deux types de Portails : PortalBuild et PortalItem. Tous deux héritent de Portal.

PortalBuild

Ce type de Portail est très intéressant : il vous permet de créer un portail de type Nether (qui sera donc vertical, PortalType.WALL_PORTAL) ou de type End (qui sera donc sur le sol, PortalType.GROUND_PORTAL).

Excepté le bloc du portail en lui même (nether ou end), beaucoup de paramètres s'offrent à vous, comme la forme, la taille, la méthode d'activation...

Voyez plutôt :
new PortalBuild(PortalType type, PortalPattern pattern, boolean requireIgnition, ItemStack neededItemToActivate, boolean consumeItem)

PortalPattern : définir la forme et la taille du portail

Un des avantages majeurs est l'absence de limites, que ce soit sur la hauteur ou la largeur du portail, sa forme et les blocs utilisés!

Commençons par instancier notre PortalPattern :
new PortalPattern(char activator, MaterialData activatorType)

PortalPattern fonctionne comme une ShapedRecipe. Ici nous avons à spécifier un caractère qui désignera le MaterialData qui suit. Ce MaterialData sera le bloc qui activera le Portail en fonction des conditions que nous verrons plus tard.

Créons maintenant notre Pattern. En voici un exemple :
PortalPattern pattern = new PortalPattern('Z', Material.STONE);
pattern.setMatching(' ', Material.AIR);
pattern.setMatching('S', Material.STONE);
pattern.setPattern(" SSS ",
" S***S ",
"S*****S",
"S*****S",
"S*****S",
"S*****Z");

Ici, le contour du portail est entièrement constitué de Stone. Mais seul le bloc en bas à droite ('Z') permettra d'activer le Portail.

A noter: * correspond au bloc portail.
A noter également: il n'est pas obligatoire de fermer le contour.

Dernier point : le bloc d'activation allume le Portail quand il subit un clic droit.

requireIgnition

Définit si le bloc d'allumage doit être enflammé.
Peut être cumulé avec neededItemToActivate.

neededItemToActivate

Définit un item qui devra être dans les mains du joueur lorsque celui-ci allume le Portail en cliquant sur le bloc d'activation.
Peut être cumulé avec requireIgnition

consumeItem

Définit si l'item requis pour l'activation sera consumé ou non.

PortalItem

A l'instar de PortalBuild, PortalItem ne requiert pas une spécification de son PortalType : celui-ci est ITEM. Ce type de Portail est très simple à paramétrer :
new PortalItem(ItemStack item)

Le seul argument demandé ici est un item. Lorsque le joueur effectuera un clic droit avec cet item en main, il se retrouvera alors téléporté dans la Dimension.