From 8f1fb753d2a909704f30810ca089f6b61be1f484 Mon Sep 17 00:00:00 2001 From: Michael Malloy Date: Sat, 6 Feb 2021 12:33:50 -0600 Subject: [PATCH] Added Unique Error for 404 HTTP Responces. Updated libWiiSharp.dll --- Sharpii.csproj.user | 2 +- Sharpii.sln | 2 +- Sharpii/Exit Codes.txt | 7 +++- Sharpii/NUSD.cs | 88 ++++++++++++++++++++++++++++++++-------- Sharpii/Sharpii.csproj | 41 +++---------------- Sharpii/libWiiSharp.dll | Bin 157696 -> 157696 bytes 6 files changed, 84 insertions(+), 56 deletions(-) diff --git a/Sharpii.csproj.user b/Sharpii.csproj.user index 5df420f..966b4ff 100644 --- a/Sharpii.csproj.user +++ b/Sharpii.csproj.user @@ -1,6 +1,6 @@  - false + true \ No newline at end of file diff --git a/Sharpii.sln b/Sharpii.sln index 3dc290d..ac89afa 100644 --- a/Sharpii.sln +++ b/Sharpii.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.29709.97 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sharpii", "Sharpii.csproj", "{A5ABD4DA-DBAB-4304-BEB1-A52BC9D6516D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sharpii", "Sharpii.csproj", "{A5ABD4DA-DBAB-4304-BEB1-A52BC9D6516D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Sharpii/Exit Codes.txt b/Sharpii/Exit Codes.txt index a006333..482528a 100644 --- a/Sharpii/Exit Codes.txt +++ b/Sharpii/Exit Codes.txt @@ -153,4 +153,9 @@ Provide a proper id. Exit Code: 16029/31 Not all files needed to pack a wad are present. (SHARPII_NET_CORE_NUSD_MISSING_FILES_01) You need to have all the required .app files, a tmd file, a tik file, and a cert file to pack a wad. -Ensure all files are present. \ No newline at end of file +Ensure all files are present. + +Exit Code: 16030/32 +Invalid ID or Missing CETK (SHARPII_NET_CORE_NUSD_REMOTE_404) +The remote server returned a 404 error. Check your Title ID. +If you have a CETK file, please place it in the same directory as Sharpii saves the NUS Files to. \ No newline at end of file diff --git a/Sharpii/NUSD.cs b/Sharpii/NUSD.cs index 39527a3..33effb4 100644 --- a/Sharpii/NUSD.cs +++ b/Sharpii/NUSD.cs @@ -25,6 +25,7 @@ namespace Sharpii { partial class NUS_Stuff { + public static int ExceptionListRan = 0; public static void NUS(string[] args) { if (args.Length < 2) @@ -319,20 +320,19 @@ namespace Sharpii } return; } - if (ex.Message == "The remote server returned an error: (404) Not Found.") + if (ExceptionListRan == 0) { + Console.WriteLine("An unknown error occured, please try again"); Console.WriteLine(""); - Console.WriteLine("The ID is not a valid title ID"); - Console.WriteLine(""); - Console.WriteLine("Error: SHARPII_NET_CORE_NUSD_BAD_ID_01"); - Console.WriteLine(""); + Console.WriteLine("ERROR DETAILS: {0}", ex.Message); + Console.WriteLine("Error: SHARPII_NET_CORE_NUSD_UNKNOWN_01"); if (OperatingSystem.Windows()) { - Environment.Exit(0x00003E9C); + Environment.Exit(0x00003E82); } else { - Environment.Exit(0x0000001E); + Environment.Exit(0x00000004); } return; } @@ -394,11 +394,11 @@ namespace Sharpii { if (BeQuiet.quiet > 1) Console.Write("Downloading title..."); - + string realout = output; if (wad == true) output = temp; - + nus.DownloadTitle(id, version, output, store.ToArray()); WadIosNamingStuff(wad, temp, id, version, ios, NoOut, output, realout); @@ -412,19 +412,71 @@ namespace Sharpii } catch (Exception ex) { - Console.WriteLine("An unknown error occured, please try again"); - Console.WriteLine(""); - Console.WriteLine("ERROR DETAILS: {0}", ex.Message); - Console.WriteLine("Error: SHARPII_NET_CORE_NUSD_UNKNOWN_01"); - if (OperatingSystem.Windows()) + if (ex.Message == "CETK Doesn't Exist and Downloading Ticket Failed:\nThe remote server returned an error: (404) Not Found.") { - Environment.Exit(0x00003E82); + Console.WriteLine(""); + Console.WriteLine("The remote server returned a 404 error. Check your Title ID."); + Console.WriteLine("If you have a CETK file, please place it in the same directory as Sharpii saves the NUS Files to."); + Console.WriteLine("Error: SHARPII_NET_CORE_NUSD_REMOTE_404"); + Console.WriteLine(""); + if (OperatingSystem.Windows()) + { + Environment.Exit(0x00003E9E); + } + else + { + Environment.Exit(0x00000020); + } + return; } - else + if (ex.Message == "Title ID must be 16 characters long!") { - Environment.Exit(0x00000004); + Console.WriteLine(""); + Console.WriteLine("The ID needs to be 16 Characters."); + Console.WriteLine(""); + Console.WriteLine("Error: SHARPII_NET_CORE_NUSD_BAD_ID_01"); + Console.WriteLine(""); + if (OperatingSystem.Windows()) + { + Environment.Exit(0x00003E9C); + } + else + { + Environment.Exit(0x0000001E); + } + return; + } + if (ex.Message == "Index was outside the bounds of the array.") + { + Console.WriteLine("A WebRequest Error occurred. This usually means that Sharpii can not properly download the file."); + Console.WriteLine("Please ensure you have the proper permissions."); + Console.WriteLine("Error: SHARPII_NET_CORE_NUSD_MISSING_FILES_01"); + ExceptionListRan = 1; + if (OperatingSystem.Windows()) + { + Environment.Exit(0x00003E9D); + } + else + { + Environment.Exit(0x0000001F); + } + } + if (ExceptionListRan == 0) + { + Console.WriteLine("An unknown error occured, please try again"); + Console.WriteLine(""); + Console.WriteLine("ERROR DETAILS: {0}", ex.Message); + Console.WriteLine("Error: SHARPII_NET_CORE_NUSD_UNKNOWN_01"); + if (OperatingSystem.Windows()) + { + Environment.Exit(0x00003E82); + } + else + { + Environment.Exit(0x00000004); + } + return; } - return; } return; diff --git a/Sharpii/Sharpii.csproj b/Sharpii/Sharpii.csproj index 04b99cf..6b0fef7 100644 --- a/Sharpii/Sharpii.csproj +++ b/Sharpii/Sharpii.csproj @@ -11,8 +11,6 @@ Sharpii Sharpii v2.0 - - 512 false publish\ @@ -29,6 +27,12 @@ 1.0.0.%2a false true + true + true + true + link + Size + true x86 @@ -55,10 +59,6 @@ .\libWiiSharp.dll - - - - @@ -69,27 +69,6 @@ - - - - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - False - Windows Installer 3.1 - true - @@ -101,12 +80,4 @@ WadInstaller - - \ No newline at end of file diff --git a/Sharpii/libWiiSharp.dll b/Sharpii/libWiiSharp.dll index 9081b8c8bf6b9e2e78e95fd3d6a89e0320df58b5..c686c11eb9fb596b2b6a75df75739bd3021e7e43 100644 GIT binary patch delta 30379 zcmcJ&2YggT_wYYwHrZ@8n`C=>FQgYpC83vqgc3T^n}PxfOHqn$f*6_z;Q|W*6;MQa zCl(Y`6cI&GR4h~xF&0F?2I~Kuxs%OCp7Q(u-uLDCJSX!#XXZ>hGjs3VyKCi1-^!D| zOXqtP|KvTQ=8154zGm})fWEUi>&ft6C1;1dYGN#gb(|TH!)I|8uEg*(We_yu6NV~t zAQ28Ln_)o6d@Mu%y5Rpg^JZP{1$H_b7`WOE<@tMi@gY{84SRRkn;Y~qfK})<=~~A; zr9L(aY7~83J6NNX#znz?Wdh3gm39fC%JXqY;0q-xv6-?gzH>@rAu4V6D^RGW@-Ccd z%YOr=^{Fjy$CzI0s8M)AYxo*noP{s;MkR)GxSD+|j40*-l-32(8?)7%f4f;R$v#bBIcN zQ^SWk*IBZ{wpJ&nSY`ice-~Q}5uop^VNX?<+Dz&tA?H-mhj- zpZv1OVf!r68ADdM@>o_jhRgn}*^sHM%#Ks~Ww(VYOpS(*ls~fH3r+BC=uv=onk~RP zD8m@w9h~9kcxdm1=0=_2BHAnaW0M_m`n`8rYBhYUURm8CNl9yMglCmjt%G5&(!X^A zysFG@ouWOjXB8$N#n>T;+x(QbS{L$Ge#_eAYRCGa-k0>+XVhe6`(&TiUNj-cmHBOk zXu*Iv^dd)BHHkTtthNF0n9`kS1ksz z;Nb0SmjlO@%k5^sb!AxlaGo5X%x>QT`Y5~F--~YjI)rQA3P4YRN@e>brC*2k@cZ6X z9j0>Vs$49!DAAoG+$sNP$H+id;TVge{9%lM^64m2B6-pwTqr4>9V3-TJGX-emBXFi zgK5g*k|{82FLZHmKX*hroXVs3#Q04^4@vW}FfQ~h_vGWGUAm`BlU%vo(wgL&&@B_3 z%Gz!rnD;=ptGG2hQ`%0nEQ*_q3h$o7ql`*H_treYs65=gH?HjC-3MVS5_%lO^rap{ zG2OQ3CQ-y{c$(@q8L=~1Sl25eAPUn-v}Vj22RdreE5Rp$%;;@+uTbeCF&5=;|7VTQSUj?6Wn1SDNHAXiSB4JNH4Iil}tZSI}qa|{^ANn|~rH5FG@c}Lu>g9iB(c#93KUio3*#;7bi z&PfNHleFgCQGg&fXDZAc7j?Wd-{ZanCf?36eBrTTWj!{ah`-8K0p+@$A)Q&62awD}T`H-f02&?c)T8e(s z{T(esl(GrdNIyqw)H-^g&?N0gli|_MDE;jgFYef&ym)^+oKVi*9|J!tf8U?M+lMNd zWHIXF?n5aYTpVh{lkA9MKd6kM{6ci*O=zYM%C(r~CklM8^;+Q-?{% z)P@vyENogp%KaGz`XdIz`4g!V^wN{H2D|rtz%WBN28vdF8uAyE0K%5~+$5?9-nfVdQ!3RQf z8s{v)>&fv!nRxV1iD=s7{m5#QWfhA4!FG0^$R@dh{8C4AM^9zsgVqAqKTQ6qg=lK3 z#H0V83YW6|!Db)=$8=ZVD1SZJG4SqS35E^I0~0cxZ#H%2_!HS=DDR7Nm_!q+w%@yP zrqz&m^xuTUU1KSth#YyiD1Qn0T#?0}&kA3RGn1zANl)UA%%~;<<0w~hCMNI`Amc6a7bA>DHGFgPom{R~!{7#zrUMrf^3>tg@{l+mac3ce{S7=;)C-#uP)D zJ5El7$;yM1TLieUNYX1fh#L}u9nUD+CWqRdMb(C+S5a4vm)BaK^v>L|UHM{ix18%u z{o5^xsm;AjKBmN4bc%kKU>Px~X*Rc7xz`cPbK`L2!_Dp)Op3*v+%Y+h;@{F3|6H!e z6y*y?l-E_w;%UlXjt}6_-V;+E06hB&r%myOv�F-BI42=}gX!clWph&Kr01`-dW_ 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 LQa=t3B*Vh!xa`H(nJM8 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