Newer
Older
ultramine_scripting / src / main / java / org / ultramine / mods / scripting / ClosureCommandHandler.java
@vlad20012 vlad20012 on 29 Mar 2016 590 bytes initial commit
package org.ultramine.mods.scripting;

import groovy.lang.Closure;
import org.ultramine.commands.CommandContext;
import org.ultramine.commands.ICommandHandler;

public class ClosureCommandHandler implements ICommandHandler
{
	private final Closure<Void> handler;

	public ClosureCommandHandler(Closure<Void> handler)
	{
		this.handler = handler;
//		handler.setResolveStrategy(Closure.DELEGATE_FIRST);
	}

	@Override
	public void processCommand(CommandContext context)
	{
		handler.setDelegate(context);
		try
		{
			handler.call();
		}
		finally
		{
			handler.setDelegate(null);
		}
	}
}