2017-09-03 3 views
0

Je viens de commencer à créer mon premier plugin bukkit. Je voulais faire des oeufs qui explosent quand ils touchent le sol, et j'ai réussi à le faire. Mais maintenant je veux avoir des œufs normaux et des œufs qui explosent quand ils touchent le sol. Comment puis-je créer ceci? J'ai essayé de les nommer différemment, mais les entités n'ont pas de noms d'éléments. Comment puis-je détecter quel œuf a été jeté un œuf qui devrait exploser et lequel est un œuf normal?Comment créer un objet personnalisé dans minecraft bukkit [plugin]

Si quelque chose n'était pas assez clair s'il vous plaît demandez-moi de l'expliquer mieux, Merci!

+0

Bienvenue à SO. Ce site n'est pas un service d'écriture de code et n'est pas destiné à fournir des solutions complètes. Les utilisateurs doivent faire preuve d'effort et de code tandis que SO est là pour vous aider à résoudre des problèmes de programmation spécifiques en cours de route. Avez-vous déjà essayé quelque chose? –

+0

Vous pouvez définir un UUID pour l'entité et le récupérer via getUUID() [Javadocs] (https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/Entity.html#getUniqueId--) – Kerooker

+0

L'oeuf est aussi métadatable, donc vous pouvez y ajouter des métadonnées, [Bukkit Forums] (https://bukkit.org/threads/tutorial-metadata-what-it-is-and-how-to-use-it.276338/) – Kerooker

Répondre

2

Vous pouvez avoir un EventHandler quand un joueur lance la Egg vous voulez, et ajouter un peu MetaData à elle:

@EventHandler 
public void onProjectileLaunch(ProjectileLaunchEvent e){ 
    Projectile projectile = e.getEntity(); 
    if (//This projectile should be an explosive egg) { 
     projectile.setMetadata("explosiveegg", new FixedMetadataValue(plugin, "explosiveegg"; 
    } 
} 

ensuite récupérer vos métadonnées lorsque le Egg frappe un Entity ou sur le sol et vérifier si elle est Les métadonnées sont "explosivesegg"

if (projectile.hasMetadata("explosiveegg")) //Explode