|
| 1 | +import java.nio.file.Files |
| 2 | +import java.security.MessageDigest |
| 3 | + |
1 | 4 | plugins { |
2 | 5 | id 'java-base' |
3 | 6 | } |
@@ -105,14 +108,66 @@ File clientFile = new File(project.rootDir, "client" + File.separator + |
105 | 108 | "libs" + File.separator + project['reindev.clientJar']) |
106 | 109 |
|
107 | 110 | if (!clientFile.exists()) { |
108 | | - println("Downloading client...") |
109 | | - download(new URL(project['reindev.clientUrl'] as String), clientFile) |
| 111 | + println("Downloading client from " + project['reindev.clientUrl']) |
| 112 | + |
| 113 | + for (int i = 0; i < 2; i++) { // Max 1 retry for downloading |
| 114 | + if (i > 0) { |
| 115 | + println("Retrying download in 1 second...") |
| 116 | + Thread.sleep(1000); |
| 117 | + } |
| 118 | + |
| 119 | + download(new URL(project['reindev.clientUrl'] as String), clientFile) |
| 120 | + |
| 121 | + byte[] data = Files.readAllBytes(clientFile.toPath()) |
| 122 | + byte[] hash = MessageDigest.getInstance("SHA-256").digest(data) |
| 123 | + String hashString = new BigInteger(1, hash).toString(16) |
| 124 | + |
| 125 | + println("SHA256 hash: " + hashString) |
| 126 | + if (hashString == project['reindev.clientSHA256Sum'] as String) { |
| 127 | + println("Hash matched expected") |
| 128 | + break |
| 129 | + } else { |
| 130 | + println("Hash did not match! Expected: " + project['reindev.clientSHA256Sum']) |
| 131 | + if (clientFile.delete()) { |
| 132 | + println("Client jar file deleted") |
| 133 | + } else { |
| 134 | + println("Failed to delete client jar file") |
| 135 | + break; |
| 136 | + } |
| 137 | + } |
| 138 | + } |
110 | 139 | } |
111 | 140 |
|
112 | 141 | File serverFile = new File(project.rootDir, "server" + File.separator + |
113 | 142 | "libs" + File.separator + project['reindev.serverJar']) |
114 | 143 |
|
115 | 144 | if (!serverFile.exists()) { |
116 | | - println("Downloading server...") |
117 | | - download(new URL(project['reindev.serverUrl'] as String), serverFile) |
| 145 | + println("\nDownloading server from " + project['reindev.serverUrl']) |
| 146 | + |
| 147 | + for (int i = 0; i < 2; i++) { // Max 1 retry for downloading |
| 148 | + if (i > 0) { |
| 149 | + println("Retrying download in 1 second...") |
| 150 | + Thread.sleep(1000); |
| 151 | + } |
| 152 | + |
| 153 | + download(new URL(project['reindev.serverUrl'] as String), serverFile) |
| 154 | + |
| 155 | + byte[] data = Files.readAllBytes(serverFile.toPath()) |
| 156 | + byte[] hash = MessageDigest.getInstance("SHA-256").digest(data) |
| 157 | + String hashString = new BigInteger(1, hash).toString(16) |
| 158 | + |
| 159 | + println("SHA256 hash: " + hashString) |
| 160 | + if (hashString == project['reindev.serverSHA256Sum'] as String) { |
| 161 | + println("Hash matched expected") |
| 162 | + break |
| 163 | + } else { |
| 164 | + println("Hash did not match! Expected: " + project['reindev.serverSHA256Sum']) |
| 165 | + if (serverFile.delete()) { |
| 166 | + println("Server file deleted") |
| 167 | + } else { |
| 168 | + println("Failed to delete server file") |
| 169 | + break; |
| 170 | + } |
| 171 | + } |
| 172 | + } |
118 | 173 | } |
0 commit comments