package net.minecraft.commands.execution; import net.minecraft.commands.ExecutionCommandSource; import org.jetbrains.annotations.Nullable; public interface ExecutionControl { void queueNext(EntryAction entry); void tracer(@Nullable TraceCallbacks tracer); @Nullable TraceCallbacks tracer(); Frame currentFrame(); static > ExecutionControl create(ExecutionContext executionContext, Frame frame) { return new ExecutionControl() { @Override public void queueNext(EntryAction entry) { executionContext.queueNext(new CommandQueueEntry<>(frame, entry)); } @Override public void tracer(@Nullable TraceCallbacks tracer) { executionContext.tracer(tracer); } @Nullable @Override public TraceCallbacks tracer() { return executionContext.tracer(); } @Override public Frame currentFrame() { return frame; } }; } }