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.
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.
Figured I should say this since multiple people are having the same problem as I am when it comes to downgrading to 1.0. Here's what comes up in the command console when I try to downgrade.
Traceback <most recent call last>:
File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module>
File "MCNostalgia2.1.0.py", line 27, in <module>
if mcn.checkOrig<version> :
File "mcnostalgialib.py", line 86, in checkOrig
hashinfo = self.getInfoForHashing<version>
File "mcnostalgialib.py", line 106, in getInfoForHashing
checksumdict = json.loads<file_read>
File "C:\Python27\lib\json\___init___.py", line 326, in loads
File "C:\Python27\lib\json\decoder.py", line 366, in decode
File "C:\Python27\lib\json\decoder.py", line 384, in raw_decode
ValueError: No JSON object could be decoded
Thanks for providing the traceback, it does indeed help. Also, have you deleted everything in the patches folder? Including the folders inside the patches folder?
The link is back up. Until the OP is updated, here you go: indieis.me/iimsites/mcnostalgia/MCNostalgia2.1.0.zip (SORRY OP, don't remember the adfly link, I'll remove this once you have reposted the link.)
EDIT: Also, what license is this program under? Are other people allowed to use your code or similar for other applications? (Credit given)
Thanks for putting the link up until I was able to. I haven't decided what license its under, but your asking will definitely speed up the decision But go ahead and take that link down now. Thanks.
When I try to backdate Minecraft, it says my version is not vanilla. I deleted my whole .minecraft folder and reinstalled it from minecraft.net. When I ran MCNostalgia again, it displayed the same error message. Can you help? I have MCNostalgia 2.1.0 and minecraft 1.2.3.
For all those who are having issues with MCNostalgia saying your minecraft is not vanilla, try deleting everything in your patches folder, and run MCNostalgia again. If that doesn't work, delete your copy of MCNostalgia, download a fresh copy of it and try again.
U LITTLE PIECE OF CRAP!
Thought you could get away with giving out software with a viris did you?! No more! *Reports*
Just to let you know, I include the source code to the program inside the zip file. Go ahead and check the source, you will find no viruses.
It's probably just adf.ly, and like other people have said, the problem is gone now
Downloading minecraft.ptch
Downloading lwjgl.ptch
Downloading checksum.json
Downloading lwjgl_util.ptch
Downloading jinput.ptch
Thank you. Now patching to version 1.1
Traceback (most recent call last):
File "/home/myusername/Mcn/mcnostalgialib.py", line 64, in patch
subprocess.call([self.execute, origfile, outputfile, patchfile])
File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1239, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
You got an OSError. Since you are running Linux, you probably are missing the ospatch command. In most distributions, it is in the bsdiff package. Please install this and try again
minecraft.jar was not patched successfully.
Patching failed, if you get stuck at the 'Done Loading' screen, this is why. You probably didn't have a fresh vanilla minecraft before you started.
I keep getting this error on Ubuntu 10.10
Any help?
Heh, the ospatch is a typo, it should be bspatch. I'll fix the typo next time I update MCNostalgia.
it also says that it doesn't have all the files in the bin folder... i try to delete and keeps updating back
It's supposed to update after you delete the bin folder. MCNostalgia needs it to be the current version in order to downgrade. So after it updates, run MCNostalgia again.
Can you put the full output of the program in a code box inside a spoiler box?
Also, if you are on a mac, it seems the default python doesn't work. If you are on a mac, please follow the tutorial on the front page.
0
I'd like to know where you downloaded that, because that is not the correct file size.
0
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.
0
0
You need to use Python 2.x. I believe the mac tutorial in the first post shows you how to set that up.
0
Can you please post the entire output? I need that to see what is wrong.
It's already there.
0
Download should be fixed now.
0
Thanks for providing the traceback, it does indeed help. Also, have you deleted everything in the patches folder? Including the folders inside the patches folder?
0
Thanks for putting the link up until I was able to. I haven't decided what license its under, but your asking will definitely speed up the decision
0
Working on it.
0
For all those who are having issues with MCNostalgia saying your minecraft is not vanilla, try deleting everything in your patches folder, and run MCNostalgia again. If that doesn't work, delete your copy of MCNostalgia, download a fresh copy of it and try again.
3
Just to let you know, I include the source code to the program inside the zip file. Go ahead and check the source, you will find no viruses.
It's probably just adf.ly, and like other people have said, the problem is gone now
0
Heh, the ospatch is a typo, it should be bspatch. I'll fix the typo next time I update MCNostalgia.
0
It's supposed to update after you delete the bin folder. MCNostalgia needs it to be the current version in order to downgrade. So after it updates, run MCNostalgia again.
0
Can you put the full output of the program in a code box inside a spoiler box?
Also, if you are on a mac, it seems the default python doesn't work. If you are on a mac, please follow the tutorial on the front page.
0