Skip to content

Commit

Permalink
More iteration
Browse files Browse the repository at this point in the history
  • Loading branch information
nathan-i-martin committed May 16, 2024
1 parent 8d4c059 commit 48337c7
Show file tree
Hide file tree
Showing 82 changed files with 446 additions and 431 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public void startListening(IMessageCacheService<?> cache, PluginLogger logger, P
}

@Override
public void kill() {
public void close() throws Exception {
this.isAlive = false;
this.failService.kill();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public record Settings(InetSocketAddress address, UserPass userPass, String prot


@Override
public void kill() {
if(this.connection != null) this.connection.kill();
public void close() throws Exception {
if(this.connection != null) this.connection.close();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import group.aelysium.rustyconnector.core.common.cache.MessageCacheService;
import group.aelysium.rustyconnector.toolkit.core.serviceable.interfaces.Service;
import group.aelysium.rustyconnector.core.mcloader.lib.dynamic_teleport.DynamicTeleportService;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.MagicLinkService;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.MagicLink;
import group.aelysium.rustyconnector.core.mcloader.lib.server_info.ServerInfoService;

import java.util.Map;
Expand All @@ -22,8 +22,8 @@ public CoreServiceHandler() {
super();
}

public MagicLinkService magicLink() {
return this.find(MagicLinkService.class).orElseThrow();
public MagicLink magicLink() {
return this.find(MagicLink.class).orElseThrow();
}
public EventManager events() {
return this.find(EventManager.class).orElseThrow();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import group.aelysium.rustyconnector.core.mcloader.event_handlers.OnTimeout;
import group.aelysium.rustyconnector.core.mcloader.lib.dynamic_teleport.DynamicTeleportService;
import group.aelysium.rustyconnector.core.mcloader.lib.dynamic_teleport.handlers.CoordinateRequestListener;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.MagicLinkService;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.MagicLink;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.handlers.HandshakeFailureListener;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.handlers.HandshakeStalePingListener;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.handlers.HandshakeSuccessListener;
Expand Down Expand Up @@ -100,7 +100,7 @@ public static MCLoaderFlame fabricateNew(MCLoaderTinder api, LangService langSer
RedisConnector messenger = initialize.connectors(cryptor, messageCacheService, logger, langService, serverInfoService.uuid());

initialize.dynamicTeleport();
MagicLinkService magicLinkService = initialize.magicLink(messenger);
MagicLink magicLinkService = initialize.magicLink(messenger);
initialize.eventManager();

MCLoaderFlame flame = new MCLoaderFlame(version, configVersion, new CoreServiceHandler(initialize.getServices()));
Expand Down Expand Up @@ -228,11 +228,11 @@ public RedisConnector connectors(AESCryptor cryptor, MessageCacheService cacheSe
return messenger;
}

public MagicLinkService magicLink(IMessengerConnector messenger) {
public MagicLink magicLink(IMessengerConnector messenger) {
logger.send(Component.text("Building magic link service...", NamedTextColor.DARK_GRAY));

MagicLinkService service = new MagicLinkService(messenger);
services.put(MagicLinkService.class, service);
MagicLink service = new MagicLink(messenger);
services.put(MagicLink.class, service);

logger.send(Component.text("Finished booting magic link service.", NamedTextColor.GREEN));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,10 @@
import group.aelysium.rustyconnector.toolkit.core.messenger.IMessengerConnector;
import group.aelysium.rustyconnector.toolkit.core.packet.Packet;
import group.aelysium.rustyconnector.toolkit.core.packet.PacketParameter;
import group.aelysium.rustyconnector.core.common.packets.MagicLink;
import group.aelysium.rustyconnector.toolkit.mc_loader.central.ICoreServiceHandler;
import group.aelysium.rustyconnector.toolkit.mc_loader.central.IMCLoaderFlame;
import group.aelysium.rustyconnector.toolkit.mc_loader.events.magic_link.DisconnectedEvent;
import group.aelysium.rustyconnector.toolkit.mc_loader.magic_link.IMagicLinkService;
import group.aelysium.rustyconnector.toolkit.mc_loader.magic_link.IMagicLink;
import group.aelysium.rustyconnector.toolkit.core.serviceable.ClockService;
import group.aelysium.rustyconnector.toolkit.mc_loader.server_info.IServerInfoService;
import group.aelysium.rustyconnector.toolkit.velocity.util.LiquidTimestamp;
Expand All @@ -22,14 +21,14 @@
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;

public class MagicLinkService implements IMagicLinkService {
public class MagicLink implements IMagicLink {
private final IMessengerConnector messenger;
private final ClockService heartbeat = new ClockService(2);
private final AtomicInteger delay = new AtomicInteger(5);
private final String podName = System.getenv("POD_NAME");
private final AtomicBoolean stopPinging = new AtomicBoolean(false);

public MagicLinkService(IMessengerConnector messenger) {
public MagicLink(IMessengerConnector messenger) {
this.messenger = messenger;
}

Expand All @@ -46,20 +45,20 @@ private void scheduleNextPing(IMCLoaderFlame<? extends ICoreServiceHandler> api)
Packet.MCLoaderPacketBuilder.ReadyForParameters packet = api.services().packetBuilder().newBuilder()
.identification(BuiltInIdentifications.MAGICLINK_HANDSHAKE_PING)
.sendingToProxy()
.parameter(MagicLink.Handshake.Ping.Parameters.ADDRESS, serverInfoService.address())
.parameter(MagicLink.Handshake.Ping.Parameters.DISPLAY_NAME, serverInfoService.displayName())
.parameter(MagicLink.Handshake.Ping.Parameters.MAGIC_CONFIG_NAME, serverInfoService.magicConfig())
.parameter(MagicLink.Handshake.Ping.Parameters.PLAYER_COUNT, new PacketParameter(serverInfoService.playerCount()));
.parameter(group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Ping.Parameters.ADDRESS, serverInfoService.address())
.parameter(group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Ping.Parameters.DISPLAY_NAME, serverInfoService.displayName())
.parameter(group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Ping.Parameters.MAGIC_CONFIG_NAME, serverInfoService.magicConfig())
.parameter(group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Ping.Parameters.PLAYER_COUNT, new PacketParameter(serverInfoService.playerCount()));

if(podName != null)
packet.parameter(MagicLink.Handshake.Ping.Parameters.POD_NAME, this.podName);
packet.parameter(group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Ping.Parameters.POD_NAME, this.podName);

api.services().magicLink().connection().orElseThrow().publish(packet.build());
} catch (Exception e) {
e.printStackTrace();
}

MagicLinkService.this.scheduleNextPing(api);
MagicLink.this.scheduleNextPing(api);
}, LiquidTimestamp.from(this.delay.get(), TimeUnit.SECONDS));
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package group.aelysium.rustyconnector.core.mcloader.lib.magic_link.handlers;

import group.aelysium.rustyconnector.core.common.packets.BuiltInIdentifications;
import group.aelysium.rustyconnector.core.common.packets.MagicLink;
import group.aelysium.rustyconnector.core.mcloader.central.MCLoaderTinder;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.MagicLinkService;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.MagicLink;
import group.aelysium.rustyconnector.toolkit.core.logger.PluginLogger;
import group.aelysium.rustyconnector.toolkit.core.packet.Packet;
import group.aelysium.rustyconnector.toolkit.core.packet.PacketIdentification;
Expand All @@ -12,7 +11,7 @@
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;

public class HandshakeFailureListener extends PacketListener<MagicLink.Handshake.Failure> {
public class HandshakeFailureListener extends PacketListener<group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Failure> {
protected IMCLoaderTinder api;

public HandshakeFailureListener(IMCLoaderTinder api) {
Expand All @@ -25,14 +24,14 @@ public PacketIdentification target() {
}

@Override
public MagicLink.Handshake.Failure wrap(Packet packet) {
return new MagicLink.Handshake.Failure(packet);
public group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Failure wrap(Packet packet) {
return new group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Failure(packet);
}

@Override
public void execute(MagicLink.Handshake.Failure packet) {
public void execute(group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Failure packet) {
PluginLogger logger = api.logger();
MagicLinkService service = ((MCLoaderTinder) api).services().magicLink();
MagicLink service = ((MCLoaderTinder) api).services().magicLink();

logger.send(Component.text(packet.reason(), NamedTextColor.RED));
logger.send(Component.text("Waiting 1 minute before trying again...", NamedTextColor.GRAY));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package group.aelysium.rustyconnector.core.mcloader.lib.magic_link.handlers;

import group.aelysium.rustyconnector.core.common.packets.BuiltInIdentifications;
import group.aelysium.rustyconnector.core.common.packets.MagicLink;
import group.aelysium.rustyconnector.core.mcloader.central.MCLoaderTinder;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.MagicLinkService;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.MagicLink;
import group.aelysium.rustyconnector.core.mcloader.lib.server_info.ServerInfoService;
import group.aelysium.rustyconnector.toolkit.core.logger.PluginLogger;
import group.aelysium.rustyconnector.toolkit.core.packet.Packet;
Expand All @@ -15,7 +14,7 @@
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;

public class HandshakeStalePingListener extends PacketListener<MagicLink.StalePing> {
public class HandshakeStalePingListener extends PacketListener<group.aelysium.rustyconnector.core.common.packets.MagicLink.StalePing> {
protected IMCLoaderTinder api;

public HandshakeStalePingListener(IMCLoaderTinder api) {
Expand All @@ -28,25 +27,25 @@ public PacketIdentification target() {
}

@Override
public MagicLink.StalePing wrap(Packet packet) {
return new MagicLink.StalePing(packet);
public group.aelysium.rustyconnector.core.common.packets.MagicLink.StalePing wrap(Packet packet) {
return new group.aelysium.rustyconnector.core.common.packets.MagicLink.StalePing(packet);
}

@Override
public void execute(MagicLink.StalePing packet) {
public void execute(group.aelysium.rustyconnector.core.common.packets.MagicLink.StalePing packet) {
PluginLogger logger = api.logger();
MagicLinkService service = ((MCLoaderTinder) api).services().magicLink();
MagicLink service = ((MCLoaderTinder) api).services().magicLink();
ServerInfoService serverInfoService = ((MCLoaderTinder) api).services().serverInfo();
((MCLoaderTinder) api).services().events().fireEvent(new TimeoutEvent());

logger.send(Component.text("Connection to the Proxy has timed out! Attempting to reconnect...", NamedTextColor.RED));
service.setDelay(5);
Packet response = packet.reply()
.identification(BuiltInIdentifications.MAGICLINK_HANDSHAKE_PING)
.parameter(MagicLink.Handshake.Ping.Parameters.ADDRESS, serverInfoService.address())
.parameter(MagicLink.Handshake.Ping.Parameters.DISPLAY_NAME, serverInfoService.displayName())
.parameter(MagicLink.Handshake.Ping.Parameters.MAGIC_CONFIG_NAME, serverInfoService.magicConfig())
.parameter(MagicLink.Handshake.Ping.Parameters.PLAYER_COUNT, new PacketParameter(serverInfoService.playerCount()))
.parameter(group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Ping.Parameters.ADDRESS, serverInfoService.address())
.parameter(group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Ping.Parameters.DISPLAY_NAME, serverInfoService.displayName())
.parameter(group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Ping.Parameters.MAGIC_CONFIG_NAME, serverInfoService.magicConfig())
.parameter(group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Ping.Parameters.PLAYER_COUNT, new PacketParameter(serverInfoService.playerCount()))
.build();
service.connection().orElseThrow().publish(response);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
package group.aelysium.rustyconnector.core.mcloader.lib.magic_link.handlers;

import group.aelysium.rustyconnector.core.common.packets.BuiltInIdentifications;
import group.aelysium.rustyconnector.core.common.packets.MagicLink;
import group.aelysium.rustyconnector.core.mcloader.central.MCLoaderTinder;
import group.aelysium.rustyconnector.core.mcloader.lib.lang.MCLoaderLang;
import group.aelysium.rustyconnector.core.mcloader.lib.ranked_game_interface.RankedGameInterfaceService;
import group.aelysium.rustyconnector.toolkit.core.logger.PluginLogger;
import group.aelysium.rustyconnector.toolkit.core.packet.Packet;
import group.aelysium.rustyconnector.toolkit.core.packet.PacketIdentification;
import group.aelysium.rustyconnector.toolkit.core.packet.PacketListener;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.MagicLinkService;
import group.aelysium.rustyconnector.core.mcloader.lib.magic_link.MagicLink;
import group.aelysium.rustyconnector.toolkit.core.server.ServerAssignment;
import group.aelysium.rustyconnector.toolkit.mc_loader.events.magic_link.ConnectedEvent;
import net.kyori.adventure.text.Component;

public class HandshakeSuccessListener extends PacketListener<MagicLink.Handshake.Success> {
public class HandshakeSuccessListener extends PacketListener<group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Success> {
protected MCLoaderTinder api;

public HandshakeSuccessListener(MCLoaderTinder api) {
Expand All @@ -27,14 +26,14 @@ public PacketIdentification target() {
}

@Override
public MagicLink.Handshake.Success wrap(Packet packet) {
return new MagicLink.Handshake.Success(packet);
public group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Success wrap(Packet packet) {
return new group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Success(packet);
}

@Override
public void execute(MagicLink.Handshake.Success packet) {
public void execute(group.aelysium.rustyconnector.core.common.packets.MagicLink.Handshake.Success packet) {
PluginLogger logger = api.logger();
MagicLinkService service = api.services().magicLink();
MagicLink service = api.services().magicLink();
api.services().events().fireEvent(new ConnectedEvent(packet.assignment()));

logger.send(Component.text(packet.message(), packet.color()));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package group.aelysium.rustyconnector.plugin.velocity.lib;
package group.aelysium.rustyconnector.core.proxy;

import com.velocitypowered.api.proxy.Player;

Expand Down
Loading

0 comments on commit 48337c7

Please sign in to comment.