Hi all ....
I want, or cleaner: i have to write a module that can split up a chat into seperate pieches.
In other words: If a user from "sub1.domain.foo" joins #help he should be forwarded to "#sub1~help" without get any notice of it. a user from "sub1.domain.foo" should forwarded to "#sub2~help" and a user from "root.domain.foo" can join and list what ever he want to.
i looked to the doku but it dont seems that i can modify the "JOIN" or "PART" messages in a way, that the user will get delivered what i want. Another point that is missed to do something like that is a function to send a raw command to user x. This is needed to pass the forward command to the client... and maybe for alot of other stuff, too.
Here a shot sketch how i want to do it:
client server
1.) join #a > -
2.) - < go to #sub~a
3.) join #sub~a > -
4.) - < u joined #a
any clue how to manipulate it without hacking the whole source?
Multible 'groups' running on one server
There is a way...
Set up 3 IRCds, each one under the domain that you want.
Then use deny channel { } blocks to redirect them.
For example:
You would need one for every channel... I don't think you can redirect with a mask, etc.
See if this helps any.
*edit* Oh, alternatively you could configure services to do this, since they know which server a user connects to, they can SVSPART you #test and then SVSJOIN you #sub1~test. Completely transparent and obeys +bikl too! You could try finding a services module that will do this, or write one yourself . */edit*
Set up 3 IRCds, each one under the domain that you want.
Then use deny channel { } blocks to redirect them.
For example:
Code: Select all
deny channel {
mask "#help";
reason "Redirecting to subdomain channel...";
redirect "#sub1~help";
};
See if this helps any.
*edit* Oh, alternatively you could configure services to do this, since they know which server a user connects to, they can SVSPART you #test and then SVSJOIN you #sub1~test. Completely transparent and obeys +bikl too! You could try finding a services module that will do this, or write one yourself . */edit*
If I understand your problem correctly, you want real redirection, that is, if someone asks the server to join #a, he/she will actually join #sub1~a, and nothing else, right? Then my idea is:
- Override the JOIN command with your own function.
- In that function, if the JOIN request comes from a local client, and the user doesn't forget to specify one or more channel names in the first parameter, rename those of them which start with '#', in the way you described.
- Return with the value of the CallCmdoverride function.