Forráskód Böngészése

Merge remote-tracking branch 'origin/refactoring/remove-old-version-support' into refactoring/remove-old-version-support

# Conflicts:
#	missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/RespawnGoldBlock.java
#	missilewars-plugin/src/main/java/de/butzlabben/missilewars/player/PlayerData.java
RedstoneFuture 2 éve
szülő
commit
d19da47b74
22 módosított fájl, 150 hozzáadás és 122 törlés
  1. 5 7
      1_16_FAWE/src/main/java/de/butzlabben/missilewars/missile/paste/r1_16/fawe/R1_16Paster.java
  2. 19 4
      README.md
  3. 35 2
      missilewars-plugin/pom.xml
  4. 4 3
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/arena/AreaConfiguration.java
  5. 2 0
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/event/GameStartEvent.java
  6. 2 0
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/event/PlayerArenaJoinEvent.java
  7. 2 0
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/event/PlayerArenaLeaveEvent.java
  8. 14 15
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Game.java
  9. 4 7
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameManager.java
  10. 6 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/MissileWarsPlaceholder.java
  11. 2 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/MotdManager.java
  12. 8 6
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/RespawnGoldBlock.java
  13. 2 4
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/Missile.java
  14. 1 3
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/inventory/OrcListener.java
  15. 14 8
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/player/PlayerData.java
  16. 2 3
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/MoneyUtil.java
  17. 3 4
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/PlayerDataProvider.java
  18. 11 6
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/SetupUtil.java
  19. 6 7
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/geometry/GameArea.java
  20. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/geometry/Geometry.java
  21. 7 4
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/stats/PreFetcher.java
  22. 0 33
      pom.xml

+ 5 - 7
1_16_FAWE/src/main/java/de/butzlabben/missilewars/missile/paste/r1_16/fawe/R1_16Paster.java

@@ -42,10 +42,9 @@ public class R1_16Paster {
 
 
     public void pasteMissile(File schematic, Vector pos, int rotation, org.bukkit.World world,
     public void pasteMissile(File schematic, Vector pos, int rotation, org.bukkit.World world,
                              Material glassBlockReplace, int radius, Material replaceType, JavaPlugin plugin, int replaceTicks) {
                              Material glassBlockReplace, int radius, Material replaceType, JavaPlugin plugin, int replaceTicks) {
-        try {
-            World weWorld = new BukkitWorld(world);
+        World weWorld = new BukkitWorld(world);
 
 
-            Clipboard clipboard = ClipboardFormats.findByFile(schematic).load(schematic);
+        try (Clipboard clipboard = ClipboardFormats.findByFile(schematic).load(schematic)) {
 
 
             AffineTransform transform = new AffineTransform();
             AffineTransform transform = new AffineTransform();
             transform = transform.rotateY(rotation);
             transform = transform.rotateY(rotation);
@@ -75,11 +74,10 @@ public class R1_16Paster {
     }
     }
 
 
     public void pasteSchematic(File schematic, Vector pos, org.bukkit.World world) {
     public void pasteSchematic(File schematic, Vector pos, org.bukkit.World world) {
-        try {
-            World weWorld = new BukkitWorld(world);
+        World weWorld = new BukkitWorld(world);
 
 
-            EditSession editSession = ClipboardFormats.findByFile(schematic).load(schematic)
-                    .paste(weWorld, fromBukkitVector(pos), false, false, null);
+        try (Clipboard clipboard = ClipboardFormats.findByFile(schematic).load(schematic)) {
+            EditSession editSession = clipboard.paste(weWorld, fromBukkitVector(pos), false, false, null);
             editSession.flushQueue();
             editSession.flushQueue();
 
 
         } catch (Exception e) {
         } catch (Exception e) {

+ 19 - 4
README.md

@@ -1,19 +1,34 @@
 # MissileWars
 # MissileWars
+
 MissileWars is a famous, fun and fast minigame spigot-plugin for Minecraft
 MissileWars is a famous, fun and fast minigame spigot-plugin for Minecraft
 
 
 ## Downloads
 ## Downloads
-You can download the jars in the "[Releases](https://github.com/Butzlabben/missilewars/releases)" 
-section on GitHub or build them yourself via `mvnw install`.
 
 
-However, if you [buy the resource](https://www.spigotmc.org/resources/62947) and leave a review, 
+You can download the latest jar in the [latest release](https://github.com/Butzlabben/missilewars/releases/latest) or build it yourself (
+see [BUILDING](#building))
+
+However, if you [buy the resource](https://www.spigotmc.org/resources/62947) and leave a review,
 you will also receive an extra map and some more missiles.
 you will also receive an extra map and some more missiles.
 
 
+## Building
+
+To build MissileWars, you need to install the Java 17 JDK. Then you can build it via the Maven Wrapper.
+
+Run the following commands to build MissileWars (this will take while).  
+Windows: `mvwn.cmd install`     
+Linux/macOS/other: `./mvwn install`
+
+The jar file will be located under `missilewars-plugin/target/MissileWars-x.x.x.jar`
+
 ## Contributions
 ## Contributions
+
 Contributions are always welcome, just fork this project, make your changes and create a pull request.
 Contributions are always welcome, just fork this project, make your changes and create a pull request.
 
 
 ## Documentation
 ## Documentation
-All information about the Commands, Permissions, Placeholders and the Configuration can be found 
+
+All information about the Commands, Permissions, Placeholders and the Configuration can be found
 in our [Github Wiki](https://github.com/Butzlabben/missilewars/wiki).
 in our [Github Wiki](https://github.com/Butzlabben/missilewars/wiki).
 
 
 ## Donate
 ## Donate
+
 [![Donation link](https://www.paypalobjects.com/en_US/DK/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=naegele_daniel%40web.de&currency_code=EUR&source=url)
 [![Donation link](https://www.paypalobjects.com/en_US/DK/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=naegele_daniel%40web.de&currency_code=EUR&source=url)

+ 35 - 2
missilewars-plugin/pom.xml

@@ -37,6 +37,14 @@
             <id>aikar</id>
             <id>aikar</id>
             <url>https://repo.aikar.co/content/groups/aikar/</url>
             <url>https://repo.aikar.co/content/groups/aikar/</url>
         </repository>
         </repository>
+        <repository>
+            <id>placeholderapi</id>
+            <url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
+        </repository>
+        <repository>
+            <id>minecraft-repo</id>
+            <url>https://libraries.minecraft.net/</url>
+        </repository>
     </repositories>
     </repositories>
 
 
     <dependencies>
     <dependencies>
@@ -92,7 +100,7 @@
         <dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
             <artifactId>jackson-databind</artifactId>
-            <version>2.12.4</version>
+            <version>2.14.2</version>
             <scope>compile</scope>
             <scope>compile</scope>
         </dependency>
         </dependency>
 
 
@@ -100,7 +108,7 @@
         <dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.dataformat</groupId>
             <groupId>com.fasterxml.jackson.dataformat</groupId>
             <artifactId>jackson-dataformat-yaml</artifactId>
             <artifactId>jackson-dataformat-yaml</artifactId>
-            <version>2.12.4</version>
+            <version>2.14.2</version>
             <scope>compile</scope>
             <scope>compile</scope>
         </dependency>
         </dependency>
 
 
@@ -111,6 +119,31 @@
             <scope>compile</scope>
             <scope>compile</scope>
         </dependency>
         </dependency>
 
 
+        <!-- https://mvnrepository.com/artifact/com.github.MilkBowl/VaultAPI -->
+        <dependency>
+            <groupId>com.github.MilkBowl</groupId>
+            <artifactId>VaultAPI</artifactId>
+            <version>1.7.1</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- repo minecraft-repo -->
+        <dependency>
+            <groupId>com.mojang</groupId>
+            <artifactId>authlib</artifactId>
+            <version>1.5.25</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/com.github.placeholderapi/placeholderapi -->
+        <dependency>
+            <groupId>com.github.placeholderapi</groupId>
+            <artifactId>placeholderapi</artifactId>
+            <version>2.11.3</version>
+            <scope>provided</scope>
+        </dependency>
+
+
         <dependency>
         <dependency>
             <groupId>junit</groupId>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <artifactId>junit</artifactId>

+ 4 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/arena/AreaConfiguration.java

@@ -19,13 +19,13 @@
 package de.butzlabben.missilewars.configuration.arena;
 package de.butzlabben.missilewars.configuration.arena;
 
 
 import com.google.gson.annotations.SerializedName;
 import com.google.gson.annotations.SerializedName;
+import java.util.HashMap;
+import java.util.Map;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.ToString;
 import lombok.ToString;
 import org.bukkit.configuration.serialization.ConfigurationSerializable;
 import org.bukkit.configuration.serialization.ConfigurationSerializable;
-
-import java.util.HashMap;
-import java.util.Map;
+import org.jetbrains.annotations.NotNull;
 
 
 @Getter
 @Getter
 @ToString
 @ToString
@@ -43,6 +43,7 @@ public class AreaConfiguration implements ConfigurationSerializable {
      * This method is used to save the config entries in the config file.
      * This method is used to save the config entries in the config file.
      */
      */
     @Override
     @Override
+    @NotNull
     public Map<String, Object> serialize() {
     public Map<String, Object> serialize() {
         Map<String, Object> serialized = new HashMap<>();
         Map<String, Object> serialized = new HashMap<>();
         serialized.put("min_x", minX);
         serialized.put("min_x", minX);

+ 2 - 0
missilewars-plugin/src/main/java/de/butzlabben/missilewars/event/GameStartEvent.java

@@ -20,6 +20,7 @@ package de.butzlabben.missilewars.event;
 
 
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.Game;
 import org.bukkit.event.HandlerList;
 import org.bukkit.event.HandlerList;
+import org.jetbrains.annotations.NotNull;
 
 
 public class GameStartEvent extends GameEvent {
 public class GameStartEvent extends GameEvent {
 
 
@@ -34,6 +35,7 @@ public class GameStartEvent extends GameEvent {
     }
     }
 
 
     @Override
     @Override
+    @NotNull
     public HandlerList getHandlers() {
     public HandlerList getHandlers() {
         return handlers;
         return handlers;
     }
     }

+ 2 - 0
missilewars-plugin/src/main/java/de/butzlabben/missilewars/event/PlayerArenaJoinEvent.java

@@ -24,6 +24,7 @@ import org.bukkit.entity.Player;
 import org.bukkit.event.Cancellable;
 import org.bukkit.event.Cancellable;
 import org.bukkit.event.HandlerList;
 import org.bukkit.event.HandlerList;
 import org.bukkit.event.player.PlayerEvent;
 import org.bukkit.event.player.PlayerEvent;
+import org.jetbrains.annotations.NotNull;
 
 
 /**
 /**
  * Get's called, when a player has already entered an arena
  * Get's called, when a player has already entered an arena
@@ -45,6 +46,7 @@ public class PlayerArenaJoinEvent extends PlayerEvent implements Cancellable {
     }
     }
 
 
     @Override
     @Override
+    @NotNull
     public HandlerList getHandlers() {
     public HandlerList getHandlers() {
         return handlers;
         return handlers;
     }
     }

+ 2 - 0
missilewars-plugin/src/main/java/de/butzlabben/missilewars/event/PlayerArenaLeaveEvent.java

@@ -23,6 +23,7 @@ import lombok.Getter;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
 import org.bukkit.event.HandlerList;
 import org.bukkit.event.HandlerList;
 import org.bukkit.event.player.PlayerEvent;
 import org.bukkit.event.player.PlayerEvent;
+import org.jetbrains.annotations.NotNull;
 
 
 /**
 /**
  * Get's called, when a player has already left an arena
  * Get's called, when a player has already left an arena
@@ -43,6 +44,7 @@ public class PlayerArenaLeaveEvent extends PlayerEvent {
     }
     }
 
 
     @Override
     @Override
+    @NotNull
     public HandlerList getHandlers() {
     public HandlerList getHandlers() {
         return handlers;
         return handlers;
     }
     }

+ 14 - 15
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Game.java

@@ -53,9 +53,18 @@ import de.butzlabben.missilewars.util.geometry.GameArea;
 import de.butzlabben.missilewars.util.geometry.Geometry;
 import de.butzlabben.missilewars.util.geometry.Geometry;
 import de.butzlabben.missilewars.util.serialization.Serializer;
 import de.butzlabben.missilewars.util.serialization.Serializer;
 import de.butzlabben.missilewars.util.version.VersionUtil;
 import de.butzlabben.missilewars.util.version.VersionUtil;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.function.Consumer;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.ToString;
 import lombok.ToString;
-import org.bukkit.*;
+import org.bukkit.Bukkit;
+import org.bukkit.GameMode;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.World;
 import org.bukkit.enchantments.Enchantment;
 import org.bukkit.enchantments.Enchantment;
 import org.bukkit.entity.Fireball;
 import org.bukkit.entity.Fireball;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
@@ -67,12 +76,6 @@ import org.bukkit.scheduler.BukkitTask;
 import org.bukkit.scoreboard.Scoreboard;
 import org.bukkit.scoreboard.Scoreboard;
 import org.bukkit.util.Vector;
 import org.bukkit.util.Vector;
 
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.function.Consumer;
-
 /**
 /**
  * @author Butzlabben
  * @author Butzlabben
  * @since 01.01.2018
  * @since 01.01.2018
@@ -441,8 +444,7 @@ public class Game {
      * @return true, if it's in the Lobby-Area
      * @return true, if it's in the Lobby-Area
      */
      */
     public boolean isInLobbyArea(Location location) {
     public boolean isInLobbyArea(Location location) {
-        if (!Geometry.isInsideIn(location, lobby.getArea())) return false;
-        return true;
+        return Geometry.isInsideIn(location, lobby.getArea());
     }
     }
 
 
     /**
     /**
@@ -452,8 +454,7 @@ public class Game {
      * @return true, if it's in the Game-Area
      * @return true, if it's in the Game-Area
      */
      */
     public boolean isInGameArea(Location location) {
     public boolean isInGameArea(Location location) {
-        if (!Geometry.isInsideIn(location, gameArea)) return false;
-        return true;
+        return Geometry.isInsideIn(location, gameArea);
     }
     }
 
 
     /**
     /**
@@ -465,8 +466,7 @@ public class Game {
      * @return true, if it's in the Inner Game-Area
      * @return true, if it's in the Inner Game-Area
      */
      */
     public boolean isInInnerGameArea(Location location) {
     public boolean isInInnerGameArea(Location location) {
-        if (!Geometry.isInsideIn(location, innerGameArea)) return false;
-        return true;
+        return Geometry.isInsideIn(location, innerGameArea);
     }
     }
 
 
     /**
     /**
@@ -476,8 +476,7 @@ public class Game {
      * @return true, if it's in the game world
      * @return true, if it's in the game world
      */
      */
     public boolean isInGameWorld(Location location) {
     public boolean isInGameWorld(Location location) {
-        if (!Geometry.isInWorld(location, gameArea.getWorld())) return false;
-        return true;
+        return Geometry.isInWorld(location, gameArea.getWorld());
     }
     }
 
 
     /**
     /**

+ 4 - 7
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameManager.java

@@ -24,13 +24,12 @@ import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.configuration.Lobby;
 import de.butzlabben.missilewars.configuration.Lobby;
 import de.butzlabben.missilewars.util.geometry.GameArea;
 import de.butzlabben.missilewars.util.geometry.GameArea;
 import de.butzlabben.missilewars.util.serialization.Serializer;
 import de.butzlabben.missilewars.util.serialization.Serializer;
-import lombok.Getter;
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-
 import java.io.File;
 import java.io.File;
 import java.io.IOException;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.HashMap;
+import lombok.Getter;
+import org.bukkit.Bukkit;
+import org.bukkit.Location;
 
 
 @Getter
 @Getter
 public class GameManager {
 public class GameManager {
@@ -141,9 +140,7 @@ public class GameManager {
         }
         }
 
 
         // delete the old game from the list
         // delete the old game from the list
-        if (games.get(targetLobbyName) != null) {
-            games.remove(targetLobby);
-        }
+        games.remove(targetLobbyName);
 
 
         Logger.DEBUG.log("Old Game disabled.");
         Logger.DEBUG.log("Old Game disabled.");
 
 

+ 6 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/MissileWarsPlaceholder.java

@@ -26,6 +26,7 @@ import de.butzlabben.missilewars.game.GameManager;
 import me.clip.placeholderapi.expansion.PlaceholderExpansion;
 import me.clip.placeholderapi.expansion.PlaceholderExpansion;
 import org.bukkit.OfflinePlayer;
 import org.bukkit.OfflinePlayer;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
+import org.jetbrains.annotations.NotNull;
 
 
 public class MissileWarsPlaceholder extends PlaceholderExpansion {
 public class MissileWarsPlaceholder extends PlaceholderExpansion {
 
 
@@ -36,16 +37,19 @@ public class MissileWarsPlaceholder extends PlaceholderExpansion {
     }
     }
 
 
     @Override
     @Override
+    @NotNull
     public String getAuthor() {
     public String getAuthor() {
         return "Daniel Nägele";
         return "Daniel Nägele";
     }
     }
 
 
     @Override
     @Override
+    @NotNull
     public String getIdentifier() {
     public String getIdentifier() {
         return "missilewars";
         return "missilewars";
     }
     }
 
 
     @Override
     @Override
+    @NotNull
     public String getVersion() {
     public String getVersion() {
         return "0.0.1";
         return "0.0.1";
     }
     }
@@ -70,8 +74,8 @@ public class MissileWarsPlaceholder extends PlaceholderExpansion {
                 if (params.startsWith("arena_")) return "§c§oThis is not a game arena!";
                 if (params.startsWith("arena_")) return "§c§oThis is not a game arena!";
             }
             }
 
 
-            if (params.startsWith("lobby_")) params.replace("_this", playerGame.getLobby().getName());
-            if (params.startsWith("arena_")) params.replace("_this", playerGame.getArena().getName());
+            if (params.startsWith("lobby_")) params = params.replace("_this", playerGame.getLobby().getName());
+            if (params.startsWith("arena_")) params = params.replace("_this", playerGame.getArena().getName());
         }
         }
 
 
 
 

+ 2 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/MotdManager.java

@@ -57,8 +57,8 @@ public class MotdManager {
             int players = game.getPlayers().values().size();
             int players = game.getPlayers().values().size();
             int maxPlayers = game.getLobby().getMaxSize();
             int maxPlayers = game.getLobby().getMaxSize();
             motd = ChatColor.translateAlternateColorCodes('&', newMotd)
             motd = ChatColor.translateAlternateColorCodes('&', newMotd)
-                    .replace("%max_players%", "" + maxPlayers)
-                    .replace("%players%", "" + players)
+                    .replace("%max_players%", Integer.toString(maxPlayers))
+                    .replace("%players%", Integer.toString(players))
                     .replace("%prefix%", Messages.getPrefix());
                     .replace("%prefix%", Messages.getPrefix());
         }
         }
     }
     }

+ 8 - 6
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/RespawnGoldBlock.java

@@ -23,6 +23,10 @@ import de.butzlabben.missilewars.configuration.Messages;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.enums.GameState;
 import de.butzlabben.missilewars.game.enums.GameState;
 import de.butzlabben.missilewars.util.version.BlockSetterProvider;
 import de.butzlabben.missilewars.util.version.BlockSetterProvider;
+import de.butzlabben.missilewars.util.version.VersionUtil;
+import java.util.AbstractMap;
+import java.util.HashMap;
+import java.util.Map;
 import org.bukkit.Bukkit;
 import org.bukkit.Bukkit;
 import org.bukkit.GameMode;
 import org.bukkit.GameMode;
 import org.bukkit.Location;
 import org.bukkit.Location;
@@ -34,10 +38,6 @@ import org.bukkit.event.HandlerList;
 import org.bukkit.event.Listener;
 import org.bukkit.event.Listener;
 import org.bukkit.event.player.PlayerToggleSneakEvent;
 import org.bukkit.event.player.PlayerToggleSneakEvent;
 
 
-import java.util.AbstractMap;
-import java.util.HashMap;
-import java.util.Map;
-
 /**
 /**
  * @author Butzlabben
  * @author Butzlabben
  * @since 14.01.2018
  * @since 14.01.2018
@@ -112,7 +112,9 @@ public class RespawnGoldBlock implements Listener {
 
 
     private void setBlock(Block b) {
     private void setBlock(Block b) {
         if ((b.getType() != Material.GOLD_BLOCK) && (b.getType() == Material.AIR)) {
         if ((b.getType() != Material.GOLD_BLOCK) && (b.getType() == Material.AIR)) {
-            Object data = b.getBlockData();
+            Object data = b.getData();
+            if (VersionUtil.getVersion() >= 13)
+                data = b.getBlockData();
             map.put(b.getLocation(), new AbstractMap.SimpleEntry<>(b.getType(), data));
             map.put(b.getLocation(), new AbstractMap.SimpleEntry<>(b.getType(), data));
             b.setType(Material.GOLD_BLOCK);
             b.setType(Material.GOLD_BLOCK);
         }
         }
@@ -136,7 +138,7 @@ public class RespawnGoldBlock implements Listener {
     private void sendFallProtectionMessage() {
     private void sendFallProtectionMessage() {
         double seconds = (double) duration / 20;
         double seconds = (double) duration / 20;
         if ((seconds == Math.floor(seconds)) && !Double.isInfinite(seconds)) {
         if ((seconds == Math.floor(seconds)) && !Double.isInfinite(seconds)) {
-            player.sendMessage(Messages.getMessage("fall_protection").replace("%seconds%", "" + (int) seconds));
+            player.sendMessage(Messages.getMessage("fall_protection").replace("%seconds%", Integer.toString((int) seconds)));
         }
         }
     }
     }
 
 

+ 2 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/Missile.java

@@ -24,6 +24,7 @@ import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.missile.paste.PasteProvider;
 import de.butzlabben.missilewars.game.missile.paste.PasteProvider;
 import de.butzlabben.missilewars.util.version.VersionUtil;
 import de.butzlabben.missilewars.util.version.VersionUtil;
+import java.io.File;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.bukkit.Location;
 import org.bukkit.Location;
@@ -34,8 +35,6 @@ import org.bukkit.inventory.meta.ItemMeta;
 import org.bukkit.inventory.meta.SpawnEggMeta;
 import org.bukkit.inventory.meta.SpawnEggMeta;
 import org.bukkit.util.Vector;
 import org.bukkit.util.Vector;
 
 
-import java.io.File;
-
 /**
 /**
  * @author Butzlabben
  * @author Butzlabben
  * @since 06.01.2018
  * @since 06.01.2018
@@ -84,8 +83,7 @@ public class Missile {
 
 
     public File getSchematic() {
     public File getSchematic() {
         File missilesFolder = new File(Config.getMissilesFolder());
         File missilesFolder = new File(Config.getMissilesFolder());
-        File file = new File(missilesFolder, getSchematicName(false));
-        return file;
+        return new File(missilesFolder, getSchematicName(false));
     }
     }
 
 
     public String getSchematicName(boolean withoutExtension) {
     public String getSchematicName(boolean withoutExtension) {

+ 1 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/inventory/OrcListener.java

@@ -64,8 +64,6 @@ public class OrcListener implements Listener {
 
 
     @EventHandler
     @EventHandler
     public void on(InventoryCloseEvent e) {
     public void on(InventoryCloseEvent e) {
-        if (e.getInventory() != null) {
-            invs.remove(e.getPlayer().getUniqueId());
-        }
+        invs.remove(e.getPlayer().getUniqueId());
     }
     }
 }
 }

+ 14 - 8
missilewars-plugin/src/main/java/de/butzlabben/missilewars/player/PlayerData.java

@@ -19,6 +19,13 @@
 package de.butzlabben.missilewars.player;
 package de.butzlabben.missilewars.player;
 
 
 import com.google.common.base.Preconditions;
 import com.google.common.base.Preconditions;
+import de.butzlabben.missilewars.util.version.VersionUtil;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.ToString;
 import lombok.ToString;
 import org.bukkit.GameMode;
 import org.bukkit.GameMode;
@@ -26,13 +33,7 @@ import org.bukkit.configuration.file.YamlConfiguration;
 import org.bukkit.configuration.serialization.ConfigurationSerializable;
 import org.bukkit.configuration.serialization.ConfigurationSerializable;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
 import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.ItemStack;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import org.jetbrains.annotations.NotNull;
 
 
 @ToString
 @ToString
 @AllArgsConstructor
 @AllArgsConstructor
@@ -77,7 +78,11 @@ public class PlayerData implements ConfigurationSerializable {
         YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(file);
         YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(file);
         PlayerData data;
         PlayerData data;
 
 
-        data = yamlConfiguration.getSerializable("data", PlayerData.class);
+        if (VersionUtil.getVersion() > 12) {
+            data = yamlConfiguration.getSerializable("data", PlayerData.class);
+        } else {
+            data = (PlayerData) yamlConfiguration.get("data");
+        }
 
 
         return data;
         return data;
     }
     }
@@ -109,6 +114,7 @@ public class PlayerData implements ConfigurationSerializable {
      * This method is used to save the original player data in the temporary player-data file.
      * This method is used to save the original player data in the temporary player-data file.
      */
      */
     @Override
     @Override
+    @NotNull
     public Map<String, Object> serialize() {
     public Map<String, Object> serialize() {
         Map<String, Object> serialized = new HashMap<>();
         Map<String, Object> serialized = new HashMap<>();
         serialized.put("uuid", uuid.toString());
         serialized.put("uuid", uuid.toString());

+ 2 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/MoneyUtil.java

@@ -20,14 +20,13 @@ package de.butzlabben.missilewars.util;
 
 
 import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.configuration.Messages;
 import de.butzlabben.missilewars.configuration.Messages;
+import java.util.UUID;
 import net.milkbowl.vault.economy.Economy;
 import net.milkbowl.vault.economy.Economy;
 import net.milkbowl.vault.economy.EconomyResponse;
 import net.milkbowl.vault.economy.EconomyResponse;
 import org.bukkit.Bukkit;
 import org.bukkit.Bukkit;
 import org.bukkit.OfflinePlayer;
 import org.bukkit.OfflinePlayer;
 import org.bukkit.plugin.RegisteredServiceProvider;
 import org.bukkit.plugin.RegisteredServiceProvider;
 
 
-import java.util.UUID;
-
 /**
 /**
  * @author Butzlabben
  * @author Butzlabben
  * @since 13.08.2018
  * @since 13.08.2018
@@ -68,7 +67,7 @@ public class MoneyUtil {
             Logger.WARN.log("Message: " + r.errorMessage);
             Logger.WARN.log("Message: " + r.errorMessage);
         } else {
         } else {
             if (Bukkit.getPlayer(uuid) != null)
             if (Bukkit.getPlayer(uuid) != null)
-                Bukkit.getPlayer(uuid).sendMessage(Messages.getMessage("money").replace("%money%", money + ""));
+                Bukkit.getPlayer(uuid).sendMessage(Messages.getMessage("money").replace("%money%", Integer.toString(money)));
         }
         }
     }
     }
 }
 }

+ 3 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/PlayerDataProvider.java

@@ -21,12 +21,11 @@ package de.butzlabben.missilewars.util;
 import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.player.PlayerData;
 import de.butzlabben.missilewars.player.PlayerData;
-import org.bukkit.GameMode;
-import org.bukkit.entity.Player;
-
 import java.io.File;
 import java.io.File;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.UUID;
 import java.util.UUID;
+import org.bukkit.GameMode;
+import org.bukkit.entity.Player;
 
 
 public class PlayerDataProvider {
 public class PlayerDataProvider {
 
 
@@ -77,7 +76,7 @@ public class PlayerDataProvider {
         }
         }
 
 
         // deleting old data
         // deleting old data
-        if (data.containsKey(uuid)) data.remove(uuid);
+        data.remove(uuid);
         if (file.exists()) file.delete();
         if (file.exists()) file.delete();
     }
     }
 
 

+ 11 - 6
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/SetupUtil.java

@@ -23,10 +23,14 @@ import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.configuration.arena.Arena;
 import de.butzlabben.missilewars.configuration.arena.Arena;
 import de.butzlabben.missilewars.game.Arenas;
 import de.butzlabben.missilewars.game.Arenas;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.plugin.java.JavaPlugin;
-
-import java.io.*;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.net.URL;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Files;
@@ -35,6 +39,8 @@ import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
 import java.util.jar.JarFile;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 import java.util.zip.ZipInputStream;
+import org.bukkit.configuration.file.YamlConfiguration;
+import org.bukkit.plugin.java.JavaPlugin;
 
 
 /**
 /**
  * @author Butzlabben
  * @author Butzlabben
@@ -205,8 +211,7 @@ public class SetupUtil {
      * Extracts a zip entry (file entry)
      * Extracts a zip entry (file entry)
      *
      *
      * @param zipIn    the input stream
      * @param zipIn    the input stream
-     * @param filePath
-     * @throws IOException
+     * @param filePath the path to extract it to
      */
      */
     private static void extractFile(ZipInputStream zipIn, String filePath) throws IOException {
     private static void extractFile(ZipInputStream zipIn, String filePath) throws IOException {
         BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
         BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));

+ 6 - 7
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/geometry/GameArea.java

@@ -37,8 +37,8 @@ public class GameArea {
     
     
     /**
     /**
      * This method creates a new GameArena object.
      * This method creates a new GameArena object.
-     *
-     * The GameArena is a rectangular area. Its border (1 block wide) is 
+     * <p>
+     * The GameArena is a rectangular area. Its border (1 block wide) is
      * still part of the arena (= inside).
      * still part of the arena (= inside).
      *
      *
      * @param pos1 (Location) one corner of the desired area border
      * @param pos1 (Location) one corner of the desired area border
@@ -59,7 +59,7 @@ public class GameArea {
 
 
     /**
     /**
      * This method creates a new GameArena object.
      * This method creates a new GameArena object.
-     *
+     * <p>
      * The GameArena is a rectangular area. Its border (1 block wide) is 
      * The GameArena is a rectangular area. Its border (1 block wide) is 
      * still part of the arena (= inside).
      * still part of the arena (= inside).
      *
      *
@@ -90,7 +90,7 @@ public class GameArea {
 
 
     /**
     /**
      * This method creates a new GameArena object.
      * This method creates a new GameArena object.
-     *
+     * <p>
      * The GameArena is a rectangular area. Its border (1 block wide) is 
      * The GameArena is a rectangular area. Its border (1 block wide) is 
      * still part of the arena (= inside).
      * still part of the arena (= inside).
      *
      *
@@ -154,15 +154,14 @@ public class GameArea {
     }
     }
 
 
     public AreaConfiguration getAreaConfiguration() {
     public AreaConfiguration getAreaConfiguration() {
-        AreaConfiguration newAreaConfig = new AreaConfiguration(position1.getBlockX(), position1.getBlockY(), position1.getBlockZ(), 
+        return new AreaConfiguration(position1.getBlockX(), position1.getBlockY(), position1.getBlockZ(),
                 position2.getBlockX(), position2.getBlockY(), position2.getBlockZ());
                 position2.getBlockX(), position2.getBlockY(), position2.getBlockZ());
-        return newAreaConfig;
     }
     }
 
 
     /**
     /**
      * This method defines the horizontal direction / rotation of the 
      * This method defines the horizontal direction / rotation of the 
      * area based on the alignment of the team spawn points.
      * area based on the alignment of the team spawn points.
-     * 
+     * <p>
      * NORTH-SOUTH = primarily along the Z axis
      * NORTH-SOUTH = primarily along the Z axis
      * EAST-WEST = primarily along the X axis
      * EAST-WEST = primarily along the X axis
      */
      */

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/geometry/Geometry.java

@@ -69,8 +69,7 @@ public class Geometry {
      */
      */
     public static boolean bothLocInSameWorld(Location pos1, Location pos2) {
     public static boolean bothLocInSameWorld(Location pos1, Location pos2) {
         if ((pos1.getWorld() == null) || (pos2.getWorld() == null)) return false;
         if ((pos1.getWorld() == null) || (pos2.getWorld() == null)) return false;
-        if (pos1.getWorld().getName().equals(pos2.getWorld().getName())) return true;
-        return false;
+        return pos1.getWorld().getName().equals(pos2.getWorld().getName());
     }
     }
 
 
     /**
     /**

+ 7 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/stats/PreFetcher.java

@@ -26,13 +26,17 @@ import de.butzlabben.missilewars.inventory.OrcItem;
 import de.butzlabben.missilewars.inventory.pages.InventoryPage;
 import de.butzlabben.missilewars.inventory.pages.InventoryPage;
 import de.butzlabben.missilewars.inventory.pages.PageGUICreator;
 import de.butzlabben.missilewars.inventory.pages.PageGUICreator;
 import de.butzlabben.missilewars.util.version.VersionUtil;
 import de.butzlabben.missilewars.util.version.VersionUtil;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.meta.SkullMeta;
 import org.bukkit.inventory.meta.SkullMeta;
 
 
-import java.util.*;
-
 public class PreFetcher {
 public class PreFetcher {
 
 
     @Getter
     @Getter
@@ -112,7 +116,7 @@ public class PreFetcher {
         }
         }
 
 
         private PageGUICreator<String> getPreFetchCreator(Collection<String> names) {
         private PageGUICreator<String> getPreFetchCreator(Collection<String> names) {
-            PageGUICreator<String> creator = new PageGUICreator<>("§ePlayer statistics", names, (item) -> {
+            return new PageGUICreator<>("§ePlayer statistics", names, (item) -> {
                 ItemStack itemStack = new ItemStack(VersionUtil.getPlayerSkullMaterial());
                 ItemStack itemStack = new ItemStack(VersionUtil.getPlayerSkullMaterial());
                 SkullMeta sm = (SkullMeta) itemStack.getItemMeta();
                 SkullMeta sm = (SkullMeta) itemStack.getItemMeta();
                 //noinspection deprecation
                 //noinspection deprecation
@@ -121,7 +125,6 @@ public class PreFetcher {
                 itemStack.setItemMeta(sm);
                 itemStack.setItemMeta(sm);
                 return new OrcItem(itemStack);
                 return new OrcItem(itemStack);
             });
             });
-            return creator;
         }
         }
     }
     }
 }
 }

+ 0 - 33
pom.xml

@@ -61,15 +61,6 @@
             <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
             <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
         </repository>
         </repository>
 
 
-        <repository>
-            <id>minecraft-repo</id>
-            <url>https://libraries.minecraft.net/</url>
-        </repository>
-
-        <repository>
-            <id>placeholderapi</id>
-            <url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
-        </repository>
     </repositories>
     </repositories>
 
 
     <dependencies>
     <dependencies>
@@ -103,14 +94,6 @@
             <scope>provided</scope>
             <scope>provided</scope>
         </dependency>
         </dependency>
 
 
-        <!-- repo jitpack.io -->
-        <dependency>
-            <groupId>com.github.MilkBowl</groupId>
-            <artifactId>VaultAPI</artifactId>
-            <version>1.7</version>
-            <scope>provided</scope>
-        </dependency>
-
         <!-- repo maven central -->
         <!-- repo maven central -->
         <dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
             <groupId>org.projectlombok</groupId>
@@ -118,22 +101,6 @@
             <version>1.18.24</version>
             <version>1.18.24</version>
             <scope>provided</scope>
             <scope>provided</scope>
         </dependency>
         </dependency>
-
-        <!-- repo minecraft-repo -->
-        <dependency>
-            <groupId>com.mojang</groupId>
-            <artifactId>authlib</artifactId>
-            <version>1.5.21</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- repo placeholderapi -->
-        <dependency>
-            <groupId>me.clip</groupId>
-            <artifactId>placeholderapi</artifactId>
-            <version>2.11.2</version>
-            <scope>provided</scope>
-        </dependency>
     </dependencies>
     </dependencies>
 
 
     <build>
     <build>