Ender Client

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

Re: Ender Client

Postby mvgulik » Tue Apr 21, 2026 8:26 am

mvgulik wrote:
inevitable wrote:
Do note that updated clients will now save the map in a format which older clients are unable to read, so if you resave your map by logging in on an updated client, you may find it difficult to return. Backup your maps if you are worried.


Ender doesn't have this week's changes yet.

Changelog suggests otherwise.
Code: Select all
$size[14]{$u{Update for 17.04.26:}
   * merged loftar's changes
   * updated wound treatments

Was wondering about that clear discrepancy.
Seem EnderWiggin/EnderWiggin.github.io is the one with the actual pushed client updates. (seems to only show which compiled files where changed.)
While EnderWiggin/hafen-client is more or less still there as separate and seemingly not directly related repository anymore to potentially show related code changes. (which is currently lagging behind.)

Although Ender maintained his (public) client for more than a decade (only game dev's can also claim that.)... Everything stops eventually.
Feels like this might happen in the not to far future for this client. Enders hart at least seems not really into it anymore for some time now.
mvgulik
 
Posts: 3960
Joined: Fri May 21, 2010 2:29 am

Re: Ender Client

Postby mvgulik » Tue Apr 21, 2026 8:33 am

mvgulik wrote:- Equipment bonuses in equipment related screens ignore the bonuses of certain items/locations/whatever. (Seems to be growing a beard by now)
- ...
Now fixed.. Something looked changed, but as Woodsman's Token gilding data (and other gilding's) is still not included, I guess I was wrong. O well.

Something else, marker related, seems to be fixed too. Although not sure what though.

Player icon still disappear after a few seconds after a character re-login though. But it at least restores itself when moving trough some door (ie: area switch). (as before. no other clients involved in this case.)
mvgulik
 
Posts: 3960
Joined: Fri May 21, 2010 2:29 am

Re: Ender Client

Postby Joshk80k » Wed Apr 22, 2026 8:39 pm

Nightdawg wrote:
Joshk80k wrote:
stary1980 wrote:Client get closed when Loose Rock destroy
Not all the time, 50/50, does not metters if u destroy it with hands or it crushes by near digging
Crush with no any error on screen. window just dissapere, and u cannot enter game until u knoked down
If u login before knoked client will close agane
Thats started ufter last update
crush.jpg


Seconding this for attention, replicated it three times now.


Tell loftar. He broke every client (including his vanilla client)


Noted, thanks. I think it has something to do with the number of creatures that simultaneously engage you (Saying this because it just happened to me when I aggro'd a pack of 6-7 wolves, couldn't log back in until they KO'd me). Would make sense when mining because you might spawn one thing from the rock or you could spawn a dozen things.
Joshk80k
 
Posts: 46
Joined: Sun Oct 16, 2011 1:15 am

Re: Ender Client

Postby serVar161 » Thu Apr 30, 2026 8:58 pm

While a player is at the base, crashes occur, but very rarely. Outside the base, the game often crashes with the following error:

java.lang.NullPointerException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:542)
at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:567)
at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:670)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:765)
at haven.render.TickList.tick(TickList.java:142)
at haven.PView.tick(PView.java:184)
at haven.MapView.tick(MapView.java:1934)
at haven.Widget.tick(Widget.java:794)
at haven.Widget$TickEvent.shandle(Widget.java:945)
at haven.Widget.handle(Widget.java:925)
at haven.Widget$Event.dispatch(Widget.java:877)
at haven.Widget$TickEvent.propagation(Widget.java:938)
at haven.Widget$Event.propagate(Widget.java:861)
at haven.Widget$Event.dispatch(Widget.java:879)
at haven.Widget$TickEvent.propagation(Widget.java:938)
at haven.Widget$Event.propagate(Widget.java:861)
at haven.Widget$Event.dispatch(Widget.java:879)
at haven.UI.dispatch(UI.java:663)
at haven.UI.tick(UI.java:416)
at haven.GLPanel$Loop.run(GLPanel.java:378)
at haven.JOGLPanel.run(JOGLPanel.java:246)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.NullPointerException: Cannot read field "a" because "r" is null
at haven.MapWnd$MarkerObjs.updateobjs(MapWnd.java:1037)
at haven.MapWnd$MarkerObjs.autotick(MapWnd.java:1048)
at haven.render.TickList.lambda$tick$0(TickList.java:132)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

There is a suggestion that this is somehow connected with the map or with the markers.
The player's quest giver circles are also very large. I don't know if this is related to a bug or not.

Who knows what the reason is?
My english is bEd.
User avatar
serVar161
 
Posts: 550
Joined: Mon Feb 23, 2026 10:55 am

Re: Ender Client

Postby serVar161 » Fri May 01, 2026 1:52 am

Anyone using Linux? Do you get this error?
My english is bEd.
User avatar
serVar161
 
Posts: 550
Joined: Mon Feb 23, 2026 10:55 am

Re: Ender Client

Postby mvgulik » Fri May 01, 2026 9:10 am

1) These type or errors are very rare, and not on Enders mind. ... Unless, 'maybe', someone can pinpoint the related triggers.
2) Use [code] button for error dumping. Its right there in the edit-menu bar, so there is no good excuse to not use it.
mvgulik
 
Posts: 3960
Joined: Fri May 21, 2010 2:29 am

Re: Ender Client

Postby serVar161 » Fri May 01, 2026 10:23 am

mvgulik wrote:1) These type or errors are very rare, and not on Enders mind. ... Unless, 'maybe', someone can pinpoint the related triggers.

Got it. Let's hope someone can figure this out, or has already figured it out.

mvgulik wrote:2) Use [code] button for error dumping. Its right there in the edit-menu bar, so there is no good excuse to not use it.


Do you mean this? What I hid in the last message under the "hide/show" button.

java.lang.NullPointerException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:542)
at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:567)
at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:670)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:765)
at haven.render.TickList.tick(TickList.java:142)
at haven.PView.tick(PView.java:184)
at haven.MapView.tick(MapView.java:1934)
at haven.Widget.tick(Widget.java:794)
at haven.Widget$TickEvent.shandle(Widget.java:945)
at haven.Widget.handle(Widget.java:925)
at haven.Widget$Event.dispatch(Widget.java:877)
at haven.Widget$TickEvent.propagation(Widget.java:938)
at haven.Widget$Event.propagate(Widget.java:861)
at haven.Widget$Event.dispatch(Widget.java:879)
at haven.Widget$TickEvent.propagation(Widget.java:938)
at haven.Widget$Event.propagate(Widget.java:861)
at haven.Widget$Event.dispatch(Widget.java:879)
at haven.UI.dispatch(UI.java:663)
at haven.UI.tick(UI.java:416)
at haven.GLPanel$Loop.run(GLPanel.java:378)
at haven.JOGLPanel.run(JOGLPanel.java:246)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.NullPointerException: Cannot read field "a" because "r" is null
at haven.MapWnd$MarkerObjs.updateobjs(MapWnd.java:1037)
at haven.MapWnd$MarkerObjs.autotick(MapWnd.java:1048)
at haven.render.TickList.lambda$tick$0(TickList.java:132)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
My english is bEd.
User avatar
serVar161
 
Posts: 550
Joined: Mon Feb 23, 2026 10:55 am

Re: Ender Client

Postby mvgulik » Fri May 01, 2026 11:07 am

serVar161 wrote:[Do you mean this? What I hid in the last message under the "hide/show" button.

Code: Select all
Yes + Irrelevant.
mvgulik
 
Posts: 3960
Joined: Fri May 21, 2010 2:29 am

Re: Ender Client

Postby mvgulik » Fri May 01, 2026 11:10 am

Funny. Every time you change the name of a (user+display in world)marker ... It adds an other animating marker flag (well that's the only thing that is apparently added ofc). (login session limited ... phew)

Yep, It actually add multiple full marker copies in the world display. ... As deleting the source marker left the other ones just standing in place. (login session limited ... phew-2)

Would ofc be nice is one could actually click (either with or without some control key) the displayed 'in world' marker to select it in the extended map view.
mvgulik
 
Posts: 3960
Joined: Fri May 21, 2010 2:29 am

Re: Ender Client

Postby mvgulik » Fri May 01, 2026 12:41 pm

Messing around with flags. Like changing there colors, toggling "Display in world" to get the 'in world' flag to update its color ... which ofc just adds additional cloned flags. Which I can't get rid of unless I re-login ... but that will also kill my player-icon in the map after a seconds which is also not helpful.
:(

Error file:
Code: Select all
java.lang.NullPointerException
   at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
   at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
   at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
   at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
   at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:564)
   at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:591)
   at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:689)
   at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
   at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
   at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
   at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
   at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:765)
   at haven.render.TickList.tick(TickList.java:142)
   at haven.PView.tick(PView.java:184)
   at haven.MapView.tick(MapView.java:1934)
   at haven.Widget.tick(Widget.java:794)
   at haven.Widget$TickEvent.shandle(Widget.java:945)
   at haven.Widget.handle(Widget.java:925)
   at haven.Widget$Event.dispatch(Widget.java:877)
   at haven.Widget$TickEvent.propagation(Widget.java:938)
   at haven.Widget$Event.propagate(Widget.java:861)
   at haven.Widget$Event.dispatch(Widget.java:879)
   at haven.Widget$TickEvent.propagation(Widget.java:938)
   at haven.Widget$Event.propagate(Widget.java:861)
   at haven.Widget$Event.dispatch(Widget.java:879)
   at haven.UI.dispatch(UI.java:663)
   at haven.UI.tick(UI.java:416)
   at haven.GLPanel$Loop.run(GLPanel.java:378)
   at haven.JOGLPanel.run(JOGLPanel.java:246)
   at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.NullPointerException: Cannot read field "a" because "r" is null
   at haven.MapWnd$MarkerObjs.updateobjs(MapWnd.java:1037)
   at haven.MapWnd$MarkerObjs.autotick(MapWnd.java:1048)
   at haven.render.TickList.lambda$tick$0(TickList.java:132)
   at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
   at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
   at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
   at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
   at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
   at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
   at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
   at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
   at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
   at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

Terminal:
Code: Select all
haven: warning: unexpected exception in finalizer
java.lang.InterruptedException
   at java.base/java.lang.Object.wait(Native Method)
   at java.base/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
   at java.base/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
   at haven.Finalizer.run(Finalizer.java:129)
   at java.base/java.lang.Thread.run(Thread.java:833)
Caught handled Caught handled SourcedInterruptedException: null on thread Haven main thread-SharedResourceRunner
SourcedInterruptedException: null on thread Haven main thread-SharedResourceRunner
    [0]: com.jogamp.common.util.SourcedInterruptedException.wrap(SourcedInterruptedException.java:82)
    [1]: com.jogamp.common.util.SourcedInterruptedException.wrap(SourcedInterruptedException.java:63)
    [0]: com.jogamp.common.util.SourcedInterruptedException.wrap(SourcedInterruptedException.java:82)
    [2]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:338)
    [1]: com.jogamp.common.util.SourcedInterruptedException.wrap(SourcedInterruptedException.java:63)
    [2]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:338)
    [3]: java.base/java.lang.Thread.run(Thread.java:833)
    [3]: java.base/java.lang.Thread.run(Thread.java:833)
Caused[0] by InterruptedException: null on thread Haven main thread-SharedResourceRunner
Caused[0] by InterruptedException: null on thread Haven main thread-SharedResourceRunner
    [0]: java.base/java.lang.Object.wait(Native Method)
    [0]: java.base/java.lang.Object.wait(Native Method)
    [1]: java.base/java.lang.Object.wait(Object.java:338)
    [1]: java.base/java.lang.Object.wait(Object.java:338)
    [2]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:334)
    [2]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:334)
    [3]: java.base/java.lang.Thread.run(Thread.java:833)
    [3]: java.base/java.lang.Thread.run(Thread.java:833)
InterruptSource[0] by Throwable: Haven main thread-SharedResourceRunner.interrupt() #1 on thread Haven main thread-SharedResourceRunner
InterruptSource[0] by Throwable: Haven main thread-SharedResourceRunner.interrupt() #1 on thread Haven main thread-SharedResourceRunner
    [0]: com.jogamp.common.util.InterruptSource$Thread.interrupt(InterruptSource.java:152)
    [1]: java.base/java.lang.ThreadGroup.interrupt(ThreadGroup.java:659)
    [0]: com.jogamp.common.util.InterruptSource$Thread.interrupt(InterruptSource.java:152)
    [2]: haven.MainFrame$6.errorsent(MainFrame.java:510)
    [1]: java.base/java.lang.ThreadGroup.interrupt(ThreadGroup.java:659)
    [3]: haven.error.ErrorGui.done(ErrorGui.java:193)
    [2]: haven.MainFrame$6.errorsent(MainFrame.java:510)
    [3]: haven.error.ErrorGui.done(ErrorGui.java:193)
    [4]: haven.error.ErrorHandler$Reporter.doreport(ErrorHandler.java:127)
    [4]: haven.error.ErrorHandler$Reporter.doreport(ErrorHandler.java:127)
    [5]: haven.error.ErrorHandler$Reporter.run(ErrorHandler.java:86)
    [5]: haven.error.ErrorHandler$Reporter.run(ErrorHandler.java:86)
mvgulik
 
Posts: 3960
Joined: Fri May 21, 2010 2:29 am

PreviousNext

Return to The Wizards' Tower

Who is online

Users browsing this forum: Claude [Bot] and 3 guests