🇩🇪 Deutsch (German)
🇩🇪 Deutsch (German)
Erscheinungsbild
🇩🇪 Deutsch (German)
🇩🇪 Deutsch (German)
Erscheinungsbild
Diese Seite ist für folgende Version geschrieben:
1.21
Diese Seite ist für folgende Version geschrieben:
1.21
Mit einfachen Items ist es nicht getan - irgendwann braucht man ein Item, das mit der Welt interagiert, wenn es benutzt wird.
Es gibt einige Schlüsselklassen, die du verstehen musst, bevor du einen Blick auf die Vanilla-Item-Events wirfst.
Bei Items ist das häufigste TypedActionResult
für ItemStacks
- diese Klasse sagt dem Spiel, was der Item-Stack ersetzen soll (oder nicht), nachdem das Event eingetreten ist.
Wenn in dem Event nichts vorgefallen ist, solltest du die Methode TypedActionResult#pass(stack)
verwenden, wobei stack
der aktuelle Item-Stack ist.
Du kannst den aktuellen Item-Stack ermitteln, indem du den Stack in der Hand des Spielers abrufst. Normalerweise übergeben Events, die ein TypedActionResult
erfordern, die Hand an die Eventmethode.
TypedActionResult.pass(user.getStackInHand(hand))
Wenn du den aktuellen Stack übergibst, wird sich nichts ändern, unabhängig davon, ob du das Event als fehlgeschlagen, bestanden/ignoriert oder erfolgreich deklarierst.
Wenn du den aktuellen Stack löschen willst, solltest du einen leeren Stack übergeben. Dasselbe gilt für das Dekrementieren: Du holst den aktuellen Stapel und dekrementierst ihn um den gewünschten Betrag:
ItemStack heldStack = user.getStackInHand(hand);
heldStack.decrement(1);
TypedActionResult.success(heldStack);
In ähnlicher Weise teilt ein ActionResult
dem Spiel den Status des Events mit, ob es bestanden/ignoriert, fehlgeschlagen oder erfolgreich war.
Glücklicherweise verfügt die Klasse Item über viele Methoden, die überschrieben werden können, um zusätzliche Funktionen zu deinen Items hinzuzufügen.
INFO
Ein hervorragendes Beispiel für die Verwendung dieser Events findet sich auf der Seite SoundEvents abspielen, die das Ereignis useOnBlock
verwendet, um einen Sound abzuspielen, wenn der Spieler mit der rechten Maustaste auf einen Block klickt.
Methode | Informationen |
---|---|
postHit | Ausgeführt, wenn ein Spieler eine Entität schlägt. |
postMine | Ausgeführt, wenn ein Spieler einen Block abbaut. |
inventoryTick | Jeden Tick ausgeführt, solange das Item im Inventar ist. |
onCraft | Ausgeführt, wenn das Item hergestellt wurde. |
useOnBlock | Ausgeführt, wenn der Spieler auf einen Block mit einem Item rechtsklickt. |
use | Ausgeführt, wenn ein Spieler ein Item rechtsklickt. |
use()
Event Angenommen, du möchtest ein Item erstellen, das einen Blitz vor dem Spieler herbeiruft - dann musst du eine benutzerdefinierte Klasse erstellen.
public class LightningStick extends Item {
public LightningStick(Settings settings) {
super(settings);
}
}
Das use
-Event ist wahrscheinlich das nützlichste von allen - du kannst dieses Event benutzen, um unseren Blitz zu erschaffen, du solltest ihn 10 Blöcke vor dem Spieler spawnen, in dessen Richtung er schaut.
public class LightningStick extends Item {
public LightningStick(Settings settings) {
super(settings);
}
}
Wie üblich solltest du deine Items registrieren, ein Modell und eine Textur hinzufügen.
Wie du sehen kannst, sollte der Blitz 10 Blöcke vor dir - dem Spieler - erscheinen.