forked from SteamWar/SteamWar
Merge branch 'main' into update/1.21.5
# Conflicts: # VelocityCore/src/de/steamwar/velocitycore/ServerVersion.java
This commit is contained in:
@@ -71,6 +71,17 @@ public class TinyProtocol implements Listener {
|
||||
@Getter
|
||||
private final Map<Player, PacketInterceptor> playerInterceptors = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TinyProtocol{" +
|
||||
"plugin=" + plugin +
|
||||
", connections=" + connections +
|
||||
", closed=" + closed +
|
||||
", packetFilters=" + packetFilters +
|
||||
", playerInterceptors=" + playerInterceptors +
|
||||
'}';
|
||||
}
|
||||
|
||||
private TinyProtocol(final Plugin plugin) {
|
||||
this.plugin = plugin;
|
||||
this.connections = networkManagers.get(getServerConnection(plugin));
|
||||
@@ -84,6 +95,7 @@ public class TinyProtocol implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onPlayerLogin(PlayerLoginEvent e) {
|
||||
plugin.getLogger().info("Creating PacketInterceptor for: " + e.getPlayer().getName() + " (" + closed + ")");
|
||||
if(closed)
|
||||
return;
|
||||
new PacketInterceptor(e.getPlayer());
|
||||
@@ -118,6 +130,8 @@ public class TinyProtocol implements Listener {
|
||||
}
|
||||
|
||||
public final void close() {
|
||||
plugin.getLogger().log(Level.INFO, "Closing PacketInterceptor", new Exception("Stacktrace"));
|
||||
|
||||
if(closed)
|
||||
return;
|
||||
closed = true;
|
||||
@@ -146,10 +160,10 @@ public class TinyProtocol implements Listener {
|
||||
private PacketInterceptor(Player player) {
|
||||
this.player = player;
|
||||
|
||||
channel = getChannel.get(connections.stream().filter(connection -> player.getUniqueId().equals(getUUID.get(connection))).findAny().orElseThrow(() -> {
|
||||
channel = connections.stream().filter(connection -> player.getUniqueId().equals(getUUID.get(connection))).map(getChannel::get).filter(Channel::isActive).findAny().orElseThrow(() -> {
|
||||
Bukkit.getScheduler().runTask(plugin, () -> player.kickPlayer("Connection failure."));
|
||||
return new SecurityException("Could not find channel for player " + player.getName());
|
||||
}));
|
||||
});
|
||||
|
||||
if(!channel.isActive())
|
||||
return;
|
||||
@@ -157,14 +171,15 @@ public class TinyProtocol implements Listener {
|
||||
synchronized (playerInterceptors) {
|
||||
playerInterceptors.put(player, this);
|
||||
}
|
||||
plugin.getLogger().info("Adding Techhider for: " + player.getName());
|
||||
|
||||
try {
|
||||
channel.pipeline().addBefore("packet_handler", HANDLER_NAME, this);
|
||||
} catch (IllegalArgumentException e) {
|
||||
} catch (IllegalArgumentException | NoSuchElementException e) {
|
||||
Bukkit.getScheduler().runTask(plugin, () -> player.kickPlayer("Connection failure."));
|
||||
throw new SecurityException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void sendPacket(Object packet) {
|
||||
channel.pipeline().writeAndFlush(packet);
|
||||
|
||||
Reference in New Issue
Block a user