Coder Social home page Coder Social logo

kettinglauncher's Introduction

Ketting Logo

discord-widget build-status latest-release

Ketting Launcher

Ketting Launcher is an all-in-one launcher for all Ketting versions. This can essentially be used as a server jar, but for all versions of Ketting.

How to use

Before running the launcher

  • Make sure that you have Java 17 installed. You can download it here.
  • Make sure you are in a clean directory, as the launcher will download all the files it needs to run in the current directory. Do not run the launcher jar in your downloads folder!

Running the launcher

  1. Download the latest version of Ketting Launcher from the releases page.
  2. Make a new folder and put the launcher in it.
  3. Open a terminal of choice and run the jar with
    java -jar kettinglauncher-X.X.X.jar -minecraftVersion <version>
    (see launch arguments for more info)

Arguments

Note

These arguments are subject to change, and may not work in future versions. For a full list of arguments, run the launcher with -help

Argument Description
-help Shows the help menu
-noui Disables the fancy UI
-nologo Disables the big logo
-accepteula Accepts the EULA automatically
-dau or -daus Disables automatic server updates
-daul Disables automatic launcher updates
-createLaunchScripts Creates launch scripts to launch Ketting directly
-installOnly Only installs the server and exits after
-minecraftVersion <version> Sets the Minecraft version to use 1
-forgeVersion <version> Sets the Forge version to use 1, 2
-kettingVersion <version> Sets the Ketting version to use 1, 2
Unstable arguments: Description
--launchTarget <target> Sets the forge launch target, this should not be used unless you know what you're doing

All args above can also be set by setting environment variables or jvm Properties. Let x be an arbitrary argument from the above lists, with the character - removed (e.g. -dau becomes dau). The corresponding Environment Variable to that argument would be: kettinglauncher_ followed by x (e.g. kettinglauncher_dau in case of the earlier example). The corresponding jvm Property to that argument would be: kettinglauncher. followed by x (e.g. kettinglauncher.dau in case of the earlier example).

There is also the jvm Property kettinglauncher.debug. That cannot be set any other way, due to java limitations and how the launcher is laid out. We do not recommend activating that, since it activates a ton of extra information, that is most of the time useless.

What if my I don't know how / my hosting provider does not allow me to use arguments?

You can create a file called mcversion.txt in the same directory as the jar, and put the Minecraft version in there. This will be used as the Minecraft version and will take priority over the -minecraftVersion argument.

FAQ

Why is this launcher not on the official Ketting website?

This will be added in the future, when I have time to create a new website.

My server is not starting, what do I do?

Before you create an issue, check if you followed all steps in the how to use section. If you did, create an issue on the issue tracker.

I found a bug, what do I do?

Note: For any bugs not related to the launcher itself, please create an issue on the respective repository. E.g. Ketting-1-20-x.
Make sure that the bug is not already reported on the issue tracker. If it is not, create a new issue with as much information as possible.

I have a question that is not listed here, what do I do?

Feel free to join our Discord server and ask your question there.

Footnotes

  1. only if Ketting supports it 2 3

  2. This argument will not update the Minecraft Version. If the current Server Minecraft Version is detected to be 1.20.1, but e.g. forgeVersion is set to 48.1.0, it won't update to 1.20.2. 2

kettinglauncher's People

Contributors

c0d3-m4513r avatar justred23 avatar lestegii avatar tonimatasdev avatar aqueleharu avatar ultralionfr avatar soapy7261 avatar

Stargazers

The Little Fox avatar Hữu Tình avatar Eduardo avatar 5UP3R_D1N avatar  avatar Reggie Jackson avatar Notsume avatar Lorenzo Cardinali avatar  avatar TNTStudios avatar SoraxDubbing avatar MennoJob G. avatar HDCAMPO avatar

kettinglauncher's Issues

Crashing on start up With ATM9

I tried launching [kettinglauncher], specifically this version [kettinglauncher-1.3.8.jar], the newest version, with my All the Mods 9 server. It never starts; it runs for about 30 seconds and then crashes. Here are all the logs and crash reports I could find. I didn't know exactly what information you needed to help me or prevent this in the future, so I'm sending everything.

Test.txt
debug.log
latest.log

Here is a link to the complete mod list. https://www.modpackindex.com/modpack/64056/all-the-mods-9-atm9

(Optional) Add language support?

Would be nice to have someone translate the launcher sysouts into their own language for useability, might be a nice thing to add

Server Eula is potentially checked from two paths

The server eula is potentially checked twice, if the launcher is started from a different directory.
e.g. java -jar ../launcher/kettinglauncher.jar would check for the eula in ../launcher from the launcher side, and in . for the started server.
This could lead to a condition where the eula in ../launcher is accepted, but not in ..

Wacatac.B!ml Trojan Virus Detected

So I've been trying to set up a server with the 1.3.3 launcher, and uhhh... well, it keeps saying that a trojan virus is detected, and that just deletes it. This doesn't happen with the ketting-1.20.2-48.1.0-5ab73d26-server.jar file, so, this seems pretty exclusive aand, I kinda don't want to have a virus on my old clanker. Hope somebody resolves where this is in the code and yeah, thanks.

reimplement `Patcher.checkUpdate()`

Currently the Patcher doesn't check, if re-patching is needed and just ALWAYS patches.
This should be optimized, by checking, if any of the relent files changed.
Relavent files should only be:

  • installer.json
  • server binary patches
  • universalJar?

Add KettingCore subversion support?

Since you did not like the idea of downloading latest, what if we allow subversions of the current version? So for example if we use kc 1.2.3, how about we allow all versions in 1.2?

Typo in Readme and help (-nogui argument)

In the readme's arguments table, the -nogui argument is labeled as "-noui", which did not work for me while "-nogui" did.
Also when running the launcher with -help "-noui" is shown.

Mods

I have no damm idea where to go for mods A Link would be nice

How to pass JVM args like -Xmx etc?

All other servers I've seen use a special file like "user_jvm_args.txt", but here I'm not sure what to do, couldn't find any documentation on this either. I basically want to limit RAM usage for JVM with a flag like "-Xmx12G". This is what I tried and it didn't work:

java -jar .\kettinglauncher-1.3.8.jar -noui -accepteula -daus -daul -minecraftVersion 1.20.1 -forgeVersion 47.2.20 -Xmx12G

Downloading Dynamic Versions is kinda slow

For dynamic Versions we have to:

  • Download Manifest Hash (if it exists in a repo we directly download the manifest itself)
  • Download Dependency Hash (if it exists in a repo we directly download the dep)

And especially the first step will hurt us, since the Manifest is currently not cached.
I would love to also cache the Manifest, but if we release new versions, the manifest necessarily has to change. Then cloudflare sometimes doesn't update the hashes and the manifest itself at the same time, and then the launcher complains.

So sadly this is not a trivial solution.

Maybe we could try to not check the Manifest's hash. Then a hash-mismatch would no longer pose a problem, and I could cache the Manifest again, which would probably improve download times.

Should that still be too slow, we could not check for version updates, if the manifest file has been modified less than a certain time.

Fix 1.20.2 launcher

The 1.20.2 launcher currently does not utilize the Forge BootstrapLauncher, which makes it incompatible with the current launcher

TODO: Better argument system

At the moment we manually check for args to be present / display hardcoded values (see #1). It would be a nice addition to put those args in a seperate class and check for them using isPresent or something like that

Skipped Arg parsing sometimes causes issues

In Bundled Ketting Dev Jar's the parsing of the -daul arg get's skipped.
This causes the minecraft server to somehow think, that it's in demo mode.
This sometimes causes other issues and is 100% not intended.

We should thus try to always remove all kettinglauncher specific arguments, without exception.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.