1. #1

    Registriert seit
    22.05.2012
    Beiträge
    202
    Thanked 21 Times in 9 Posts

    Standard [C#] RandomKisser

    Hey,

    war ein Wunsch von einem User, nichts besonderes..
    Kisst im angegebenen Channel einen User (wird durch Zufall ausgewählt) der sich im Channel befindet.

    Viel Spaß damit. (H)

    Name:  4qulu.png
Hits: 147
Größe:  58,7 KB

    PHP-Code:
    /*
             ____  __.  _________            .__        __   
            |    |/ _| /   _____/ ___________|__|______/  |_ 
            |      <   \_____  \_/ ___\_  __ \  \____ \   __\
            |    |  \  /        \  \___|  | \/  |  |_> >  |  
            |____|__ \/_______  /\___  >__|  |__|   __/|__|  
                    \/        \/     \/         |__|          
            
            Knuddels RandomKisser Sample
            © The Don of NYC
     */

    using KNLib;
    using System;
    using System.Threading;
    using System.Collections.Generic;

    namespace 
    RandomKisser
    {
        class 
    Program
        
    {
            static List<
    UseruserList null;
            static 
    int intervall 0;

            static 
    void Main(string[] args)
            {
                
    Console.Title "RandomKisser";

                
    Console.WriteLine("Nickname?");
                
    String nick Console.ReadLine(); // Nickeingabe auslesen

                
    Console.WriteLine("Passwort?");
                
    String pass Console.ReadLine(); // Passworteingabe auslesen

                
    Console.WriteLine("Channel?");
                
    String channel Console.ReadLine(); // Channeleingabe auslesen

                
    Console.WriteLine("Intervall?");
                while (!
    int.TryParse(Console.ReadLine(), out intervall)) // solange der User keine Zahl eingibt, verlangen wir von ihm die Intervallangabe
                    
    Console.WriteLine("Intervall?");

                new 
    Thread(delegate() {login(nickpasschannel);}).Start(); // parametisierten Thread starten, wo mit unseren angegebenen Daten der Loginvorgang durchgeführt wird
            
    }

            
    /// <summary>
            /// Loggt sich mit den angegeben Daten in Knuddels ein
            /// </summary>
            /// <param name="nick">Nickname</param>
            /// <param name="pass">Passwort</param>
            /// <param name="channel">Channel</param>
            
    private static void login(String nickString passString channel)
            {
                
    KSClient KSC = new KSClient(new Applet("applet.jar"));

                
    KSC.OnUserListReceive += new KSClient.UserListReceiveHandler(KSC_OnUserListReceive); // Userlist Event adden
                
    KSC.OnChannelJoin += new KSClient.ChannelJoinHandler(KSC_OnChannelJoin); // Channeljoin Event adden
                
    KSC.OnChannelLeave += new KSClient.ChannelLeaveHandler(KSC_OnChannelLeave); // Channelleave Event adden

                
    KSC.Connect(ChatSystem.DE); // zum Chatsystem verbinden
                
    KSC.Login(nickpasschannel); // mit den eingegebenen Daten einloggen
            
    }

            
    #region Events

            
    private static void KSC_OnUserListReceive(object sender, List<UserUserliste)
            {
                
    userList = new List<User>();
                
    userList.AddRange(Userliste); // Userliste in unsere separate Liste adden

                
    showLog(String.Format("Eingeloggt! User im Channel: {0}"userList.Count), ConsoleColor.Green);
                
    showLog("Starte nun den RandomKisser!"ConsoleColor.Magenta);

                new 
    Thread(delegate() { kiss((KSClient)sender); }).Start(); // starten einen parametisierten Thread wo der Kissvorgang durchgeführt wird
            
    }

            private static 
    void KSC_OnChannelJoin(object senderUser user)
            {
                
    showLog(String.Format("{0} hat den Channel betreten."user.Name), ConsoleColor.DarkCyan);
                
                
    lock (userList// "sperren" sozusagen die Userliste, damit kein Fehler auftaucht, wenn diese woanders gleichzeitig auch aufgerufen wird
                    
    userList.Add(user); // adden den User, der den Channel betreten hat
            
    }

            private static 
    void KSC_OnChannelLeave(object senderUser user)
            {
                
    showLog(String.Format("{0} hat den Channel verlassen."user.Name), ConsoleColor.Cyan);

                
    lock (userList// siehe oben
                    
    userList.Remove(user); // entfernen den User, der den Channel verlassen hat
            
    }

            private static 
    void showLog(String strConsoleColor c)
            {
                
    Console.ForegroundColor c// Farbe der Schriftfarbe in der Console
                
    Console.WriteLine(str); // zeigen unseren Wunschtext in der Console an
            
    }

            
    #endregion

            #region Kissbot

            /// <summary>
            /// Kisst in angegebenen Zeitabständen einen Randomuser
            /// </summary>
            /// <param name="KSC">KSClient</param>
            
    private static void kiss(KSClient KSC)
            {
                while (
    true)
                {
                    
    User user getRandomUser(); // holt einen Zufallsuser aus unserer Liste, die wir beim joinen geladen haben

                    
    showLog(String.Format("Werde nun {0} küssen!"user.Name), ConsoleColor.Yellow); // zeigt den Zufallsuser an
                    
    KSC.SendMessage(String.Format("/kiss {0}°{1}"getRandomUser().Name, new Random().Next(01337))); // kisst den Zufallsuser

                    
    Thread.Sleep(intervall); // wartet XXXX Millisekunden, bis er den nächsten Zufallsuser küsst
                
    }
            }

            
    /// <summary>
            /// Gibt einen Zufallsuser zurück
            /// </summary>
            /// <returns>User</returns>
            
    private static User getRandomUser()
            {
                return 
    userList[new Random().Next(0userList.Count)];
            }

            
    #endregion
        
    }

    C# RandomKisser Sample Download
    Geändert von Darkfield (10.04.2014 um 05:51 Uhr)

Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.