26 lines
1 KiB
Java
26 lines
1 KiB
Java
package net.minecraft.commands.execution.tasks;
|
|
|
|
import java.util.function.Consumer;
|
|
import net.minecraft.commands.CommandResultCallback;
|
|
import net.minecraft.commands.ExecutionCommandSource;
|
|
import net.minecraft.commands.execution.EntryAction;
|
|
import net.minecraft.commands.execution.ExecutionContext;
|
|
import net.minecraft.commands.execution.ExecutionControl;
|
|
import net.minecraft.commands.execution.Frame;
|
|
|
|
public class IsolatedCall<T extends ExecutionCommandSource<T>> implements EntryAction<T> {
|
|
private final Consumer<ExecutionControl<T>> taskProducer;
|
|
private final CommandResultCallback output;
|
|
|
|
public IsolatedCall(Consumer<ExecutionControl<T>> taskProducer, CommandResultCallback output) {
|
|
this.taskProducer = taskProducer;
|
|
this.output = output;
|
|
}
|
|
|
|
@Override
|
|
public void execute(ExecutionContext<T> executionContext, Frame frame) {
|
|
int i = frame.depth() + 1;
|
|
Frame frame2 = new Frame(i, this.output, executionContext.frameControlForDepth(i));
|
|
this.taskProducer.accept(ExecutionControl.create(executionContext, frame2));
|
|
}
|
|
}
|