Jump to content

Recommended Posts

Posted

I'm trying to make a custom modded launcher using C# that will allow users to play a custom modpack. I've managed the authentication part, so premium users can now be properly authenticated, but i can't figure out how to actually start the game. I've search trhough the web but i only found some old methods that no longer works now (at least not for 1.10). Does anyone know where can i look to see how can i launch the game using C# or command line?

Don't blame me if i always ask for your help. I just want to learn to be better :)

Posted

Why shouldn't i make a custom launcher? Are there some exploits that i should aware of? Because as far as i know Mojang allows you to do that :/

Don't blame me if i always ask for your help. I just want to learn to be better :)

Posted

I see that point and i totally agree, perhaps making the launcher open source would prevent any suspect of malicious intents. But i guess i should skip this, i'm developing an rpg mod and would be cool if the player can see his stats without logging into the actual game, that's why i was trying to do this :/

Don't blame me if i always ask for your help. I just want to learn to be better :)

Posted

Quoting Lexmanos:
 

Quote

Do NOT make other launchers. Mojang has EXPLICITLY said they do not want people entering their login details into other services.

There is a reason why the Twitch app loads the vanilla launcher.

You will not get any help for this here.

 

Posted (edited)

Go ahead and make a custom launcher. Just use it to launch the vanilla game from the vanilla source.

Your process would probably look something like this:

  • Locate Minecraft directory, verify it's installed and on the proper version
  • Check if you mod is installed, if it isn't install it
  • Upon clicking launch, use a process handler to run Minecraft.exe on the requested profile
  • On subsequent launches, allow the launcher to access the mod PlayerData files to display their stats without launching the game

 

This way, you don't violate the EULA, you don't violate any copyright laws, and you don't ask for any login or authentication data. This also is a lot easier than trying to write everything you think you need to.

Edited by ModMCdl

Follow these rules when talking to me, and we'll get along fine.

1).I know Java fairly well. I don't know as much about modding. They are not the same, don't compare them.

2). I consider myself to always be learning. I make mistakes, you make mistakes. Who doesn't?

3). Insult me, and I will leave the thread. I have a real life, I don't have time to throw petty insults in a Minecraft Modding forum.

 

ModMCdl - Co-Founder and Director of Design for Artemis Game Studios

Posted
Quote
  • Upon clicking launch, use a process handler to run Minecraft.exe on the requested profile

This is the part i'm missing, i don't understand wich arguments should i pass to the Minecraft.exe process in order to launch the game in a specific version without opening the launcher :/

Don't blame me if i always ask for your help. I just want to learn to be better :)

Posted
On 10/22/2017 at 3:32 PM, JimiIT92 said:

This is the part i'm missing, i don't understand wich arguments should i pass to the Minecraft.exe process in order to launch the game in a specific version without opening the launcher :/

Minecraft names their jar files per version. For example, in the default installation, the 1.12.2 version jar path is C:\Users\<username>\AppData\Roaming\.minecraft\versions\1.12.2\1.12.2.jar . The launcher profiles (which landles the specific versions and such that are launched when you create or edit a launch option), are stored in a file named "launcher_profiles.json." You could write a process that adds a new profile, or checks to see if the said profile already exists on startup. From there, it should be easy to figure out the rest.

 

As for the without opening the launcher part, good luck. I don't see what the issue with having the player click one more button is, besides attempting to remove all of the original branding and make it appear yours. Curse/Twitch, which is one of the most popular launchers, requires you to go through the original launcher as well. Take a look at how they do it: https://mods.curse.com/client

Follow these rules when talking to me, and we'll get along fine.

1).I know Java fairly well. I don't know as much about modding. They are not the same, don't compare them.

2). I consider myself to always be learning. I make mistakes, you make mistakes. Who doesn't?

3). Insult me, and I will leave the thread. I have a real life, I don't have time to throw petty insults in a Minecraft Modding forum.

 

ModMCdl - Co-Founder and Director of Design for Artemis Game Studios

Posted

The point is that the launcher should automatically launch a modded version of the game. If i open the regular launcher from another launcher, than what's the point? By the way i guess i'll switch to Java (unfortunately, cause i hate for this kind of projects) since there are already libraries that allows you to do this :/

 

Don't blame me if i always ask for your help. I just want to learn to be better :)

Posted (edited)
On 10/24/2017 at 0:50 AM, ModMCdl said:

Curse/Twitch, which is one of the most popular launchers, requires you to go through the original launcher as well. Take a look at how they do it: https://mods.curse.com/client

Well, I've always figured this way a bit annoying, not because of the extra window which pops up, but because the launcher always re-downloads itself. As long as I'm only using the normal Launcher or launch it using Curse which then starts the normal launcher, everything works fine, but switching between those two ways always results into a re-download of the launcher...

 

50 minutes ago, JimiIT92 said:

If i open the regular launcher from another launcher, than what's the point?

The point is to not violate the EULA while also staying compatible if Mojang should ever feel the need to change something on their launcher or login side.

Edited by Bektor

Developer of Primeval Forest.

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

    • https://mclo.gs/46Xf7Sq thanks
    • That seems to have fixed it, thank you!
    • I am having some issues starting an RLCraft server on a minimal install of Debian 12. I have Java installed and I'm able to start the vanilla Minecraft server jar no problem and people can join and play without any issues, as soon as I try to create a new directory with the Forge jar the initial install with the INSTALLER jar works when I use the java command with the --installServer flag, but as soon as I try to start the server using the forge jar that is NOT labelled with installer I get the following error: A problem occurred running the Server launcher.java.lang.reflect.InvocationTargetException         at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)         at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.base/java.lang.reflect.Method.invoke(Method.java:569)         at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:70)         at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:34) Caused by: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')         at net.minecraft.launchwrapper.Launch.<init>(Launch.java:34)         at net.minecraft.launchwrapper.Launch.main(Launch.java:28)         ... 6 more   I have tried using newer versions of Java directly from Oracle as well. Has anybody been successful in starting and running a RLCraft server from the terminal on a Linux machine? I cannot figure out why it doesn't want to work but the vanilla jar works without issue. Thank you in advance!
    • This is my latest attempt :  public class ManaScreen extends Screen { Mana mana = new Mana(); boolean removeManaBar = false; ResourceLocation manaBar = ResourceLocation.fromNamespaceAndPath(RSGArmoury.MOD_ID, "/textures/block/spawnable_arena_wall.png"); public ManaScreen() { super(Component.literal("Mana")); } @Override protected void init() { super.init(); Minecraft.getInstance().setScreen(this); } @Override public boolean isPauseScreen() { return false; } @Override public void render(GuiGraphics pGuiGraphics, int pMouseX, int pMouseY, float pPartialTick) { pGuiGraphics.blit(manaBar, 10, -10, 0, 0, mana.getMana(), 10, mana.getMana(), 10); if (removeManaBar) { this.onClose(); return; } super.render(pGuiGraphics, pMouseX, pMouseY, pPartialTick); } public void addManaBar() { removeManaBar = false; Minecraft.getInstance().setScreen(new ManaScreen()); } public boolean removeManaBar() { return removeManaBar = true; } }
  • Topics

×
×
  • Create New...

Important Information

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