/** * Posts the specified event to the event bus and discards the result. * * @param event the event to fire */ default void fireAndForget(Object event) { fire(event); }
/** * Sets up permissions for the console. */ public void setupPermissions() { PermissionsSetupEvent event = new PermissionsSetupEvent(this, s -> ALWAYS_TRUE); // we can safely block here, this is before any listeners fire this.permissionFunction = this.server.getEventManager().fire(event).join().createFunction(this); }
return server.getEventManager().fire(event) .thenCompose(newEvent -> { Optional<RegisteredServer> connectTo = newEvent.getResult().getServer();
@Override public boolean handle(StatusRequest packet) { ServerPing initialPing = createInitialPing(); ProxyPingEvent event = new ProxyPingEvent(inboundWrapper, initialPing); server.getEventManager().fire(event) .thenRunAsync( () -> connection.write(new StatusResponse(VelocityServer.GSON.toJson(event.getPing()))), connection.eventLoop()); return true; }
private void initializePlayer(GameProfile profile, boolean onlineMode) { // Some connection types may need to alter the game profile. profile = mcConnection.getType().addGameProfileTokensIfRequired(profile, server.getConfiguration().getPlayerInfoForwardingMode()); GameProfileRequestEvent profileRequestEvent = new GameProfileRequestEvent(inbound, profile, onlineMode); server.getEventManager().fire(profileRequestEvent).thenCompose(profileEvent -> { // Initiate a regular connection and move over to it. ConnectedPlayer player = new ConnectedPlayer(server, profileEvent.getGameProfile(), mcConnection, inbound.getVirtualHost().orElse(null)); this.connectedPlayer = player; if (!server.canRegisterConnection(player)) { player.disconnect(VelocityMessages.ALREADY_CONNECTED); return CompletableFuture.completedFuture(null); } logger.info("{} has connected", player); return server.getEventManager() .fire(new PermissionsSetupEvent(player, ConnectedPlayer.DEFAULT_PERMISSIONS)) .thenAcceptAsync(event -> { if (!mcConnection.isClosed()) { // wait for permissions to load, then set the players permission function player.setPermissionFunction(event.createFunction(player)); finishLogin(player); } }, mcConnection.eventLoop()); }); }
@Override public boolean handle(LegacyPing packet) { ServerPing initialPing = createInitialPing(); ProxyPingEvent event = new ProxyPingEvent(inboundWrapper, initialPing); server.getEventManager().fire(event) .thenRunAsync(() -> { connection.closeWith(LegacyDisconnect.fromServerPing(event.getPing(), packet.getVersion())); }, connection.eventLoop()); return true; }
.fire(new ProxyQueryEvent(isBasic ? BASIC : FULL, senderAddress, response)) .whenCompleteAsync((event, exc) -> {
private void beginPreLogin() { ServerLogin login = this.login; if (login == null) { throw new IllegalStateException("No ServerLogin packet received yet."); } PreLoginEvent event = new PreLoginEvent(inbound, login.getUsername()); server.getEventManager().fire(event) .thenRunAsync(() -> { if (mcConnection.isClosed()) { // The player was disconnected return; } PreLoginComponentResult result = event.getResult(); Optional<Component> disconnectReason = result.getReason(); if (disconnectReason.isPresent()) { // The component is guaranteed to be provided if the connection was denied. mcConnection.closeWith(Disconnect.create(disconnectReason.get())); return; } if (!result.isForceOfflineMode() && (server.getConfiguration().isOnlineMode() || result .isOnlineModeAllowed())) { // Request encryption. EncryptionRequest request = generateEncryptionRequest(); this.verify = Arrays.copyOf(request.getVerifyToken(), 4); mcConnection.write(request); } else { initializePlayer(GameProfile.forOfflinePlayer(login.getUsername()), false); } }, mcConnection.eventLoop()); }
server.getEventManager().fire(event) .thenAcceptAsync(pme -> { PlayerChatEvent.ChatResult chatResult = pme.getResult();
PluginMessageEvent event = new PluginMessageEvent(player, serverConn, id, packet.getData()); server.getEventManager().fire(event).thenAcceptAsync(pme -> backendConn.write(packet), backendConn.eventLoop());
KickedFromServerEvent originalEvent = new KickedFromServerEvent(this, rs, kickReason, !connectedServer.getServer().equals(rs), friendlyReason); server.getEventManager().fire(originalEvent) .thenAcceptAsync(event -> { if (event.getResult() instanceof DisconnectPlayer) {
.fire(new ServerConnectedEvent(serverConn.getPlayer(), serverConn.getServer())) .whenCompleteAsync((x, error) -> { resultFuture.complete(ConnectionRequestResults.SUCCESSFUL);
@Override public boolean handle(PluginMessage packet) { if (!canForwardPluginMessage(packet)) { return true; } if (PluginMessageUtil.isMcBrand(packet)) { PluginMessage rewritten = PluginMessageUtil.rewriteMinecraftBrand(packet, server.getVersion()); serverConn.getPlayer().getMinecraftConnection().write(rewritten); return true; } if (serverConn.getPhase().handle(serverConn, serverConn.getPlayer(), packet)) { // Handled. return true; } ChannelIdentifier id = server.getChannelRegistrar().getFromId(packet.getChannel()); if (id == null) { return false; } MinecraftConnection clientConn = serverConn.getPlayer().getMinecraftConnection(); PluginMessageEvent event = new PluginMessageEvent(serverConn, serverConn.getPlayer(), id, packet.getData()); server.getEventManager().fire(event) .thenAcceptAsync(pme -> { if (pme.getResult().isAllowed() && !clientConn.isClosed()) { clientConn.write(packet); } }, clientConn.eventLoop()); return true; }