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 ;
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 ;
public class PacketLinkServer implements PacketIn , PacketOut {
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 ;
public PacketLinkServer ( SubPlugin plugin ) {
this . plugin = plugin ;
}
2016-12-19 01:38:02 +01:00
public PacketLinkServer ( int response , String message ) {
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 ( ) ) ;
2016-12-15 22:04:39 +01:00
if ( server . getSubDataClient ( ) = = null ) {
server . linkSubDataClient ( client ) ;
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 " ) ) ;
if ( server instanceof SubServer & & ! ( ( SubServer ) server ) . isRunning ( ) ) client . sendPacket ( new PacketOutShutdown ( " 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 ( ) ) ) ;
2016-12-05 04:21:04 +01:00
}
}
@Override
public Version getVersion ( ) {
return new Version ( " 2.11.0a " ) ;
}
}