Dragonegg Teleport #356
@ -77,6 +77,7 @@ public class FightSystem extends JavaPlugin {
|
|||||||
new DenyInventoryMovement();
|
new DenyInventoryMovement();
|
||||||
new EventJoin();
|
new EventJoin();
|
||||||
new Recording();
|
new Recording();
|
||||||
|
new BlockFromToListener();
|
||||||
//new ResourcePack();
|
//new ResourcePack();
|
||||||
new Check();
|
new Check();
|
||||||
new Shutdown();
|
new Shutdown();
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
package de.steamwar.fightsystem.listener;
|
||||||
|
|||||||
|
|
||||||
|
import de.steamwar.fightsystem.ArenaMode;
|
||||||
|
import de.steamwar.fightsystem.fight.Fight;
|
||||||
|
import de.steamwar.fightsystem.states.FightState;
|
||||||
|
import de.steamwar.fightsystem.states.StateDependentListener;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.block.BlockFromToEvent;
|
||||||
|
|
||||||
|
public class BlockFromToListener implements Listener {
|
||||||
|
|
||||||
|
public BlockFromToListener(){
|
||||||
|
|
||||||
Lixfel
hat
Man könnte das ganze statt einzelnen Listener mit in den Permanent-Listener hineinpacken. Man könnte das ganze statt einzelnen Listener mit in den Permanent-Listener hineinpacken.
|
|||||||
|
new StateDependentListener(ArenaMode.All, FightState.All, this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
Lixfel
hat
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. 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.
|
|||||||
|
public void onBlockFromTo(BlockFromToEvent event) {
|
||||||
|
|
||||||
|
if (Fight.getBlueTeam().getSchemRegion().inRegion(event.getBlock())
|
||||||
|
&& Fight.getBlueTeam().getSchemRegion().inRegion(event.getToBlock())) {
|
||||||
|
return;
|
||||||
Lixfel
hat
Das ist hier Codedopplung, es wäre schöner, wenn du das z.B. mit for(FightTeam team : Fight.teams()) machen würdest. Das ist hier Codedopplung, es wäre schöner, wenn du das z.B. mit for(FightTeam team : Fight.teams()) machen würdest.
|
|||||||
|
}
|
||||||
|
|
||||||
|
if (Fight.getRedTeam().getSchemRegion().inRegion(event.getBlock())
|
||||||
|
&& Fight.getRedTeam().getSchemRegion().inRegion(event.getToBlock())) {
|
||||||
|
return;
|
||||||
Lixfel
hat
Ich denke, du solltest auch noch den BlockTyp filtern, weil so kann dann auch kein Wasser etc. mehr herausfließen. Ich denke, du solltest auch noch den BlockTyp filtern, weil so kann dann auch kein Wasser etc. mehr herausfließen.
xSpw
hat
Wie meinst du das? Wie meinst du das?
Lixfel
hat
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. 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.
xSpw
hat
Stimmt, daran habe ich nicht gedacht Stimmt, daran habe ich nicht gedacht
|
|||||||
|
}
|
||||||
|
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
Hier fehlt noch der AGPL-License Header.