mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-15 13:04:36 +00:00
Added changes from 2927
This commit is contained in:
parent
d25f2f40ec
commit
33fccf85b5
9 changed files with 875 additions and 508 deletions
132
MinecraftClientGUI/Form1.Designer.cs
generated
132
MinecraftClientGUI/Form1.Designer.cs
generated
|
|
@ -28,146 +28,20 @@
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
|
this.components = new System.ComponentModel.Container();
|
||||||
this.groupBox_Login = new System.Windows.Forms.GroupBox();
|
|
||||||
this.btn_connect = new System.Windows.Forms.Button();
|
|
||||||
this.box_ip = new System.Windows.Forms.TextBox();
|
|
||||||
this.box_password = new System.Windows.Forms.TextBox();
|
|
||||||
this.box_Login = new System.Windows.Forms.TextBox();
|
|
||||||
this.box_output = new System.Windows.Forms.RichTextBox();
|
|
||||||
this.box_input = new System.Windows.Forms.TextBox();
|
|
||||||
this.btn_send = new System.Windows.Forms.Button();
|
|
||||||
this.btn_about = new System.Windows.Forms.Button();
|
|
||||||
this.groupBox_Login.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// groupBox_Login
|
|
||||||
//
|
|
||||||
this.groupBox_Login.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.groupBox_Login.Controls.Add(this.btn_connect);
|
|
||||||
this.groupBox_Login.Controls.Add(this.box_ip);
|
|
||||||
this.groupBox_Login.Controls.Add(this.box_password);
|
|
||||||
this.groupBox_Login.Controls.Add(this.box_Login);
|
|
||||||
this.groupBox_Login.Location = new System.Drawing.Point(13, 11);
|
|
||||||
this.groupBox_Login.Name = "groupBox_Login";
|
|
||||||
this.groupBox_Login.Size = new System.Drawing.Size(564, 46);
|
|
||||||
this.groupBox_Login.TabIndex = 0;
|
|
||||||
this.groupBox_Login.TabStop = false;
|
|
||||||
this.groupBox_Login.Text = " ";
|
|
||||||
//
|
|
||||||
// btn_connect
|
|
||||||
//
|
|
||||||
this.btn_connect.Location = new System.Drawing.Point(513, 15);
|
|
||||||
this.btn_connect.Name = "btn_connect";
|
|
||||||
this.btn_connect.Size = new System.Drawing.Size(40, 23);
|
|
||||||
this.btn_connect.TabIndex = 6;
|
|
||||||
this.btn_connect.Text = "Go!";
|
|
||||||
this.btn_connect.UseVisualStyleBackColor = true;
|
|
||||||
this.btn_connect.Click += new System.EventHandler(this.btn_connect_Click);
|
|
||||||
//
|
|
||||||
// box_ip
|
|
||||||
//
|
|
||||||
this.box_ip.Location = new System.Drawing.Point(400, 17);
|
|
||||||
this.box_ip.Name = "box_ip";
|
|
||||||
this.box_ip.Size = new System.Drawing.Size(100, 20);
|
|
||||||
this.box_ip.TabIndex = 5;
|
|
||||||
this.box_ip.KeyUp += new System.Windows.Forms.KeyEventHandler(this.loginBox_KeyUp);
|
|
||||||
//
|
|
||||||
// box_password
|
|
||||||
//
|
|
||||||
this.box_password.Location = new System.Drawing.Point(235, 17);
|
|
||||||
this.box_password.Name = "box_password";
|
|
||||||
this.box_password.PasswordChar = '•';
|
|
||||||
this.box_password.Size = new System.Drawing.Size(100, 20);
|
|
||||||
this.box_password.TabIndex = 3;
|
|
||||||
this.box_password.KeyUp += new System.Windows.Forms.KeyEventHandler(this.loginBox_KeyUp);
|
|
||||||
//
|
|
||||||
// box_Login
|
|
||||||
//
|
|
||||||
this.box_Login.Location = new System.Drawing.Point(67, 17);
|
|
||||||
this.box_Login.Name = "box_Login";
|
|
||||||
this.box_Login.Size = new System.Drawing.Size(100, 20);
|
|
||||||
this.box_Login.TabIndex = 1;
|
|
||||||
this.box_Login.KeyUp += new System.Windows.Forms.KeyEventHandler(this.loginBox_KeyUp);
|
|
||||||
//
|
|
||||||
// box_output
|
|
||||||
//
|
|
||||||
this.box_output.Location = new System.Drawing.Point(13, 66);
|
|
||||||
this.box_output.Name = "box_output";
|
|
||||||
this.box_output.ReadOnly = true;
|
|
||||||
this.box_output.Size = new System.Drawing.Size(564, 292);
|
|
||||||
this.box_output.TabIndex = 1;
|
|
||||||
this.box_output.Text = "";
|
|
||||||
this.box_output.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.LinkClicked);
|
|
||||||
//
|
|
||||||
// box_input
|
|
||||||
//
|
|
||||||
this.box_input.AcceptsTab = true;
|
|
||||||
this.box_input.Location = new System.Drawing.Point(13, 365);
|
|
||||||
this.box_input.MaxLength = 100;
|
|
||||||
this.box_input.Multiline = true;
|
|
||||||
this.box_input.Name = "box_input";
|
|
||||||
this.box_input.Size = new System.Drawing.Size(490, 20);
|
|
||||||
this.box_input.TabIndex = 2;
|
|
||||||
this.box_input.KeyDown += new System.Windows.Forms.KeyEventHandler(this.inputBox_KeyDown);
|
|
||||||
//
|
|
||||||
// btn_send
|
|
||||||
//
|
|
||||||
this.btn_send.Location = new System.Drawing.Point(509, 364);
|
|
||||||
this.btn_send.Name = "btn_send";
|
|
||||||
this.btn_send.Size = new System.Drawing.Size(40, 22);
|
|
||||||
this.btn_send.TabIndex = 3;
|
|
||||||
this.btn_send.Text = "Send";
|
|
||||||
this.btn_send.UseVisualStyleBackColor = true;
|
|
||||||
this.btn_send.Click += new System.EventHandler(this.btn_send_Click);
|
|
||||||
//
|
|
||||||
// btn_about
|
|
||||||
//
|
|
||||||
this.btn_about.Location = new System.Drawing.Point(555, 364);
|
|
||||||
this.btn_about.Name = "btn_about";
|
|
||||||
this.btn_about.Size = new System.Drawing.Size(22, 22);
|
|
||||||
this.btn_about.TabIndex = 4;
|
|
||||||
this.btn_about.Text = "?";
|
|
||||||
this.btn_about.UseVisualStyleBackColor = true;
|
|
||||||
this.btn_about.Click += new System.EventHandler(this.btn_about_Click);
|
|
||||||
//
|
|
||||||
// Form1
|
// Form1
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = System.Drawing.SystemColors.Control;
|
this.ClientSize = new System.Drawing.Size(1100, 700);
|
||||||
this.ClientSize = new System.Drawing.Size(589, 398);
|
|
||||||
this.Controls.Add(this.btn_about);
|
|
||||||
this.Controls.Add(this.btn_send);
|
|
||||||
this.Controls.Add(this.box_input);
|
|
||||||
this.Controls.Add(this.box_output);
|
|
||||||
this.Controls.Add(this.groupBox_Login);
|
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
|
||||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
|
||||||
this.MaximizeBox = false;
|
|
||||||
this.Name = "Form1";
|
this.Name = "Form1";
|
||||||
|
this.Text = "MCC Multibox Commander";
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
this.Text = "Minecraft Console Client GUI";
|
|
||||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.onClose);
|
|
||||||
this.Load += new System.EventHandler(this.Form1_Load);
|
|
||||||
this.groupBox_Login.ResumeLayout(false);
|
|
||||||
this.groupBox_Login.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.GroupBox groupBox_Login;
|
|
||||||
private System.Windows.Forms.Button btn_connect;
|
|
||||||
private System.Windows.Forms.TextBox box_ip;
|
|
||||||
private System.Windows.Forms.TextBox box_password;
|
|
||||||
private System.Windows.Forms.TextBox box_Login;
|
|
||||||
private System.Windows.Forms.RichTextBox box_output;
|
|
||||||
private System.Windows.Forms.TextBox box_input;
|
|
||||||
private System.Windows.Forms.Button btn_send;
|
|
||||||
private System.Windows.Forms.Button btn_about;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -24,33 +24,18 @@ namespace MinecraftClientGUI
|
||||||
private Process Client;
|
private Process Client;
|
||||||
private Thread Reader;
|
private Thread Reader;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Start a client using command-line arguments
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="args">Arguments to pass</param>
|
|
||||||
|
|
||||||
public MinecraftClient(string[] args)
|
public MinecraftClient(string[] args)
|
||||||
{
|
{
|
||||||
initClient("\"" + String.Join("\" \"", args) + "\" BasicIO");
|
initClient("\"" + String.Join("\" \"", args) + "\" BasicIO");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Start the client using username, password and server IP
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="username">Username or email</param>
|
|
||||||
/// <param name="password">Password for the given username</param>
|
|
||||||
/// <param name="serverip">Server IP to join</param>
|
|
||||||
|
|
||||||
public MinecraftClient(string username, string password, string serverip)
|
public MinecraftClient(string username, string password, string serverip)
|
||||||
{
|
{
|
||||||
|
// If the password is empty, pass an empty string to support Microsoft/Browser login
|
||||||
|
if (password == null) password = "";
|
||||||
initClient('"' + username + "\" \"" + password + "\" \"" + serverip + "\" BasicIO");
|
initClient('"' + username + "\" \"" + password + "\" \"" + serverip + "\" BasicIO");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Inner function for launching the external console application
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="arguments">Arguments to pass</param>
|
|
||||||
|
|
||||||
private void initClient(string arguments)
|
private void initClient(string arguments)
|
||||||
{
|
{
|
||||||
if (File.Exists(ExePath))
|
if (File.Exists(ExePath))
|
||||||
|
|
@ -59,7 +44,10 @@ namespace MinecraftClientGUI
|
||||||
Client.StartInfo.FileName = ExePath;
|
Client.StartInfo.FileName = ExePath;
|
||||||
Client.StartInfo.Arguments = arguments;
|
Client.StartInfo.Arguments = arguments;
|
||||||
Client.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
|
Client.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
|
||||||
Client.StartInfo.StandardOutputEncoding = Encoding.GetEncoding(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodePage);
|
|
||||||
|
// FIX: Forcing UTF-8 fixes Polish characters and colors
|
||||||
|
Client.StartInfo.StandardOutputEncoding = System.Text.Encoding.UTF8;
|
||||||
|
|
||||||
Client.StartInfo.UseShellExecute = false;
|
Client.StartInfo.UseShellExecute = false;
|
||||||
Client.StartInfo.RedirectStandardOutput = true;
|
Client.StartInfo.RedirectStandardOutput = true;
|
||||||
Client.StartInfo.RedirectStandardInput = true;
|
Client.StartInfo.RedirectStandardInput = true;
|
||||||
|
|
@ -69,66 +57,58 @@ namespace MinecraftClientGUI
|
||||||
Reader = new Thread(new ThreadStart(t_reader));
|
Reader = new Thread(new ThreadStart(t_reader));
|
||||||
Reader.Start();
|
Reader.Start();
|
||||||
}
|
}
|
||||||
else throw new FileNotFoundException("Cannot find Minecraft Client Executable!", ExePath);
|
else throw new FileNotFoundException("Nie znaleziono pliku MinecraftClient.exe!", ExePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Thread for reading output and app messages from the console
|
|
||||||
/// </summary>
|
|
||||||
|
|
||||||
private void t_reader()
|
private void t_reader()
|
||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string line = "";
|
if (Client.HasExited) { disconnected = true; break; }
|
||||||
while (line.Trim() == "")
|
|
||||||
|
string line = Client.StandardOutput.ReadLine();
|
||||||
|
if (line != null)
|
||||||
{
|
{
|
||||||
line = Client.StandardOutput.ReadLine() + Client.MainWindowTitle;
|
if (line.Trim() != "")
|
||||||
if (line.Length > 0)
|
|
||||||
{
|
{
|
||||||
if (line == "Server was successfuly joined.") { disconnected = false; }
|
if (line.Contains("Server was successfuly joined")) { disconnected = false; }
|
||||||
if (line == "You have left the server.") { disconnected = true; }
|
if (line.Contains("You have left the server")) { disconnected = true; }
|
||||||
if (line[0] == (char)0x00)
|
|
||||||
|
if (line.Length > 0 && line[0] == (char)0x00)
|
||||||
{
|
{
|
||||||
//App message from the console
|
|
||||||
string[] command = line.Substring(1).Split((char)0x00);
|
string[] command = line.Substring(1).Split((char)0x00);
|
||||||
switch (command[0].ToLower())
|
if (command[0].ToLower() == "autocomplete")
|
||||||
{
|
{
|
||||||
case "autocomplete":
|
if (command.Length > 1) { tabAutoCompleteBuffer.AddLast(command[1]); }
|
||||||
if (command.Length > 1) { tabAutoCompleteBuffer.AddLast(command[1]); }
|
else tabAutoCompleteBuffer.AddLast("");
|
||||||
else tabAutoCompleteBuffer.AddLast("");
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else OutputBuffer.AddLast(line);
|
else
|
||||||
|
{
|
||||||
|
OutputBuffer.AddLast(line);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else { Thread.Sleep(10); } // Small pause to avoid overloading the CPU
|
||||||
}
|
}
|
||||||
catch (NullReferenceException) { break; }
|
catch (Exception) { break; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Get the first queuing output line to print
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
|
|
||||||
public string ReadLine()
|
public string ReadLine()
|
||||||
{
|
{
|
||||||
while (OutputBuffer.Count < 1) { }
|
while (OutputBuffer.Count < 1)
|
||||||
|
{
|
||||||
|
if (disconnected) return "";
|
||||||
|
Thread.Sleep(10); // Save CPU while waiting for data
|
||||||
|
}
|
||||||
string line = OutputBuffer.First.Value;
|
string line = OutputBuffer.First.Value;
|
||||||
OutputBuffer.RemoveFirst();
|
OutputBuffer.RemoveFirst();
|
||||||
return line;
|
return line;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Complete a playername or a command, usually by pressing the TAB key
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="text_behindcursor">Text to complete</param>
|
|
||||||
/// <returns>Returns an autocompletion for the provided text</returns>
|
|
||||||
|
|
||||||
public string tabAutoComplete(string text_behindcursor)
|
public string tabAutoComplete(string text_behindcursor)
|
||||||
{
|
{
|
||||||
tabAutoCompleteBuffer.Clear();
|
tabAutoCompleteBuffer.Clear();
|
||||||
|
|
@ -136,7 +116,12 @@ namespace MinecraftClientGUI
|
||||||
{
|
{
|
||||||
text_behindcursor = text_behindcursor.Trim();
|
text_behindcursor = text_behindcursor.Trim();
|
||||||
SendText((char)0x00 + "autocomplete" + (char)0x00 + text_behindcursor);
|
SendText((char)0x00 + "autocomplete" + (char)0x00 + text_behindcursor);
|
||||||
int maxwait = 30; while (tabAutoCompleteBuffer.Count < 1 && maxwait > 0) { Thread.Sleep(100); maxwait--; }
|
int maxwait = 30;
|
||||||
|
while (tabAutoCompleteBuffer.Count < 1 && maxwait > 0)
|
||||||
|
{
|
||||||
|
Thread.Sleep(100);
|
||||||
|
maxwait--;
|
||||||
|
}
|
||||||
if (tabAutoCompleteBuffer.Count > 0)
|
if (tabAutoCompleteBuffer.Count > 0)
|
||||||
{
|
{
|
||||||
string text_completed = tabAutoCompleteBuffer.First.Value;
|
string text_completed = tabAutoCompleteBuffer.First.Value;
|
||||||
|
|
@ -148,14 +133,9 @@ namespace MinecraftClientGUI
|
||||||
else return "";
|
else return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Send a message or a command to the server
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="text">Text to send</param>
|
|
||||||
|
|
||||||
public void SendText(string text)
|
public void SendText(string text)
|
||||||
{
|
{
|
||||||
if (text != null)
|
if (text != null && !Client.HasExited)
|
||||||
{
|
{
|
||||||
text = text.Replace("\t", "");
|
text = text.Replace("\t", "");
|
||||||
text = text.Replace("\r", "");
|
text = text.Replace("\r", "");
|
||||||
|
|
@ -168,17 +148,16 @@ namespace MinecraftClientGUI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Properly disconnect from the server and dispose the client
|
|
||||||
/// </summary>
|
|
||||||
|
|
||||||
public void Close()
|
public void Close()
|
||||||
{
|
{
|
||||||
Client.StandardInput.WriteLine("/quit");
|
if (!Client.HasExited)
|
||||||
if (Reader.IsAlive) { Reader.Abort(); }
|
|
||||||
if (!Client.WaitForExit(3000))
|
|
||||||
{
|
{
|
||||||
try { Client.Kill(); } catch { }
|
Client.StandardInput.WriteLine("/quit");
|
||||||
|
if (Reader.IsAlive) { Reader.Abort(); }
|
||||||
|
if (!Client.WaitForExit(2000))
|
||||||
|
{
|
||||||
|
try { Client.Kill(); } catch { }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
|
|
@ -10,9 +10,26 @@
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>MinecraftClientGUI</RootNamespace>
|
<RootNamespace>MinecraftClientGUI</RootNamespace>
|
||||||
<AssemblyName>MinecraftClientGUI</AssemblyName>
|
<AssemblyName>MinecraftClientGUI</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
|
<TargetFrameworkProfile>
|
||||||
|
</TargetFrameworkProfile>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
|
<PublishUrl>C:\Users\Admin\Desktop\publish\</PublishUrl>
|
||||||
|
<Install>true</Install>
|
||||||
|
<InstallFrom>Disk</InstallFrom>
|
||||||
|
<UpdateEnabled>false</UpdateEnabled>
|
||||||
|
<UpdateMode>Foreground</UpdateMode>
|
||||||
|
<UpdateInterval>7</UpdateInterval>
|
||||||
|
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||||
|
<UpdatePeriodically>false</UpdatePeriodically>
|
||||||
|
<UpdateRequired>false</UpdateRequired>
|
||||||
|
<MapFileExtensions>true</MapFileExtensions>
|
||||||
|
<ApplicationRevision>3</ApplicationRevision>
|
||||||
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||||
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
|
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||||
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
|
@ -23,6 +40,7 @@
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
|
@ -32,10 +50,23 @@
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationIcon>AppIcon.ico</ApplicationIcon>
|
<ApplicationIcon>AppIcon.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ManifestCertificateThumbprint>4C76A63F11DB91E010AF3039521927BEB537A320</ManifestCertificateThumbprint>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ManifestKeyFile>MinecraftClientGUI_TemporaryKey.pfx</ManifestKeyFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<GenerateManifests>true</GenerateManifests>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<SignManifests>true</SignManifests>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
|
@ -69,7 +100,10 @@
|
||||||
<Compile Include="Properties\Resources.Designer.cs">
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<None Include="app.config" />
|
||||||
|
<None Include="MinecraftClientGUI_TemporaryKey.pfx" />
|
||||||
<None Include="Properties\Settings.settings">
|
<None Include="Properties\Settings.settings">
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
|
@ -83,6 +117,18 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="AppIcon.ico" />
|
<Content Include="AppIcon.ico" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
<ProductName>Microsoft .NET Framework 4.8 %28x86 i x64%29</ProductName>
|
||||||
|
<Install>true</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||||
|
<Install>false</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
|
@ -91,4 +137,4 @@
|
||||||
<Target Name="AfterBuild">
|
<Target Name="AfterBuild">
|
||||||
</Target>
|
</Target>
|
||||||
-->
|
-->
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace MinecraftClientGUI
|
namespace MinecraftClientGUI
|
||||||
{
|
{
|
||||||
static class Program
|
static class Program
|
||||||
{
|
{
|
||||||
|
private const string ReleasesUrl = "https://github.com/MCCTeam/Minecraft-Console-Client/releases";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Minecraft Console Client GUI by ORelio (c) 2013.
|
/// Minecraft Console Client GUI by ORelio (c) 2013.
|
||||||
/// Allows to use Minecraft Console Client in a more user friendly interface
|
/// Allows to use Minecraft Console Client in a more user friendly interface
|
||||||
|
|
@ -18,7 +19,26 @@ namespace MinecraftClientGUI
|
||||||
{
|
{
|
||||||
if (!System.IO.File.Exists(MinecraftClient.ExePath))
|
if (!System.IO.File.Exists(MinecraftClient.ExePath))
|
||||||
{
|
{
|
||||||
MessageBox.Show("File not found: " + MinecraftClient.ExePath, "Minecraft client not found", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
DialogResult result = MessageBox.Show(
|
||||||
|
"File not found: " + MinecraftClient.ExePath + Environment.NewLine + Environment.NewLine
|
||||||
|
+ "Place MinecraftClient.exe in the same folder as MinecraftClientGUI.exe." + Environment.NewLine + Environment.NewLine
|
||||||
|
+ "Download MinecraftClient.exe from:" + Environment.NewLine
|
||||||
|
+ ReleasesUrl + Environment.NewLine + Environment.NewLine
|
||||||
|
+ "Open the releases page now?",
|
||||||
|
"Minecraft client not found",
|
||||||
|
MessageBoxButtons.YesNo,
|
||||||
|
MessageBoxIcon.Error);
|
||||||
|
|
||||||
|
if (result == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Process.Start(new ProcessStartInfo(ReleasesUrl) { UseShellExecute = true });
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
46
MinecraftClientGUI/Properties/Resources.Designer.cs
generated
46
MinecraftClientGUI/Properties/Resources.Designer.cs
generated
|
|
@ -1,17 +1,17 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:4.0.30319.18046
|
// Runtime Version:4.0.30319.42000
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace MinecraftClientGUI.Properties
|
namespace MinecraftClientGUI.Properties {
|
||||||
{
|
using System;
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -19,51 +19,43 @@ namespace MinecraftClientGUI.Properties
|
||||||
// class via a tool like ResGen or Visual Studio.
|
// class via a tool like ResGen or Visual Studio.
|
||||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
// with the /str option, or rebuild your VS project.
|
// with the /str option, or rebuild your VS project.
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
internal class Resources
|
internal class Resources {
|
||||||
{
|
|
||||||
|
|
||||||
private static global::System.Resources.ResourceManager resourceMan;
|
private static global::System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
internal Resources()
|
internal Resources() {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns the cached ResourceManager instance used by this class.
|
/// Returns the cached ResourceManager instance used by this class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
internal static global::System.Resources.ResourceManager ResourceManager
|
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||||
{
|
get {
|
||||||
get
|
if (object.ReferenceEquals(resourceMan, null)) {
|
||||||
{
|
|
||||||
if ((resourceMan == null))
|
|
||||||
{
|
|
||||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MinecraftClientGUI.Properties.Resources", typeof(Resources).Assembly);
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MinecraftClientGUI.Properties.Resources", typeof(Resources).Assembly);
|
||||||
resourceMan = temp;
|
resourceMan = temp;
|
||||||
}
|
}
|
||||||
return resourceMan;
|
return resourceMan;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Overrides the current thread's CurrentUICulture property for all
|
/// Overrides the current thread's CurrentUICulture property for all
|
||||||
/// resource lookups using this strongly typed resource class.
|
/// resource lookups using this strongly typed resource class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
internal static global::System.Globalization.CultureInfo Culture
|
internal static global::System.Globalization.CultureInfo Culture {
|
||||||
{
|
get {
|
||||||
get
|
|
||||||
{
|
|
||||||
return resourceCulture;
|
return resourceCulture;
|
||||||
}
|
}
|
||||||
set
|
set {
|
||||||
{
|
|
||||||
resourceCulture = value;
|
resourceCulture = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
24
MinecraftClientGUI/Properties/Settings.Designer.cs
generated
24
MinecraftClientGUI/Properties/Settings.Designer.cs
generated
|
|
@ -1,28 +1,24 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:4.0.30319.18046
|
// Runtime Version:4.0.30319.42000
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace MinecraftClientGUI.Properties
|
namespace MinecraftClientGUI.Properties {
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.0.0")]
|
||||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
{
|
|
||||||
|
|
||||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|
||||||
public static Settings Default
|
public static Settings Default {
|
||||||
{
|
get {
|
||||||
get
|
|
||||||
{
|
|
||||||
return defaultInstance;
|
return defaultInstance;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
3
MinecraftClientGUI/app.config
Normal file
3
MinecraftClientGUI/app.config
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
|
||||||
BIN
MinecraftClientGUI/screenshot.png
Normal file
BIN
MinecraftClientGUI/screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 49 KiB |
Loading…
Add table
Add a link
Reference in a new issue