mirror of
https://github.com/elyby/docs.git
synced 2025-05-31 14:11:48 +05:30
started docs migration to docusaurus
This commit is contained in:
6
i18n/en/docusaurus-plugin-content-docs/current.json
Normal file
6
i18n/en/docusaurus-plugin-content-docs/current.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"version.label": {
|
||||
"message": "Next",
|
||||
"description": "The label for version current"
|
||||
}
|
||||
}
|
||||
107
i18n/en/docusaurus-plugin-content-docs/current/api.md
Normal file
107
i18n/en/docusaurus-plugin-content-docs/current/api.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# Ely.by API (Mojang API simulation)
|
||||
|
||||
This article contains information about the API compatible with the [Mojang API](http://wiki.vg/Mojang_API) functionality. Please note that this is not a full-fledged API of Ely.by, but only a set of additional requests implemented based on our `[authorization server](./minecraft-auth.md)`.
|
||||
|
||||
## Requests
|
||||
:::note
|
||||
The API has no rate limit. We just have a configured fail2ban that will ban especially annoying clients. That’s the way.
|
||||
:::
|
||||
|
||||
This section will describe the requests and their corresponding variants for Mojang API. Base URL for requests is `https://authserver.ely.by`.
|
||||
|
||||
### UUID by username at a time {#uuid-by-username}
|
||||
This request allows you to find out the UUID of a user by their username at a specified point in time. The time is specified via GET parameter at as a Unix timestamp.
|
||||
|
||||
> **GET /api/users/profiles/minecraft/\{username\}**
|
||||
>
|
||||
> Where `{username}` is the searched username. It can be passed in any case (in the Mojang API, only strict match).
|
||||
> Note that the legacy and demo params will never be returned, as these parameters have no alternative in Ely and are specific only for Mojang services.
|
||||
|
||||
In case of a successful request you will receive the following response:
|
||||
```json
|
||||
{
|
||||
"id": "ffc8fdc95824509e8a57c99b940fb996",
|
||||
"name": "ErickSkrauch"
|
||||
}
|
||||
```
|
||||
|
||||
When the passed username isn’t found, you will receive a response with `204` status code and an empty body.
|
||||
|
||||
### Username by UUID + history of changes {#username-by-uuid}
|
||||
This request allows you to find out all usernames used by a user by their UUID.
|
||||
|
||||
> **GET /api/user/profiles/\{uuid\}/names**
|
||||
>
|
||||
> Where `{uuid}` is a valid UUID. UUID might be written with or without hyphens. If an invalid string is passed, [IllegalArgumentException](#illegal-argument-exception) will be returned with the message `"Invalid uuid format."`.
|
||||
|
||||
In case of a successful request you will receive the following response:
|
||||
```json
|
||||
[
|
||||
{
|
||||
"name": "Admin"
|
||||
},
|
||||
{
|
||||
"name": "ErickSkrauch",
|
||||
"changedToAt": 1440707723000
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
:::note
|
||||
Since Ely.by doesn’t store the moment of username change only 1 username will always be returned. We may add full support for remembering when a username was changed in the future.
|
||||
:::
|
||||
|
||||
When the passed UUID isn’t found, you will receive a response with `204` status code and an empty body.
|
||||
|
||||
### Usernames list to their UUIDs {#usernames-to-uuids}
|
||||
This request allows you to query a list of users’ UUIDs by their usernames.
|
||||
|
||||
> **POST /api/profiles/minecraft**
|
||||
>
|
||||
> In the request body or POST parameters you need to pass a valid JSON array of the searched usernames.
|
||||
>
|
||||
> The array must contain no more than 100 usernames, otherwise [IllegalArgumentException](#illegal-argument-exception) will be returned with the message `"Not more than that 100 profile names per call is allowed."`. In case the passed string is an invalid JSON object, the same exception will be returned, but with the text `"Passed array of profile names is an invalid JSON string."`.
|
||||
>
|
||||
> Example of a request body:
|
||||
> ```json
|
||||
> ["ErickSkrauch", "EnoTiK", "KmotherfuckerF"]
|
||||
> ```
|
||||
|
||||
In case of a successful request you will receive the following response:
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "ffc8fdc95824509e8a57c99b940fb996",
|
||||
"name": "ErickSkrauch"
|
||||
},
|
||||
{
|
||||
"id": "b8407ae8218658ef96bb0cb3813acdfd",
|
||||
"name": "EnoTiK"
|
||||
},
|
||||
{
|
||||
"id": "39f42ba723de56d98867eabafc5e8e91",
|
||||
"name": "KmotherfuckerF"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
The data is returned in the same order they were requested.
|
||||
|
||||
If one of the passed usernames isn’t found in the database, no value will be returned for it (it will be skipped). Keep this in mind when parsing the response.
|
||||
|
||||
### Profile info by UUID {#profile-by-uuid}
|
||||
See the `[profile request for the authorization server](./minecraft-auth.md#profile-request)`.
|
||||
|
||||
## Possible errors {#possible-errors}
|
||||
|
||||
### IllegalArgumentException {#illegal-argument-exception}
|
||||
This error occurs when attempting to send data to the server in an incorrect format.
|
||||
|
||||
An error example:
|
||||
```json
|
||||
{
|
||||
"error": "IllegalArgumentException",
|
||||
"errorMessage": "Invalid uuid format."
|
||||
}
|
||||
```
|
||||
The `errorMessage` is not always matches Mojang’s strings, but the differences are only apparent to Ely-specific errors. The original requests and the errors expected from them repeat Mojang texts.
|
||||
@@ -0,0 +1,59 @@
|
||||
# Authlib-Injector
|
||||
**authlib-injector** is a library that allows you to spoof authorization and session server addresses in the Authlib without modifying the library itself. It’s designed as an javaagent.
|
||||
|
||||
This library significantly simplifies the installation of an alternative authorization service in the game client and server, since transformation occurs during application bootstrap process.
|
||||
|
||||
You can download the latest version from the [releases page on GitHub](https://github.com/yushijinhun/authlib-injector/releases/latest).
|
||||
|
||||
Here is the documentation of the key aspects of installing and using the library. For more information, see the [original documentation in Chinese](https://github.com/yushijinhun/authlib-injector/wiki).
|
||||
|
||||
## Installing in a game client {#client}
|
||||
:::warning
|
||||
This section describes how to install the **authlib-injector** into the game. The game launcher still needs to implement the authorization flow itself in order to pass the `accessToken` to the game.
|
||||
:::
|
||||
|
||||
To install the library, you need to specify it as a javaagent for the game. You can do this by prepending the line `-javaagent:/path/to/file/authlib-injector.jar=ely.by` as a game launching param. As the result, the launch command should look like this:
|
||||
```bash
|
||||
java -javaagent:/path/to/authlib-injector.jar=ely.by -jar minecraft.jar
|
||||
```
|
||||
If you run the game via launcher, then in “settings” you need to find a field for specifying additional JVM arguments, where you need to insert the line above.
|
||||
|
||||

|
||||
|
||||
## Installing on a server {#server}
|
||||
Just as in the case with the game client, the library must be specified as javaagent. [Download the library](https://github.com/yushijinhun/authlib-injector/releases/latest) and put in the server’s directory. Then add the javaagent call to the server launch command:
|
||||
```bash
|
||||
# Before
|
||||
java -jar minecraft_server.jar
|
||||
# After
|
||||
java -javaagent:authlib-injector.jar=ely.by -jar minecraft_server.jar
|
||||
```
|
||||
During server startup you should see a message about the activation of the authlib-injector:
|
||||
|
||||

|
||||
|
||||
### BungeeCord {#bungeecord}
|
||||
The authlib-injector must be installed directly on the BungeeCord itself, as well as **on all backends** behind it. Note the configuration of the online-mode parameter:
|
||||
* The BungeeCord’s configuration (`config.yml`) should contain `online_mode=true`.
|
||||
* The servers behind the proxy must contain in their configuration (`server.properties`) the value `online-mode=false`.
|
||||
|
||||
Using such configuration authorization will work for all logging in players and the internal servers will correctly display player skins.
|
||||
|
||||
### LaunchHelper {#launchhelper}
|
||||
Not all game hostings allow direct modifications of launch arguments. To get around this limitation, you can use a special server that runs the game server by mixing authlib-injector into it. To install, follow these instructions:
|
||||
|
||||
1. Download the corresponding LaunchHelper for your operating system from the [releases page](https://github.com/Codex-in-somnio/LaunchHelper/releases/latest).
|
||||
1. Upload this file and the `authlib-injector.jar` file to the server folder on your hosting site.
|
||||
1. Also create a `launchhelper.properties` file and put the following contents into it:
|
||||
```properties
|
||||
javaAgentJarPath=authlib-injector.jar
|
||||
javaAgentOptions=ely.by
|
||||
execJarPath=minecraft_server.jar
|
||||
```
|
||||
Where `javaAgentJarPath` contains the path to the `authlib-injector.jar` file and `execJarPath` contains the name of the server file.
|
||||
1. In the hosting control panel, specify the `LaunchHelper.jar` as the server file.
|
||||
If you can’t change the executable file, you should rename the `LaunchHelper.jar` file to match your hosting requirements (usually, `server.jar`). In this case, you should have the following file structure:
|
||||
* `server.jar` - the LaunchHelper file.
|
||||
* `minecraft_server.jar` - your server core.
|
||||
* `authlib-injector.jar` - the authlib-injector file.
|
||||
* `launchhelper.properties` - the configuration file for the LaunchHelper.
|
||||
8
i18n/en/docusaurus-plugin-content-docs/current/intro.md
Normal file
8
i18n/en/docusaurus-plugin-content-docs/current/intro.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
slug: /
|
||||
---
|
||||
# Welcome to the Ely.by documentation! {#welcome}
|
||||
|
||||
In this documentation you will find information about the public services of the Ely.by project, using which you’ll be able to integrate your projects with the Ely.by services.
|
||||
|
||||
You are free to improve this documentation in the documentation’s repository.
|
||||
Reference in New Issue
Block a user