diff --git a/SpigotCore_Main/src/de/steamwar/core/ExceptionlessCallable.java b/SpigotCore_Main/src/de/steamwar/core/ExceptionlessCallable.java
deleted file mode 100644
index 1b17a27..0000000
--- a/SpigotCore_Main/src/de/steamwar/core/ExceptionlessCallable.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- 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.core;
-
-@FunctionalInterface
-public interface ExceptionlessCallable {
- T call();
-}
diff --git a/SpigotCore_Main/src/de/steamwar/core/VersionedCallable.java b/SpigotCore_Main/src/de/steamwar/core/VersionedCallable.java
index 841af0b..430d7fa 100644
--- a/SpigotCore_Main/src/de/steamwar/core/VersionedCallable.java
+++ b/SpigotCore_Main/src/de/steamwar/core/VersionedCallable.java
@@ -21,25 +21,27 @@
package de.steamwar.core;
+import java.util.concurrent.Callable;
+
public class VersionedCallable {
- private ExceptionlessCallable exceptionlessCallable;
+ private Callable callable;
private int minVersion;
- public VersionedCallable(ExceptionlessCallable exceptionlessCallable, int minVersion) {
- this.exceptionlessCallable = exceptionlessCallable;
+ public VersionedCallable(Callable callable, int minVersion) {
+ this.callable = callable;
this.minVersion = minVersion;
}
- public T call() {
- return exceptionlessCallable.call();
- }
-
public static T call(VersionedCallable... versionedCallables) {
for (int i = versionedCallables.length - 1; i >= 0; i--) {
VersionedCallable versionedCallable = versionedCallables[i];
if (Core.getVersion() >= versionedCallable.minVersion) {
- return versionedCallable.call();
+ try {
+ return versionedCallable.callable.call();
+ } catch (Exception e) {
+ throw new RuntimeException("Could not run version dependant code", e);
+ }
}
}
throw new SecurityException();
diff --git a/SpigotCore_Main/src/de/steamwar/core/VersionedRunnable.java b/SpigotCore_Main/src/de/steamwar/core/VersionedRunnable.java
index b3790ad..fc65517 100644
--- a/SpigotCore_Main/src/de/steamwar/core/VersionedRunnable.java
+++ b/SpigotCore_Main/src/de/steamwar/core/VersionedRunnable.java
@@ -31,15 +31,11 @@ public class VersionedRunnable {
this.minVersion = minVersion;
}
- public void run() {
- runnable.run();
- }
-
public static void call(VersionedRunnable... versionedRunnables) {
for (int i = versionedRunnables.length - 1; i >= 0; i--) {
VersionedRunnable versionedRunnable = versionedRunnables[i];
if (Core.getVersion() >= versionedRunnable.minVersion) {
- versionedRunnable.run();
+ versionedRunnable.runnable.run();
return;
}
}