I saw you were even counting 500 nanoseconds as loading Lag. That is not really necessary to look at these small amounts of initial loading time. Nobody would complain about 10 seconds more loading time. It's only bad if the loading time gets enlengthened by something like an online Check for a stupid Changelog.
As for Proxy Class, I meant one Item Class for everything (what is something what we here in germany call "Egglaying Woolmilkpig"), and use that Class as base for all the invokated Interfaces.
For dynamic/reflection proxy: it's not loading time, it's every time the method is invoked, which is several times per tick if they have e.g. night vision or active camouflage modules or are flying or any of a dozen other things.
I'll try it anyway. It could be negligible in the long run.
For having a separate handler that the classes just redirect to: That is roughly what I'm currently already doing, just with 1 class. It would be really easy to separate them out into different classes, but I don't want to make 32 class files for each of the possibilities.
EDIT: This is what I am thinking about: http://docs.oracle.com/javase/…ide/reflection/proxy.html
EDIT2: judging by more research, it is not that much more expensive in actual practice, maybe 2x on the affected method calls. So as long as it's not used in rendering for example (it's not) the performance impact should be negligible. So that's what I'll do then thanks for calling me out on this, made me figure something out that will make other bits a bit easier...
EDIT3: If it gets really bad I guess I can just use a map by player name and only update the item once per second or something.
This dynamic proxy won't work for Item or whatever because it must have Proxy as a superclass... I will have to do bytecode manipulation after all.
I wonder if I can use http://www.csg.is.titech.ac.jp…st/tutorial/tutorial.html to avoid making a coremod... probably not since it needs a classloader.