Skip to content

Commit c076d48

Browse files
committed
use EaglercraftClientBrandEvent instead of EaglercraftLoginEvent
1 parent a0ab221 commit c076d48

File tree

5 files changed

+57
-10
lines changed

5 files changed

+57
-10
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ plugins {
88

99

1010
group = 'dev.colbster937'
11-
version = '1.0.2'
11+
version = '1.0.3'
1212
description = 'A reimplementation of OriginBlacklist for EaglerXServer'
1313
def targetJavaVersion = 17
1414

src/main/java/dev/colbster937/originblacklist/base/Base.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import net.kyori.adventure.text.minimessage.MiniMessage;
55
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
66
import net.lax1dude.eaglercraft.backend.server.api.*;
7-
import net.lax1dude.eaglercraft.backend.server.api.event.IEaglercraftLoginEvent;
7+
import net.lax1dude.eaglercraft.backend.server.api.event.IEaglercraftClientBrandEvent;
88
import net.lax1dude.eaglercraft.backend.server.api.event.IEaglercraftMOTDEvent;
99
import net.lax1dude.eaglercraft.backend.server.api.query.IMOTDConnection;
1010

@@ -34,6 +34,20 @@ public static void setApi(IEaglerXServerAPI api1) {
3434
api = api1;
3535
}
3636

37+
public static String apiVer = "1.0.2";
38+
39+
public static boolean checkVer(String v1, String v2) {
40+
String[] c = v1.split("\\.");
41+
String[] r = v2.split("\\.");
42+
for (int i = 0; i < Math.max(c.length, r.length); i++) {
43+
int c1 = i < c.length ? Integer.parseInt(c[i]) : 0;
44+
int r1 = i < r.length ? Integer.parseInt(r[i]) : 0;
45+
if (c1 < r1) return false;
46+
if (c1 > r1) return true;
47+
}
48+
return true;
49+
}
50+
3751
public static LoggerAdapter getLogger() {
3852
if (adapter == null) throw new IllegalStateException("Logger not initialized!");
3953
return adapter;
@@ -45,8 +59,8 @@ public interface LoggerAdapter {
4559
void error(String msg);
4660
}
4761

48-
public static void handleConnection(IEaglercraftLoginEvent e) {
49-
IEaglerLoginConnection conn = e.getLoginConnection();
62+
public static void handleConnection(IEaglercraftClientBrandEvent e) {
63+
IEaglerPendingConnection conn = e.getPendingConnection();
5064
String origin = conn.getWebSocketHeader(EnumWebSocketHeader.HEADER_ORIGIN);
5165
String brand = conn.getEaglerBrandString();
5266
if ((origin != "null" || origin != null) && !config.blacklist.missing_origin) {

src/main/java/dev/colbster937/originblacklist/bukkit/OriginBlacklistBukkit.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,29 @@
22

33
import dev.colbster937.originblacklist.base.Base;
44
import net.lax1dude.eaglercraft.backend.server.api.bukkit.EaglerXServerAPI;
5-
import net.lax1dude.eaglercraft.backend.server.api.bukkit.event.EaglercraftLoginEvent;
5+
import net.lax1dude.eaglercraft.backend.server.api.bukkit.event.EaglercraftClientBrandEvent;
66
import net.lax1dude.eaglercraft.backend.server.api.bukkit.event.EaglercraftMOTDEvent;
77
import org.bukkit.event.EventHandler;
88
import org.bukkit.event.Listener;
99
import org.bukkit.plugin.java.JavaPlugin;
10+
import org.bukkit.plugin.Plugin;
1011

1112
public class OriginBlacklistBukkit extends JavaPlugin implements Listener {
1213

1314
@Override
1415
public void onEnable() {
16+
Plugin plugin = getServer().getPluginManager().getPlugin("eaglerxserver");
17+
if (plugin != null) {
18+
String version = plugin.getDescription().getVersion();
19+
if (!Base.checkVer(version, Base.apiVer)) {
20+
getLogger().severe("EaglerXServer " + Base.apiVer + " is required!");
21+
throw new RuntimeException("Incompatible API version");
22+
}
23+
} else {
24+
throw new RuntimeException("Missing EaglerXServer");
25+
}
26+
27+
1528
Base.setLogger(new Base.LoggerAdapter() {
1629
@Override public void info(String msg) { getLogger().info(msg); }
1730
@Override public void warn(String msg) { getLogger().warning(msg); }
@@ -29,7 +42,7 @@ public void onEnable() {
2942
}
3043

3144
@EventHandler
32-
public void onLogin(EaglercraftLoginEvent event) {
45+
public void onLogin(EaglercraftClientBrandEvent event) {
3346
Base.handleConnection(event);
3447
}
3548

src/main/java/dev/colbster937/originblacklist/bungee/OriginBlacklistBungee.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import dev.colbster937.originblacklist.base.Base;
44
import net.lax1dude.eaglercraft.backend.server.api.bungee.EaglerXServerAPI;
5-
import net.lax1dude.eaglercraft.backend.server.api.bungee.event.EaglercraftLoginEvent;
5+
import net.lax1dude.eaglercraft.backend.server.api.bungee.event.EaglercraftClientBrandEvent;
66
import net.lax1dude.eaglercraft.backend.server.api.bungee.event.EaglercraftMOTDEvent;
77
import net.md_5.bungee.api.plugin.Plugin;
88
import net.md_5.bungee.api.plugin.Listener;
@@ -12,6 +12,18 @@ public class OriginBlacklistBungee extends Plugin implements Listener {
1212

1313
@Override
1414
public void onEnable() {
15+
Plugin plugin = getProxy().getPluginManager().getPlugin("eaglerxserver");
16+
if (plugin != null) {
17+
String version = plugin.getDescription().getVersion();
18+
if (!Base.checkVer(version, Base.apiVer)) {
19+
getLogger().severe("EaglerXServer " + Base.apiVer + " is required!");
20+
throw new RuntimeException("Incompatible API version");
21+
}
22+
} else {
23+
throw new RuntimeException("Missing EaglerXServer");
24+
}
25+
26+
1527
Base.setLogger(new Base.LoggerAdapter() {
1628
@Override public void info(String msg) { getLogger().info(msg); }
1729
@Override public void warn(String msg) { getLogger().warning(msg); }
@@ -29,7 +41,7 @@ public void onEnable() {
2941
}
3042

3143
@EventHandler
32-
public void onLogin(EaglercraftLoginEvent event) {
44+
public void onLogin(EaglercraftClientBrandEvent event) {
3345
Base.handleConnection(event);
3446
}
3547

src/main/java/dev/colbster937/originblacklist/velocity/OriginBlacklistVelocity.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.velocitypowered.api.proxy.ProxyServer;
77
import dev.colbster937.originblacklist.base.Base;
88
import net.lax1dude.eaglercraft.backend.server.api.velocity.EaglerXServerAPI;
9-
import net.lax1dude.eaglercraft.backend.server.api.velocity.event.EaglercraftLoginEvent;
9+
import net.lax1dude.eaglercraft.backend.server.api.velocity.event.EaglercraftClientBrandEvent;
1010
import net.lax1dude.eaglercraft.backend.server.api.velocity.event.EaglercraftMOTDEvent;
1111
import org.slf4j.Logger;
1212

@@ -28,6 +28,14 @@ public OriginBlacklistVelocity(ProxyServer proxy1, Logger logger1) {
2828

2929
@Subscribe
3030
public void onProxyInitialization(ProxyInitializeEvent event) {
31+
proxy.getPluginManager().getPlugin("eaglerxserver").ifPresentOrElse(plugin -> {
32+
if (!Base.checkVer(plugin.getDescription().getVersion().orElse("1.0.0"), Base.apiVer)) {
33+
logger.error("EaglerXServer " + Base.apiVer + " is required!");
34+
throw new RuntimeException("Incompatible api version");
35+
}
36+
}, () -> {
37+
throw new RuntimeException("Missing EaglerXServer");
38+
});
3139
Base.setApi(EaglerXServerAPI.instance());
3240
Base.reloadConfig();
3341
Base.init();
@@ -36,7 +44,7 @@ public void onProxyInitialization(ProxyInitializeEvent event) {
3644
}
3745

3846
@Subscribe
39-
public void onLogin(EaglercraftLoginEvent event) {
47+
public void onLogin(EaglercraftClientBrandEvent event) {
4048
Base.handleConnection(event);
4149
}
4250

0 commit comments

Comments
 (0)