You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+47-16Lines changed: 47 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,11 +20,11 @@ a.k.a. "EaglerXServer"
20
20
21
21
## Downloads
22
22
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.**
24
24
25
25
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.
26
26
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:
28
28
29
29
-**EaglerXServer** - The core EaglercraftXServer plugin for Spigot, BungeeCord, and Velocity
30
30
-**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
54
54
55
55
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.
56
56
57
-
##Development on Spigot
57
+
### Maven Repository
58
58
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:
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.
66
77
78
+
Be sure to add `depend: [ EaglercraftXServer ]` to your `plugin.yml` or things will not work.
79
+
67
80
We don't currently support Folia, you'd be better off with BungeeCord or Velocity at that point.
68
81
69
82
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.
70
83
71
-
### Known issues on Spigot
84
+
####Known issues on Spigot
72
85
73
86
- You cannot set a player's UUID through any Eaglercraft login events
74
87
75
-
## Development on BungeeCord
88
+
###Development on BungeeCord
76
89
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:
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.
82
97
83
98
Your project must be using at least Java 17, otherwise Gradle will probably pretend that it can't find the dependencies.
84
99
85
100
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.
86
101
87
-
### Known issues on BungeeCord
102
+
####Known issues on BungeeCord
88
103
89
104
-`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.
90
105
91
-
## Development on Velocity
106
+
###Development on Velocity
92
107
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:
Be sure to add `dependencies = { @Dependency(id = EaglerXServerAPI.PLUGIN_ID, optional = false) }` to your plugin annotation or things will not work.
98
115
99
116
Your project must be using at least Java 17, otherwise Gradle will probably pretend that it can't find the dependencies.
100
117
101
118
Call `EaglerXServerAPI.instance()` (using `import net.lax1dude.eaglercraft.backend.server.api.velocity.EaglerXServerAPI;`) during or after your plugin is constructed to access the API.
102
119
103
-
### Known issues on Velocity
120
+
####Known issues on Velocity
104
121
105
122
- 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!
106
123
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:
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
+
107
138
## Contributing to EaglercraftXServer
108
139
109
140
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