Stap 11: Verder uitbreiden: 2
We moeten eerst voor het toevoegen van hoeden, zorg ervoor dat alleen de speler doet de opdracht, omdat als console, goed doet, er is geen hand te krijgen van een blok uit, en geen hoofd op te zetten. We moeten dus vóór de instructie sendMessage en terug te keren waar in onze onCommand -functie, controleren of de commandSender een exemplaar van de speler is. Dit kan worden gedaan, zoals u, door dit weet wellicht:
} else { commandSender.sendMessage("You need to be a player to use this command!"); return true; }
Met de accolades rond de sendMessage en terug te keren waar dingen in onze functie gaan. We kunnen gewoon een else statement na dat we zojuist toegevoegd, vertellen de commandSender dat de opdracht kan alleen worden gebruikt door een speler if -instructie toevoegen (Vergeet niet om terug te keren waar, zoals de opdracht werd nog steeds erkend), die kan worden gedaan door:
} else {commandSender.sendMessage ("u moet een speler deze opdracht gebruiken!"); Player player = (Player) commandSender;
Terug naar de binnenkant van onze instanceof verklaring moeten we dit toe te voegen, voordat de instructie return:
PlayerInventory inventory = player.getInventory();
Dit krijgt een speler -object uit onze commandSender, en het is veilig om te werpen binnen dit if -instructie, omdat we al gecontroleerd dat onze commandSenderis een speler.
Vervolgens moeten we ertoe van de speler inventaris, om te krijgen van het blok in de hand, en rusten op hun hoofd. Dit kan eenvoudig worden bereikt door:
inventory.setHelmet(inventory.getItemInMainHand());
De manier waarop dit werkt is zoals u waarschijnlijk kunt zien, is het krijgt speler variabele, krijgt hun inventaris en zet het aan een variabele met de naam inventory. Dit moet een PlayerInventory en niet alleen een inventaris, omdat de voorraden kunnen dingen zoals kisten, droppers, ect., terwijl een speler heeft handen, armor, en andere kleine stukjes die regelmatig voorraden niet hebben.
De volgende taak is om de helm naar het item in de hand. Dit is eenvoudiger dan u misschien denkt:
inventory.setHelmet
Dit kan worden onderverdeeld in twee delen. Er is de
inventory.getItemInMainHand()
En:
Ik zal gaan door hen een beetje op een moment. De ene krijgt onze eerder gedefinieerde inventaris variabele, en Hiermee stelt u de hoed of helm, als wat na het tussen haakjes komt.
Het tweede deel, dat is ingesteld krijgen als de hoed, opnieuw krijgt van onze voorraad -variabele, en wordt het item in onze belangrijkste hand. Objecten kunnen in uw hoofdverblijfplaats of uit de hand, maar voor deze tutorial we zullen krijgen het item in onze hoofdagenda. Voor het instellen van de hoed, that's about it! Nu het compileren van de plugin, en je bent klaar om het te testen!