Skip to content

Commit 7ec23e4

Browse files
committed
add eagler placeholders
1 parent b380b7f commit 7ec23e4

File tree

9 files changed

+61
-8
lines changed

9 files changed

+61
-8
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ val PLUGIN_NAME = "ASLEaglerHook"
1414
val PLUGIN_IDEN = "asleaglerhook"
1515
val PLUGIN_DOMN = "xyz.webmc.$PLUGIN_IDEN"
1616
val PLUGIN_DESC = "An EaglerXServer addon to display the AdvancedServerList MOTD."
17-
val PLUGIN_VERS = "1.0.0"
17+
val PLUGIN_VERS = "1.0.1"
1818
val PLUGIN_SITE = "https://github.com/WebMCDevelopment/$PLUGIN_IDEN"
1919
val PLUGIN_DEPA = listOf("EaglercraftXServer", "AdvancedServerList")
2020
val PLUGIN_DEPB = listOf("eaglerxserver", "advancedserverlist")

src/main/java/xyz/webmc/asleaglerhook/base/ASLEaglerHook.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package xyz.webmc.asleaglerhook.base;
22

3+
import xyz.webmc.asleaglerhook.base.asl.EaglerASLPlaceholder;
34
import xyz.webmc.asleaglerhook.base.asl.EaglerPingEventWrapper;
45

56
import java.awt.Graphics2D;
@@ -10,10 +11,18 @@
1011

1112
import javax.imageio.ImageIO;
1213

14+
import ch.andre601.advancedserverlist.api.AdvancedServerListAPI;
1315
import ch.andre601.advancedserverlist.api.profiles.ProfileEntry;
1416
import ch.andre601.advancedserverlist.core.events.PingEventHandler;
17+
import net.lax1dude.eaglercraft.backend.server.api.IEaglerXServerAPI;
1518

19+
@SuppressWarnings({ "rawtypes" })
1620
public final class ASLEaglerHook {
21+
public static final void init(final IEaglerXServerAPI eaglerAPI) {
22+
final AdvancedServerListAPI api = AdvancedServerListAPI.get();
23+
api.addPlaceholderProvider(new EaglerASLPlaceholder(eaglerAPI));
24+
}
25+
1726
public static final ProfileEntry handleEvent(final EaglerPingEventWrapper wrapper) {
1827
return PingEventHandler.handleEvent(wrapper);
1928
}

src/main/java/xyz/webmc/asleaglerhook/base/EventPriority.java renamed to src/main/java/xyz/webmc/asleaglerhook/base/EaglerEventPriority.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package xyz.webmc.asleaglerhook.base;
22

3-
public final class EventPriority {
3+
public final class EaglerEventPriority {
44
public static final int EAGLER_MOTD_EVENT = 98;
55
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package xyz.webmc.asleaglerhook.base.asl;
2+
3+
import ch.andre601.advancedserverlist.api.PlaceholderProvider;
4+
import ch.andre601.advancedserverlist.api.objects.GenericPlayer;
5+
import ch.andre601.advancedserverlist.api.objects.GenericServer;
6+
import net.lax1dude.eaglercraft.backend.server.api.IEaglerXServerAPI;
7+
8+
@SuppressWarnings({ "rawtypes" })
9+
public final class EaglerASLPlaceholder extends PlaceholderProvider {
10+
private final IEaglerXServerAPI api;
11+
12+
public EaglerASLPlaceholder(final IEaglerXServerAPI api) {
13+
super("eagler");
14+
this.api = api;
15+
}
16+
17+
@Override
18+
public final String parsePlaceholder(final String placeholder, final GenericPlayer player, final GenericServer server) {
19+
if (placeholder.equals("status")) {
20+
return (player instanceof EaglerASLPlayer) ? "EAGLER" : "JAVA";
21+
} else if (placeholder.equals("server")) {
22+
return this.api.getServerName();
23+
} else if (placeholder.equals("platform") || placeholder.equals("plaf")) {
24+
return this.api.getPlatformType().getName().toUpperCase();
25+
} else {
26+
return null;
27+
}
28+
}
29+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package xyz.webmc.asleaglerhook.base.asl;
2+
3+
public interface EaglerASLPlayer {
4+
public default boolean isEaglerPlayer() {
5+
return true;
6+
}
7+
}

src/main/java/xyz/webmc/asleaglerhook/bungee/ASLEaglerHookBungee.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package xyz.webmc.asleaglerhook.bungee;
22

33
import xyz.webmc.asleaglerhook.base.ASLEaglerHook;
4-
import xyz.webmc.asleaglerhook.base.EventPriority;
4+
import xyz.webmc.asleaglerhook.base.EaglerEventPriority;
55
import xyz.webmc.asleaglerhook.base.IASLEaglerHookPlugin;
66
import xyz.webmc.asleaglerhook.base.asl.EaglerPingEventWrapper;
77
import xyz.webmc.asleaglerhook.bungee.asl.BungeePlayerImpl;
@@ -17,6 +17,7 @@
1717
import ch.andre601.advancedserverlist.core.compat.papi.PAPIUtil;
1818
import ch.andre601.advancedserverlist.core.interfaces.core.PluginCore;
1919
import ch.andre601.advancedserverlist.core.objects.CachedPlayer;
20+
import net.lax1dude.eaglercraft.backend.server.api.bungee.EaglerXServerAPI;
2021
import net.lax1dude.eaglercraft.backend.server.api.bungee.event.EaglercraftMOTDEvent;
2122
import net.md_5.bungee.api.Favicon;
2223
import net.md_5.bungee.api.config.ServerInfo;
@@ -33,9 +34,10 @@ public final class ASLEaglerHookBungee extends Plugin implements IASLEaglerHookP
3334
public final void onEnable() {
3435
this.getProxy().getPluginManager().registerListener(this, this);
3536
this.plugin = (PluginCore<Favicon>) this.getProxy().getPluginManager().getPlugin("AdvancedServerList");
37+
ASLEaglerHook.init(EaglerXServerAPI.instance());
3638
}
3739

38-
@EventHandler(priority = EventPriority.EAGLER_MOTD_EVENT)
40+
@EventHandler(priority = EaglerEventPriority.EAGLER_MOTD_EVENT)
3941
public final void onEaglerMOTD(final EaglercraftMOTDEvent event) {
4042
final ProfileEntry entry = ASLEaglerHook.handleEvent(new EaglerPingEventWrapper(this, event.getMOTDConnection()));
4143
this.getProxy().getPluginManager().callEvent(new PostServerListSetEvent(entry));

src/main/java/xyz/webmc/asleaglerhook/bungee/asl/BungeePlayerImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package xyz.webmc.asleaglerhook.bungee.asl;
22

3+
import xyz.webmc.asleaglerhook.base.asl.EaglerASLPlayer;
4+
35
import java.util.UUID;
46

57
import ch.andre601.advancedserverlist.api.bungeecord.objects.BungeePlayer;
68
import ch.andre601.advancedserverlist.core.objects.CachedPlayer;
79

8-
public final class BungeePlayerImpl implements BungeePlayer {
10+
public final class BungeePlayerImpl implements BungeePlayer, EaglerASLPlayer {
911
private final CachedPlayer player;
1012
private final int protocol;
1113

src/main/java/xyz/webmc/asleaglerhook/velocity/ASLEaglerHookVelocity.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package xyz.webmc.asleaglerhook.velocity;
22

33
import xyz.webmc.asleaglerhook.base.ASLEaglerHook;
4-
import xyz.webmc.asleaglerhook.base.EventPriority;
4+
import xyz.webmc.asleaglerhook.base.EaglerEventPriority;
55
import xyz.webmc.asleaglerhook.base.IASLEaglerHookPlugin;
66
import xyz.webmc.asleaglerhook.base.asl.EaglerPingEventWrapper;
77
import xyz.webmc.asleaglerhook.velocity.asl.VelocityPlayerImpl;
@@ -28,6 +28,7 @@
2828
import com.velocitypowered.api.proxy.ProxyServer;
2929
import com.velocitypowered.api.proxy.server.RegisteredServer;
3030
import com.velocitypowered.api.util.Favicon;
31+
import net.lax1dude.eaglercraft.backend.server.api.velocity.EaglerXServerAPI;
3132
import net.lax1dude.eaglercraft.backend.server.api.velocity.event.EaglercraftMOTDEvent;
3233

3334
@SuppressWarnings({ "unchecked" })
@@ -43,9 +44,10 @@ public ASLEaglerHookVelocity(final ProxyServer proxy) {
4344
@Subscribe
4445
public final void init(ProxyInitializeEvent event) {
4546
this.plugin = (PluginCore<Favicon>) this.proxy.getPluginManager().getPlugin("advancedserverlist").get().getInstance().get();
47+
ASLEaglerHook.init(EaglerXServerAPI.instance());
4648
}
4749

48-
@Subscribe(priority = EventPriority.EAGLER_MOTD_EVENT)
50+
@Subscribe(priority = EaglerEventPriority.EAGLER_MOTD_EVENT)
4951
public final void onEaglerMOTD(final EaglercraftMOTDEvent event) {
5052
final ProfileEntry entry = ASLEaglerHook.handleEvent(new EaglerPingEventWrapper(this, event.getMOTDConnection()));
5153
this.proxy.getEventManager().fire(new PostServerListSetEvent(entry));

src/main/java/xyz/webmc/asleaglerhook/velocity/asl/VelocityPlayerImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package xyz.webmc.asleaglerhook.velocity.asl;
22

3+
import xyz.webmc.asleaglerhook.base.asl.EaglerASLPlayer;
4+
35
import java.util.UUID;
46

57
import ch.andre601.advancedserverlist.api.velocity.objects.VelocityPlayer;
68
import ch.andre601.advancedserverlist.core.objects.CachedPlayer;
79
import com.velocitypowered.api.network.ProtocolVersion;
810

9-
public final class VelocityPlayerImpl implements VelocityPlayer {
11+
public final class VelocityPlayerImpl implements VelocityPlayer, EaglerASLPlayer {
1012
private final CachedPlayer player;
1113
private final int protocol;
1214

0 commit comments

Comments
 (0)