/*
* Created by Andrey Cherkashin (acherkashin)
* http://acherkashin.me
*
* License
* Copyright (c) 2015 Andrey Cherkashin
* The project released under the MIT license: http://opensource.org/licenses/MIT
*/
package ragefist.packets.client;
import org.luaj.vm2.LuaValue;
import ragefist.User;
import ragefist.core.environment.EnvironmentRequestTask;
import ragefist.core.util.FormatTools;
import ragefist.packets.IncomingPacket;
import ragefist.packets.IncomingPacketException;
/**
*
* @author acherkashin
*/
public class Request extends IncomingPacket
{
/**
*
* @throws IncomingPacketException
*/
@Override
public void run() throws IncomingPacketException {
LuaValue luaIn = FormatTools.fromJUniformObjectToLuaValue(this.getPacket());
if (luaIn == null) {
throw new IncomingPacketException("ERROR_BAD_PACKET");
}
// Create a task
EnvironmentRequestTask requestTask = new EnvironmentRequestTask(this.getConnection(), luaIn);
requestTask.setDelegate(this.getPacketHandler());
// Get a user
User user = (User)this.getConnection().getAttachment();
// Push a new task into environment
this.getPacketHandler().getServerControllerAPI().getEnvironmentById(user.getEnvironmentId()).addTask(requestTask);
}
}