ATTENTION: PatchCraft has become old and outdated, and I no longer have the time to keep up with it, so I regret to inform you that I will be removing service for PatchCraft until further notice. I might reinstate it at some point, but I make no promises. What does this mean, you may ask: Users of PatchCraft will no longer be able to use it, and I am removing access to the download link to it.
For information's sake, I'm leaving the rest of the post here, minus a few links:
Introducing PatchCraft V 2.1!The most user-friendly version switcher.
PatchCraft has a Facebook page! Go here to like it!
Features:
Ensures the user has already bought the game by
using Minecraft login authentication.
Switch to almost any version released for Minecraft:
Release, Beta, Alpha, Snapshots, even indev and infdev!
If a new patch arrives, no need to update PatchCraft!
Patch info is handled via online database, so once
it hits, I add it to the database, and you're all set!
View Patch descriptions in a self-updating window.
Click a version, and view.
View your character in 3D!
Start Minecraft directly from PatchCraft.
Take Minecraft to go with the new PatchCraft Portable Launcher.
Performs backup before every switching operation.
Restore backup if an operation fails, or the patch doesn't work.
Automatically restores backup if a switch is cancelled.
Save your own modded JAR files for easy mod switching.
Remove saved modded JARs that are no longer needed.
If all else fails, you can always revert to the latest patch!
New in 2.1:
PatchCraft will now detect missing extension files and re-install them.
PatchCraft will now detect outdated extension files and re-install them.
The patcher is now downloaded to run, so the user will always have the latest patcher.
The patcher now supports adding/removing extension files.
PatchCraft's Character Viewer now correctly requires a DirectX 9 compatible graphics card. (99.99, repeating of course, percent of decently new computers have this.)
Do you think you could post the source code? When I try running this with wine, it says it uses raw sockets, so I'm a bit concerned. Thanks in advance.
PatchCraft uses .NET 4.0's WebClient and Ping classes to perform its network functions. I don't use manual socket functions, if that's what you mean.
public void BeginLoad()
{
downloadClient = new WebClient();
progressChangedHandler = new DownloadProgressChangedEventHandler(AdjustProgressBar);
downloadCompletedHandler = new AsyncCompletedEventHandler(HandleFinishedDownload);
downloadClient.DownloadProgressChanged += progressChangedHandler;
downloadClient.DownloadFileCompleted += downloadCompletedHandler;
downloads = new string[15, 2];
AddDownloadToQueue(<DATA FILE SOURCE>, <DATA FILE DEST>);
AddDownloadToQueue(<DATA FILE SOURCE>, <DATA FILE DEST>);
AddDownloadToQueue(<DATA FILE SOURCE>, <DATA FILE DEST>);
AddDownloadToQueue(<DATA FILE SOURCE>, <DATA FILE DEST>);
AddDownloadToQueue(<DATA FILE SOURCE>, <DATA FILE DEST>);
AddDownloadToQueue(<DATA FILE SOURCE>, <DATA FILE DEST>);
Download();
}
public void AddDownloadToQueue(string source, string destination)
{
downloads[currentQueueIndex, 0] = source;
downloads[currentQueueIndex, 1] = destination;
currentQueueIndex++;
}
public void Download()
{
downloadBar.Maximum = 20 * currentQueueIndex;
int len = downloads.Length / 2;
if (IsConnectedToInternet)
{
downloadClient.DownloadFileAsync(new Uri(downloads[0, 0]), downloads[0, 1]);
}
else
{
MessageBox.Show("Error: PatchCraft must have an active internet connection to operate.", "Error: No Internet Connection");
this.Exit(this, null);
}
}
public bool IsConnectedToInternet
{
get
{
string host = <PING LOCATION>;
int tries = 0;
bool result = false;
do
{
Ping p = new Ping();
try
{
PingReply reply = p.Send(host, 3000);
if (reply.Status == IPStatus.Success)
result = true;
else
{
tries++;
Thread.Sleep(1000);
}
}
catch { tries++; Thread.Sleep(1000); }
} while (!result && tries < 3);
return result;
}
}
Some of the code (mostly download locations) has been altered to protect PatchCraft and the resources with which it operates. You will see these changes in caps surrounded with <>.
EDIT: I just read up on a software called "wine." Turns out that's what you meant. It is possible that the alternate functions that Wine provides do take WebClient and Ping down to a socket level. I don't know for sure. PatchCraft is currently intended to work for Windows only, but is planned for porting to Mac and Linux.
Do you have .NET 4.0? And I am assuming by "wine" you mean "mine," right? PatchCraft uses .NET 4.0's WebClient and Ping classes to perform its network functions. I don't use manual socket functions, if that's what you mean.
public void BeginLoad()
{
downloadClient = new WebClient();
progressChangedHandler = new DownloadProgressChangedEventHandler(AdjustProgressBar);
downloadCompletedHandler = new AsyncCompletedEventHandler(HandleFinishedDownload);
downloadClient.DownloadProgressChanged += progressChangedHandler;
downloadClient.DownloadFileCompleted += downloadCompletedHandler;
downloads = new string[15, 2];
AddDownloadToQueue(<DATA FILE SOURCE>, <DATA FILE DEST>);
AddDownloadToQueue(<DATA FILE SOURCE>, <DATA FILE DEST>);
AddDownloadToQueue(<DATA FILE SOURCE>, <DATA FILE DEST>);
AddDownloadToQueue(<DATA FILE SOURCE>, <DATA FILE DEST>);
AddDownloadToQueue(<DATA FILE SOURCE>, <DATA FILE DEST>);
AddDownloadToQueue(<DATA FILE SOURCE>, <DATA FILE DEST>);
Download();
}
public void AddDownloadToQueue(string source, string destination)
{
downloads[currentQueueIndex, 0] = source;
downloads[currentQueueIndex, 1] = destination;
currentQueueIndex++;
}
public void Download()
{
downloadBar.Maximum = 20 * currentQueueIndex;
int len = downloads.Length / 2;
if (IsConnectedToInternet)
{
downloadClient.DownloadFileAsync(new Uri(downloads[0, 0]), downloads[0, 1]);
}
else
{
MessageBox.Show("Error: PatchCraft must have an active internet connection to operate.", "Error: No Internet Connection");
this.Exit(this, null);
}
}
public bool IsConnectedToInternet
{
get
{
string host = <PING LOCATION>;
int tries = 0;
bool result = false;
do
{
Ping p = new Ping();
try
{
PingReply reply = p.Send(host, 3000);
if (reply.Status == IPStatus.Success)
result = true;
else
{
tries++;
Thread.Sleep(1000);
}
}
catch { tries++; Thread.Sleep(1000); }
} while (!result && tries < 3);
return result;
}
}
Some of the code (mostly download locations) has been altered to protect PatchCraft and the resources with which it operates. You will see these changes in caps surrounded with <>.
EDIT: I just read up on a software called "wine." Turns out that's what you meant. It is possible that the alternate functions that Wine provides do take WebClient and Ping down to a socket level. I don't know for sure. PatchCraft is currently intended to work for Windows only, but is planned for porting to Mac and Linux.
Thanks, I'm guessing that the pinging is what triggered it, since it uses ICMP instead of TCP or UDP. Windows doesn't like using raw sockets with normal users, so I'm guessing that your program won't work unless its being run by the Administrator account. If I'm right, you could alternatively try and fetch a web page from a site that you know will always be up. Thanks for the reply, and good luck on the Linux and Mac versions.
So the Ping operation can only be done on an administrator account? I hadn't thought to test PatchCraft on an average account. Will test later tonight and edit with results.
Rollback Post to RevisionRollBack
The most user friendly version switcher: Get it here!
I just tested PatchCraft with a non-administrator account, and the only real problem is the same problem we all have (admin or not) with independently written programs: User Account Control. This is that little window that pops up asking "Do you want this program to make changes to your computer?" So far of what I have read, this is negated by obtaining a certificate and signing the program. I have just asked about this, and it turns out the .NET Ping function may use raw sockets, but .NET circumvents its own security to allow non-admins to use it. Raw sockets do still require admin privileges, though.
I expect to hit my hundredth download link as I sleep tonight, so I bring the 100th Download Anniversary Gift a little soon... A sneak peek of PatchCraft 2.0:
Excelent, i have been playing since 1.2.5 (yea im kinda n00by) and this seems really good, i always wanted to know what life was like in the alpha days....
THANK YOU SO MUCH (looks A LOT easier than McNostalgia)
I downloaded it and am trying to play Indef, but for some reason when I go into the Minecraft launcher, I go to 1.2.5. Can you make a tutorial for how to use this? (Sorry, I am a noob).
I downloaded it and am trying to play Indef, but for some reason when I go into the Minecraft launcher, I go to 1.2.5. Can you make a tutorial for how to use this? (Sorry, I am a noob).
Apologies for a lack of replies... Was busy with other things. A portable Minecraft was a planned feature for PatchCraft 2.0, but development has unexpectedly halted due to a feature I can't get working, among other problems. There's just not enough added to release it. I will be on the lookout for other potential features, so if you have an idea, please post it!
Rollback Post to RevisionRollBack
The most user friendly version switcher: Get it here!
This is awful compared to MCNostalgia, especially because this isn't compatible for macs, thanks, but no thanks, I'll wait for MCN to update now
While I by no means discourage opinions, I would greatly appreciate it if you were a bit more mature about it. Walking in and posting absolutely nothing but garbage about how "awful" my work is just isn't the criticism I accept. I wouldn't do the same if I were posting about your work. Next, if you had paid attention to previous posts, you would have found that I fully intend to port this to other platforms. Lastly, if you wanted this program to die so badly, you should not have posted this at all and kept the topic off the first page, because despite your opinion, I received a massive spike in downloads only minutes after you posted. So all in all I realize I should actually be thanking you.
Thanks to jasonrogue, I have two things to celebrate: 200 downloads and a second forum page, so here's another sneak peek at PatchCraft 2.0:
My mouth dropped when I saw the name of this tool was coincidentally the same I used for a texture pack (and later a server and website) I made about a year ago. Funny.
For information's sake, I'm leaving the rest of the post here, minus a few links:
Introducing PatchCraft V 2.1!The most user-friendly version switcher.
PatchCraft has a Facebook page! Go here to like it!
Features:
it hits, I add it to the database, and you're all set!
Official Trailer: <LINK REMOVED>
Download link: <LINK REMOVED>
Comments and constructive criticism very welcome. Have a feature idea? Let me know and post it![represent]
CHANGE YER DOWNLOAD LINKS MATES
"The hull has been breached, and the science is leaking out!!!"-Scientist
Some of the code (mostly download locations) has been altered to protect PatchCraft and the resources with which it operates. You will see these changes in caps surrounded with <>.
EDIT: I just read up on a software called "wine." Turns out that's what you meant. It is possible that the alternate functions that Wine provides do take WebClient and Ping down to a socket level. I don't know for sure. PatchCraft is currently intended to work for Windows only, but is planned for porting to Mac and Linux.
Thanks, I'm guessing that the pinging is what triggered it, since it uses ICMP instead of TCP or UDP. Windows doesn't like using raw sockets with normal users, so I'm guessing that your program won't work unless its being run by the Administrator account. If I'm right, you could alternatively try and fetch a web page from a site that you know will always be up. Thanks for the reply, and good luck on the Linux and Mac versions.
I expect to hit my hundredth download link as I sleep tonight, so I bring the 100th Download Anniversary Gift a little soon... A sneak peek of PatchCraft 2.0:
<Picture Removed>
THANK YOU SO MUCH (looks A LOT easier than McNostalgia)
Thanks.
Nevermind
Beta is AWESOME!!!!!
While I by no means discourage opinions, I would greatly appreciate it if you were a bit more mature about it. Walking in and posting absolutely nothing but garbage about how "awful" my work is just isn't the criticism I accept. I wouldn't do the same if I were posting about your work. Next, if you had paid attention to previous posts, you would have found that I fully intend to port this to other platforms. Lastly, if you wanted this program to die so badly, you should not have posted this at all and kept the topic off the first page, because despite your opinion, I received a massive spike in downloads only minutes after you posted. So all in all I realize I should actually be thanking you.
Thanks to jasonrogue, I have two things to celebrate: 200 downloads and a second forum page, so here's another sneak peek at PatchCraft 2.0:
<Picture Removed>