Skip to content

Commit cd9ea7b

Browse files
committed
Update README.md
1 parent 3954e34 commit cd9ea7b

File tree

1 file changed

+47
-16
lines changed

1 file changed

+47
-16
lines changed

README.md

Lines changed: 47 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ a.k.a. "EaglerXServer"
2020

2121
## Downloads
2222

23-
If you lack the motivation to figure this out yourself, you can get started quickly by downloading a complete Paper 1.12.2 Eaglercraft server distribution from LINK that supports EaglercraftX 1.8, Eaglercraft 1.12.2, and Eaglercraft 1.5.2 clients all from a single server.
23+
**If you lack the motivation to figure this out yourself, you can get started quickly by downloading a complete Paper 1.12.2 Eaglercraft server distribution from [https://github.com/Eaglercraft-Templates/Eaglercraft-Server-Paper](https://github.com/Eaglercraft-Templates/Eaglercraft-Server-Paper) that supports EaglercraftX 1.8, Eaglercraft 1.12.2, and Eaglercraft 1.5.2 clients all from a single server.**
2424

2525
You will not receive support for issues installing EaglercraftXServer on Spigot (or forks of Spigot like Paper) if you are using a version of Spigot greater than 1.12.2, because limitations in plugin messages prevent protocol V4 and below EaglercraftX clients from working on these servers properly.
2626

27-
Please see the Releases tab to get the latest stable binaries, the available files are:
27+
Please see the [Releases](https://github.com/lax1dude/eaglerxserver/releases) tab to get the latest stable binaries, the available files are:
2828

2929
- **EaglerXServer** - The core EaglercraftXServer plugin for Spigot, BungeeCord, and Velocity
3030
- **EaglerXRewind** - Add support for Eaglercraft 1.5.2 by translating the packets to 1.8 like ViaVersion
@@ -54,56 +54,87 @@ Additionally, the EaglercraftX 1.8 protocol module is exposed in the API as well
5454

5555
We also plan to write a javadoc for 100% of all the API's classes, interfaces, and methods. This has not been completed yet but will hopefully be soon.
5656

57-
## Development on Spigot
57+
### Maven Repository
5858

59-
This is a partial example of a `build.gradle` for creating a Spigot plugin.
59+
The stable API is available through a Maven repository, add it to your `build.gradle` by putting the following lines in the `repositories` block:
6060

61-
TODO
61+
```gradle
62+
maven {
63+
name = "lax1dude"
64+
url = uri("https://repo.lax1dude.net/repository/releases/")
65+
}
66+
```
6267

63-
Be sure to add `depend: [EaglercraftXServer]` to your `plugin.yml` or things will not work.
68+
### Development on Spigot
69+
70+
Add the following line to your Spigot plugin's Gradle `dependencies` block to use EaglercraftXServer with the Spigot API:
71+
72+
```gradle
73+
compileOnly "net.lax1dude.eaglercraft.backend:api-bukkit:1.0.0"
74+
```
6475

6576
The native Spigot version of the API is Paper 1.12.2, but it will also work with most other legacy versions of the Spigot API. Your project must be using at least Java 17, otherwise Gradle will probably pretend that it can't find the dependencies.
6677

78+
Be sure to add `depend: [ EaglercraftXServer ]` to your `plugin.yml` or things will not work.
79+
6780
We don't currently support Folia, you'd be better off with BungeeCord or Velocity at that point.
6881

6982
Call `EaglerXServerAPI.instance()` (using `import net.lax1dude.eaglercraft.backend.server.api.bukkit.EaglerXServerAPI;`) during or after your plugin's `onLoad` handler has been called to access the API.
7083

71-
### Known issues on Spigot
84+
#### Known issues on Spigot
7285

7386
- You cannot set a player's UUID through any Eaglercraft login events
7487

75-
## Development on BungeeCord
88+
### Development on BungeeCord
7689

77-
This is a partial example of a `build.gradle` for creating a BungeeCord plugin.
90+
Add the following line to your BungeeCord plugin's Gradle `dependencies` block to use EaglercraftXServer with the BungeeCord API:
7891

79-
TODO
92+
```gradle
93+
compileOnly "net.lax1dude.eaglercraft.backend:api-bungee:1.0.0"
94+
```
8095

81-
Be sure to add `depends: [EaglercraftXServer]` to your `plugin.yml` or things will not work.
96+
Be sure to add `depends: [ EaglercraftXServer ]` to your `plugin.yml` or things will not work.
8297

8398
Your project must be using at least Java 17, otherwise Gradle will probably pretend that it can't find the dependencies.
8499

85100
Call `EaglerXServerAPI.instance()` (using `import net.lax1dude.eaglercraft.backend.server.api.bungee.EaglerXServerAPI;`) during or after your plugin's `onLoad` handler has been called to access the API.
86101

87-
### Known issues on BungeeCord
102+
#### Known issues on BungeeCord
88103

89104
- `PostLoginEvent` is blocked asynchronously until the EaglerXServer player is initialized, meaning you cannot reliably obtain the `IBasePlayer` or `IEaglerPlayer` from within a `PostLoginEvent` handler. You must use `EaglercraftInitializePlayerEvent` to reliably obtain the `IEaglerPlayer` or wait until after `PostLoginEvent` has fired before you attempt to access the player instance through the EaglercraftXServer API.
90105

91-
## Development on Velocity
106+
### Development on Velocity
92107

93-
This is a partial example of a `build.gradle` for creating a Velocity plugin.
108+
Add the following line to your Velocity plugin's Gradle `dependencies` block to use EaglercraftXServer with the Velocity API:
94109

95-
TODO
110+
```gradle
111+
compileOnly "net.lax1dude.eaglercraft.backend:api-velocity:1.0.0"
112+
```
96113

97114
Be sure to add `dependencies = { @Dependency(id = EaglerXServerAPI.PLUGIN_ID, optional = false) }` to your plugin annotation or things will not work.
98115

99116
Your project must be using at least Java 17, otherwise Gradle will probably pretend that it can't find the dependencies.
100117

101118
Call `EaglerXServerAPI.instance()` (using `import net.lax1dude.eaglercraft.backend.server.api.velocity.EaglerXServerAPI;`) during or after your plugin is constructed to access the API.
102119

103-
### Known issues on Velocity
120+
#### Known issues on Velocity
104121

105122
- Avoid async event handlers for code that is sensitive to the order events are observed in (like handling WebView message events), Velocity's event bus will cause the order to be undefined unless your handler, and all handlers of a higher priority, are not async. All event handlers in Velocity currently default to being async unless you explicitly add `async = false` to the subscribe annotation!
106123

124+
## Using the RPC API
125+
126+
If you are using EaglercraftXServer on BungeeCord or Velocity, and want to access the API from your backend Spigot servers, you can use the backend RPC API. Only a subset of the core API is currently available, mainly functions related to player objects, such as detecting Eaglercraft players or retrieving additional Eaglercraft-related information about a player.
127+
128+
Add the following line to your Spigot plugin's Gradle `dependencies` block to use EaglercraftXBackendRPC with the Spigot API:
129+
130+
```gradle
131+
compileOnly "net.lax1dude.eaglercraft.backend:backend-rpc-api-bukkit:1.0.0"
132+
```
133+
134+
You will also need to add the EaglercraftXBackendRPC JAR file to you Spigot plugins folder, and enable the backend RPC API in the EaglercraftXServer settings file.
135+
136+
Call `EaglerXBackendRPC.instance()` (using `import net.lax1dude.eaglercraft.backend.rpc.api.bukkit.EaglerXBackendRPC;`) during or after your plugin is constructed to access the API.
137+
107138
## Contributing to EaglercraftXServer
108139

109140
I'll accept PRs for bugfixes and performance improvements, but if you plan to change the API or add a new feature you need to create an issue first explaining what you plan to do. If you attempt to PR new features or API without talking it over in an issue first, there's no timeline for when your code will be actually be reviewed or merged.

0 commit comments

Comments
 (0)