Exemplo n.º 1
0
        public override GameStartData GetConnectInfo( string hash )
        {
            string uri = playUri + hash;
            var response = GetHtml( uri, minecraftNetUri );
            GameStartData data = new GameStartData();
            data.Username = Username;

            foreach( string line in response ) {
                int index = 0;
                // Look for <param name="x" value="x"> tags
                if( ( index = line.IndexOf( "<param", ordinal ) ) > 0 ) {
                    int nameStart = index + 13;
                    int nameEnd = line.IndexOf( '"', nameStart );
                    string paramName = line.Substring( nameStart, nameEnd - nameStart );

                    // Don't read param value by default so we avoid allocating unnecessary 'value' strings.
                    if( paramName == "server" ) {
                        data.Ip = GetParamValue( line, nameEnd );
                    } else if( paramName == "port" ) {
                        data.Port = GetParamValue( line, nameEnd );
                    } else if( paramName == "mppass" ) {
                        data.Mppass = GetParamValue( line, nameEnd );
                    }
                }
            }
            return data;
        }
Exemplo n.º 2
0
        internal static void UpdateResumeInfo( GameStartData data, bool classiCubeSkins )
        {
            Options.Set( "launcher-username", data.Username );
            Options.Set( "launcher-ip", data.Ip );
            Options.Set( "launcher-port", data.Port );
            Options.Set( "launcher-mppass", EncodeMppass( data.Mppass, data.Username ) );
            Options.Set( "launcher-ccskins", classiCubeSkins.ToString() );

            try {
                Options.Save();
            } catch( IOException ) {
            }
        }
Exemplo n.º 3
0
        internal static void UpdateResumeInfo( GameStartData data, bool classiCubeSkins )
        {
            // If the client has changed some settings in the meantime, make sure we keep the changes
            if( !Options.Load() )
                return;

            Options.Set( "launcher-username", data.Username );
            Options.Set( "launcher-ip", data.Ip );
            Options.Set( "launcher-port", data.Port );
            Options.Set( "launcher-mppass", Secure.Encode( data.Mppass, data.Username ) );
            Options.Set( "launcher-ccskins", classiCubeSkins );
            Options.Save();
        }
Exemplo n.º 4
0
        internal static void StartClient( GameStartData data, bool classicubeSkins )
        {
            string skinServer = classicubeSkins ? "http://www.classicube.net/static/skins/" : "http://s3.amazonaws.com/MinecraftSkins/";
            string args = data.Username + " " + data.Mppass + " " +
                data.Ip + " " + data.Port + " " + skinServer;
            System.Diagnostics.Debug.WriteLine( "starting..." + args );
            Process process = null;
            UpdateResumeInfo( data, classicubeSkins );

            if( !File.Exists( "ClassicalSharp.exe" ) ) {
                MessageBox.Show( missingExeMessage );
                return;
            }

            if( Type.GetType( "Mono.Runtime" ) != null ) {
                process = Process.Start( "mono", "\"ClassicalSharp.exe\" " + args );
            } else {
                process = Process.Start( "ClassicalSharp.exe", args );
            }
        }
Exemplo n.º 5
0
        internal static void StartClient( GameStartData data, bool classicubeSkins )
        {
            string skinServer = classicubeSkins ? "http://www.classicube.net/static/skins/" : "http://s3.amazonaws.com/MinecraftSkins/";
            string args = data.Username + " " + data.Mppass + " " +
                data.Ip + " " + data.Port + " " + skinServer;
            System.Diagnostics.Debug.WriteLine( "starting..." + args );
            Process process = null;

            try {
                if( Type.GetType( "Mono.Runtime" ) != null ) {
                    process = Process.Start( "mono", "\"ClassicalSharp.exe\" " + args );
                } else {
                    process = Process.Start( "ClassicalSharp.exe", args );
                }
            } catch( Win32Exception ex ) {
                if( ex.Message.Contains( "The system cannot find the file specified" ) ) {
                    MessageBox.Show( missingExeMessage );
                } else {
                    throw;
                }
            }
        }
Exemplo n.º 6
0
        void BtnDCconnectClick( object sender, EventArgs e )
        {
            IPAddress address;
            if( !IPAddress.TryParse( txtDCip.Text, out address ) ) {
                MessageBox.Show( "Invalid IP address specified." );
                return;
            }

            ushort port;
            if( !UInt16.TryParse( txtDCport.Text, out port ) ) {
                MessageBox.Show( "Invalid port specified." );
                return;
            }
            if( String.IsNullOrEmpty( txtDCuser.Text ) ) {
                MessageBox.Show( "Please enter a username." );
                return;
            }

            string mppass = txtDCmppass.Text;
            if( String.IsNullOrEmpty( mppass ) ) mppass = "******";
            GameStartData data = new GameStartData( txtDCuser.Text, mppass,
                                                   txtDCip.Text, txtDCport.Text );
            StartClient( data, cbDCccskins.Checked );
        }
Exemplo n.º 7
0
        void dcConnectBtnClick(object sender, System.EventArgs e)
        {
            IPAddress address;
            if (!IPAddress.TryParse(dcIP.Text, out address))
            {
                MessageBox.Show("Invalid IP address specified.");
                return;
            }

            ushort port;
            if (!UInt16.TryParse(dcPort.Text, out port))
            {
                MessageBox.Show("Invalid port specified.");
                return;
            }
            if (String.IsNullOrEmpty(dcUsername.Text))
            {
                MessageBox.Show("Please enter a username.");
                return;
            }

            if (String.IsNullOrEmpty(dcMppass.Text))
            {
                MessageBox.Show("Please enter a Mppass.");
                return;
            }
            GameStartData data = new GameStartData(dcUsername.Text, dcMppass.Text,
                                                   dcIP.Text, dcPort.Text);
            StartClient(data, dcUseCCSkins.Checked);
        }
Exemplo n.º 8
0
        void BtnLanConnectClick( object sender, System.EventArgs e )
        {
            IPAddress address;
            if( !IPAddress.TryParse( txtLanIP.Text, out address ) ) {
                MessageBox.Show( "Invalid IP address specified." );
                return;
            }
            if( !IsPrivateIP( address ) ) {
                MessageBox.Show( "Given IP address is not a local LAN address." );
                return;
            }

            ushort port;
            if( !UInt16.TryParse( txtLanPort.Text, out port ) ) {
                MessageBox.Show( "Invalid port specified." );
                return;
            }
            if( String.IsNullOrEmpty( txtLanUser.Text ) ) {
                MessageBox.Show( "Please enter a username." );
                return;
            }

            GameStartData data = new GameStartData( txtLanUser.Text, "lan",
                                                   txtLanIP.Text, txtLanPort.Text );
            StartClient( data, cbLocalSkinServerCC.Checked );
        }