Move addCallback method from integration test Utils to main Utils
This commit is contained in:
@@ -30,7 +30,7 @@ import java.util.NoSuchElementException;
|
|||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
|
|
||||||
import static com.replaymod.core.ReplayModIntegrationTest.LOGGER;
|
import static com.replaymod.core.ReplayModIntegrationTest.LOGGER;
|
||||||
import static com.replaymod.core.Utils.addCallback;
|
import static com.replaymod.core.utils.Utils.addCallback;
|
||||||
|
|
||||||
public abstract class AbstractTask implements Task {
|
public abstract class AbstractTask implements Task {
|
||||||
public static Task create(Consumer<AbstractTask> init) {
|
public static Task create(Consumer<AbstractTask> init) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.google.common.util.concurrent.ListenableFuture;
|
|||||||
import com.google.common.util.concurrent.SettableFuture;
|
import com.google.common.util.concurrent.SettableFuture;
|
||||||
|
|
||||||
import static com.replaymod.core.ReplayModIntegrationTest.LOGGER;
|
import static com.replaymod.core.ReplayModIntegrationTest.LOGGER;
|
||||||
|
import static com.replaymod.core.utils.Utils.addCallback;
|
||||||
|
|
||||||
public class CompositeTask implements Task {
|
public class CompositeTask implements Task {
|
||||||
private SettableFuture<Void> future;
|
private SettableFuture<Void> future;
|
||||||
@@ -28,7 +29,7 @@ public class CompositeTask implements Task {
|
|||||||
Task task = children[childIndex];
|
Task task = children[childIndex];
|
||||||
LOGGER.info("Running task {}", task);
|
LOGGER.info("Running task {}", task);
|
||||||
ListenableFuture<Void> childFuture = task.execute();
|
ListenableFuture<Void> childFuture = task.execute();
|
||||||
Utils.addCallback(childFuture, done -> executeChild(childIndex + 1), err -> future.setException(err));
|
addCallback(childFuture, done -> executeChild(childIndex + 1), err -> future.setException(err));
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
future.setException(t);
|
future.setException(t);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import org.apache.logging.log4j.Logger;
|
|||||||
|
|
||||||
import static com.replaymod.core.AbstractTask.mc;
|
import static com.replaymod.core.AbstractTask.mc;
|
||||||
import static com.replaymod.core.ReplayModIntegrationTest.MOD_ID;
|
import static com.replaymod.core.ReplayModIntegrationTest.MOD_ID;
|
||||||
import static com.replaymod.core.Utils.addCallback;
|
import static com.replaymod.core.utils.Utils.addCallback;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper mod that initiates the integration tests.
|
* Helper mod that initiates the integration tests.
|
||||||
|
|||||||
@@ -1,28 +1,6 @@
|
|||||||
package com.replaymod.core;
|
package com.replaymod.core;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.FutureCallback;
|
|
||||||
import com.google.common.util.concurrent.Futures;
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
public class Utils {
|
public class Utils {
|
||||||
public static <T> void addCallback(ListenableFuture<T> future, Consumer<T> onSuccess, Consumer<Throwable> onFailure) {
|
|
||||||
Futures.addCallback(future, new FutureCallback<T>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(@Nullable T result) {
|
|
||||||
onSuccess.accept(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(@Nonnull Throwable t) {
|
|
||||||
onFailure.accept(t);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void times(int x, Runnable runnable) {
|
public static void times(int x, Runnable runnable) {
|
||||||
for (int i = 0; i < x; i++) {
|
for (int i = 0; i < x; i++) {
|
||||||
runnable.run();
|
runnable.run();
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.replaymod.core.utils;
|
|||||||
|
|
||||||
import com.google.common.util.concurrent.FutureCallback;
|
import com.google.common.util.concurrent.FutureCallback;
|
||||||
import com.google.common.util.concurrent.Futures;
|
import com.google.common.util.concurrent.Futures;
|
||||||
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import de.johni0702.minecraft.gui.GuiRenderer;
|
import de.johni0702.minecraft.gui.GuiRenderer;
|
||||||
import de.johni0702.minecraft.gui.RenderInfo;
|
import de.johni0702.minecraft.gui.RenderInfo;
|
||||||
import de.johni0702.minecraft.gui.container.AbstractGuiScrollable;
|
import de.johni0702.minecraft.gui.container.AbstractGuiScrollable;
|
||||||
@@ -25,6 +26,7 @@ import org.lwjgl.input.Keyboard;
|
|||||||
import org.lwjgl.util.Dimension;
|
import org.lwjgl.util.Dimension;
|
||||||
import org.lwjgl.util.ReadableDimension;
|
import org.lwjgl.util.ReadableDimension;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.SSLContext;
|
||||||
@@ -45,6 +47,7 @@ import java.text.SimpleDateFormat;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import static net.minecraft.client.Minecraft.getMinecraft;
|
import static net.minecraft.client.Minecraft.getMinecraft;
|
||||||
|
|
||||||
@@ -149,6 +152,20 @@ public class Utils {
|
|||||||
return Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) || Keyboard.isKeyDown(Keyboard.KEY_RCONTROL);
|
return Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) || Keyboard.isKeyDown(Keyboard.KEY_RCONTROL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T> void addCallback(ListenableFuture<T> future, Consumer<T> onSuccess, Consumer<Throwable> onFailure) {
|
||||||
|
Futures.addCallback(future, new FutureCallback<T>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(@Nullable T result) {
|
||||||
|
onSuccess.accept(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(@Nonnull Throwable t) {
|
||||||
|
onFailure.accept(t);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public static GuiInfoPopup error(Logger logger, GuiContainer container, CrashReport crashReport, Runnable onClose) {
|
public static GuiInfoPopup error(Logger logger, GuiContainer container, CrashReport crashReport, Runnable onClose) {
|
||||||
// Convert crash report to string
|
// Convert crash report to string
|
||||||
String crashReportStr = crashReport.getCompleteReport();
|
String crashReportStr = crashReport.getCompleteReport();
|
||||||
|
|||||||
Reference in New Issue
Block a user