Java 类net.minecraft.util.io.netty.util.concurrent.GenericFutureListener 实例源码

项目:CraftBukkit    文件:LoginListener.java   
public void c() {
    if (!this.i.isComplete()) {
        this.i = this.a(this.i);
    }

    // CraftBukkit start - fire PlayerLoginEvent
    EntityPlayer s = this.server.getPlayerList().attemptLogin(this, this.i, this.hostname);

    if (s == null) {
        // this.disconnect(s);
        // CraftBukkit end
    } else {
        this.g = EnumProtocolState.e;
        this.networkManager.handle(new PacketLoginOutSuccess(this.i), new GenericFutureListener[0]);
        this.server.getPlayerList().a(this.networkManager, this.server.getPlayerList().processLogin(this.i, s)); // CraftBukkit - add player reference
    }
}
项目:CraftBukkit    文件:PlayerConnection.java   
public void disconnect(String s) {
    // CraftBukkit start - fire PlayerKickEvent
    String leaveMessage = EnumChatFormat.YELLOW + this.player.getName() + " left the game.";

    PlayerKickEvent event = new PlayerKickEvent(this.server.getPlayer(this.player), s, leaveMessage);

    if (this.server.getServer().isRunning()) {
        this.server.getPluginManager().callEvent(event);
    }

    if (event.isCancelled()) {
        // Do not kick the player
        return;
    }
    // Send the possibly modified leave message
    s = event.getReason();
    // CraftBukkit end
    ChatComponentText chatcomponenttext = new ChatComponentText(s);

    this.networkManager.handle(new PacketPlayOutKickDisconnect(chatcomponenttext), new GenericFutureListener[] { new PlayerConnectionFuture(this, chatcomponenttext)});
    this.a(chatcomponenttext); // CraftBukkit - Process quit immediately
    this.networkManager.g();
}
项目:CraftBukkit    文件:NetworkManager.java   
private void b(Packet packet, GenericFutureListener[] agenericfuturelistener) {
    EnumProtocol enumprotocol = EnumProtocol.a(packet);
    EnumProtocol enumprotocol1 = (EnumProtocol) this.m.attr(d).get();

    if (enumprotocol1 != enumprotocol) {
        i.debug("Disabled auto read");
        this.m.config().setAutoRead(false);
    }

    if (this.m.eventLoop().inEventLoop()) {
        if (enumprotocol != enumprotocol1) {
            this.a(enumprotocol);
        }

        this.m.writeAndFlush(packet).addListeners(agenericfuturelistener).addListener(ChannelFutureListener.FIRE_EXCEPTION_ON_FAILURE);
    } else {
        this.m.eventLoop().execute(new QueuedProtocolSwitch(this, enumprotocol, enumprotocol1, packet, agenericfuturelistener));
    }
}
项目:Tweakkit-Server    文件:LoginListener.java   
public void c() {
    // Spigot start - Moved to initUUID
    /*
    if (!this.i.isComplete()) {
        this.i = this.a(this.i);
    }
    */
    // Spigot end

    // CraftBukkit start - fire PlayerLoginEvent
    EntityPlayer s = this.server.getPlayerList().attemptLogin(this, this.i, this.hostname);

    if (s == null) {
        // this.disconnect(s);
        // CraftBukkit end
    } else {
        this.g = EnumProtocolState.e;
        this.networkManager.handle(new PacketLoginOutSuccess(this.i), new GenericFutureListener[0]);
        this.server.getPlayerList().a(this.networkManager, this.server.getPlayerList().processLogin(this.i, s)); // CraftBukkit - add player reference
    }
}
项目:Tweakkit-Server    文件:PlayerConnection.java   
public void disconnect(String s) {
    // CraftBukkit start - fire PlayerKickEvent
    String leaveMessage = EnumChatFormat.YELLOW + this.player.getName() + " left the game.";

    PlayerKickEvent event = new PlayerKickEvent(this.server.getPlayer(this.player), s, leaveMessage);

    if (this.server.getServer().isRunning()) {
        this.server.getPluginManager().callEvent(event);
    }

    if (event.isCancelled()) {
        // Do not kick the player
        return;
    }
    // Send the possibly modified leave message
    s = event.getReason();
    // CraftBukkit end
    ChatComponentText chatcomponenttext = new ChatComponentText(s);

    this.networkManager.handle(new PacketPlayOutKickDisconnect(chatcomponenttext), new GenericFutureListener[] { new PlayerConnectionFuture(this, chatcomponenttext)});
    this.a(chatcomponenttext); // CraftBukkit - Process quit immediately
    this.networkManager.g();
}
项目:Tweakkit-Server    文件:NetworkManager.java   
private void b(Packet packet, GenericFutureListener[] agenericfuturelistener) {
    EnumProtocol enumprotocol = EnumProtocol.a(packet);
    EnumProtocol enumprotocol1 = (EnumProtocol) this.m.attr(d).get();

    if (enumprotocol1 != enumprotocol) {
        i.debug("Disabled auto read");
        this.m.config().setAutoRead(false);
    }

    if (this.m.eventLoop().inEventLoop()) {
        if (enumprotocol != enumprotocol1) {
            this.a(enumprotocol);
        }

        this.m.writeAndFlush(packet).addListeners(agenericfuturelistener).addListener(ChannelFutureListener.FIRE_EXCEPTION_ON_FAILURE);
    } else {
        this.m.eventLoop().execute(new QueuedProtocolSwitch(this, enumprotocol, enumprotocol1, packet, agenericfuturelistener));
    }
}
项目:CraftBukkit    文件:LoginListener.java   
public void disconnect(String s) {
    try {
        c.info("Disconnecting " + this.getName() + ": " + s);
        ChatComponentText chatcomponenttext = new ChatComponentText(s);

        this.networkManager.handle(new PacketLoginOutDisconnect(chatcomponenttext), new GenericFutureListener[0]);
        this.networkManager.close(chatcomponenttext);
    } catch (Exception exception) {
        c.error("Error whilst disconnecting player", exception);
    }
}
项目:CraftBukkit    文件:LoginListener.java   
public void a(PacketLoginInStart packetlogininstart) {
    Validate.validState(this.g == EnumProtocolState.HELLO, "Unexpected hello packet", new Object[0]);
    this.i = packetlogininstart.c();
    if (this.server.getOnlineMode() && !this.networkManager.c()) {
        this.g = EnumProtocolState.KEY;
        this.networkManager.handle(new PacketLoginOutEncryptionBegin(this.j, this.server.K().getPublic(), this.e), new GenericFutureListener[0]);
    } else {
        this.g = EnumProtocolState.READY_TO_ACCEPT;
    }
}
项目:CraftBukkit    文件:PlayerConnection.java   
public void sendPacket(Packet packet) {
    if (packet instanceof PacketPlayOutChat) {
        PacketPlayOutChat packetplayoutchat = (PacketPlayOutChat) packet;
        EnumChatVisibility enumchatvisibility = this.player.getChatFlags();

        if (enumchatvisibility == EnumChatVisibility.HIDDEN) {
            return;
        }

        if (enumchatvisibility == EnumChatVisibility.SYSTEM && !packetplayoutchat.d()) {
            return;
        }
    }

    // CraftBukkit start
    if (packet == null) {
        return;
    } else if (packet instanceof PacketPlayOutSpawnPosition) {
        PacketPlayOutSpawnPosition packet6 = (PacketPlayOutSpawnPosition) packet;
        this.player.compassTarget = new Location(this.getPlayer().getWorld(), packet6.x, packet6.y, packet6.z);
    }
    // CraftBukkit end

    try {
        this.networkManager.handle(packet, new GenericFutureListener[0]);
    } catch (Throwable throwable) {
        CrashReport crashreport = CrashReport.a(throwable, "Sending packet");
        CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Packet being sent");

        crashreportsystemdetails.a("Packet class", (Callable) (new CrashReportConnectionPacketClass(this, packet)));
        throw new ReportedException(crashreport);
    }
}
项目:CraftBukkit    文件:NetworkManager.java   
public void handle(Packet packet, GenericFutureListener... agenericfuturelistener) {
    if (this.m != null && this.m.isOpen()) {
        this.i();
        this.b(packet, agenericfuturelistener);
    } else {
        this.l.add(new QueuedPacket(packet, agenericfuturelistener));
    }
}
项目:Tweakkit-Server    文件:LoginListener.java   
public void disconnect(String s) {
    try {
        c.info("Disconnecting " + this.getName() + ": " + s);
        ChatComponentText chatcomponenttext = new ChatComponentText(s);

        this.networkManager.handle(new PacketLoginOutDisconnect(chatcomponenttext), new GenericFutureListener[0]);
        this.networkManager.close(chatcomponenttext);
    } catch (Exception exception) {
        c.error("Error whilst disconnecting player", exception);
    }
}
项目:Tweakkit-Server    文件:LoginListener.java   
public void a(PacketLoginInStart packetlogininstart) {
    Validate.validState(this.g == EnumProtocolState.HELLO, "Unexpected hello packet", new Object[0]);
    this.i = packetlogininstart.c();
    if (this.server.getOnlineMode() && !this.networkManager.c()) {
        this.g = EnumProtocolState.KEY;
        this.networkManager.handle(new PacketLoginOutEncryptionBegin(this.j, this.server.K().getPublic(), this.e), new GenericFutureListener[0]);
    } else {
        (new ThreadPlayerLookupUUID(this, "User Authenticator #" + b.incrementAndGet())).start(); // Spigot
    }
}
项目:Tweakkit-Server    文件:PlayerConnection.java   
public void sendPacket(Packet packet) {
    if (packet instanceof PacketPlayOutChat) {
        PacketPlayOutChat packetplayoutchat = (PacketPlayOutChat) packet;
        EnumChatVisibility enumchatvisibility = this.player.getChatFlags();

        if (enumchatvisibility == EnumChatVisibility.HIDDEN) {
            return;
        }

        if (enumchatvisibility == EnumChatVisibility.SYSTEM && !packetplayoutchat.d()) {
            return;
        }
    }

    // CraftBukkit start
    if (packet == null) {
        return;
    } else if (packet instanceof PacketPlayOutSpawnPosition) {
        PacketPlayOutSpawnPosition packet6 = (PacketPlayOutSpawnPosition) packet;
        this.player.compassTarget = new Location(this.getPlayer().getWorld(), packet6.x, packet6.y, packet6.z);
    }
    // CraftBukkit end

    try {
        this.networkManager.handle(packet, new GenericFutureListener[0]);
    } catch (Throwable throwable) {
        CrashReport crashreport = CrashReport.a(throwable, "Sending packet");
        CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Packet being sent");

        crashreportsystemdetails.a("Packet class", (Callable) (new CrashReportConnectionPacketClass(this, packet)));
        throw new ReportedException(crashreport);
    }
}
项目:Tweakkit-Server    文件:NetworkManager.java   
public void handle(Packet packet, GenericFutureListener... agenericfuturelistener) {
    if (this.m != null && this.m.isOpen()) {
        this.i();
        this.b(packet, agenericfuturelistener);
    } else {
        this.l.add(new QueuedPacket(packet, agenericfuturelistener));
    }
}
项目:CraftBukkit    文件:QueuedPacket.java   
public QueuedPacket(Packet packet, GenericFutureListener... agenericfuturelistener) {
    this.a = packet;
    this.b = agenericfuturelistener;
}
项目:CraftBukkit    文件:QueuedPacket.java   
static GenericFutureListener[] b(QueuedPacket queuedpacket) {
    return queuedpacket.b;
}
项目:CraftBukkit    文件:HandshakeListener.java   
public void a(PacketHandshakingInSetProtocol packethandshakinginsetprotocol) {
    switch (ProtocolOrdinalWrapper.a[packethandshakinginsetprotocol.c().ordinal()]) {
    case 1:
        this.b.a(EnumProtocol.LOGIN);
        ChatComponentText chatcomponenttext;

        // CraftBukkit start - Connection throttle
        try {
            long currentTime = System.currentTimeMillis();
            long connectionThrottle = MinecraftServer.getServer().server.getConnectionThrottle();
            InetAddress address = ((java.net.InetSocketAddress) this.b.getSocketAddress()).getAddress();

            synchronized (throttleTracker) {
                if (throttleTracker.containsKey(address) && !"127.0.0.1".equals(address.getHostAddress()) && currentTime - throttleTracker.get(address) < connectionThrottle) {
                    throttleTracker.put(address, currentTime);
                    chatcomponenttext = new ChatComponentText("Connection throttled! Please wait before reconnecting.");
                    this.b.handle(new PacketLoginOutDisconnect(chatcomponenttext), new GenericFutureListener[0]);
                    this.b.close(chatcomponenttext);
                    return;
                }

                throttleTracker.put(address, currentTime);
                throttleCounter++;
                if (throttleCounter > 200) {
                    throttleCounter = 0;

                    // Cleanup stale entries
                    java.util.Iterator iter = throttleTracker.entrySet().iterator();
                    while (iter.hasNext()) {
                        java.util.Map.Entry<InetAddress, Long> entry = (java.util.Map.Entry) iter.next();
                        if (entry.getValue() > connectionThrottle) {
                            iter.remove();
                        }
                    }
                }
            }
        } catch (Throwable t) {
            org.apache.logging.log4j.LogManager.getLogger().debug("Failed to check connection throttle", t);
        }
        // CraftBukkit end

        if (packethandshakinginsetprotocol.d() > 5) {
            chatcomponenttext = new ChatComponentText("Outdated server! I\'m still on 1.7.10");
            this.b.handle(new PacketLoginOutDisconnect(chatcomponenttext), new GenericFutureListener[0]);
            this.b.close(chatcomponenttext);
        } else if (packethandshakinginsetprotocol.d() < 5) {
            chatcomponenttext = new ChatComponentText("Outdated client! Please use 1.7.10");
            this.b.handle(new PacketLoginOutDisconnect(chatcomponenttext), new GenericFutureListener[0]);
            this.b.close(chatcomponenttext);
        } else {
            this.b.a((PacketListener) (new LoginListener(this.a, this.b)));
            ((LoginListener) this.b.getPacketListener()).hostname = packethandshakinginsetprotocol.b + ":" + packethandshakinginsetprotocol.c; // CraftBukkit - set hostname
        }
        break;

    case 2:
        this.b.a(EnumProtocol.STATUS);
        this.b.a((PacketListener) (new PacketStatusListener(this.a, this.b)));
        break;

    default:
        throw new UnsupportedOperationException("Invalid intention " + packethandshakinginsetprotocol.c());
    }
}
项目:CraftBukkit    文件:PacketStatusListener.java   
public void a(PacketStatusInPing packetstatusinping) {
    this.networkManager.handle(new PacketStatusOutPong(packetstatusinping.c()), new GenericFutureListener[0]);
}
项目:Tweakkit-Server    文件:ServerConnection.java   
public void c() {
    List list = this.f;

    synchronized (this.f) {
        // Spigot Start
        // This prevents players from 'gaming' the server, and strategically relogging to increase their position in the tick order
        if ( org.spigotmc.SpigotConfig.playerShuffle > 0 && MinecraftServer.currentTick % org.spigotmc.SpigotConfig.playerShuffle == 0 )
        {
            Collections.shuffle( this.f );
        }
        // Spigot End
        Iterator iterator = this.f.iterator();

        while (iterator.hasNext()) {
            NetworkManager networkmanager = (NetworkManager) iterator.next();

            if (!networkmanager.isConnected()) {
                // Spigot Start
                // Fix a race condition where a NetworkManager could be unregistered just before connection.
                if (networkmanager.preparing) continue;
                // Spigot End
                iterator.remove();
                if (networkmanager.f() != null) {
                    networkmanager.getPacketListener().a(networkmanager.f());
                } else if (networkmanager.getPacketListener() != null) {
                    networkmanager.getPacketListener().a(new ChatComponentText("Disconnected"));
                }
            } else {
                try {
                    networkmanager.a();
                } catch (Exception exception) {
                    if (networkmanager.c()) {
                        CrashReport crashreport = CrashReport.a(exception, "Ticking memory connection");
                        CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Ticking connection");

                        crashreportsystemdetails.a("Connection", (Callable) (new CrashReportServerConnection(this, networkmanager)));
                        throw new ReportedException(crashreport);
                    }

                    b.warn("Failed to handle packet for " + networkmanager.getSocketAddress(), exception);
                    ChatComponentText chatcomponenttext = new ChatComponentText("Internal server error");

                    networkmanager.handle(new PacketPlayOutKickDisconnect(chatcomponenttext), new GenericFutureListener[] { new ServerConnectionFuture(this, networkmanager, chatcomponenttext)});
                    networkmanager.g();
                }
            }
        }
    }
}
项目:Tweakkit-Server    文件:QueuedPacket.java   
public QueuedPacket(Packet packet, GenericFutureListener... agenericfuturelistener) {
    this.a = packet;
    this.b = agenericfuturelistener;
}
项目:Tweakkit-Server    文件:QueuedPacket.java   
static GenericFutureListener[] b(QueuedPacket queuedpacket) {
    return queuedpacket.b;
}
项目:Tweakkit-Server    文件:PacketStatusListener.java   
public void a(PacketStatusInPing packetstatusinping) {
    this.networkManager.handle(new PacketStatusOutPong(packetstatusinping.c()), new GenericFutureListener[0]);
}
项目:PlayerSimulator    文件:DummyNetworkManager.java   
public void handle(Packet packet, GenericFutureListener... agenericfuturelistener) {
}
项目:PlayerSimulator    文件:DummyNetworkManager.java   
private void b(Packet packet, GenericFutureListener[] agenericfuturelistener) {
}