Add more netcode

This commit is contained in:
Flare Microsystems
2024-11-13 08:49:21 -08:00
parent a2a5322835
commit 16b66b6094
10 changed files with 369 additions and 113 deletions

View File

@@ -2,10 +2,13 @@ package com.flaremicro.crossjeeves.net;
import static com.flaremicro.crossjeeves.net.ErrorCodes.*;
import java.io.File;
import java.io.IOException;
import java.net.Socket;
import java.util.Properties;
import java.util.Random;
import com.flaremicro.crossjeeves.CrossJeevesHost;
import com.flaremicro.crossjeeves.ScriptProcessor;
import com.flaremicro.crossjeeves.net.packet.Packet;
import com.flaremicro.crossjeeves.net.packet.Packet0Identify;
@@ -18,21 +21,32 @@ import com.flaremicro.crossjeeves.net.packet.Packet4FileData;
import com.flaremicro.crossjeeves.net.packet.Packet6Disconnect;
public class ServerHandler extends NetworkHandler {
Properties properties;
public ServerHandler(Socket socket, Properties properties) throws IOException {
private CrossJeevesHost host;
private ScriptProcessor scriptProcessor;
private File workspace = new File("./workspace/"+new Random().nextLong()+"/");
public ServerHandler(Socket socket, CrossJeevesHost host, Properties properties) throws IOException {
super(socket);
this.properties = properties;
this.host = host;
this.scriptProcessor = new ScriptProcessor(this, workspace, properties);
}
@Override
protected void doDisconnect(int exitCode)
{
//scriptProcessor.terminate();
host.removeConnection(this);
super.doDisconnect(exitCode);
}
@Override
public void handlePacket(Packet packet) {
disconnect(INVALID_PACKET_RECIEVED, "Recieved invalid packet " + packet.getId() + " (Unknown)");
disconnect(INVALID_PACKET_RECIEVED.id, "Recieved invalid packet " + packet.getId() + " (Unknown)");
}
@Override
public void handlePacket(Packet0Identify packet) {
// TODO Auto-generated method stub
enqueue(new Packet0Identify(0));
}
@Override
@@ -42,13 +56,12 @@ public class ServerHandler extends NetworkHandler {
@Override
public void handlePacket(Packet2Script packet) {
ScriptProcessor scriptProcessor = new ScriptProcessor(this, properties);
scriptProcessor.processAsync(packet.script);
}
@Override
public void handlePacket(Packet3Clone packet) {
disconnect(INVALID_PACKET_RECIEVED, "Recieved invalid packet " + packet.getId() + " (Clone)");
disconnect(INVALID_PACKET_RECIEVED.id, "Recieved invalid packet " + packet.getId() + " (Clone)");
}
@Override
@@ -60,13 +73,13 @@ public class ServerHandler extends NetworkHandler {
catch (IOException e)
{
e.printStackTrace();
disconnect(FILE_DOWNLOAD_FAILURE, "Failed to download transferred file");
disconnect(FILE_DOWNLOAD_FAILURE.id, "Failed to download transferred file");
}
}
@Override
public void handlePacket(Packet5Artifact packet) {
disconnect(INVALID_PACKET_RECIEVED, "Recieved invalid packet " + packet.getId() + " (Artifact)");
disconnect(INVALID_PACKET_RECIEVED.id, "Recieved invalid packet " + packet.getId() + " (Artifact)");
}
@Override
@@ -75,8 +88,8 @@ public class ServerHandler extends NetworkHandler {
@Override
public void handlePacket(Packet6Disconnect packet) {
// TODO Auto-generated method stub
System.out.printf("Disconnect %d: %s%n", packet.getCode(), packet.getReason());
doDisconnect(packet.getCode());
}
}