cannot set room variables with Java API

Post here all your questions related with SmartFoxServer Java API

Moderators: Lapo, Bax

Post Reply
olafmol
Posts: 3
Joined: 07 Jan 2009, 21:32
Location: Netherlands
Contact:

cannot set room variables with Java API

Post by olafmol »

Hello,

we use the code from the documentation to set Room Variables:

Code: Select all

Map<String, RoomVariableRequest> rVars = new HashMap<String, RoomVariableRequest>();
RoomVariableRequest variable = new RoomVariableRequest("2500", SFSVariable.TYPE_NUMBER);
rVars.put("score", variable);
sfs.setRoomVariables(rVars, 4, true);
but when looking in the Administrator tool we cannot see any room variables added, and also the onUpdateRoomVariables event is never triggered.

In the debug info it seems the send variables is empty too? We see <vars></vars> strings, with nothing in them

Olaf
shinsa
Posts: 5
Joined: 24 Dec 2008, 15:53

Post by shinsa »

Same situation as I experienced.

I think it's bug at getXmlRoomVariable() in SmartFoxClient.java.
In this function, "boolean" should be SFSVariable.TYPE_BOOLEAN, etc.

I fixed them and tried, then socket connection is disconnected just after room variables changing request is sent. Currently I don't know why it occurs...
shinsa
Posts: 5
Joined: 24 Dec 2008, 15:53

Post by shinsa »

Workaround is found.
Set the room variable when creating a room.
(I experimented room creation in AS3, room variable retrieve in Java)
User avatar
Lapo
Site Admin
Posts: 23438
Joined: 21 Mar 2005, 09:50
Location: Italy

Post by Lapo »

Thanks for reporting. We're taking a look asap
Lapo
--
gotoAndPlay()
...addicted to flash games
franto
Posts: 3
Joined: 28 Jan 2009, 14:57

Post by franto »

Lapo wrote:Thanks for reporting. We're taking a look asap
Hey, is something new with this issue? I have same problem
User avatar
Lapo
Site Admin
Posts: 23438
Joined: 21 Mar 2005, 09:50
Location: Italy

Post by Lapo »

Hi,
the bug has been fixed. Expect a release in the next days.
Lapo
--
gotoAndPlay()
...addicted to flash games
User avatar
Lapo
Site Admin
Posts: 23438
Joined: 21 Mar 2005, 09:50
Location: Italy

Post by Lapo »

Hi there,
we have a pre-release available here:
http://www.smartfoxserver.com/download/ ... I_beta.zip

Please let me know if it fixes the problem
Thank you
Lapo
--
gotoAndPlay()
...addicted to flash games
franto
Posts: 3
Joined: 28 Jan 2009, 14:57

Thank you

Post by franto »

Lapo wrote:Hi there,
we have a pre-release available here:
http://www.smartfoxserver.com/download/ ... I_beta.zip

Please let me know if it fixes the problem
Thank you
Thank you Lapo, I will test it on Monday and will let you know...

Franto
User avatar
Lapo
Site Admin
Posts: 23438
Joined: 21 Mar 2005, 09:50
Location: Italy

Post by Lapo »

how did it go?
Lapo
--
gotoAndPlay()
...addicted to flash games
franto
Posts: 3
Joined: 28 Jan 2009, 14:57

Basic or Pro?

Post by franto »

Lapo wrote:how did it go?
1 question Lapo, does it matter if this is for Lite, Basic or Pro version?
or is it for all versions?
User avatar
Lapo
Site Admin
Posts: 23438
Joined: 21 Mar 2005, 09:50
Location: Italy

Post by Lapo »

We tested using the PRO, should work well with the Basic and it won't work with the Lite version.
Lapo
--
gotoAndPlay()
...addicted to flash games
alexgenaud
Posts: 13
Joined: 05 Oct 2009, 12:57
Location: Copenhagen, DK
Contact:

Trouble setting variable

Post by alexgenaud »

Hi, is it possible this has not been fixed or has regressed in 1.6.6.

I create two rooms, one in the config.xml named "y" with a variable "type=y", then other room I create in a java Task which I expect to be named "c2" with a variable "type=c".

While the "type=y" of the initially created room is seen by both the client and the server, the "type=c2" of the extension created room "c2" is seen by the server but not the client.

Perhaps I've misunderstood private, owner, etc?:


In the config/xml:

Code: Select all

<Room name="y" maxUsers="100"
isPrivate="false" isTemp="false"
uCountUpdate="true" autoJoin="true" limbo="true">
	<Vars>
		<Var name="type" type="s" private="true">y</Var>
	</Vars>
</Room>

In Java Extension:

Code: Select all

Room nwRoom = new Room("c", 10, false, "z");
int id = nwRoom.getId();
nwRoom.setName("c" + id);
nwRoom.setVariable("type", RoomVariable.TYPE_STRING,
"c", true, true, null, true); // and other boolean variations

In client AS:

Code: Select all

logMessage("type/id/name: " +
r.getVariable("type") + "/" +
r.getId() + "/" + 
r.getName());

Server side logs:

Code: Select all

y/1/y
c/2/c2

Client side logs:

Code: Select all

y/1/y
undefined/2/c2

Any thoughts?
User avatar
Lapo
Site Admin
Posts: 23438
Joined: 21 Mar 2005, 09:50
Location: Italy

Post by Lapo »

Rooms on the server set cannot be created like that.
You need to use the server side API, via the ExtensionHelper class.
From there you find a method call createRoom()

Make sure to take a look at the documentation:
http://www.smartfoxserver.com/docs/docP ... ons.htm#10

And javadoc:
http://www.smartfoxserver.com/docs/docP ... elper.html
Lapo
--
gotoAndPlay()
...addicted to flash games
Post Reply