Dragonegg Teleport #356
Keine Reviewer
Label
Kein Label
Bug
Codeverbesserung
Einsteiger Freundlich
Idee
In Arbeit
Neues Feature
Prio A
Security Breach
Überprüfung notwendig
Verbesserung
Zu Beobachten
Kein Meilenstein
Niemand zuständig
2 Beteiligte
Fällig am
Kein Fälligkeitsdatum gesetzt.
Abhängigkeiten
Keine Abhängigkeiten gesetzt.
Referenz: SteamWar/FightSystem#356
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren
Keine Beschreibung angegeben.
Branch "Dragonegg_teleport" löschen
Das Löschen eines Branches ist permanent. Obwohl der Branch für eine kurze Zeit weiter existieren könnte, kann diese Aktion in den meisten Fällen NICHT rückgängig gemacht werden. Fortfahren?
@ -0,0 +1,31 @@
package de.steamwar.fightsystem.listener;
Hier fehlt noch der AGPL-License Header.
@ -0,0 +11,4 @@
public class BlockFromToListener implements Listener {
public BlockFromToListener(){
new StateDependentListener(ArenaMode.All, FightState.All, this);
Man könnte das ganze statt einzelnen Listener mit in den Permanent-Listener hineinpacken.
@ -0,0 +16,4 @@
@EventHandler
public void onBlockFromTo(BlockFromToEvent event) {
if (Fight.getBlueTeam().getSchemRegion().inRegion(event.getBlock())
Schemregion ist glaube hier etwas unpassend (da sich das wirklich auf die Schematicmaße beschränkt). ExtendRegion wäre da (meiner Einschätzung nach) passender, da dann das Ziel überall innerhalb der Ausfahrmaße sein kann.
@ -0,0 +21,4 @@
return;
}
if (Fight.getRedTeam().getSchemRegion().inRegion(event.getBlock())
Das ist hier Codedopplung, es wäre schöner, wenn du das z.B. mit for(FightTeam team : Fight.teams()) machen würdest.
@ -0,0 +26,4 @@
return;
}
event.setCancelled(true);
Ich denke, du solltest auch noch den BlockTyp filtern, weil so kann dann auch kein Wasser etc. mehr herausfließen.
Wie meinst du das?
Naja, das BlockFromToEvent wird nicht nur bei teleportierenden Dracheneiern aufgerufen, aber wir wollen nur die Dracheneier blockieren... müsste über die Methode getBlock().getType() abrufbar sein, was jetzt eigentlich der auslösende Block ist.
Stimmt, daran habe ich nicht gedacht
@ -150,0 +152,4 @@
@EventHandler
public void onBlockFromTo(BlockFromToEvent event) {
if(event.getBlock().getType().equals(Material.DRAGON_EGG)) return;
Jetzt ist dir hier ein kleiner Invertierungsfehler passiert :)
Habe gerade noch nachgeschaut, das Material DRAGON_EGG und das BlockFromToEvent gabs schon in der 1.8. Da muss man ggf. immer etwas aufpassen, da manche Materials von der 1.12 zur 1.13 umbenannt wurden und es nicht immer alle Events schon in der 1.8 gab. Wenn mal der Fall auftritt, werde ich dich in unsere Workarounds dazu einführen (SWMaterial und Core.getVersion())