Topic History of: feature request Max. showing the last posts - (Last post first)
Author
Message
Cyprien
Hi,
Can plug-in create client ? i think yes, because they have access to server object.
So if you create a client for each persistent room you make, like a bot operator in IRC.
The room will remain open even if there isn't real client into.
But i don't know if it's possible now.
But if it's possible and then you register for the m node, you can intercept all private message for your bot, and make a cool bot, with small game and i don't know, maybe a small IA -_-
Cyprien
admin
Hi,
I can change very few thing to enable plugin to add secure password protected room (for example a simple call to plugins : doAction('clientCanJoinRoom') ...)
For persistent rooms, I think that currently a plugin could create the rooms on startup the only issue is that the room will be removed when all clients left.
but it's just a simple test in palabreRoom
Code:
if len(self.allNickNames) == 0 and len(self.childRooms) == 0:
self.removeRoom()
So I can modify this too.
I'll think of the best way to edit this and commit all this to SVN ... and soon to release a new version :)
chromecow
Ok, persistent rooms is definitely a new feature.
I tried creating a simple socket client in a module that runs on startup, whose sole job was to create the top level rooms, but evidently having two sockets running on the same IP/Port causes...bad things.
I think I was able to connect, but then all the regular clients went silent, so those packets were wandering off into the ether, I guess.
Even if I could get it working...it's pretty hacky.
There may be folks that would use persistent rooms differently than I would, but for me, the ideal implementation would be something like an entry in the palabre config file that creates those empty, persistent rooms on startup:
Code:
[persistent rooms]
rooms = GAME01,GAME02,CHAT01
Persistent child rooms could be indicated with nested parenthesis:
RECEIVE: Notification of success+room params, or failure;
Also, I would like to be able to break out the notion of the room Operator, as something that can be passed between occupants, by the current operator:
- The first person to join a room is assigned as operator
- That person can assign another player in the room as Operator
- If the Operator leaves, the room remains and the Operator designation is passed to the next oldest occupant
The Work Around
Players log in with one name to the main site, and then join a room using another name which is a room param.
When they join, they are using a module driven privateJoin command, which compares their room name and password params with the list held by the operator. If they match, a standard join command is sent.
This will work, but is not very secure, and doesn't solve the operator issue, which is kind of a big issue for my current project.
Thanks for your attention, and for the great software.
AS I work some of the bugs out of my modules, I'll post some of them.
I just ran into a tricky problem, which I think requires a feature to address, though I will also see what I can do on the module side.
Persistent Rooms
I'm currently working on one small project, but in the future, I want to hang a series of small multiplayer games off of the single instance of the palabre server.
The best way to do this would be to have a number of persistent rooms that are created whenever palabre is started:
myCurrentGameRoom
FutureGameRoom01
futureGameRoom02
On the client side, I would hide the upper level rooms, and make all rooms for a particular game children of their parent room.
To pull this off, I need to be able to create and maintain these permanent top-level rooms.