rendered paste bodypackage net.sf.l2j.controller;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.StringTokenizer;
import java.util.logging.Logger;
import net.sf.l2j.gameserver.Shutdown;
import net.sf.l2j.gameserver.clientpackets.Say2;
import net.sf.l2j.gameserver.model.L2PcInstance;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.serverpackets.CreatureSay;
public class InteractiveSocket extends Thread
{
static Logger _log = Logger.getLogger(InteractiveSocket.class.getName());
public static void main(String[] args) throws IOException
{
}
public void close()
{
_log.info("closing interactive controller");
this.interrupt();
try
{
server.close();
}
catch (IOException e)
{
}
}
public void run()
{
while(true)
{
_log.info("waiting for connections...");
try
{
client = server.accept();
is = new DataInputStream(client.getInputStream());
os = new PrintStream(client.getOutputStream());
_log.info("New interactive connection from " + client.getInetAddress().getHostAddress());
while(true)
{
String cmd = is.readLine();
_log.info("I've got command: <"+cmd+">");
if(cmd.equals("quit"))
{
client.close();
}
else if(cmd.startsWith("announce"))
{
StringTokenizer st = new StringTokenizer(cmd);
if (st.countTokens() > 1)
{
st.nextToken(); //skip 'announce' string
}
CreatureSay cs = new CreatureSay(0, Say2.ANNOUNCEMENT, "", cmd);
for (L2PcInstance player : L2World.getInstance().getAllPlayers())
{
player.sendPacket(cs);
}
}
else if(cmd.equals("restart"))
{
shutdown = new Shutdown(60, true);
shutdown.start();
}
else if(cmd.equals("shutdown"))
{
shutdown = new Shutdown(60, false);
shutdown.start();
}
else if(cmd.equals("kick"))
{
StringTokenizer st = new StringTokenizer(cmd);
if (st.countTokens() > 1)
{
st.nextToken();
String player = st.nextToken();
L2PcInstance plyr = L2World.getInstance().getPlayer(player);
if (plyr != null)
{
plyr.logout();
os.println("Character "+player+" kicked");
}
}
}
}
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
}
}
public InteractiveSocket(String threadName)
{
}
public InteractiveSocket() throws IOException
{
super("InteractiveSocket");
try
{
server = new ServerSocket(2009);
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
System.out.println("Interactive socket ready on port 2009");
}
private ServerSocket server;
private Socket client;
private DataInputStream is;
private PrintStream os;
private static Shutdown shutdown = null;
}