Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.14.4] displayGuiScreen() doesn't seem to work


mohkamfer
 Share

Recommended Posts

I made a screen extending Screen, and am trying to show it when a certain [client-side] event occurs. I do Minecraft.getInstance().displayGuiScreen(new ...) but nothing shows. I made sure the code actually reaches that line, but then it goes absolutely silent.

 

I'm trying to call it in a ClientChatEvent listener.

 

Backstory I'm trying to listen for a /commandString message sent by the player, show my screen then cancel the event. I had to use this dirty workaround since commands worked on single player only. Not sure if mentioning this could provide better support, but here we go.

 

EDIT: The Screen has nothing to do with the server. I listen for client events only. Not sure what's happening. I've seen some other threads, but they all 'suggest' that it should work on client just fine if it doesn't communicate with the server. If looking at vanilla code could help me, all I am seeing is Minecraft#displayGuiScreen() calls just like what I'm trying to do. Not sure why it isn't considered as a client-side call to it -- if this is even the problem.

 

ANOTHER EDIT: Yes, it worked with commands registered on server starting event. If anybody would wonder.

Edited by mohkamfer
More information again!
Link to comment
Share on other sites

Client side only commands have always been a forge addition. Since mojang switched to their new command system in 1.13+, Forge hasn’t re-implemented client side commands. I hope this helps.

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

11 hours ago, Cadiboo said:

Client side only commands have always been a forge addition. Since mojang switched to their new command system in 1.13+, Forge hasn’t re-implemented client side commands. I hope this helps.

Well aside from commands, what about the guiScreen not showing up? I already match a command string and what's missing is showing it :(

Link to comment
Share on other sites

You cannot open GUIs in ClientChatEvent because immediately after that event the chat GUI tries to close itself. Closing a screen in Minecraft means setting the currently open screen to null. If you open a screen in ClientChatEvent it will be closed immediately after by the chat GUI trying to close itself.

You have to wait one tick to open your GUI.

  • Like 1
Link to comment
Share on other sites

23 minutes ago, diesieben07 said:

You have to wait one tick to open your GUI.

Well I could do that, however I'm concerned that running a check every tick could harm performance. Could there possibly be a better way to schedule a task to run once, and then not to bother every single tick after? Just like we can post a Runnable using a Handler.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.