Arrows Stopping in Techhider Blocks #208
@ -69,7 +69,6 @@ public class FightSystem extends JavaPlugin {
|
|||||||
TechHider.init();
|
TechHider.init();
|
||||||
FightScoreboard.init();
|
FightScoreboard.init();
|
||||||
RecordSystem.init();
|
RecordSystem.init();
|
||||||
ArrowStopper.init();
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CommandRemover.removeAll("gamemode");
|
CommandRemover.removeAll("gamemode");
|
||||||
@ -101,6 +100,7 @@ public class FightSystem extends JavaPlugin {
|
|||||||
new GameplayListener();
|
new GameplayListener();
|
||||||
new PersonalKitCreator();
|
new PersonalKitCreator();
|
||||||
new ScoreboardListener();
|
new ScoreboardListener();
|
||||||
|
new ArrowStopper();
|
||||||
if(Core.getVersion() > 8)
|
if(Core.getVersion() > 8)
|
||||||
new VersionDependentListener();
|
new VersionDependentListener();
|
||||||
|
|
||||||
|
@ -39,14 +39,8 @@ public class ArrowStopper extends BasicListener {
|
|||||||
private BukkitTask task;
|
private BukkitTask task;
|
||||||
private static final HashMap<Entity, Location> LAST_LOCATION = new HashMap<>();
|
private static final HashMap<Entity, Location> LAST_LOCATION = new HashMap<>();
|
||||||
|
|||||||
|
|
||||||
ArrowStopper() {
|
public ArrowStopper() {
|
||||||
super(EnumSet.of(FightState.RUNNING));
|
super(Config.ArrowTechhiderCollision != 0 ? EnumSet.of(FightState.RUNNING) : EnumSet.noneOf(FightState.class));
|
||||||
}
|
|
||||||
|
|
||||||
public static void init() {
|
|
||||||
if(Config.ArrowTechhiderCollision == 0)
|
|
||||||
return;
|
|
||||||
FightSystem.registerStateDependent(new ArrowStopper());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void run() {
|
private void run() {
|
||||||
Lixfel
hat
Die Init-Methode kann gestrichen werden und alles in den Konstruktor (der dann Public wird) übernommen werden. Konstruktor wäre dann super(Config.ArrowTechhiderCollision != 0 ? EnumSet.of(RUNNING), EnumSet.empty()); Die Init-Methode kann gestrichen werden und alles in den Konstruktor (der dann Public wird) übernommen werden. Konstruktor wäre dann super(Config.ArrowTechhiderCollision != 0 ? EnumSet.of(RUNNING), EnumSet.empty());
|
|||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren
Statt der (aufwändigen) Verwaltung von LAST_LOCATIONS wäre es wsl. eleganter, mit entity.getVelocity() / 20 zu arbeiten. Das dürfte einiges an Verwaltungsaufwand sparen. Man könnte dann wsl. in run auch mit world.getEntitiesWithClass() arbeiten.
?, entity.getVelocity() gibt einen Vektor zurück, welchen man nicht einfach durch 20 teilen kann
.divide?
braucht einen Vektor
Du brauchst ja sowieso nur die einzelnen Komponenten, also teile doch einfach die durch 20....