[Java] User is null - Move users to the room

Post here your questions about SFS2X. Here we discuss all server-side matters. For client API questions see the dedicated forums.

Moderators: Lapo, Bax

TwineApps
Posts: 80
Joined: 10 Nov 2016, 18:39

[Java] User is null - Move users to the room

Postby TwineApps » 03 Aug 2017, 18:44

Hi,

At login, I create a room "disney", and i want to move a user from the "The Lobby" room to the "disney" room, but the User variable is null, why?

My code Extent:

Code: Select all

String userName = (String) event.getParameter(SFSEventParam.LOGIN_NAME);
User user = (User) event.getParameter(SFSEventParam.USER);

      trace("User name: " + user);
...
...
...
getApi().createRoom(getParentExtension().getParentZone(), crs, sender);
         Room room = getParentExtension().getParentZone().getRoomByName(clan_name);
         reback.putBool("success", true);         
         getApi().joinRoom(sender, room);



My log:

Code: Select all

03 ago 2017 | 20:36:50,553 | INFO  | SFSWorker:Ext:4 | Extensions |     | {Server}: Username----------pippo1
03 ago 2017 | 20:36:50,554 | INFO  | SFSWorker:Ext:4 | Extensions |     | {Server}: Password----------925dcaf61c8710ebca8a960b39080cbb
03 ago 2017 | 20:36:50,568 | INFO  | SFSWorker:Ext:4 | Extensions |     | {Server}: Session----------{ Id: 1, Type: DEFAULT, Logged: No, IP: 127.0.0.1:52603 }
03 ago 2017 | 20:36:50,569 | INFO  | SFSWorker:Ext:4 | Extensions |     | {Server}: outData ---->[SFSObject, size: 0]
03 ago 2017 | 20:36:50,573 | INFO  | SFSWorker:Ext:4 | Extensions |     | {Server}: User name: null
03 ago 2017 | 20:36:50,581 | INFO  | SFSWorker:Ext:4 | Extensions |     | {Server}: pippo1
03 ago 2017 | 20:36:50,612 | INFO  | SFSWorker:Ext:4 | Extensions |     | {Server}: List Rooms into server: [[ Room: Game, Id: 1, Group: default, isGame: false ], [ Room: The Lobby, Id: 3, Group: default, isGame: false ], [ Room: Queue, Id: 2, Group: default, isGame: false ]]
03 ago 2017 | 20:36:50,628 | INFO  | SFSWorker:Ext:4 | entities.managers.SFSRoomManager |     | Room created: { Zone: Login }, [ Room: disney, Id: 5, Group: clan_name disney, isGame: false ], type = SFSRoom
03 ago 2017 | 20:36:50,630 | WARN  | SFSWorker:Ext:4 | entities.managers.SFSExtensionManager |     | java.lang.NullPointerException:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Exception: java.lang.NullPointerException
Message: *** Null ***
Description: Error during event handling: java.lang.NullPointerException, Listener: { Ext: Server, Type: JAVA, Lev: ZONE, { Zone: Login }, {} }
+--- --- ---+
Stack Trace:
+--- --- ---+
loginserver.LoginEventHandler.createRoom(LoginEventHandler.java:243)
loginserver.LoginEventHandler.handleServerEvent(LoginEventHandler.java:160)
com.smartfoxserver.v2.extensions.SFSExtension.handleServerEvent(SFSExtension.java:259)
com.smartfoxserver.v2.entities.managers.SFSExtensionManager.dispatchEvent(SFSExtensionManager.java:768)
com.smartfoxserver.v2.entities.managers.SFSExtensionManager.dispatchZoneLevelEvent(SFSExtensionManager.java:689)
com.smartfoxserver.v2.entities.managers.SFSExtensionManager.handleServerEvent(SFSExtensionManager.java:886)
com.smartfoxserver.v2.core.SFSEventManager$SFSEventRunner.run(SFSEventManager.java:65)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

03 ago 2017 | 20:36:53,093 | INFO  | SocketReader | bitswarm.sessions.DefaultSessionManager |     | Session removed: { Id: 1, Type: DEFAULT, Logged: No, IP: 127.0.0.1:52603 }
User avatar
Lapo
Site Admin
Posts: 23008
Joined: 21 Mar 2005, 09:50
Location: Italy

Re: [Java] User is null - Move users to the room

Postby Lapo » 03 Aug 2017, 19:56

There is no User parameter passed at login time (check the docs, SFSEventType.LOGIN).
This is because the event is called before the client becomes a User, to be able to validate credentials and a host of other things.

You should instead listen for the event USER_JOIN_ZONE that is triggered when the client has passed all checks and has become a User.

Cheers
Lapo
--
gotoAndPlay()
...addicted to flash games

Return to “SFS2X Questions”

Who is online

Users browsing this forum: No registered users and 54 guests