ArsMagica2
ArsMagica2 copied to clipboard
Lots of Client-sided code (AMParticle etc.) being loaded server-sided causes crashes
Normally this would not surface, however Forge Essentials changes the class-loading in such a way that it does?
That's... really weird. I'll look into things if I can find time, but I think our general policy with AM2 is we don't try to work around mods that hook to far into code with ASM and get tangled in the process. I may be able to find a solution if I can find some time, tho.
The thing is... Forge Essentials' dynamic ASM injection, which actually ensures compatibility with other mods, is causing this, because the "am2/particles/AMParticle" class that is loaded server-sided as well, extends the client-sided- and therefore not loaded- class "net/minecraft/client/particle/EntityFX" This insinuates that loading the "am2/particles/AMParticle" class on the client side only should be enough. Also, there's a lot of other classes in that "particles" package that would cause the same crash for the same reasons. But I think you know at least most of this.
Calls to client side only objects were filtered with world.isRemote
, which is enough to prevent client only classes from being loaded on a server. However, I just tested using ForgeEssentials in my dev environment and I couldn't get the crash to occur, even when summoning and fighting a fire elemental. Does the crash still occur for you with the latest Jenkins build of FE?
The issue isn't "calls to client-side objects". That stuff happens at runtime. This already occurs in early mod-loading steps in which FE is trying to dynamically inject code. And yes, this exact crash still happens with the latest 1.7.10 versions of AM2 and FE.
An essential bit of information that I failed to mention: It only happens when you start a server with those mods. The client runs fine. The world.isRemote is to distinguish between the server and client inside the client anyway, right?
I have the same crash, did u find a solution?
Apart from using another Forge Essentials version? No, I have not.
Out of curiosity, does AM2 work with sponge?
I need to triangulate on whether it's an issue with our patching API or with sponge mixins.
There are some gameplay issues with AM2 and Sponge, due to Sponge's awkward handling of the end portal.
Just encountered this trying to get a 1.7.10 server going. FE 1187 is the last working build I can find. There are a few newer build and I have tried all the stared and the couple new builds that just happened and were not stared.
Also I think its from the use of @SideOnly(Side.CLIENT) , which forge said to stop using for some reason as of 1.7.10. I think there may be a way to do it with if(!world.isRemote)...but i am not totally sure, as i am barely a script kiddie... logic goes, forge said dont use it, forge essentials made a change 9 months ago that broke a bunch of mods, and then they fixed those mods by changing their asm stuff....and they did it to conform with the world.remote ?method?, thus breaking this use of the defunct side.client.
I am goiung to attempt a very rough have of this and try to recompile and test, but i dont know what i am doing so i may or may not suceed with my plan, and my plan probably wont work even if i pull it off.
The thing is, 1.7.10 AM2 has basically been unsupported for almost a year already, and it is unlikely that a release will be made to fix this. Is this issue in a specific modpack?
yeah, forge essentials, they way they wrap. I have a dev envir for it up and i can build the branch as is. I am working on swapping out the @SideOnly's for the if(!world.isRemote)--even swap didnt work of course, didnt compile...because its an if statement works a little different I guess. I am getting
"the class, interface, or enum expected if(!world.isRemote)" hence my thought of me just needing to format it correct.
Link to my fork below if you are an experienced coder and have a second to look at it line 17...
[https://github.com/gigafunk/ArsMagica2/blob/master/src/main/java/am2/particles/AMLineArc.java]
there are two other files at least but once i get the bracket structure or whatever is missing ill be ok
Well, this happen with are 1.10 and FE 1.10 as well. How to get the client code out of the server? Would it be possible to hack out the client code and make a server side version of the mod? seems a shame to not use such a great mod cause of this problem.
Same issue here with Forge Essentials (latest build) and Ars Magica on 1.10.2. This has been a longstanding problem going back to the 1.7.10 days. Essentials has this listed as a low priority bug to fix but considering this has existed throughout 4 generations of Minecraft in some form for 3 years is a little frustrating. Normally I'd just not use Ars and install Essentials (sorry guys it's more important in a server) but we've moved to pre-built client packs (I'm the only one building, maintaining and otherwise working on the back end of our server) and now find myself in the situation of either not using Essentials (which will cause a lot of headache) or explaining to the user base how to find and rip out mods in their pack (also some headache). My players really really like Ars Magica and there was a version of essentials way back in 1.7.10 that did work with that build of Ars. I'm respectfully asking for some communication between developers of both mods to see if a solution can be found to a problem that has existed for so long.
I had also written a message to the issue on Forge Essentials. They've written back about this.
Quote from spacebuilder2020:
"As I recall, it was a bug on the ars magica side. But if you can get the ars magica dev to participate, we will work on trying to fix it."
So what do you say guys? Can we get this 3 year old bug fix going? They are willing to help out. I'd love to finally have a working solution to this.
https://github.com/ForgeEssentials/ForgeEssentials/issues/2233
FE is a small team with only one person or so.
if you are 1.10 and above use sponge forge and nucleus an luckperms and have real production class server tools instead. I have 203 mods running with it just fine, and any issue i made proper reports for got fixed in a week or less. its a huge team. nothing bad against fe, there just arent the developers numbers the sponge ecosystem has.
saying its a BUG in ars in not quite right. I think it stems from the use of the forge depriciated @sideonly instead of a proxy type separation. (I think) but its the way FE handles the code that causes it. it runs fine without FE so it seems like FE could hard code in an exception for this and that may be the easiest path vs a full redesign.
anyhow, I was struggling with FE with perms as well , even tried thuts, but since spong I been happy and everythging works.
TLDR: Move on, Forge Essentials is not quite as mature as other solutions.
OR try to hack out the server client code and make a special server jar. thats hard too though..
I have not looked back since sponge....happy camper here
Either way I'd like to see a response from the Dev team in the hopes of fixing this.
While there are base mods that most packs use; I can honestly say in the past 3 years I've probably burned through 1,000 less commonly used mods in a server environment. FE only had issues with Ars and Reika's mods; although to be fair a lot of mods have issues with Reika's mods. Forge Essentials wasn't very mature in the 1.7.10 days until about year 2 but it is quite mature now.
There are a few things it still does not do that Essentials on Bukkit did do but it is still one of the most complete server back end tools that combine perms, econ, sec, boarders and dozens of other features. I realize Sponge is awesome now. It wasn't there after Bukkit died. there was limited to no support for 1.7.10 and a lot of growing pains in 1.8.
Dealing with the Bukkit fiasco, Microsoft buying Mojang and causing a lot of devs to walk away, using Cauldron, then Kcauldron (because Sponge support wasn't an option at the time) and many other things I can list I think you understand why I am sticking with FE. It has consistently been updated, worked on and improved. Even Ars Magica in the 1.7.10 days the development disappeared for about 16 months while there were bugs to iron out.
I'm not complaining. People have limited time. As I've already said I'm the only dev for my players. I however think you could see my point for appreciating devs that have consistently been working toward building a better/improved mod. I've been around since the Beta days building packs and mods. There are entire mountains of mods and developers that are dead now. I'm glad both of these mods have hung in there and I don't see why this can't be fixed.
To answer your point about perms they can be a pain to implement in FE if you haven't used it much. Even the documentation online is sparse and sometimes old. I first assumed that the perms for FE would be the same as Essentials. It is not. Having used it though for as long as I have it actually is pretty easy to implement. I'm assuming Sponge has all of this built in but honestly after Vanilla, then modded vanilla, Bukkit, Cauldron, KCauldron and now Forge with development packs in both FTB and Technic I'm a bit tired of learning the next big thing until I have to due to poor development. The Minecraft ethos is saturated with different variations of ways to build a pack/server.
Also this: https://ore.spongepowered.org/zml/PermissionsEx
You won't find any bug fixes on this version of the mod I don't think, especially when it's a bug only when another specific mod does something to break it.
On Sun, Jul 16, 2017 at 5:39 PM, Dehietyi [email protected] wrote:
Either way I'd like to see a response from the Dev team in the hopes of fixing this.
While there are base mods that most packs use; I can honestly say in the past 3 years I've probably burned through 1,000 less commonly used mods in a server environment. FE only had issues with Ars and Reika's mods; although to be fair a lot of mods have issues with Reika's mods. Forge Essentials wasn't very mature in the 1.7.10 days until about year 2 but it is quite mature now.
There are a few things it still does not do that Essentials on Bukkit did do but it is still one of the most complete server back end tools that combine perms, econ, sec, boarders and dozens of other features. I realize Sponge is awesome now. It wasn't there after Bukkit died. there was limited to no support for 1.7.10 and a lot of growing pains in 1.8.
Dealing with the Bukkit fiasco, Microsoft buying Mojang and causing a lot of devs to walk away, using Cauldron, then Kcauldron (because Sponge support wasn't an option at the time) and many other things I can list I think you understand why I am sticking with FE. It has consistently been updated, worked on and improved. Even Ars Magica in the 1.7.10 days the development disappeared for about 16 months while there were bugs to iron out.
I'm not complaining. People have limited time. As I've already said I'm the only dev for my players. I however think you could see my point for appreciating devs that have consistently been working toward building a better/improved mod. I've been around since the Beta days building packs and mods. There are entire mountains of mods and developers that are dead now. I'm glad both of these mods have hung in there and I don't see why this can't be fixed.
To answer your point about perms they can be a pain to implement in FE if you haven't used it much. Even the documentation online is sparse and sometimes old. I first assumed that the perms for FE would be the same as Essentials. It is not. Having used it though for as long as I have it actually is pretty easy to implement. I'm assuming Sponge has all of this built in but honestly after Vanilla, then modded vanilla, Bukkit, Cauldron, KCauldron and now Forge with development packs in both FTB and Technic I'm a bit tired of learning the next big thing until I have to due to poor development. The Minecraft ethos is saturated with different variations of ways to build a pack/server.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Mithion/ArsMagica2/issues/1562#issuecomment-315643079, or mute the thread https://github.com/notifications/unsubscribe-auth/ADeUENBSYYuaNn4favhiu_QvVBJHnxfTks5sOpEEgaJpZM4KDrNN .
It isn't just "this version of the mod". It's the past 3 years of this mod. It's the past 4 generations of Minecraft. This problem has occurred. This same exact one-off problem has persisted for 4 generations of mod development. You can point fingers at this mod or that one but that's a baseless argument. The bottom line is that both of these mods have incompatibility issues with each other. That makes it both of the developers problems.
Except the version of the mod you posted to us no longer receiving updates.. So you're not going to find much help here
On Jul 16, 2017 5:54 PM, "Dehietyi" [email protected] wrote:
It isn't just "this version of the mod". It's the past 3 years of this mod. It's the past 4 generations of Minecraft. This problem has occurred. This same exact one-off problem has persisted for 4 generations of mod development. You can point fingers at this mod or that one but that's a baseless argument. The bottom line is that both of these mods have incompatibility issues with each other. That makes it both of the developers problems.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Mithion/ArsMagica2/issues/1562#issuecomment-315643952, or mute the thread https://github.com/notifications/unsubscribe-auth/ADeUEH92e5B6Z2NDkzFuhg5f9iN2JlSHks5sOpShgaJpZM4KDrNN .
lol at "makes it both the developers problems" Its volunteer work man, aint nobodys problem but ours man.
Its been literally abandoned and picked up by someone else for the newer versions. If I remember its TheIcyOne and he started by just updating and maintaining, but I think i saw he is rewriting the whole thing. if thats the case this will be fixed in the new version, but fixes wont be compatable with the old.
Seriously last thing about spongeforge, its a forgemod. so you still run forge and drop it in mods and there you go. nucleus is the most amazing essentials package i have ever seen, and it goes in mods too.
And i get it, i went through mcpc+ which renamed cauldron the kcauldron and even thermos...and it was a big deal because they ran their own server package. spongeforge doesnt. it runs off forge. . And if you need to Auth module in FE there is a standalone forge mod that works great.
But a few month back i was all into this and tried everything and read everything. and bottom line is this, THERE ARE NO DEVS TO RESPOND. Theicyone, bless him, seems to be more interested in remaking the thing rather than spending hours trying to figure out someone else's code. as he should be. Just like the FE dev doesnt want to try to fix his reflection problem without access to someone that know this code better. And this fix , i believe, need a major design change to support it, or a maybe smaller change in a class or two in FE to recognize client code that slips through the reflection logic, if i understand it the whole point of that is compatability. If you want ars, dump fe, or use and older build that works. in one of my posts i identify the last working available 1.10.2 fe build.
1.7.10 look up thermos, it was a fork of kcauldron and is the most mature server like this for 1.7.10 idf you are stuck there. I recently upgraded to 1.10 and it runs alot worse but the software eco system is way better.
yeah pex is dead....luck perms is more amazing than pex ever was verbose command alot is worth the change. you can paste all the perm nodes that were tried by an action gto a gist page with a link to it with a few commands. you never havve to look up a perm node. luckperms and grief prevention and sponge all have active discord channels and constant development. like I said its more polished than its ever been and i been making servers since 1.2 (orig teknic pack server)
I was forced to stick with 1.7.10 because of the players for the last 3 years. We'd still be in 1.7 if it weren't for the fact that we all finally agreed to abandon all hopes for Reika to update his mods in any reasonable amount of time. People love Rotarycraft and I personally loved GeoStrata. We used to use Chromacraft until it became a 90+mb bloated mess. Once we all agreed to abandon Reika's mods it was an easy decision to go to 1.10.2. Honestly I'd rather be in 1.11 but this will do for now. I'll try to figure out what build worked for FE. I might spend some time learning Sponge (especially if it has cross platform support).
Edit: I just realized that is a 1.7 build. I was hoping for a 1.10.2 build. Looks like It'll be no FE for now; with a look toward learning Sponge. Quick question: Do FTB Forge packs work with Sponge servers natively as long as the mods and configs match?
Edit Edit: I'll also add that building a 1.10.2 Forge server was the simplest build I've ever done. I literally dropped every mod and config (including client only mods) and it loaded and ran just fine. That's never happened before. Remembering pre-release server builds back in the 1.4 1.5 days and the hours of reading error logs to figure out what mod was causing issues. Glad that has mostly been fixed.
There are 1.10.2 builds on curseforge, using the repository at https://github.com/Growlith1223/ArsMagica2/. There's also a 1.11.2 build coming at some point, from https://github.com/TheIcyOne/ArsMagica2/.
And @gigafunk has got basically exactly the current state, the main issue is that AM2 has just been being ported between versions, with issues generally just patched up rather than properly fixed due to the sheer size of the mod, and the fact that the interwoven nature of a lot of the code tends to cause new issues elsewhere whenever something is changed on a base level. Even porting 1.10 - 1.11, which should be quite simple, has taken months just because of the scale of spaghettification.
That's been one of the reasons so many modders abandoned their mods after 1.7.10. The amount of changes that have come since then to the base game. I remember reading the comments from a lot of developers about having to completely rewrite between 1.7 and 1.8. Most skipped 1.9 completely. Now with Microsoft wanting to move away from Java it'll cause even more fracturing. Personally the PC version (Apple, Linux, Microsoft) is far superior to any console version and yet Microsoft seems like it's trying to destroy the very thing it acquired. Also forking mods with different developers causes the same frustration. How many forks are there now of Chisel? 6-7? Oh and my personal favorite since Pre-Release 1.4 we've supposed to have had a Base API for everything to roll up into. That still hasn't happened. Funny how the community has been and continues to be the ones to actually push development and fixes to the game. That's one of the biggest reasons I stay involved with this game 7 years later.
For anyone interested, I compiled a custom server version with the client side code stripped from the FireGuardian class. Gameplay is completly UNTESTED, but a server is now launchable with this + the latest foregeessientals version. 1.7.10_AM2-1.4.0.009_custom_compile_server.zip Since I've also incorporated the latest 2 open pull requests, this is the client version (without stripped code ofc) 1.7.10_AM2-1.4.0.009_custom_compile_client2.zip
(License stuff) Mod credits go to Mithion, same License applies.
Gameplay is completly UNTESTED, but a server is now launchable with this + the latest foregeessientals version.
Can you, please, tell, whether you have ever tested the gameplay with your custom versions by now? I'm doing a 1.7.10 server now and I'm curious about launching both essentials and am2. (I hope you're still using GitHub and will reply.)
I have run a server with my version for 5 months, no major issues. I haven't played AM2 on this playthrough, but 4 people were active AM2 magicians and didn't report any gameplay issues to me.
Only changes to regual AM2 we have made was that we disabled Flicker spawns FlickerSpawnRate=0
and that there is a very rare server crash when using the AM2 Lectern. The Crash could also be a general AM2 issue, we were rarely able to reproduce it for analysis.
If you encounter any issues, I can try to look into them. :)
(I hope you're still using GitHub and will reply.)
Why would somebody stop using GitHub :P
Why have you disabled the Flicker spawns? Did they cause a lot of lag? And the issue I ran into is quite fast client memory fill-up cycles(4.6g allocated, used memory running from 20% to 70% in 4 seconds) but I don't think it's actually caused by AM2.
And I haven't seen any recent activity in your GitHub profile, that's why I thought you might have stopped using GitHub.
Why have you disabled the Flicker spawns? Did they cause a lot of lag? For some players with low end machines yes, also they were too disturbing for the players who didn't play AM2 on the server. Just wanted to inform you that we have no data regarding them :)