Copy across all the commands and add their bootstrap plugins.

This commit is contained in:
md_5
2014-01-10 09:53:33 +11:00
parent 90d68bd38e
commit 4be58a7c00
23 changed files with 247 additions and 27 deletions

View File

@@ -0,0 +1,88 @@
package net.md_5.bungee.module.cmd.server;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import java.util.Collections;
import java.util.Map;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
import net.md_5.bungee.api.plugin.TabExecutor;
/**
* Command to list and switch a player between available servers.
*/
public class CommandServer extends Command implements TabExecutor
{
public CommandServer()
{
super( "server", "bungeecord.command.server" );
}
@Override
public void execute(CommandSender sender, String[] args)
{
if ( !( sender instanceof ProxiedPlayer ) )
{
return;
}
ProxiedPlayer player = (ProxiedPlayer) sender;
Map<String, ServerInfo> servers = ProxyServer.getInstance().getServers();
if ( args.length == 0 )
{
player.sendMessage( ProxyServer.getInstance().getTranslation( "current_server" ) + player.getServer().getInfo().getName() );
StringBuilder serverList = new StringBuilder();
for ( ServerInfo server : servers.values() )
{
if ( server.canAccess( player ) )
{
serverList.append( server.getName() );
serverList.append( ", " );
}
}
if ( serverList.length() != 0 )
{
serverList.setLength( serverList.length() - 2 );
}
player.sendMessage( ProxyServer.getInstance().getTranslation( "server_list" ) + serverList.toString() );
} else
{
ServerInfo server = servers.get( args[0] );
if ( server == null )
{
player.sendMessage( ProxyServer.getInstance().getTranslation( "no_server" ) );
} else if ( !server.canAccess( player ) )
{
player.sendMessage( ProxyServer.getInstance().getTranslation( "no_server_permission" ) );
} else
{
player.connect( server );
}
}
}
@Override
public Iterable<String> onTabComplete(final CommandSender sender, String[] args)
{
return ( args.length != 0 ) ? Collections.EMPTY_LIST : Iterables.transform( Iterables.filter( ProxyServer.getInstance().getServers().values(), new Predicate<ServerInfo>()
{
@Override
public boolean apply(ServerInfo input)
{
return input.canAccess( sender );
}
} ), new Function<ServerInfo, String>()
{
@Override
public String apply(ServerInfo input)
{
return input.getName();
}
} );
}
}

View File

@@ -0,0 +1,13 @@
package net.md_5.bungee.module.cmd.server;
import net.md_5.bungee.api.plugin.Plugin;
public class PluginServer extends Plugin
{
@Override
public void onEnable()
{
getProxy().getPluginManager().registerCommand( this, new CommandServer() );
}
}

View File

@@ -1,4 +1,4 @@
name: ${project.name}
main: foo
main: net.md_5.bungee.module.cmd.server.PluginServer
version: ${describe}
description: ${project.description}
description: ${project.description}