Skip to content

Commit 64854c8

Browse files
committed
Remove explicit comparison to net.minecraft. package
1 parent 348c9cd commit 64854c8

File tree

2 files changed

+27
-20
lines changed

2 files changed

+27
-20
lines changed

src/main/java/net/minecraft/launchwrapper/LaunchClassLoader.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.io.IOException;
44
import java.net.URL;
5+
import java.security.ProtectionDomain;
56
import java.util.ArrayList;
67
import java.util.Collections;
78
import java.util.HashSet;
@@ -92,6 +93,14 @@ private String transformName(final String name) {
9293
return name;
9394
}
9495

96+
@Override
97+
protected ProtectionDomain getProtectionDomain(String name) {
98+
if (name.startsWith("net.minecraft.")) {
99+
return null;
100+
}
101+
return super.getProtectionDomain(untransformName(name));
102+
}
103+
95104
@Override
96105
public void addURL(URL url) {
97106
super.addURL(url);

src/main/java/org/mcphackers/launchwrapper/loader/LaunchClassLoader.java

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -402,42 +402,40 @@ private Class<?> defineClass(String name, byte[] classData, ProtectionDomain pro
402402
return defineClass(name, classData, 0, classData.length, protectionDomain);
403403
}
404404

405-
private ProtectionDomain getProtectionDomain(String name) {
406-
final URL resource = getResource(classResourceName(name));
405+
protected ProtectionDomain getProtectionDomain(String name) {
406+
URL resource = getOriginalURL(classResourceName(name));
407407
if (resource == null) {
408408
return null;
409409
}
410410

411411
CodeSigner[] signers = null;
412412
int i = name.lastIndexOf('.');
413413

414-
// TODO avoid explicit net.minecraft comparison. Removing this condition breaks forge atm.
415-
if (i != -1 && !name.startsWith("net.minecraft.")) {
416-
try {
417-
URLConnection urlConnection = resource.openConnection();
418-
if (urlConnection instanceof JarURLConnection) {
419-
final JarURLConnection jarURLConnection = (JarURLConnection)urlConnection;
420-
JarFile jarFile;
421-
jarFile = jarURLConnection.getJarFile();
422-
423-
if (jarFile != null && jarFile.getManifest() != null) {
424-
final Manifest manifest = jarFile.getManifest();
425-
final JarEntry entry = jarFile.getJarEntry(classResourceName(name));
414+
try {
415+
URLConnection urlConnection = resource.openConnection();
416+
if (urlConnection instanceof JarURLConnection) {
417+
final JarURLConnection jarURLConnection = (JarURLConnection)urlConnection;
418+
JarFile jarFile;
419+
jarFile = jarURLConnection.getJarFile();
420+
421+
if (jarFile != null && jarFile.getManifest() != null) {
422+
final Manifest manifest = jarFile.getManifest();
423+
final JarEntry entry = jarFile.getJarEntry(classResourceName(name));
424+
if (entry != null) {
425+
signers = entry.getCodeSigners();
426+
}
427+
if (i != -1) {
426428
String pkgName = name.substring(0, i);
427429

428430
Package pkg = getPackage(pkgName);
429-
// getClassBytes(name);
430-
if (entry != null) {
431-
signers = entry.getCodeSigners();
432-
}
433431
if (pkg == null) {
434432
pkg = definePackage(pkgName, manifest, jarURLConnection.getJarFileURL());
435433
}
436434
}
437435
}
438-
} catch (IOException e) {
439-
e.printStackTrace();
440436
}
437+
} catch (IOException e) {
438+
e.printStackTrace();
441439
}
442440
URL newResource = resource;
443441

0 commit comments

Comments
 (0)