hey, can i use 2 different synchronization manager in one game??
in my game i wrote an one controller for a vehicle. it works fine. but when i try to add a second synchronizationmanager (JMEPhysicalGraphicalController) I get
java.lang.NullPointerException
at com.captiveimagination.jgn.synchronization.SynchronizationManager.messageReceived(SynchronizationManager.java:401)
at com.captiveimagination.jgn.MessageServer.sendToListener(MessageServer.java:463)
at com.captiveimagination.jgn.MessageServer.notifyIncoming(MessageServer.java:494)
at com.captiveimagination.jgn.MessageServer.updateEvents(MessageServer.java:381)
at com.captiveimagination.jgn.clientserver.JGNServer.updateEvents(JGNServer.java:176)
at com.captiveimagination.jgn.clientserver.JGNServer.update(JGNServer.java:161)
at com.captiveimagination.jgn.UpdatableRunnable.run(JGN.java:435)
at java.lang.Thread.run(Unknown Source)
I d'ont see any reason
Are you sure this happend after adding a second manager?
As far as I can tell im thinking you're trying to read a received messages who is null.
Perhaps you can post your code section?
sure:
// Initialize networking
InetSocketAddress serverReliable = new InetSocketAddress(InetAddress.getLocalHost(), NetworkConstants.SERVER_TCP_PORT);
InetSocketAddress serverFast = new InetSocketAddress(InetAddress.getLocalHost(), NetworkConstants.SERVER_UDP_PORT);
server = new JGNServer(serverReliable, serverFast);
// Instantiate an instance of a JMEGraphicalController
JMEVehicleController3 controller = new JMEVehicleController3();
JMEPhysicsGraphicalController graphicalPhysicalController = new JMEPhysicsGraphicalController();
// Create SynchronizationManager instance for this server
final SynchronizationManager serverSyncManager = new SynchronizationManager(server, controller);
final SynchronizationManager serverVehicleSyncManager = new SynchronizationManager(server, graphicalPhysicalController);
// createCarSynchronizationManager();
serverSyncManager.addSyncObjectManager(this);
serverVehicleSyncManager.addSyncObjectManager(this);
//Start Threads
JGN.createThread(server).start();
JGN.createThread(serverSyncManager).start();
JGN.createThread(serverVehicleSyncManager).start();
the error occurs directly after i get this in the consonle:
…
PlayerID: 0
Server provided id: 2
13.11.2008 09:23:24 com.captiveimagination.jgn.DefaultUncaughtExceptionHandler uncaughtException
SCHWERWIEGEND: Uncaught exception: Terminating Thread.
java.lang.NullPointerException
you have to use smt like :
bulletSyncManager = new SynchronizationManager(server,
bulletController, (short) 1);
and use:
SynchronizeCreateBulletOrRocketMessage m = new SynchronizeCreateBulletOrRocketMessage();
m.setSyncObjectType(1);
same for synccreate messages
Kine
What kine said.