Hey,

mit diesem Thread möchte ich Euch zeigen, wie man sich mit der KNLib in einem Passwort geschützten Channel einloggen kann. Es ist sehr sehr simpel und denke mal, viele sollten damit klar kommen.

Man loggt sich einfach wie gewohnt ein und gibt das Passwort vom Channel ein und fängt beim Einloggen einfach das k-Token ab:

PHP-Code:
                case "k":

                    if (
token[1].Contains("Passwort notwendig"))
                    { 
                        
/*Parameter:
                         * 0 -> Channel in den wir wechseln wollen
                         * 1 -> Channel in dem wir uns befinden
                         * 2 -> Passwort von dem Channel in den wir wechseln wollen
                         */
                        
c.Send(String.Format("cp\0{0}|{1}|false\0  OK  \0{2}"Channelc.ChannelChannel_Pass));
                    }

                    break; 
Ganzer Source (Konsole):

Spoiler:


PHP-Code:
using KNLib;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
secured_channel_login
{
    class 
Program
    
{
        static 
KSClient c = new KSClient(new Applet());
        static 
String Channel String.Empty;
        static 
String Channel_Pass String.Empty;

        static 
void Main(string[] args)
        {
            
c.OnTokenReceived += new KSClient.ReceivedHandler(c_OnTokenReceived);
            
c.Connect(ChatSystem.DE);
            
c.Login("nick""pw""channel");
        }

        static 
void c_OnTokenReceived(Object senderString rawToken)
        {
            
String[] token rawToken.Split('\0');

            switch (
token[0])
            {
                case 
"u":

                    
Console.WriteLine("Zum Testen einen Passwort geschützten Channel eingeben!");
                    
Channel Console.ReadLine();

                    
Console.WriteLine("Das Passwort eingeben!");
                    
Channel_Pass Console.ReadLine();

                    if (
Channel != String.Empty)
                        
c.SendMessage("/go " Channel);

                    break;

                case 
"k":

                    if (
token[1].Contains("Passwort notwendig"))
                    { 
                        
/*Parameter:
                         * 0 -> Channel in den wir wechseln wollen
                         * 1 -> Channel in dem wir uns befinden
                         * 2 -> Passwort von dem Channel in den wir wechseln wollen
                         */
                        
c.Send(String.Format("cp\0{0}|{1}|false\0  OK  \0{2}"Channelc.ChannelChannel_Pass));
                    }

                    break;
            }
        }
    }