mirror of
				https://github.com/Neocky/pluGET.git
				synced 2024-04-29 16:12:30 +00:00 
			
		
		
		
	Add error handling to "check serverjar" command on paper servers. Fixes use assignment issues when detection doesn't work.
This commit is contained in:
		| @@ -15,6 +15,8 @@ from utils.utilities import createTempPluginFolder, deleteTempPluginFolder, calc | ||||
|  | ||||
| # = 1.16.5 | ||||
| def getInstalledPaperMinecraftVersion(localPaperName): | ||||
|     if localPaperName is None: | ||||
|         return False | ||||
|     mcVersionFull = re.search(r'(\d*\.*\d)+', localPaperName) | ||||
|     try: | ||||
|         mcVersion = mcVersionFull.group() | ||||
| @@ -25,6 +27,8 @@ def getInstalledPaperMinecraftVersion(localPaperName): | ||||
|  | ||||
| # = 550 | ||||
| def getInstalledPaperVersion(localPaperName): | ||||
|     if localPaperName is None: | ||||
|         return False | ||||
|     paperBuildFull = re.search(r'([\d]*.jar)', localPaperName) | ||||
|     try: | ||||
|         paperBuild = paperBuildFull.group() | ||||
| @@ -36,52 +40,51 @@ def getInstalledPaperVersion(localPaperName): | ||||
|  | ||||
| def findVersionGroup(mcVersion): | ||||
|     versionGroups = ['1.16', '1.15'] | ||||
|     versionGroupFound = False | ||||
|     if mcVersion is None: | ||||
|         return False | ||||
|     for versionGroup in versionGroups: | ||||
|         if versionGroupFound == True: | ||||
|             break | ||||
|         url = f"https://papermc.io/api/v2/projects/paper/version_group/{versionGroup}/builds" | ||||
|         papermcdetails = doAPIRequest(url) | ||||
|         papermcVersionForMc = papermcdetails["versions"] | ||||
|         for versions in papermcVersionForMc: | ||||
|             if versions == mcVersion: | ||||
|                 versionGroupFound = True | ||||
|                 paperVersionGroup = versionGroup | ||||
|                 break | ||||
|                 return paperVersionGroup | ||||
|             if versionGroup == mcVersion: | ||||
|                 versionGroupFound = True | ||||
|                 paperVersionGroup = versionGroup | ||||
|                 break | ||||
|  | ||||
|     return paperVersionGroup | ||||
|                 return paperVersionGroup | ||||
|     return False  # Not found | ||||
|  | ||||
|  | ||||
| def findBuildVersion(wantedPaperBuild): | ||||
|     versionGroups = ['1.16', '1.15'] | ||||
|     paperBuildFound = False | ||||
|     if wantedPaperBuild is None: | ||||
|         return False | ||||
|     for versionGroup in versionGroups: | ||||
|         if paperBuildFound is True: | ||||
|             break | ||||
|         url = f"https://papermc.io/api/v2/projects/paper/version_group/{versionGroup}/builds" | ||||
|         papermcdetails = doAPIRequest(url) | ||||
|         paperMcBuilds = papermcdetails["builds"] | ||||
|         for build in paperMcBuilds: | ||||
|             paperBuild = str(build["build"]) | ||||
|             if paperBuild == wantedPaperBuild: | ||||
|                 paperBuildFound = True | ||||
|                 paperVersionGroup = build["version"] | ||||
|                 break | ||||
|     return paperVersionGroup | ||||
|  | ||||
|                 return paperVersionGroup | ||||
|     return False  # Not found | ||||
|  | ||||
| def findLatestBuild(paperVersionGroup): | ||||
|     if paperVersionGroup is None: | ||||
|         return False | ||||
|     url = f"https://papermc.io/api/v2/projects/paper/version_group/{paperVersionGroup}/builds" | ||||
|     papermcbuilds = doAPIRequest(url) | ||||
|     if papermcbuilds["status"] == 404: | ||||
|         return False | ||||
|     latestPaperBuild = papermcbuilds["builds"][-1]["build"] | ||||
|     return latestPaperBuild | ||||
|  | ||||
|  | ||||
| def findLatestBuildForVersion(mcVersion): | ||||
|     if mcVersion is None: | ||||
|         return False | ||||
|     url = f"https://papermc.io/api/v2/projects/paper/versions/{mcVersion}" | ||||
|     papermcbuilds = doAPIRequest(url) | ||||
|     latestPaperBuild = papermcbuilds["builds"][-1] | ||||
| @@ -89,6 +92,8 @@ def findLatestBuildForVersion(mcVersion): | ||||
|  | ||||
|  | ||||
| def versionBehind(installedPaperBuild, latestPaperBuild): | ||||
|     if installedPaperBuild or latestPaperBuild is None: | ||||
|         return False | ||||
|     installedPaperBuildint = int(installedPaperBuild) | ||||
|     latestPaperBuildint = int(latestPaperBuild) | ||||
|     versionsBehind = latestPaperBuildint - installedPaperBuildint | ||||
| @@ -96,6 +101,8 @@ def versionBehind(installedPaperBuild, latestPaperBuild): | ||||
|  | ||||
|  | ||||
| def getDownloadFileName(paperMcVersion, paperBuild): | ||||
|     if paperMcVersion or paperBuild is None: | ||||
|         return False | ||||
|     url = f"https://papermc.io/api/v2/projects/paper/versions/{paperMcVersion}/builds/{paperBuild}" | ||||
|     buildDetails = doAPIRequest(url) | ||||
|     downloadName = buildDetails["downloads"]["application"]["name"] | ||||
| @@ -104,11 +111,48 @@ def getDownloadFileName(paperMcVersion, paperBuild): | ||||
|  | ||||
| def paperCheckForUpdate(installedServerjarFullName): | ||||
|     mcVersion = getInstalledPaperMinecraftVersion(installedServerjarFullName) | ||||
|  | ||||
|     # Report an error if getInstalledPaperMinecraftVersion encountered an issue. | ||||
|     if not mcVersion: | ||||
|         print(oColors.brightRed + f"ERR: An error was encountered while detecting the server's Minecraft version." + | ||||
|               oColors.standardWhite) | ||||
|         return False | ||||
|  | ||||
|     paperInstalledBuild = getInstalledPaperVersion(installedServerjarFullName) | ||||
|  | ||||
|     # Report an error if getInstalledPaperVersion encountered an issue. | ||||
|     if not paperInstalledBuild: | ||||
|         print(oColors.brightRed + f"ERR: An error was encountered while detecting the server's Paper version." + | ||||
|               oColors.standardWhite) | ||||
|         return False | ||||
|  | ||||
|     versionGroup = findVersionGroup(mcVersion) | ||||
|  | ||||
|     # Report an error if findVersionGroup encountered an issue. | ||||
|     if not versionGroup: | ||||
|         print(oColors.brightRed + f"ERR: An error was encountered while fetching the server's version group." + | ||||
|               oColors.standardWhite) | ||||
|         return False | ||||
|  | ||||
|     paperLatestBuild = findLatestBuild(versionGroup) | ||||
|  | ||||
|     # Report an error if findLatestBuild encountered an issue. | ||||
|     if not paperLatestBuild: | ||||
|         print(oColors.brightRed + f"ERR: An error was encountered while fetching the latest version of PaperMC." + | ||||
|               oColors.standardWhite) | ||||
|         return False  # Not currently handled, but can be at a later date. Currently just stops the following from | ||||
|     #                   being printed. | ||||
|  | ||||
|     paperVersionBehind = versionBehind(paperInstalledBuild, paperLatestBuild) | ||||
|  | ||||
|     # Report an error if getInstalledPaperVersion encountered an issue. | ||||
|     if not paperVersionBehind: | ||||
|         print(oColors.brightRed + f"ERR: An error was encountered while detecting how many versions behind you are. " | ||||
|                                   f"Will display as False." + oColors.standardWhite) | ||||
|         # Does not return false as versions behind doesn't break things. It is just helpful information. | ||||
|         # paperVersionBehind will just display as "False" | ||||
|  | ||||
|  | ||||
|     print("┌─────┬────────────────────────────────┬──────────────┬──────────────┬───────────────────┐") | ||||
|     print("│ No. │ Name                           │ Installed V. │ Latest V.    │ Versions behind   │") | ||||
|     print("└─────┴────────────────────────────────┴──────────────┴──────────────┴───────────────────┘") | ||||
| @@ -172,8 +216,8 @@ def papermc_downloader(paperBuild='latest', installedServerjarName=None, mcVersi | ||||
|         else: | ||||
|             sftpSession = createSFTPConnection() | ||||
|             sftp_upload_server_jar(sftpSession, downloadPackagePath) | ||||
|          | ||||
|  | ||||
|         deleteTempPluginFolder(downloadPath) | ||||
|  | ||||
|     print(oColors.brightGreen + "Downloaded successfully " + oColors.standardWhite + f"Paper {paperBuild}" + \ | ||||
|     oColors.brightGreen + " for " + oColors.standardWhite + f"{mcVersion}" + oColors.standardWhite) | ||||
|           oColors.brightGreen + " for " + oColors.standardWhite + f"{mcVersion}" + oColors.standardWhite) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zander
					Zander