2016-12-24 05:55:17 +01:00
package net.ME1312.SubServers.Bungee.Network.Packet ;
import net.ME1312.SubServers.Bungee.Host.Server ;
import net.ME1312.SubServers.Bungee.Host.SubServer ;
2017-01-30 21:22:36 +01:00
import net.ME1312.SubServers.Bungee.Library.Util ;
2016-12-24 05:55:17 +01:00
import net.ME1312.SubServers.Bungee.Library.Version.Version ;
import net.ME1312.SubServers.Bungee.Network.Client ;
import net.ME1312.SubServers.Bungee.Network.PacketIn ;
import net.ME1312.SubServers.Bungee.Network.PacketOut ;
import net.ME1312.SubServers.Bungee.SubPlugin ;
2016-12-05 04:21:04 +01:00
import org.json.JSONObject ;
import java.util.Map ;
2017-01-07 20:06:54 +01:00
/ * *
* Link Server Packet
* /
2017-01-08 03:30:03 +01:00
public class PacketLinkServer implements PacketIn , PacketOut {
2016-12-05 04:21:04 +01:00
private SubPlugin plugin ;
2016-12-19 01:38:02 +01:00
private int response ;
2016-12-05 04:21:04 +01:00
private String message ;
2017-01-07 20:06:54 +01:00
/ * *
* New PacketLinkServer ( In )
*
* @param plugin SubPlugin
* /
2016-12-05 04:21:04 +01:00
public PacketLinkServer ( SubPlugin plugin ) {
2017-01-30 21:22:36 +01:00
if ( Util . isNull ( plugin ) ) throw new NullPointerException ( ) ;
2016-12-05 04:21:04 +01:00
this . plugin = plugin ;
}
2017-01-07 20:06:54 +01:00
/ * *
* New PacketLinkServer ( Out )
*
* @param response Response ID
* @param message Message
* /
2016-12-19 01:38:02 +01:00
public PacketLinkServer ( int response , String message ) {
2017-01-30 21:22:36 +01:00
if ( Util . isNull ( response , message ) ) throw new NullPointerException ( ) ;
2016-12-05 04:21:04 +01:00
this . response = response ;
this . message = message ;
}
@Override
public JSONObject generate ( ) {
2016-12-15 22:04:39 +01:00
JSONObject json = new JSONObject ( ) ;
json . put ( " r " , response ) ;
json . put ( " m " , message ) ;
return json ;
2016-12-05 04:21:04 +01:00
}
@Override
public void execute ( Client client , JSONObject data ) {
try {
Map < String , Server > servers = plugin . api . getServers ( ) ;
if ( servers . keySet ( ) . contains ( data . getString ( " name " ) . toLowerCase ( ) ) ) {
Server server = servers . get ( data . getString ( " name " ) . toLowerCase ( ) ) ;
2017-06-30 15:36:16 +02:00
if ( server . getSubData ( ) = = null ) {
client . setHandler ( server ) ;
2016-12-15 22:04:39 +01:00
System . out . println ( " SubData > " + client . getAddress ( ) . toString ( ) + " has been defined as " + ( ( server instanceof SubServer ) ? " SubServer " : " Server " ) + " : " + server . getName ( ) ) ;
2016-12-19 01:38:02 +01:00
client . sendPacket ( new PacketLinkServer ( 0 , " Definition Successful " ) ) ;
2017-04-01 22:31:57 +02:00
if ( server instanceof SubServer & & ! ( ( SubServer ) server ) . isRunning ( ) ) client . sendPacket ( new PacketOutReset ( " Rogue SubServer Detected " ) ) ;
2016-12-15 22:04:39 +01:00
} else {
2016-12-19 01:38:02 +01:00
client . sendPacket ( new PacketLinkServer ( 3 , " Server already linked " ) ) ;
2016-12-15 22:04:39 +01:00
}
2016-12-05 04:21:04 +01:00
} else {
2016-12-19 01:38:02 +01:00
client . sendPacket ( new PacketLinkServer ( 2 , " There is no server with that name " ) ) ;
2016-12-05 04:21:04 +01:00
}
} catch ( Exception e ) {
2016-12-19 01:38:02 +01:00
client . sendPacket ( new PacketLinkServer ( 1 , e . getClass ( ) . getCanonicalName ( ) + " : " + e . getMessage ( ) ) ) ;
2017-07-23 06:32:57 +02:00
e . printStackTrace ( ) ;
2016-12-05 04:21:04 +01:00
}
}
@Override
public Version getVersion ( ) {
return new Version ( " 2.11.0a " ) ;
}
}