Chimaine
-
Posts
14 -
Joined
-
Last visited
Posts posted by Chimaine
-
-
And no, I use two different packet channels, one for Server and one for Client Side. That's fine, too.
Maybe I'm missunderstanding something, but you say that you send packets over different channels? I'm kinda wondering why you would do that. Why don't you use the same channel for both client and server? Seperating channels would only makes sense when you have to handle submodules, but not to seperate client and server.
-
What do you mean by "does not work"?
Do you have a packet handler set and are using the same channel on both sides?
-
I finally found it!
Yes im sure, im the one who wrote both these new gui events and the event system. Feel free to trace the code yourself.
I know that you wrote it And I'm gratefull for it. I was just wondering if you had it tested properly.
I found out that unregistering in general does not work. I did some tracing like you suggested and found that in ListenerList, line 208, the method
public void unregister(IEventListener listener) { for(ArrayList<IEventListener> list : priorities) { list.remove(listener); } }
is missing a
rebuild = true
so the event listeners are removed, but the cache is never rebuild!
It should be
public void unregister(IEventListener listener) { for(ArrayList<IEventListener> list : priorities) { if (list.remove(listener)) { rebuild = true; } } }
I would make a pull request on GitHub, but I dont have an account, sorry
//edit: Nevermind, I created a pull request: https://github.com/MinecraftForge/MinecraftForge/pull/543
-
The overlay events work exactly the same as any other event. As lon
g as you unregister the same instance that you registered itll work.
Are you absolutely sure?
I even tested if the references I pass to register and unregister are the same.
I tried several places and constructs to where and how I register and unregister...
I'm an experienced Java developer, but I can't get this to work. I feel really stupid right now...
-
No ideas?
Unregistering other events then RenderGameOverlayEvent work just fine, I'm using it at several other places (my own registries, like in the example provided and with this).
-
No ideas?
Unregistering other events then RenderGameOverlayEvent work just fine, I'm using it at several other places (my own registries, like in the example provided and with this).
-
Use an instance, For example I use
public final class BuildController{ private BuildController(){instance = this;} private static BuildController instance; public static void bind(){ if(instance == null) MinecraftForge.EVENT_BUS.register(instance = new BuildController()); } public static void unbind(){ if(instance != null){ MinecraftForge.EVENT_BUS.unregister(instance); instance = null; } } }
and it cleanly registered and unregistered the listeners in the class-
Tried that. Did not work.
And to be honest I dont know why this should work, since you pass the same references to register and unregister as in my example.
Could you post a working example?
-
Use an instance, For example I use
public final class BuildController{ private BuildController(){instance = this;} private static BuildController instance; public static void bind(){ if(instance == null) MinecraftForge.EVENT_BUS.register(instance = new BuildController()); } public static void unbind(){ if(instance != null){ MinecraftForge.EVENT_BUS.unregister(instance); instance = null; } } }
and it cleanly registered and unregistered the listeners in the class-
Tried that. Did not work.
And to be honest I dont know why this should work, since you pass the same references to register and unregister as in my example.
Could you post a working example?
-
Hello all.
I already asked this on the irc channel, but we couldn't find a solution.
I am using the new RenderGameOverlayEvent to render behind or hide the GuiIngame hotbar.
When my gui is created, I'm registering it for the event at the forge event bus.
When my gui closes, I'm unregistering it from the event bus, but the event handler still gets called.
I could use some kind of visibility check, and while this solves the problem at hand, it creates some kind of memory leak, as the reference to the instance still gets held by the event bus.
Heavily cut of pastebin: http://pastebin.com/v3wwGqcu
Btw, I'm loving the new events! Last week I thought "damn, if only i could render behind the hotbar!" and today I saw that commit.
While I was at it, I also found a spelling error in the ListenerList class, line 100, unregiterAll -> unregisterAll
-
Hello all.
I already asked this on the irc channel, but we couldn't find a solution.
I am using the new RenderGameOverlayEvent to render behind or hide the GuiIngame hotbar.
When my gui is created, I'm registering it for the event at the forge event bus.
When my gui closes, I'm unregistering it from the event bus, but the event handler still gets called.
I could use some kind of visibility check, and while this solves the problem at hand, it creates some kind of memory leak, as the reference to the instance still gets held by the event bus.
Heavily cut of pastebin: http://pastebin.com/v3wwGqcu
Btw, I'm loving the new events! Last week I thought "damn, if only i could render behind the hotbar!" and today I saw that commit.
While I was at it, I also found a spelling error in the ListenerList class, line 100, unregiterAll -> unregisterAll
-
/facepalm
Sometimes you miss the most obvious things. Thanks...
-
*bump* Come on... At least some sort of acknowlegement. Even if its a no.
-
Hello everyone.
I may be missing something here, but I cant find a way to get notified on the client side if it disconnects from a server world. I would expect a WorldEvent.Unload with the WorldClient, just like a client generates WorldEvent.Load events.
Is there some other way? If not, take this as an feature request for a future build
Forge/Gradle Build Error
in ForgeGradle
Posted
I have a similar problem, except that I get a 403 response because gradle for whatever reason tries to get the Forge jar from the Minecraft server. Cleaning caches has not helped me.
> Could not GET 'https://libraries.minecraft.net/net/minecraftforge/forge/1.7.10-10.13.1.1230/forge-1.7.10-10.13.1.1230.pom'. Received status code 403 from server: Forbidden