addonscript-spec/docs/concepts/install.md

82 lines
2.8 KiB
Markdown
Raw Normal View History

2021-06-29 16:34:01 +02:00
# File installing
## Install commands
2021-06-29 16:34:01 +02:00
### move
2021-11-14 00:25:43 +01:00
args:
2021-11-14 00:25:43 +01:00
- `[location]`
2021-07-18 12:35:35 +02:00
2021-11-14 00:25:43 +01:00
`move` is simplest install step of all. It just moves the selected file to
2021-06-29 16:34:01 +02:00
the given location.
### extract
2021-11-14 00:25:43 +01:00
args:
2021-11-14 00:25:43 +01:00
- `[location]`
2021-07-18 12:35:35 +02:00
2021-07-18 12:32:57 +02:00
`extract` can be used with zip files, to extract the contents of the zip file
2021-06-29 16:34:01 +02:00
to the given location.
### rename
2021-11-14 00:25:43 +01:00
args:
2021-11-14 00:25:43 +01:00
- `[new name]`
2021-07-18 12:35:35 +02:00
2021-07-18 12:32:57 +02:00
`rename` renames the selected file to the new given filename.
2021-06-29 16:34:01 +02:00
2022-02-17 11:49:51 +01:00
### inject
`inject` can be used with zip or jar files, to inject the contents of that file
into the server launch jar on server side or into the client jar on client side.
In contrast to libraries, `inject` will not add that file to the classpath, but
will also overwrite classes, which are already contained in the game jar, if they
are also in injected file.
2021-06-29 16:34:01 +02:00
### execute
2021-11-14 00:25:43 +01:00
args:
2021-11-14 00:25:43 +01:00
- `[location]`
- `[jar arguments]`
2021-07-18 12:35:35 +02:00
2021-11-14 00:25:43 +01:00
`execute` can be used with an executable jar file. The jar file will be executed with the given arguments and
2021-06-29 16:34:01 +02:00
the given location as working directory. A client should inform the user before just executing the file and
2021-07-18 12:32:57 +02:00
ask them for permission to do so and/or it should execute the jar in a closed environment like a container
to prevent malicous code from running.
2021-06-29 16:34:01 +02:00
2021-08-14 23:05:46 +02:00
### launch
`launch` can be used to mark the selected file as the launch file for a specific side. Files having this
install step can only have the `client` or the `server` flag, not both. If the file is client-sided, it
has to be a [client JSON file](https://minecraft.fandom.com/wiki/Client.json) as specified by Minecraft
2022-02-16 23:27:55 +01:00
itself. If it is server-sided, it has to be a jar file, which is the file, that should be launched to start
2021-08-14 23:05:46 +02:00
the server. The jar file has to be moved to the root of the instance directory, before using `launch` on it.
2022-02-16 23:27:55 +01:00
Moreover, this install step may only be used with launchable or instance addons and there may be only one file for each
2021-11-14 00:25:43 +01:00
side, which has this install step, except all of them are marked as `optional`, in which case they are also
2022-02-16 23:27:55 +01:00
implicitly marked as incompatible to each other.
2021-08-14 23:05:46 +02:00
2021-06-29 16:34:01 +02:00
### select
2021-11-14 00:25:43 +01:00
args:
2021-11-14 00:25:43 +01:00
- `[filename]`
2021-07-18 12:35:35 +02:00
2021-07-18 12:32:57 +02:00
`select` is used to select the file with the given file name for other installation steps.
2021-06-29 16:34:01 +02:00
The file name can also be a relative path, if the file is not directly in the Minecraft directory.
If no file name is given, the selection resets to the original file itself, also if it was already moved to another location.
## Locations
2021-07-18 12:32:57 +02:00
Locations are specified as a relative path from the Minecraft directory to which the file should be installed.
2021-11-14 00:25:43 +01:00
For example `./mods` would point to the mods directory of the Minecraft instance.
2021-06-29 16:34:01 +02:00
## Directories
If the selected file is a directory, then it is treated like a zip file, which means, that you can move and
2021-07-18 12:32:57 +02:00
rename it like a normal file, but also use the `extract` install step to move all contents of the directory
2021-06-29 16:34:01 +02:00
to the specified location.