diff --git a/SpigotCore_Main/src/de/steamwar/core/Core.java b/SpigotCore_Main/src/de/steamwar/core/Core.java index d9c59df..cf28ec6 100644 --- a/SpigotCore_Main/src/de/steamwar/core/Core.java +++ b/SpigotCore_Main/src/de/steamwar/core/Core.java @@ -28,6 +28,10 @@ import de.steamwar.sql.SQL; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; +import java.util.Optional; +import java.util.concurrent.Callable; +import java.util.logging.Logger; + public class Core extends JavaPlugin{ private static Core instance; @@ -82,4 +86,69 @@ public class Core extends JavaPlugin{ private static void setInstance(Core instance) { Core.instance = instance; } + + public static void versionDependantCall(Runnable v12, Runnable v15) { + switch (getVersion()) { + case 12: + v12.run(); + break; + case 15: + default: + v15.run(); + break; + } + } + + public static T versionDependantCall(ExceptionlessCallable v12, ExceptionlessCallable v15) { + switch (getVersion()) { + case 12: + return v12.call(); + case 15: + default: + return v15.call(); + } + } + + public static void versionDependantCall(Runnable v8, Runnable v9, Runnable v10, Runnable v12, Runnable v14, Runnable v15) { + switch (Core.getVersion()) { + case 8: + v8.run(); + break; + case 9: + v9.run(); + break; + case 10: + v10.run(); + break; + case 12: + v12.run(); + break; + case 14: + v14.run(); + break; + case 15: + default: + v15.run(); + break; + } + } + + public static T versionDependantCall(ExceptionlessCallable v8, ExceptionlessCallable v9, ExceptionlessCallable v10, ExceptionlessCallable v12, ExceptionlessCallable v14, ExceptionlessCallable v15) { + switch (Core.getVersion()) { + case 8: + return v8.call(); + case 9: + return v9.call(); + case 10: + return v10.call(); + case 12: + return v12.call(); + case 14: + return v14.call(); + case 15: + default: + return v15.call(); + } + } + } diff --git a/SpigotCore_Main/src/de/steamwar/core/ExceptionlessCallable.java b/SpigotCore_Main/src/de/steamwar/core/ExceptionlessCallable.java new file mode 100644 index 0000000..044c83f --- /dev/null +++ b/SpigotCore_Main/src/de/steamwar/core/ExceptionlessCallable.java @@ -0,0 +1,6 @@ +package de.steamwar.core; + +@FunctionalInterface +public interface ExceptionlessCallable { + T call(); +}