Ender client for Legacy

Forum for alternative clients, mods & discussions on the same.

Ender client for Legacy

Postby Darqonik » Wed Oct 04, 2023 1:10 pm

Hello dear hearthlings.

While waiting for W15, I started playing Legacy Haven & Hearth (viewtopic.php?f=39&t=40052), but the comeback experience is not great without Ender client.

I wanted to ask, does anyone has old Ender client that is working with legacy Haven and would like to share download link?

I could only find new client on Ender GitHub

On the Legacy Haven thread: viewtopic.php?f=39&t=40052 there seems only to be UnionClient which I don't want to use, apart from that it seems that I would need to make some URL changes in legacy Ender client codebase - have anyone did that and get it to work with Ender client?
Omae Wa Mou Shindeiru
User avatar
Darqonik
 
Posts: 9
Joined: Thu Jul 26, 2018 10:04 pm

Re: Ender client for Legacy

Postby Darqonik » Wed Oct 04, 2023 5:42 pm

Ok, I have made some more research and have done following steps:
1. Installed JDK 8 for Windows 11 (x64 CPU arch)
2. Installed Apache Ant
3. Cloned Ender GitHub repository
4. Replaced all URLs from http://www.havenandhearth.com to legacy.havenandhearth.com (11 changes)
5. Run Apache Ant in root directory of Ender repository to build Ender client from scratch after URL changes
6. Built succesfully
7. When trying to run build jar with:
Code: Select all
java -Xms256m -Xmx512m -jar haven.jar legacy.havenandhearth.com
command I get an error though:
Code: Select all
PS C:\Users\doria\Projects\Java\Haven-and-Hearth-client-modified-by-Ender\build> java -Xms256m -Xmx512m -jar haven.jar legacy.havenandhearth.com
Exception in thread "Haven main thread" java.lang.NoClassDefFoundError: com/sun/gluegen/runtime/DynamicLookupHelper
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at javax.media.opengl.GLDrawableFactory.getFactory(GLDrawableFactory.java:106)
        at javax.media.opengl.GLCanvas.chooseGraphicsConfiguration(GLCanvas.java:520)
        at javax.media.opengl.GLCanvas.<init>(GLCanvas.java:131)
        at javax.media.opengl.GLCanvas.<init>(GLCanvas.java:90)
        at haven.HavenPanel.<init>(HavenPanel.java:77)
        at haven.MainFrame.<init>(MainFrame.java:159)
        at haven.MainFrame.main2(MainFrame.java:272)
        at haven.MainFrame.access$100(MainFrame.java:52)
        at haven.MainFrame$6.run(MainFrame.java:327)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.sun.gluegen.runtime.DynamicLookupHelper
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 36 more
Exception in thread "Haven resource loader" haven.Resource$LoadException: Load error in resource gfx/arch/gates/fence-ns(v1), from cache source backed by haven.FileCache@3ad2ab2b
        at haven.Resource$Loader.handle(Resource.java:487)
        at haven.Resource$Loader.run(Resource.java:450)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Shutdown in progress
        at java.lang.ApplicationShutdownHooks.add(Unknown Source)
        at java.lang.Runtime.addShutdownHook(Unknown Source)
        at com.sun.imageio.stream.StreamCloser$2.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.imageio.stream.StreamCloser.addToQueue(Unknown Source)
        at javax.imageio.stream.FileCacheImageInputStream.<init>(Unknown Source)
        at com.sun.imageio.spi.InputStreamImageInputStreamSpi.createInputStreamInstance(Unknown Source)
        at javax.imageio.ImageIO.createImageInputStream(Unknown Source)
        at javax.imageio.ImageIO.read(Unknown Source)
        at haven.Resource$Image.<init>(Resource.java:549)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at haven.Resource.load(Resource.java:1089)
        at haven.Resource.access$300(Resource.java:74)
        at haven.Resource$Loader.handle(Resource.java:471)
        ... 2 more


but jogl.jar and gluegen-rt.jar files are indeed in the build directory.
I'm a Python developer, not a Java one, thus I find it hard to fix those issues.
Can someone with more JAVA experience help in fixing those linking issues?

I have also tried doing all this process on Linux Fedora Workstation 37 with the same result - jogl linking issue
Omae Wa Mou Shindeiru
User avatar
Darqonik
 
Posts: 9
Joined: Thu Jul 26, 2018 10:04 pm

Re: Ender client for Legacy

Postby Pandorica » Wed Oct 04, 2023 6:53 pm

Im new here but shouldnt this be in the Wizards Tower?

viewforum.php?f=49
Retribution at its best.
User avatar
Pandorica
 
Posts: 7
Joined: Wed Sep 20, 2023 9:33 pm

Re: Ender client for Legacy

Postby Darqonik » Wed Oct 04, 2023 7:03 pm

Pandorica wrote:Im new here but shouldnt this be in the Wizards Tower?

viewforum.php?f=49


Yeah, you are probably right.
Can some moderator move it, please?
Omae Wa Mou Shindeiru
User avatar
Darqonik
 
Posts: 9
Joined: Thu Jul 26, 2018 10:04 pm

Re: Ender client for Legacy

Postby Darqonik » Wed Oct 04, 2023 7:47 pm

UPDATE

I have replaced jogl.jar and gluegen-rt.jar libs in lib directory in Ender client repository using these ones https://jogamp.org/deployment/v2.0.2/jar/(renamed jogl-os-win.jar to jogl.jar and gluegen-rt-natives-windows-amd64.jar to gluegen-rt.jar).

Rebuild the project and ...

I thought I got rid of jogl not found error, but now when starting the app, new exception occurs:
Code: Select all
PS C:\Users\doria\Projects\Java\Haven-and-Hearth-client-modified-by-Ender\build> java -jar haven.jar legacy.havenandhearth.com     
Error: Could not find or load main class haven.MainFrame


After analyzing build logs, I found that there is a problem with jogl.jar (renaming it probably wasn't the wisest thing, but there is no jogl.jar to download when it comes to 2.0.2 version of jogl)

Build logs:
Code: Select all
PS C:\Users\doria\Projects\Java\Haven-and-Hearth-client-modified-by-Ender> ant
Buildfile: C:\Users\doria\Projects\Java\Haven-and-Hearth-client-modified-by-Ender\build.xml

build-env:
    [mkdir] Created dir: C:\Users\doria\Projects\Java\Haven-and-Hearth-client-modified-by-Ender\build
    [mkdir] Created dir: C:\Users\doria\Projects\Java\Haven-and-Hearth-client-modified-by-Ender\build\classes

haven-client:
    [javac] Compiling 328 source files to C:\Users\doria\Projects\Java\Haven-and-Hearth-client-modified-by-Ender\build\classes
    [javac] error: error reading C:\Users\doria\Projects\Java\Haven-and-Hearth-client-modified-by-Ender\lib\jogl.jar; error in opening zip file

...


The question is what jogl version does Ender client relies on? Is it 2.0.2 from 2013 or some older one?
Omae Wa Mou Shindeiru
User avatar
Darqonik
 
Posts: 9
Joined: Thu Jul 26, 2018 10:04 pm

Re: Ender client for Legacy

Postby Darqonik » Wed Oct 04, 2023 8:07 pm

UPDATE

It seems that those libs jars were added in Apr 14, 2008 to the Ender client repository:
https://github.com/EnderWiggin/Haven-and-Hearth-client-modified-by-Ender/commit/bb178dafdae26eeee26dd75e497cedb8d41a305c#diff-2203a9152ce3a47ac925bba2820f96e2670451e02e1c8aefb9d35e877e5d9c82
so the version of jogl required for it to build properly is probably 1.0+ instead of 2.0+, but I can't find that version for Windows 11
Omae Wa Mou Shindeiru
User avatar
Darqonik
 
Posts: 9
Joined: Thu Jul 26, 2018 10:04 pm

Re: Ender client for Legacy

Postby Darqonik » Wed Oct 04, 2023 11:23 pm

UPDATE

Ok, I have made it working <3

Image
Here's link to screenshot in high resolution: https://ibb.co/vBPcgtd

Will create a tutorial in next post :D
Omae Wa Mou Shindeiru
User avatar
Darqonik
 
Posts: 9
Joined: Thu Jul 26, 2018 10:04 pm

Re: Ender client for Legacy

Postby jorb » Wed Oct 04, 2023 11:27 pm

Moved to Wizard's Tower.
"The psychological trials of dwellers in the last times will be equal to the physical trials of the martyrs. In order to face these trials we must be living in a different world."

-- Hieromonk Seraphim Rose
User avatar
jorb
 
Posts: 18263
Joined: Fri Apr 03, 2009 7:07 am
Location: Here, there and everywhere.

Re: Ender client for Legacy

Postby Darqonik » Wed Oct 04, 2023 11:27 pm

jorb wrote:Moved to Wizard's Tower.


Thanks <3
Omae Wa Mou Shindeiru
User avatar
Darqonik
 
Posts: 9
Joined: Thu Jul 26, 2018 10:04 pm

Re: Ender client for Legacy

Postby Darqonik » Thu Oct 05, 2023 6:10 pm

I have recorded a tutorial that explains how to set-up Ender Client for Legacy Haven and Hearth
Enjoy! :D

https://youtu.be/Fnjcd_E6lrM

Note that YouTube renders it now and HD quality should be available in an hour from now :)
Omae Wa Mou Shindeiru
User avatar
Darqonik
 
Posts: 9
Joined: Thu Jul 26, 2018 10:04 pm

Next

Return to The Wizards' Tower

Who is online

Users browsing this forum: Ahrefs [Bot] and 75 guests