How do I change the server of a player Bungeecord

Auscyber picture Auscyber · Jun 24, 2017 · Viewed 10.4k times · Source

I was wondering how I can move the target server of the player I dont have any code so far and I have found nothing but I am making a plugin for private use for my Minecraft server network. I do already have a plugin called Command Sync which links my BungeeCord Server and my Spigot Servers with sync console bungee send @p tntwars in vanilla where tntwars is my target server. This is all I know because the Spigot forums are terrible and useless>

How do I move that player to another server?

Answer

Ryan Leach picture Ryan Leach · Jun 27, 2017

From Bungee Plugins:

See https://www.spigotmc.org/wiki/sending-players-between-servers-in-bungeecord/

ServerInfo target = ProxyServer.getInstance().getServerInfo("Hub");
player.connect(target);

From Spigot Plugins:

See https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/#connect

Connect Example to server. (Used when Example is a player connected to the server sending the command, e.g. 'kick' to server)

 ByteArrayDataOutput out = ByteStreams.newDataOutput();
 out.writeUTF("Connect");
 out.writeUTF("pvp");    
 //applies to the player you send it to. aka Kick To Server.
 Player player = Bukkit.getPlayerExact("Example");
 player.sendPluginMessage(this, "BungeeCord", out.toByteArray());

ConnectOther Example to server. (Used when you need to pull a player out of another server on the network, care should be used to make sure they arn't mid-minigame or something, as you won't necessarily have the server-state context of the player)

 ByteArrayDataOutput out = ByteStreams.newDataOutput();
 out.writeUTF("ConnectOther");
 out.writeUTF("Example");
 out.writeUTF("pvp");
 //Any online player at all.
 //Aka Pull To Server.
 Player player = Iterables.getFirst(Bukkit.getOnlinePlayers(), null);
 player.sendPluginMessage(this, "BungeeCord", out.toByteArray());

You can not send a message to Bungee without any online players!