Minecraft Timber Plugin programmieren?
Hallo,
habe aus Zeitvertreib und Interesse angefangen in Java etwas rum zu basteln. Habe es schon geschafft, dass der gesamte Baumstamm abgebaut wird. Nun würde ich noch gerne einbauen das sofort nach dem abbauen des untersten Blocks der jeweils zum Baum passende Setzling platziert wird.
Vielleicht kann mir ja jemand auf die Sprünge helfen. mit " setType " habe ich schon etwas rumgespielt. Nur leider weiß ich nicht wie man eine Art Blockabfrage programmiert.
Das Plugin wird für die Spigot Version 1.20 unter der Java Version 17 programmiert.
LG
1 Antwort
Hallo!
Ich werde dir eine einfache Anleitung geben, um einen Setzling zu platzieren, nachdem der unterste Block eines Baumes abgebaut wurde. Das Konzept ist, dass du den Blocktyp (z.B. Eichenstamm) überprüfst und dann den entsprechenden Setzling (z.B. Eichensetzling) platzierst.
**1. Bestimme den Blocktyp**
Um zu sehen, welcher Baumstamm-Typ es ist, könntest du eine einfache Überprüfung machen:
```java
Material blockType = block.getType();
```
**2. Entscheide, welchen Setzling zu setzen**
Dann könntest du mit einem `switch`-Statement oder `if`-Anweisungen den entsprechenden Setzling setzen:
```java
Material saplingType;
switch (blockType) {
case Material.OAK_LOG:
saplingType = Material.OAK_SAPLING;
break;
case Material.BIRCH_LOG:
saplingType = Material.BIRCH_SAPLING;
break;
// ... und so weiter für alle Baumarten
default:
saplingType = null; // oder irgendeinen Standardwert
}
```
**3. Setzling platzieren**
Um einen Block zu setzen, holst du dir die Welt und setzt den Blocktyp:
```java
if (saplingType != null) {
block.getWorld().getBlockAt(block.getLocation()).setType(saplingType);
}
```
Zusammengefasst könnte das ganze etwa so aussehen:
```java
public void placeSapling(Block block) {
Material blockType = block.getType();
Material saplingType;
switch (blockType) {
case Material.OAK_LOG:
saplingType = Material.OAK_SAPLING;
break;
case Material.BIRCH_LOG:
saplingType = Material.BIRCH_SAPLING;
break;
// ... und so weiter für alle Baumarten
default:
saplingType = null;
}
if (saplingType != null) {
block.getWorld().getBlockAt(block.getLocation()).setType(saplingType);
}
}
```
Und dann rufst du `placeSapling(block)` auf, nachdem du den Baumstamm abgebaut hast.
Bitte beachte, dass dieser Code vereinfacht ist und vielleicht nicht alle Sonderfälle oder alle Baumarten abdeckt. Es dient als Startpunkt und Inspiration für deine Weiterentwicklung.
Viel Spaß beim Programmieren!