minecraft-src/net/minecraft/commands/execution/tasks/IsolatedCall.java
2025-07-04 01:41:11 +03:00

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));
}
}