diff --git a/FightSystem_14/src/de/steamwar/fightsystem/listener/PersonalKitCreator_14.java b/FightSystem_14/src/de/steamwar/fightsystem/listener/PersonalKitCreator_14.java
new file mode 100644
index 0000000..f635870
--- /dev/null
+++ b/FightSystem_14/src/de/steamwar/fightsystem/listener/PersonalKitCreator_14.java
@@ -0,0 +1,32 @@
+/*
+ This file is a part of the SteamWar software.
+
+ Copyright (C) 2020 SteamWar.de-Serverteam
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+*/
+
+package de.steamwar.fightsystem.listener;
+
+import org.bukkit.inventory.ItemStack;
+
+import java.util.Objects;
+
+class PersonalKitCreator_14 {
+ private PersonalKitCreator_14(){}
+
+ static boolean hasAttributeModifier(ItemStack stack){
+ return stack.hasItemMeta() && Objects.requireNonNull(stack.getItemMeta()).hasAttributeModifiers();
+ }
+}
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/SleepListener.java b/FightSystem_9/src/de/steamwar/fightsystem/listener/PickupArrowListener_9.java
similarity index 71%
rename from FightSystem_Main/src/de/steamwar/fightsystem/listener/SleepListener.java
rename to FightSystem_9/src/de/steamwar/fightsystem/listener/PickupArrowListener_9.java
index 7fd7b9c..19a547a 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/SleepListener.java
+++ b/FightSystem_9/src/de/steamwar/fightsystem/listener/PickupArrowListener_9.java
@@ -1,6 +1,6 @@
-/*
+/*
This file is a part of the SteamWar software.
-
+
Copyright (C) 2020 SteamWar.de-Serverteam
This program is free software: you can redistribute it and/or modify
@@ -19,20 +19,14 @@
package de.steamwar.fightsystem.listener;
-import de.steamwar.fightsystem.states.FightState;
import org.bukkit.event.EventHandler;
-import org.bukkit.event.player.PlayerBedEnterEvent;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerPickupArrowEvent;
-import java.util.EnumSet;
+class PickupArrowListener_9 implements Listener {
-public class SleepListener extends BasicListener{
-
- public SleepListener() {
- super(EnumSet.allOf(FightState.class));
- }
-
- @EventHandler
- public void onSleep(PlayerBedEnterEvent e) {
- e.setCancelled(true);
- }
+ @EventHandler
+ public void onArrowPickup(PlayerPickupArrowEvent e){
+ e.setCancelled(true);
+ }
}
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/FightSystem.java b/FightSystem_Main/src/de/steamwar/fightsystem/FightSystem.java
index b468442..57e904f 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/FightSystem.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/FightSystem.java
@@ -93,10 +93,10 @@ public class FightSystem extends JavaPlugin {
new TestListener();
new NormalJoinListener();
new RankedJoinListener();
- new SleepListener();
+ new GameplayListener();
new PersonalKitCreator();
if(Core.getVersion() > 8)
- new ExtendedInventoryListener();
+ new VersionDependentListener();
new EnterHandler();
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/ExtendedInventoryListener.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/GameplayListener.java
similarity index 80%
rename from FightSystem_Main/src/de/steamwar/fightsystem/listener/ExtendedInventoryListener.java
rename to FightSystem_Main/src/de/steamwar/fightsystem/listener/GameplayListener.java
index c25c867..0b6ef8d 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/ExtendedInventoryListener.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/GameplayListener.java
@@ -20,23 +20,21 @@
package de.steamwar.fightsystem.listener;
import de.steamwar.fightsystem.states.FightState;
-import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.inventory.CraftItemEvent;
import org.bukkit.event.inventory.FurnaceSmeltEvent;
-import org.bukkit.event.player.PlayerPickupArrowEvent;
-import org.bukkit.inventory.ItemStack;
+import org.bukkit.event.player.PlayerBedEnterEvent;
import java.util.EnumSet;
-public class ExtendedInventoryListener extends BasicListener {
+public class GameplayListener extends BasicListener{
- public ExtendedInventoryListener() {
+ public GameplayListener() {
super(EnumSet.allOf(FightState.class));
}
@EventHandler
- public void onArrowPickup(PlayerPickupArrowEvent e){
+ public void onSleep(PlayerBedEnterEvent e) {
e.setCancelled(true);
}
@@ -47,6 +45,6 @@ public class ExtendedInventoryListener extends BasicListener {
@EventHandler
public void onFurnace(FurnaceSmeltEvent e){
- e.setResult(new ItemStack(Material.AIR));
+ e.setCancelled(true);
}
}
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java
index 803c661..c593dae 100644
--- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java
@@ -46,7 +46,6 @@ import org.bukkit.inventory.PlayerInventory;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;
-import java.util.Objects;
import java.util.logging.Level;
public class PersonalKitCreator extends BasicListener {
@@ -156,7 +155,7 @@ public class PersonalKitCreator extends BasicListener {
return true;
//Check for attribute modifiers
- if(Core.getVersion() >= 14 && stack.hasItemMeta() && Objects.requireNonNull(stack.getItemMeta()).hasAttributeModifiers()){
+ if(Core.getVersion() >= 14 && PersonalKitCreator_14.hasAttributeModifier(stack)){
Bukkit.getLogger().log(Level.SEVERE, "Spieler " + player.getName() + " hat versucht ein Item mit einem Attribute-Modifier zu bekommen.");
return true;
}
diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/VersionDependentListener.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/VersionDependentListener.java
new file mode 100644
index 0000000..55cd3d0
--- /dev/null
+++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/VersionDependentListener.java
@@ -0,0 +1,52 @@
+/*
+ This file is a part of the SteamWar software.
+
+ Copyright (C) 2020 SteamWar.de-Serverteam
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+*/
+
+package de.steamwar.fightsystem.listener;
+
+import de.steamwar.core.Core;
+import de.steamwar.fightsystem.FightSystem;
+import de.steamwar.fightsystem.states.FightState;
+import org.bukkit.Bukkit;
+import org.bukkit.event.HandlerList;
+import org.bukkit.event.Listener;
+
+import java.util.*;
+
+public class VersionDependentListener extends BasicListener {
+
+ private final List listeners = new ArrayList<>();
+
+ public VersionDependentListener() {
+ super(EnumSet.allOf(FightState.class));
+ if(Core.getVersion() > 8)
+ listeners.add(new PickupArrowListener_9());
+ }
+
+ @Override
+ public void enable() {
+ for(Listener listener : listeners)
+ Bukkit.getPluginManager().registerEvents(listener, FightSystem.getPlugin());
+ }
+
+ @Override
+ public void disable() {
+ for(Listener listener : listeners)
+ HandlerList.unregisterAll(listener);
+ }
+}