/** * @return reason to be displayed * @deprecated Use component methods instead. */ @Deprecated public String getCancelReason() { return BaseComponent.toLegacyText( getCancelReasonComponents() ); }
/** * @param cancelReason reason to be displayed * @deprecated Use * {@link #setCancelReason(net.md_5.bungee.api.chat.BaseComponent...)} * instead. */ @Deprecated public void setCancelReason(String cancelReason) { setCancelReason( TextComponent.fromLegacyText( cancelReason ) ); }
/** * @return reason to be displayed * @deprecated Use component methods instead. */ @Deprecated public String getCancelReason() { return BaseComponent.toLegacyText( getCancelReasonComponents() ); }
@Override public void handle(Kick kick) throws Exception { ServerInfo def = user.updateAndGetNextServer( target ); ServerKickEvent event = new ServerKickEvent( user, target, ComponentSerializer.parse( kick.getMessage() ), def, ServerKickEvent.State.CONNECTING ); if ( event.getKickReason().toLowerCase( Locale.ROOT ).contains( "outdated" ) && def != null ) { // Pre cancel the event if we are going to try another server event.setCancelled( true ); } bungee.getPluginManager().callEvent( event ); if ( event.isCancelled() && event.getCancelServer() != null ) { obsolete = true; user.connect( event.getCancelServer(), ServerConnectEvent.Reason.KICK_REDIRECT ); throw CancelSendSignal.INSTANCE; } String message = bungee.getTranslation( "connect_kick", target.getName(), event.getKickReason() ); if ( user.isDimensionChange() ) { user.disconnect( message ); } else { user.sendMessage( message ); } throw CancelSendSignal.INSTANCE; }
@Override public void handle(Chat chat) throws Exception { int maxLength = ( con.getPendingConnection().getVersion() >= ProtocolConstants.MINECRAFT_1_11 ) ? 256 : 100; Preconditions.checkArgument( chat.getMessage().length() <= maxLength, "Chat message too long" ); // Mojang limit, check on updates ChatEvent chatEvent = new ChatEvent( con, con.getServer(), chat.getMessage() ); if ( !bungee.getPluginManager().callEvent( chatEvent ).isCancelled() ) { chat.setMessage( chatEvent.getMessage() ); if ( !chatEvent.isCommand() || !bungee.getPluginManager().dispatchCommand( con, chat.getMessage().substring( 1 ) ) ) { con.getServer().unsafe().sendPacket( chat ); } } throw CancelSendSignal.INSTANCE; }
@Override public void handle(Kick kick) throws Exception { ServerInfo def = con.updateAndGetNextServer( server.getInfo() ); ServerKickEvent event = bungee.getPluginManager().callEvent( new ServerKickEvent( con, server.getInfo(), ComponentSerializer.parse( kick.getMessage() ), def, ServerKickEvent.State.CONNECTED ) ); if ( event.isCancelled() && event.getCancelServer() != null ) { con.connectNow( event.getCancelServer(), ServerConnectEvent.Reason.KICK_REDIRECT ); } else { con.disconnect0( event.getKickReasonComponent() ); // TODO: Prefix our own stuff. } server.setObsolete( true ); throw CancelSendSignal.INSTANCE; }
/** * Checks whether this message is run on this proxy server. * * @return if this command runs on the proxy * @see PluginManager#isExecutableCommand(java.lang.String, net.md_5.bungee.api.CommandSender) */ public boolean isProxyCommand() { if ( !isCommand() ) { return false; } int index = message.indexOf( " " ); String commandName = ( index == -1 ) ? message.substring( 1 ) : message.substring( 1, index ); CommandSender sender = ( getSender() instanceof CommandSender ) ? (CommandSender) getSender() : null; return ProxyServer.getInstance().getPluginManager().isExecutableCommand( commandName, sender ); } }
@Override public boolean hasPermission(String permission) { return bungee.getPluginManager().callEvent( new PermissionCheckEvent( this, permission, permissions.contains( permission ) ) ).hasPermission(); }
@Override public void done(LoginEvent result, Throwable error) if ( result.isCancelled() ) disconnect( result.getCancelReasonComponents() ); return;
TabCompleteResponseEvent tabCompleteResponseEvent = new TabCompleteResponseEvent( server, con, new ArrayList<>( commands ) ); if ( !bungee.getPluginManager().callEvent( tabCompleteResponseEvent ).isCancelled() ) if ( !commands.equals( tabCompleteResponseEvent.getSuggestions() ) ) tabCompleteResponse.setCommands( tabCompleteResponseEvent.getSuggestions() ); } else tabCompleteResponse.setSuggestions( new Suggestions( range, Lists.transform( tabCompleteResponseEvent.getSuggestions(), new Function<String, Suggestion>()
@Override public void done(ProxyPingEvent result, Throwable error) { if ( ch.isClosed() ) { return; } ServerPing legacy = result.getResponse(); String kickMessage; if ( v1_5 ) { kickMessage = ChatColor.DARK_BLUE + "\00" + 127 + '\00' + legacy.getVersion().getName() + '\00' + getFirstLine( legacy.getDescription() ) + '\00' + legacy.getPlayers().getOnline() + '\00' + legacy.getPlayers().getMax(); } else { // Clients <= 1.3 don't support colored motds because the color char is used as delimiter kickMessage = ChatColor.stripColor( getFirstLine( legacy.getDescription() ) ) + '\u00a7' + legacy.getPlayers().getOnline() + '\u00a7' + legacy.getPlayers().getMax(); } ch.close( kickMessage ); } };
@Override public void done(PreLoginEvent result, Throwable error) { if ( result.isCancelled() ) { disconnect( result.getCancelReasonComponents() ); return; } if ( ch.isClosed() ) { return; } if ( onlineMode ) { unsafe().sendPacket( request = EncryptionUtil.encryptRequest() ); } else { finish(); } thisState = State.ENCRYPT; } };
@Override public void done(ServerPing result, Throwable error) { if ( error != null ) { result = new ServerPing(); result.setDescription( bungee.getTranslation( "ping_cannot_connect" ) ); bungee.getLogger().log( Level.WARNING, "Error pinging remote server", error ); } Callback<ProxyPingEvent> callback = new Callback<ProxyPingEvent>() { @Override public void done(ProxyPingEvent pingResult, Throwable error) { Gson gson = BungeeCord.getInstance().gson; unsafe.sendPacket( new StatusResponse( gson.toJson( pingResult.getResponse() ) ) ); if ( bungee.getConnectionThrottle() != null ) { bungee.getConnectionThrottle().unthrottle( getAddress().getAddress() ); } } }; bungee.getPluginManager().callEvent( new ProxyPingEvent( InitialHandler.this, result, callback ) ); } };
@Override public void disconnected(ChannelWrapper channel) throws Exception { // We lost connection to the server server.getInfo().removePlayer( con ); if ( bungee.getReconnectHandler() != null ) { bungee.getReconnectHandler().setServer( con ); } if ( !server.isObsolete() ) { con.disconnect( bungee.getTranslation( "lost_connection" ) ); } ServerDisconnectEvent serverDisconnectEvent = new ServerDisconnectEvent( con, server.getInfo() ); bungee.getPluginManager().callEvent( serverDisconnectEvent ); }
@Override public void execute(CommandSender sender, String[] args) { BungeeCord.getInstance().config.load(); BungeeCord.getInstance().reloadMessages(); BungeeCord.getInstance().stopListeners(); BungeeCord.getInstance().startListeners(); BungeeCord.getInstance().getPluginManager().callEvent( new ProxyReloadEvent( sender ) ); sender.sendMessage( ChatColor.BOLD.toString() + ChatColor.RED.toString() + "BungeeCord has been reloaded." + " This is NOT advisable and you will not be supported with any issues that arise! Please restart BungeeCord ASAP." ); } }
bungee.getPluginManager().callEvent( new PreLoginEvent( InitialHandler.this, callback ) );
bungee.getPluginManager().callEvent( new LoginEvent( InitialHandler.this, complete ) );
/** * @param cancelReason reason to be displayed * @deprecated Use * {@link #setCancelReason(net.md_5.bungee.api.chat.BaseComponent...)} * instead. */ @Deprecated public void setCancelReason(String cancelReason) { setCancelReason( TextComponent.fromLegacyText( cancelReason ) ); }
@Override public void handle(ClientSettings settings) throws Exception { con.setSettings( settings ); SettingsChangedEvent settingsEvent = new SettingsChangedEvent( con ); bungee.getPluginManager().callEvent( settingsEvent ); }
bungee.getPluginManager().callEvent( new ProxyPingEvent( this, legacy, callback ) );