Jump to content

External java GUI on startup


frederfg

Recommended Posts

Im creating a mod using forge and eclipse window builder (swing designer) to add a small external java GUI to the game. Where do I put the code to automatically open the GUI when the game is run? This is what I think I need to add, but where?

					Maingui window = new Maingui();
					window.frame.setVisible(true);
Link to comment
Share on other sites

9 minutes ago, frederfg said:

Im creating a mod using forge and eclipse window builder (swing designer) to add a small external java GUI to the game. Where do I put the code to automatically open the GUI when the game is run? This is what I think I need to add, but where?


					Maingui window = new Maingui();
					window.frame.setVisible(true);

This is an interesting question, I would guess the best answer would be provided with what will the external gui do?

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

23 hours ago, Animefan8888 said:

This is an interesting question, I would guess the best answer would be provided with what will the external gui do?

 

18 hours ago, jabelar said:

Well, one thing you can do is handle the GUI open event and whenever the earliest GUI is opened you could then have a chance to intercept it and even replace it. But it does really matter what you're trying to do, so maybe explain that better.

 

The GUI is a control panel to switch on and off different game modifiers. The mod is similar to carpet mod by gnembon but I prefer an external gui rather than typing in commands to chat. Maybe it would be easier to open the gui by typing in something like /GUI

 

Link to comment
Share on other sites

6 minutes ago, frederfg said:

game modifiers

Define game modifiers

6 minutes ago, frederfg said:

Maybe it would be easier to open the gui by typing in something like /GUI

Or a key press.

 

But you also must use another Thread for your External Gui. You could also just use an in game gui.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

3 minutes ago, Animefan8888 said:

Define game modifiers

Or a key press.

 

 But you also must use another Thread for your External Gui. You could also just use an in game gui.

Entity tracking (tnt,sand,items), make entities visible or invisible. Trace entity path (tnt,sand,items). List entities (items) and time till they despawn. Mostly mods for technical players. The reason I dont choose an in game gui is because it seems more challenging to create the things I need. (checkboxes, tables, lists) and aesthetics are the least of my concern.

Link to comment
Share on other sites

1 minute ago, frederfg said:

Entity tracking (tnt,sand,items), make entities visible or invisible. Trace entity path (tnt,sand,items). List entities (items) and time till they despawn. Mostly mods for technical players. The reason I dont choose an in game gui is because it seems more challenging to create the things I need. (checkboxes, tables, lists) and aesthetics are the least of my concern.

That works, but remember you will have to use another thread and handle the data transfer between them correctly so that no memory leaks happen.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

Just now, frederfg said:

Would you be able to go into a little more detail?

That's simply a programming/Java thing and a google search will provide a good explanation. And even tutorials on YouTube. 

  • Thanks 1

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

47 minutes ago, frederfg said:

 

 

The GUI is a control panel to switch on and off different game modifiers. The mod is similar to carpet mod by gnembon but I prefer an external gui rather than typing in commands to chat. Maybe it would be easier to open the gui by typing in something like /GUI

 

Do you mean you just want a configuration GUI? You can do a standard config GUI that you can access by pressing ESC then Mod Options. Of you can just do your own extension of GuiScreen and just open it whenever you want (could be chat command if you want). The nice thing about a config GUI is it is already set up to have fairly organized way to set, change, reset, etc. including nested categories. It also allows you the user to configure using a .cfg file directly. 

 

What kind of things would the player be changing?

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

25 minutes ago, jabelar said:

Do you mean you just want a configuration GUI? You can do a standard config GUI that you can access by pressing ESC then Mod Options. Of you can just do your own extension of GuiScreen and just open it whenever you want (could be chat command if you want). The nice thing about a config GUI is it is already set up to have fairly organized way to set, change, reset, etc. including nested categories. It also allows you the user to configure using a .cfg file directly. 

 

What kind of things would the player be changing?

Do you know if the config screen requires a client restart to apply changes? For example I need to be able to adjust a slider while the game is running.

Link to comment
Share on other sites

4 hours ago, frederfg said:

Do you know if the config screen requires a client restart to apply changes? For example I need to be able to adjust a slider while the game is running.

No. You only need a restart if you need a restart -- you can specify if a value change requires restart (default it does not). For example, I have a mod where you can change the color of all the enchantments and you can change them right while playing the game. 

 

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

  • 2 weeks later...
On 8/18/2018 at 9:56 PM, frederfg said:

Do you know if the config screen requires a client restart to apply changes? For example I need to be able to adjust a slider while the game is running.

Nope. Here's a few links to get you started

https://mcforge.readthedocs.io/en/latest/config/annotations/

https://github.com/TheGreyGhost/MinecraftByExample/blob/master/src/main/java/minecraftbyexample/mbe70_configuration/Notes.txt

ExplosivesBanner-1.gif
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.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I have done this now but have got the error:   'food(net.minecraft.world.food.FoodProperties)' in 'net.minecraft.world.item.Item.Properties' cannot be applied to                '(net.minecraftforge.registries.RegistryObject<net.minecraft.world.item.Item>)' public static final RegistryObject<Item> LEMON_JUICE = ITEMS.register( "lemon_juice", () -> new Item( new HoneyBottleItem.Properties().stacksTo(1).food( (new FoodProperties.Builder()) .nutrition(3) .saturationMod(0.25F) .effect(() -> new MobEffectInstance(MobEffects.DAMAGE_RESISTANCE, 1500), 0.01f ) .build() ) )); The code above is from the ModFoods class, the one below from the ModItems class. public static final RegistryObject<Item> LEMON_JUICE = ITEMS.register("lemon_juice", () -> new Item(new Item.Properties().food(ModFoods.LEMON_JUICE)));   I shall keep going between them to try and figure out the cause. I am sorry if this is too much for you to help with, though I thank you greatly for your patience and all the effort you have put in to help me.
    • I have been following these exact tutorials for quite a while, I must agree that they are amazing and easy to follow. I have registered the item in the ModFoods class, I tried to do it in ModItems (Where all the items should be registered) but got errors, I think I may need to revert this and figure it out from there. Once again, thank you for your help! 👍 Just looking back, I have noticed in your code you added ITEMS.register, which I am guessing means that they are being registered in ModFoods, I shall go through the process of trial and error to figure this out.
    • ♈+2349027025197ஜ Are you a pastor, business man or woman, politician, civil engineer, civil servant, security officer, entrepreneur, Job seeker, poor or rich Seeking how to join a brotherhood for protection and wealth here’s is your opportunity, but you should know there’s no ritual without repercussions but with the right guidance and support from this great temple your destiny is certain to be changed for the better and equally protected depending if you’re destined for greatness Call now for enquiry +2349027025197☎+2349027025197₩™ I want to join ILLUMINATI occult without human sacrificeGREATORLDRADO BROTHERHOOD OCCULT , Is The Club of the Riches and Famous; is the world oldest and largest fraternity made up of 3 Millions Members. We are one Family under one father who is the Supreme Being. In Greatorldrado BROTHERHOOD we believe that we were born in paradise and no member should struggle in this world. Hence all our new members are given Money Rewards once they join in order to upgrade their lifestyle.; interested viewers should contact us; on. +2349027025197 ۝ஐℰ+2349027025197 ₩Greatorldrado BROTHERHOOD OCCULT IS A SACRED FRATERNITY WITH A GRAND LODGE TEMPLE SITUATED IN G.R.A PHASE 1 PORT HARCOURT NIGERIA, OUR NUMBER ONE OBLIGATION IS TO MAKE EVERY INITIATE MEMBER HERE RICH AND FAMOUS IN OTHER RISE THE POWERS OF GUARDIANS OF AGE+. +2349027025197   SEARCHING ON HOW TO JOIN THE Greatorldrado BROTHERHOOD MONEY RITUAL OCCULT IS NOT THE PROBLEM BUT MAKE SURE YOU'VE THOUGHT ABOUT IT VERY WELL BEFORE REACHING US HERE BECAUSE NOT EVERYONE HAS THE HEART TO DO WHAT IT TAKES TO BECOME ONE OF US HERE, BUT IF YOU THINK YOU'RE SERIOUS MINDED AND READY TO RUN THE SPIRITUAL RACE OF LIFE IN OTHER TO ACQUIRE ALL YOU NEED HERE ON EARTH CONTACT SPIRITUAL GRANDMASTER NOW FOR INQUIRY +2349027025197   +2349027025197 Are you a pastor, business man or woman, politician, civil engineer, civil servant, security officer, entrepreneur, Job seeker, poor or rich Seeking how to join
    • Hi, I'm trying to use datagen to create json files in my own mod. This is my ModRecipeProvider class. public class ModRecipeProvider extends RecipeProvider implements IConditionBuilder { public ModRecipeProvider(PackOutput pOutput) { super(pOutput); } @Override protected void buildRecipes(Consumer<FinishedRecipe> pWriter) { ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModBlocks.COMPRESSED_DIAMOND_BLOCK.get()) .pattern("SSS") .pattern("SSS") .pattern("SSS") .define('S', ModItems.COMPRESSED_DIAMOND.get()) .unlockedBy(getHasName(ModItems.COMPRESSED_DIAMOND.get()), has(ModItems.COMPRESSED_DIAMOND.get())) .save(pWriter); ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.COMPRESSED_DIAMOND.get(),9) .requires(ModBlocks.COMPRESSED_DIAMOND_BLOCK.get()) .unlockedBy(getHasName(ModBlocks.COMPRESSED_DIAMOND_BLOCK.get()), has(ModBlocks.COMPRESSED_DIAMOND_BLOCK.get())) .save(pWriter); ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.COMPRESSED_DIAMOND.get()) .pattern("SSS") .pattern("SSS") .pattern("SSS") .define('S', Blocks.DIAMOND_BLOCK) .unlockedBy(getHasName(ModItems.COMPRESSED_DIAMOND.get()), has(ModItems.COMPRESSED_DIAMOND.get())) .save(pWriter); } } When I try to run the runData client, it shows an error:  Caused by: java.lang.IllegalStateException: Duplicate recipe compressed:compressed_diamond I know that it's caused by the fact that there are two recipes for the ModItems.COMPRESSED_DIAMOND. But I need both of these recipes, because I need a way to craft ModItems.COMPRESSED_DIAMOND_BLOCK and restore 9 diamond blocks from ModItems.COMPRESSED_DIAMOND. Is there a way to solve this?
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.