@@ -14,11 +14,33 @@ public ServerUtils(SuperPlugin<?> plugin){
1414 }
1515
1616 /**
17- * Send a Player to another Server (Bukkit)
18- * @param player Player to send
19- * @param server Name of the Server to send
17+ * Send a player to another server
18+ * @param player the player
19+ * @param server the server
2020 */
21- public void sendToServer (org .bukkit .entity .Player player , String server ){
21+ public void sendToServer (Object player , String server ){
22+ boolean canBungee = false ;
23+ try {
24+ Class .forName ("net.md_5.bungee.api.connection.ProxiedPlayer" );
25+ canBungee = true ;
26+ }catch (ClassNotFoundException ignored ){ }
27+
28+ if (canBungee ){
29+ if (player instanceof net .md_5 .bungee .api .connection .ProxiedPlayer ){
30+ this .sendToServerBungee (((net .md_5 .bungee .api .connection .ProxiedPlayer )player ), server );
31+ }else {
32+ this .sendToServerBukkit (((org .bukkit .entity .Player )player ), server );
33+ }
34+ }else {
35+ if (player instanceof org .bukkit .entity .Player ){
36+ this .sendToServerBukkit (((org .bukkit .entity .Player )player ), server );
37+ }else {
38+ throw new IllegalArgumentException ("The argument 'player' must be org.bukkit.entity.Player or net.md_5.bungee.api.connection.ProxiedPlayer" );
39+ }
40+ }
41+ }
42+
43+ private void sendToServerBukkit (org .bukkit .entity .Player player , String server ){
2244 if (!((org .bukkit .plugin .java .JavaPlugin )this .plugin .getPlugin ()).getServer ().getMessenger ().isOutgoingChannelRegistered (((org .bukkit .plugin .java .JavaPlugin )this .plugin .getPlugin ()), "BungeeCord" )){
2345 ((org .bukkit .plugin .java .JavaPlugin )this .plugin .getPlugin ()).getServer ().getMessenger ().registerOutgoingPluginChannel (((org .bukkit .plugin .java .JavaPlugin )this .plugin .getPlugin ()), "BungeeCord" );
2446 }
@@ -35,12 +57,7 @@ public void sendToServer(org.bukkit.entity.Player player, String server){
3557 player .sendPluginMessage (((org .bukkit .plugin .java .JavaPlugin )this .plugin .getPlugin ()), "BungeeCord" , byteArrayOutputStream .toByteArray ());
3658 }
3759
38- /**
39- * Send a Player to another Server (Bungee)
40- * @param player Player to send
41- * @param server Name of the Server to send
42- */
43- public void sendToServer (net .md_5 .bungee .api .connection .ProxiedPlayer player , String server ){
60+ private void sendToServerBungee (net .md_5 .bungee .api .connection .ProxiedPlayer player , String server ){
4461 ((net .md_5 .bungee .api .plugin .Plugin )this .plugin ).getProxy ().registerChannel ("BungeeCord" );
4562 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream ();
4663 DataOutputStream dataOutputStream = new DataOutputStream (byteArrayOutputStream );
0 commit comments