• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

WorldGuard macht einen Hacken in die Rechnung D:

MineForce

Schafhirte
Gesperrt
Registriert
17 Oktober 2012
Beiträge
122
Diamanten
0
Hallo,

Ich habe ein Minigame Plugin programmiert.
Nun gibt es da Probleme mit WorldGuard!
WorldGuard blockiert (laut Config) Tnt-Block-Schaden.
das heißt Tnt kann keine Blöcke zerstören D:

Wie ich gesehen habe haben andere Minigame Plugins eine Methode die WorldGuard ignoriert oder wenigends einiges davon.
Ich möchte nun einen Listener machen der blockiert das WorldGuard TnT-Block-Schaden blockiert.
Also kurz: TnT soll Blöcke zerstören auch wenn in der Config von WorldGuard was anderes steht. (In meiner Arena wegen Minigame).
Nun welches Event soll ich nehmen BlockBreakEvent?

EntityExplodeEvent ist das TnT überhaupt explodiert kanns schonmal nicht sein.

Ich habe die Priority des Events auf Hightest gesetzt und der Code:
Code:
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled=true)

Ich habe auch gesetzt das wenn WorldGuard Tnt-Block-Schaden blockiert also canncelt das das ignoriert wird.

Nun welches Event?

danke vorraus.
 
G

games6471

Guest
Also erstmal wieso ignorierst überhaupt die gecancellten Events, ich dachte du willst das Event geschehen lassen?
Jetzt zum eigentlichen Thema. Du musst für dieses Explosion jedes auf jedes einzelne Event, welches für eine TnT-Explosion zuständigen ist, hören. Das wären jedoch nur zwei, also EntityExplodeEvent (Schaden und Mobs und Spieler) und EntityDamageEvent(Schaden an Blöcken und Explosionseffekt).
 

MineForce

Schafhirte
Gesperrt
Registriert
17 Oktober 2012
Beiträge
122
Diamanten
0
FALSCH xD

Mal genau:

WorldGuard canncelt jetzt mal das Tnt Blöcke zerstört das nervt aber und macht kein Spaß angenommen WorldGuard sagt pech gehabt du kannst es nicht in der Config umstellen (nur mal so nicht in echt) dann mach ich ein Plugin was sagt haha WorldGuard ich habs wieder angestellt fertig und Tnt macht wieder Blöcke schaden.

Dazu brauche ich nur BlockBreakEvent weil:
Tnt explodiert ja und tötet auch mobs.

Nur wie kann ich die höhste Priorität und genau bei BlockBreakEvent das Tnt Event herrausnehmen?
 

MiCrJonas

Threadripper
Registriert
29 Oktober 2012
Beiträge
1.064
Diamanten
0
Probier es mal damit:
Code:
public void onExplode(EntityExplodeEvent e) {
		
	for (Block b : e.blockList()) {
			
		b.breakNaturally();
		//wenn keine Items gedroppt weden sollen, benutze
		//b.setType(Material.AIR);
			
	}
		
}

Natürlich musst du noch dafür sorgen, dass die Schleife nur startet, wenn das ganze in der Arena ist.
 
Zuletzt bearbeitet:

Baba43

Ehem. Teammitglied
Ehem. Teammitglied
Registriert
5 November 2012
Beiträge
869
Diamanten
60
Minecraft
baba43
WorldGuard wertet z.B. das BlockBreakEvent mit der Priorität HIGH aus und ignoriert Events, die bereits abgebrochen wurden.

Danach gibt es noch die Priorität MONITOR, welche du benutzen könntest, um Events, die gecancelt wurden, wieder zu aktivieren.

Wenn du WorldGuard ausperren willst, könntest du mal versuchen, das Event vorher abzubrechen, damit es von WorldGuard ignoriert wird und anschließend wieder aktiv zu setzen.
 
Oben