diff --git a/bungee/src/main/java/org/geysermc/floodgate/handler/BungeeDataHandler.java b/bungee/src/main/java/org/geysermc/floodgate/handler/BungeeDataHandler.java
index 6c3f9a3f..42b133fe 100644
--- a/bungee/src/main/java/org/geysermc/floodgate/handler/BungeeDataHandler.java
+++ b/bungee/src/main/java/org/geysermc/floodgate/handler/BungeeDataHandler.java
@@ -149,8 +149,6 @@ public final class BungeeDataHandler {
InetSocketAddress correctAddress = player.getProperty(PropertyKey.SOCKET_ADDRESS);
ReflectionUtils.setValue(channelWrapper, PLAYER_REMOTE_ADDRESS, correctAddress);
- channel.attr(playerAttribute).set(player);
-
event.completeIntent(plugin);
});
}
diff --git a/bungee/src/main/java/org/geysermc/floodgate/inject/bungee/BungeeInjector.java b/bungee/src/main/java/org/geysermc/floodgate/inject/bungee/BungeeInjector.java
index 2b53ace9..072a339f 100644
--- a/bungee/src/main/java/org/geysermc/floodgate/inject/bungee/BungeeInjector.java
+++ b/bungee/src/main/java/org/geysermc/floodgate/inject/bungee/BungeeInjector.java
@@ -32,7 +32,6 @@ import javassist.CtClass;
import javassist.CtField;
import javassist.CtMethod;
import javassist.Modifier;
-import javax.naming.OperationNotSupportedException;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.geysermc.floodgate.api.logger.FloodgateLogger;
@@ -89,10 +88,9 @@ public final class BungeeInjector extends CommonPlatformInjector {
}
@Override
- public boolean removeInjection() throws Exception {
- //todo implement injection removal support
- throw new OperationNotSupportedException(
- "Floodgate cannot remove the Bungee injection at the moment");
+ public boolean removeInjection() {
+ logger.error("Floodgate cannot remove itself from Bungee without a reboot");
+ return false;
}
public void injectClient(Channel channel, boolean clientToProxy) {
diff --git a/bungee/src/main/java/org/geysermc/floodgate/listener/BungeeListener.java b/bungee/src/main/java/org/geysermc/floodgate/listener/BungeeListener.java
index 03bde326..9b107c52 100644
--- a/bungee/src/main/java/org/geysermc/floodgate/listener/BungeeListener.java
+++ b/bungee/src/main/java/org/geysermc/floodgate/listener/BungeeListener.java
@@ -84,7 +84,6 @@ public final class BungeeListener implements Listener {
if (config.isSendFloodgateData()) {
pluginMessageHandler.sendSkinRequest(event.getServer(), player.getRawSkin());
} else {
- //todo also a Proxy SkinHandler to keep stuff clean?
skinHandler.handleSkinUploadFor(player, null);
}
}
diff --git a/common/pom.xml b/common/pom.xml
index c29d50d6..0dcdb1b9 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -45,11 +45,6 @@
cumulus
${cumulus.version}
-
-
-
-
-
org.yaml
snakeyaml
diff --git a/common/src/main/java/org/geysermc/floodgate/HandshakeHandler.java b/common/src/main/java/org/geysermc/floodgate/HandshakeHandler.java
index f727d7aa..e66cc5d8 100644
--- a/common/src/main/java/org/geysermc/floodgate/HandshakeHandler.java
+++ b/common/src/main/java/org/geysermc/floodgate/HandshakeHandler.java
@@ -29,6 +29,7 @@ import static org.geysermc.floodgate.util.BedrockData.EXPECTED_LENGTH;
import com.google.common.base.Charsets;
import io.netty.channel.Channel;
+import io.netty.util.AttributeKey;
import java.net.InetSocketAddress;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
@@ -51,6 +52,7 @@ public final class HandshakeHandler {
private final SimpleFloodgateApi api;
private final FloodgateCipher cipher;
private final FloodgateConfigHolder configHolder;
+ private final AttributeKey playerAttribute;
public HandshakeResult handle(Channel channel, @NonNull String handshakeData) {
try {
@@ -103,6 +105,8 @@ public final class HandshakeHandler {
FloodgatePlayer player = FloodgatePlayerImpl.from(bedrockData, rawSkin, configHolder);
api.addPlayer(player.getJavaUniqueId(), player);
+ channel.attr(playerAttribute).set(player);
+
int port = ((InetSocketAddress) channel.remoteAddress()).getPort();
InetSocketAddress socketAddress = new InetSocketAddress(bedrockData.getIp(), port);
player.addProperty(PropertyKey.SOCKET_ADDRESS, socketAddress);
diff --git a/common/src/main/java/org/geysermc/floodgate/command/LinkAccountCommand.java b/common/src/main/java/org/geysermc/floodgate/command/LinkAccountCommand.java
index 98e43c91..4a2132da 100644
--- a/common/src/main/java/org/geysermc/floodgate/command/LinkAccountCommand.java
+++ b/common/src/main/java/org/geysermc/floodgate/command/LinkAccountCommand.java
@@ -49,17 +49,6 @@ public final class LinkAccountCommand implements Command {
@Inject private FloodgateApi api;
@Inject private CommandUtil commandUtil;
-// @Override todo impl this
-// public LiteralCommandNode commandNode(T source, CommandUtil commandUtil) {
-// return literal(getName())
-// .then(
-// argument("gamertag", word())
-// .executes(cmd -> {
-// return 0;
-// })
-// ).build();
-// }
-
@Override
public void execute(Object player, UUID uuid, String username, String locale, String[] args) {
PlayerLink link = api.getPlayerLink();
diff --git a/common/src/main/java/org/geysermc/floodgate/module/CommonModule.java b/common/src/main/java/org/geysermc/floodgate/module/CommonModule.java
index e9171b9c..370c31be 100644
--- a/common/src/main/java/org/geysermc/floodgate/module/CommonModule.java
+++ b/common/src/main/java/org/geysermc/floodgate/module/CommonModule.java
@@ -123,8 +123,9 @@ public class CommonModule extends AbstractModule {
@Provides
@Singleton
public HandshakeHandler handshakeHandler(SimpleFloodgateApi api, FloodgateCipher cipher,
- FloodgateConfigHolder configHolder) {
- return new HandshakeHandler(api, cipher, configHolder);
+ FloodgateConfigHolder configHolder,
+ AttributeKey playerAttribute) {
+ return new HandshakeHandler(api, cipher, configHolder, playerAttribute);
}
@Provides
diff --git a/spigot/src/main/java/org/geysermc/floodgate/addon/data/SpigotDataHandler.java b/spigot/src/main/java/org/geysermc/floodgate/addon/data/SpigotDataHandler.java
index b0941314..fbace202 100644
--- a/spigot/src/main/java/org/geysermc/floodgate/addon/data/SpigotDataHandler.java
+++ b/spigot/src/main/java/org/geysermc/floodgate/addon/data/SpigotDataHandler.java
@@ -36,7 +36,6 @@ import static org.geysermc.floodgate.util.ReflectionUtils.setValue;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
-import io.netty.util.AttributeKey;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@@ -158,7 +157,6 @@ public final class SpigotDataHandler extends SimpleChannelInboundHandler