Wie spawne ich bei Spigot nach dem einschlag des PlayerEggThrowEvent ein schon gezündetes tnt an dem einschlags ort?

...komplette Frage anzeigen

1 Antwort

Sollte funktionieren:

Was genau das tut: Sobald das Event getriggert, also ausgeführt wird wird das geworfene Ei definiert und jede halbe Sekunde überprüft ob dieses Ei sich in der Nähe von Blöcken befindet, ist dies der Fall, so wird eine Explosion erstellt und der Scheduler, also in diesem Fall der "Prüfer" wird deaktiviert, bis ein neues Ei geworfen wird.

public class LSTN_TESTKLASSE implements Listener{
int sched;

@EventHandler
public void onEggThrow(PlayerEggThrowEvent e){
Entity egg = e.getEgg();

sched = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getInstance(), new Runnable() {

@Override
public void run() {
if(egg.getLocation().add(+1, 0, 0).getBlock() != Material.AIR){
egg.getWorld().createExplosion(egg.getLocation(), 2, false);
Bukkit.getScheduler().cancelTask(sched);
}
if(egg.getLocation().add(-1, 0, 0).getBlock() != Material.AIR){
egg.getWorld().createExplosion(egg.getLocation(), 2, false);
Bukkit.getScheduler().cancelTask(sched);
}
if(egg.getLocation().add(0, +1, 0).getBlock() != Material.AIR){
egg.getWorld().createExplosion(egg.getLocation(), 2, false);
Bukkit.getScheduler().cancelTask(sched);
}
if(egg.getLocation().add(0, -1, 0).getBlock() != Material.AIR){
egg.getWorld().createExplosion(egg.getLocation(), 2, false);
Bukkit.getScheduler().cancelTask(sched);
}
if(egg.getLocation().add(0, 0, +1).getBlock() != Material.AIR){
egg.getWorld().createExplosion(egg.getLocation(), 2, false);
Bukkit.getScheduler().cancelTask(sched);
}
if(egg.getLocation().add(0, 0, -1).getBlock() != Material.AIR){
egg.getWorld().createExplosion(egg.getLocation(), 2, false);
Bukkit.getScheduler().cancelTask(sched);
}

}
}, 0, 10);


}

}


// Nicht getestet, aber logisch bestätigt :D


P.S: Wir haben einen Server, wenn du noch mehr lernen willst, oder einfach mal mit uns labern willst, komm auf den TS: GamingIsland.eu / MC-Server: GamingIsland.eu :)

Antwort bewerten Vielen Dank für Deine Bewertung
lgplay 26.11.2016, 13:29

sched = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getInstance(), new Runnable() {

eclipse meckert bei dem getInstance rum

0
DennisReallife 27.11.2016, 11:19

Klar, du musst auch vorher die Instanz in der Mainklasse definieren. Ich schreibe dir gleich wie.

0

Was möchtest Du wissen?