Faire des hologrammes sous Sponge

0.00 avg. rating (0% score) - 0 votes
Partager:

Dans ce nouveau tuto, je vais vous expliqué comment faire des hologrammes. Une petit exemple:

Un Hologramme

Un Hologramme

Une petite définition s’impose: un hologramme est une entité qui est dans notre qu’a une Armor Stand qui a un nom(c’est le but) et qu’on rend invisible. Voici l’envers du décors:

L'envers du décors

L’envers du décors

L’avantage comme vous pouvez le voir c’est qu’on peut fait des hologrammes en couleur^^, chose qu’on ne peut pas faire avec les commandes de bases.

Je vais donc vous montrer comment faire sous Sponge. Pour cela j’ai créé une méthode qui va créer notre hologramme très simplement.
La méthode prend deux paramètres qui sont:
– Une location: pour pouvoir utiliser la méthode pour diverse fonction…
– Le texte à écrire: Oui il faut bien écrire quelque chose.

Pour finir, la méthode renvoie l’UUID de l’entité créé pour pouvoir la supprimer plus tard. C’est fort utile surtout pour la modifier^^.

Il y a un seul hic dans le code!!! Je n’ai pas réussi et ça doit être pareil pour les autres pour le moment a afficher le nom ET à rendre invisible l’ARMOR_STAND. On doit donc le faire en deux étapes:
– Dans un premier temps on crée notre ARMOR_STAND avec sont nom, si elle est sensible à la gravité…
– Puis grâce à la commande entitydata et l’UUID de l’ARMOR_STAND on la rend invisible.
C’est sans doute du bricolage, mais ça fonctionne, le seul truck que j’aime pas c’est qu’en utilisant une commande de minecraft ça « spam » le chat des admin, mais ça doit être temporaire vu que Sponge n’est pas terminé.

Le code:


	public static UUID spawnHologramme(Location location, Text texte) {
	    Optional<Entity> optional = location.getExtent().createEntity(EntityTypes.ARMOR_STAND, location.getPosition());
	    if (optional.isPresent()) {
	        Entity armorStand = optional.get();
	        armorStand.offer(Keys.DISPLAY_NAME, texte); // Le nom
	        armorStand.offer(Keys.CUSTOM_NAME_VISIBLE, true); // On affiche le nom
	        armorStand.offer(Keys.ARMOR_STAND_HAS_GRAVITY, false); // Pas sensible à la gravité
	        location.getExtent().spawnEntity(armorStand, Cause.source(SpawnCause.builder().type(SpawnTypes.CUSTOM).build()).build()); // On crée ARMOR_STAND
	        
	        Sponge.getGame().getCommandManager().process(Sponge.getGame().getServer().getConsole(), "entitydata "+armorStand.getUniqueId()+" {Invisible:1}");
		    return armorStand.getUniqueId();
		}
		return null;
    }

Tous les codes sont testés et sont fonctionnels, si un de ces codes ne marche pas chez vous, merci de me le signaler.
Partager:
0.00 avg. rating (0% score) - 0 votes

Vous aimerez aussi...

Laisser un commentaire