public override uint Inspect(FFServer.ClientSocket clientSocket, FFBasePacket incommingPacket)
    {
        // Example cast
        //FFPacket<PlayerDiedEvent> packet = (FFPacket<PlayerDiedEvent>)incommingPacket;

        return(1); // return positive number if message shouldn't be relayed to all other clients
    }
 public override uint Inspect(FFServer.ClientSocket clientSocket, FFBasePacket incommingPacket)
 {
     Debug.LogError("Error, MessageInspector of type " + eventName + " called!");
     // return zero to to have this inspector pass this message
     // return positive number if message shouldn't be relayed to all other clients
     return(1); // do not send to other clients
 }
    public override uint Inspect(FFServer.ClientSocket clientSocket, FFBasePacket incommingPacket)
    {
        FFPacket <ClientSyncTimeEvent> packet = (FFPacket <ClientSyncTimeEvent>)incommingPacket;

        packet.message.serverLifeTime = FFServer.serverTime;
        clientSocket.SendNetPacket <ClientSyncTimeEvent>(packet, false);
        return(1); // return zero to to have this inspector pass this message
    }
    public override uint Inspect(FFServer.ClientSocket clientSocket, FFBasePacket incommingPacket)
    {
        //Debug.Log("NetObjectDestroyedEvent Packet Recieved"); // debug
        FFPacket <NetObjectDestroyedEvent> packet = (FFPacket <NetObjectDestroyedEvent>)incommingPacket;

        // Remove copy of the object which exists for new clients to create the object
        // TODO: Low-Prio, Optimize for O(N), Needs custom List, very low prio.
        var list = FFServer.NetObjectsCreated;

        list.Remove(list.Find(x => x.gameObjectNetId == packet.message.gameObjectNetId));

        return(0);
    }
    public override uint Inspect(FFServer.ClientSocket clientSocket, FFBasePacket incommingPacket)
    {
        FFPacket <NetObjectCreatedEvent> packet = (FFPacket <NetObjectCreatedEvent>)incommingPacket;

        long netid = FFServer.GetNewNetId;
        GameObjectNetIdRecievedEvent reply = new GameObjectNetIdRecievedEvent();

        reply.gameInstanceId           = packet.message.gameObjectInstanceId;
        packet.message.gameObjectNetId = netid;
        reply.netId = netid;

        // TODO make this run off of netId on local server/dedicated version
        // SAVE NewObjectCreatedEvents so they can be sent to new clients later
        FFServer.NetObjectsCreated.Add(packet.message);


        clientSocket.SendMessage <GameObjectNetIdRecievedEvent>(reply, true);
        return(0);
    }
    public override uint Inspect(FFServer.ClientSocket clientSocket, FFBasePacket incommingPacket)
    {
        FFPacket <ClientConnectedEvent> packet = (FFPacket <ClientConnectedEvent>)incommingPacket;

        clientSocket.clientData.clientName = packet.message.clientName;
        clientSocket.clientData.clientGuid = packet.message.clientGuid;

        packet.message.clientId        = clientSocket.clientData.clientId;
        packet.message.serverTime      = FFServer.serverTime;
        packet.message.serverStartTime = FFServer.serverStartTime;
        packet.message.serverName      = FFServer.serverName;

        clientSocket.SendMessage <ClientConnectedEvent>(packet.message, true);

        // make a copy so that it doesn't get invalidated if another thread deletes something
        var netObjects = new List <NetObjectCreatedEvent>(FFServer.NetObjectsCreated);

        foreach (var netobj in netObjects)
        {
            clientSocket.SendMessage <NetObjectCreatedEvent>(netobj, true);
        }

        return(0);
    }