Title FTB Unleashed: servers unusable w/Curse client
Launcher Type Server
Modpack FTB Unleashed
Modpack version 1.1.7
Have you modified the pack? Yes
Link to log file
Details of the issue Due to this new Curse launcher, it appears all publicy hosted FTB Unleashed servers are now dead and are unusable.
This is because Curse uses Java 8 to run FTB Unleashed, but public servers must use Java 7, and there is a compatibility problem between these two Java versions.
FTB Unleashed still works fine to connect to public servers with the old FTB Launcher, because Unleashed used Java 7 with that launcher.
==========================
Okay, background for this discussion:
In order for FTB Unleashed, or really any other FTB modpack, to be used as a public server open to anyone on the Internet, then it is necessary to enable land / claim protection, server management, editing the world, etc.
This is done using plugins, which are implemented with Bukkit, and some version of MCPC+ or Cauldron or its derivatives.
FTB Unleashed is very old, Minecraft 1.5.2, and so it needs MCPC+ which is also very old.
MCPC+ does not work properly with OpenJDK Java 8. No plugins will load. It must be used with Java 7.
An example of MCPC+ failing to load a plugin. This error repeats for each one.
I'm not expecting anyone is going to be able to fix MCPC+ so it can work with Java 8, since it is so old. But maybe someone can suggest something there.
======================
When FTB Unleashed is launched in the new Curse client, it launches with Java 8, while servers are still running Java 7.
These Java 8 clients cannot connect to the Java 7 servers, due to something called "BouncyCastle" which appears to be some sort of data encryption library.
Players just see "Timed Out" in Minecraft while trying to connect, but the MC launcher console tells a different story:
Client side:
Server side:
I have no idea if there is some way to fix this compatibility between a Java 7 server and a Java 8 client, rather than pushing the client back to Java 7.
The most direct solution is for Curse to specifically allow Java 7 for FTB Unleashed, but I have no idea if that is even possible.
From the Curse Launcher perspective, the game loads for the player just fine on Java 8, so there's no problem to be fixed.
=========================
Is any sort of resolution possible here, or are we just collectively giving up on any MC 1.5.2 public servers as unworkable?
Launcher Type Server
Modpack FTB Unleashed
Modpack version 1.1.7
Have you modified the pack? Yes
Link to log file
Details of the issue Due to this new Curse launcher, it appears all publicy hosted FTB Unleashed servers are now dead and are unusable.
This is because Curse uses Java 8 to run FTB Unleashed, but public servers must use Java 7, and there is a compatibility problem between these two Java versions.
FTB Unleashed still works fine to connect to public servers with the old FTB Launcher, because Unleashed used Java 7 with that launcher.
==========================
Okay, background for this discussion:
In order for FTB Unleashed, or really any other FTB modpack, to be used as a public server open to anyone on the Internet, then it is necessary to enable land / claim protection, server management, editing the world, etc.
This is done using plugins, which are implemented with Bukkit, and some version of MCPC+ or Cauldron or its derivatives.
FTB Unleashed is very old, Minecraft 1.5.2, and so it needs MCPC+ which is also very old.
MCPC+ does not work properly with OpenJDK Java 8. No plugins will load. It must be used with Java 7.
An example of MCPC+ failing to load a plugin. This error repeats for each one.
Code:
2016-10-01 19:11:43 [SEVERE] Could not load 'plugins/CoreProtect_2.07b.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.ClassNotFoundException: Failed to remap class net.coreprotect.CoreProtect
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:164)
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:307)
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:231)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugins(CraftServer.java:256)
at cpw.mods.fml.common.event.FMLServerAboutToStartEvent.<init>(FMLServerAboutToStartEvent.java:30)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at cpw.mods.fml.common.LoaderState.getEvent(LoaderState.java:84)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:103)
at cpw.mods.fml.common.Loader.serverAboutToStart(Loader.java:807)
at cpw.mods.fml.common.FMLCommonHandler.handleServerAboutToStart(FMLCommonHandler.java:309)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:212)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:588)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
Caused by: java.lang.ClassNotFoundException: Failed to remap class net.coreprotect.CoreProtect
at org.bukkit.plugin.java.PluginClassLoader.remappedFindClass(PluginClassLoader.java:448)
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:362)
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:153)
... 15 more
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
at org.objectweb.asm.ClassReader.<init>(ClassReader.java:153)
at org.objectweb.asm.ClassReader.<init>(ClassReader.java:436)
at net.md_5.specialsource.repo.RuntimeRepo.findClass0(RuntimeRepo.java:48)
at net.md_5.specialsource.repo.CachingRepo.findClass(CachingRepo.java:46)
at net.md_5.specialsource.UnsortedRemappingMethodAdapter.findAccess(UnsortedRemappingMethodAdapter.java:128)
at net.md_5.specialsource.UnsortedRemappingMethodAdapter.findAccess(UnsortedRemappingMethodAdapter.java:156)
at net.md_5.specialsource.UnsortedRemappingMethodAdapter.visitMethodInsn(UnsortedRemappingMethodAdapter.java:168)
at org.objectweb.asm.MethodVisitor.visitMethodInsn(MethodVisitor.java:382)
at org.objectweb.asm.ClassReader.readCode(ClassReader.java:1320)
at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:938)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:669)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:506)
at net.md_5.specialsource.JarRemapper.remapClassFile(JarRemapper.java:241)
at net.md_5.specialsource.JarRemapper.remapClassFile(JarRemapper.java:227)
at org.bukkit.plugin.java.PluginClassLoader.remappedFindClass(PluginClassLoader.java:413)
... 22 more
2016-10-01 19:11:43 [SEVERE] Could not load 'plugins/WorldEdit.jar' in folder 'plugins'
[......etc......]
I'm not expecting anyone is going to be able to fix MCPC+ so it can work with Java 8, since it is so old. But maybe someone can suggest something there.
======================
When FTB Unleashed is launched in the new Curse client, it launches with Java 8, while servers are still running Java 7.
These Java 8 clients cannot connect to the Java 7 servers, due to something called "BouncyCastle" which appears to be some sort of data encryption library.
Players just see "Timed Out" in Minecraft while trying to connect, but the MC launcher console tells a different story:
Client side:
Code:
2016-10-14 12:41:22 [CLIENT] [INFO] Connecting to play.an-mc.net, 25562
java.lang.ClassCastException: org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings cannot be cast to aso
at asp.a(Unknown Source)
at asp.a(Unknown Source)
at asp.a(Unknown Source)
at asq.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at asp.<init>(Unknown Source)
at kl.<clinit>(SourceFile:40)
at et.a(SourceFile:28)
at ei.a(SourceFile:201)
at ci.i(SourceFile:250)
at ci.c(SourceFile:16)
at cj.run(SourceFile:94)
Exception in thread "Client read thread" java.lang.InternalError: cannot create instance of org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings : java.lang.ClassCastException: org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings cannot be cast to aso
at asp.a(Unknown Source)
at asp.a(Unknown Source)
at asp.a(Unknown Source)
at asq.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at asp.<init>(Unknown Source)
at kl.<clinit>(SourceFile:40)
at et.a(SourceFile:28)
at ei.a(SourceFile:201)
at ci.i(SourceFile:250)
at ci.c(SourceFile:16)
at cj.run(SourceFile:94)
Server side:
Code:
09:42:00 [INFO] Read timed out
09:42:00 [INFO] Foo [/x.x.x.x:y] lost connection
I have no idea if there is some way to fix this compatibility between a Java 7 server and a Java 8 client, rather than pushing the client back to Java 7.
The most direct solution is for Curse to specifically allow Java 7 for FTB Unleashed, but I have no idea if that is even possible.
From the Curse Launcher perspective, the game loads for the player just fine on Java 8, so there's no problem to be fixed.
=========================
Is any sort of resolution possible here, or are we just collectively giving up on any MC 1.5.2 public servers as unworkable?