ok server.java here:
Code:
import java.applet.Applet;
import java.awt.event.WindowEvent;
import java.io.*;
import java.net.*;
import java.sql.*;
public class Server extends Applet
implements Runnable
{
private static Exception windowClosingException;
public Server()
{
myConnection = null;
myStmt = null;
newSocket = null;
connectedIps = new String[200];
resetDelay = new int[200];
restartTime = 0;
keepServerOn = true;
garbageCollectDelay = 40;
msLag = 0;
playerHandler = null;
npcHandler = null;
itemHandler = null;
shopHandler = null;
magicHandler = null;
pc = null;
worldO = null;
}
public static void main(String args[])
{
s = new Server();
//SQL.createConnection();
s.worldO = new WorldObjects();
try
{
//Class.forName("org.gjt.mm.mysql.Driver");
//s.myConnection = DriverManager.getConnection("jdbc:mysql://127.0.0.1/server", "root", "");
//s.myStmt = s.myConnection.createStatement();
}
catch(Exception exception)
{
System.out.println(exception.getMessage());
exception.printStackTrace();
}
s.npcHandler = new NPCHandler();
s.itemHandler = new ItemHandler();
s.pc = new PestControl();
s.shopHandler = new ShopHandler();
s.magicHandler = new MagicHandler();
(new Thread(s)).start();
boolean flag = false;
long l = System.currentTimeMillis();
long l1 = 0L;
while(s.keepServerOn)
{
s.restartTime++;
if(s.playerHandler != null)
s.playerHandler.process(windowClosingException);
if(s.npcHandler != null)
s.npcHandler.process(CYCLE_TIME);
if(s.itemHandler != null)
s.itemHandler.process();
if(s.shopHandler != null)
s.shopHandler.process();
if(s.pc != null)
s.pc.process();
if(s.worldO != null)
s.worldO.process();
s.garbageCollectDelay--;
if(s.garbageCollectDelay == 0)
{
s.garbageCollectDelay = 240;
System.gc();
}
long l2 = System.currentTimeMillis() - l;
s.msLag = (int)l2;
s.getClass();
if(l2 >= 500L)
{
s.getClass();
l2 = 500L;
}
try
{
s.getClass();
Thread.sleep(500L - l2);
}
catch(Exception exception1)
{
System.err.println("Thread Sleep Error");
}
l = System.currentTimeMillis();
}
s.resetServer();
}
public void run()
{
try
{
newSocket = new ServerSocket(43594, 1, null);
System.out.println("Starting Server On Port: 43594");
}
catch(Exception exception)
{
System.out.println("Error Starting Server On Port: 43676");
try
{
playerHandler.destruct();
npcHandler.destruct();
}
catch(Exception exception1) { }
pc = null;
shopHandler = null;
itemHandler = null;
magicHandler = null;
playerHandler = null;
npcHandler = null;
worldO = null;
keepServerOn = false;
System.exit(0);
return;
}
Socket socket = null;
Object obj = null;
while(keepServerOn)
{
try
{
socket = newSocket.accept();
socket.setTcpNoDelay(true);
socket.setReuseAddress(true);
String s1 = socket.getInetAddress().getHostAddress();
System.out.println((new StringBuilder()).append("Client connected from ").append(s1).toString());
if(socket != null && s1 != null)
playerHandler.newPlayerClient(socket, s1);
}
catch(Exception exception2)
{
exception2.printStackTrace();
try
{
socket.close();
}
catch(Exception exception4) { }
socket = null;
}
try
{
Thread.sleep(30L);
}
catch(Exception exception3)
{
exception3.printStackTrace();
}
}
resetServer();
}
public void resetServer()
{
System.out.println("Server restarting");
if(newSocket != null)
try
{
newSocket.close();
newSocket = null;
}
catch(Exception exception) { }
try
{
playerHandler.destruct();
npcHandler.destruct();
}
catch(Exception exception1) { }
keepServerOn = false;
pc = null;
shopHandler = null;
itemHandler = null;
magicHandler = null;
playerHandler = null;
npcHandler = null;
worldO = null;
try
{
Runtime.getRuntime().exec("./Run.bat");
}
catch(Exception exception2) { }
System.exit(0);
}
public void appendConnection(String s1)
{
try
{
int i = 0;
do
{
if(i >= 200)
break;
if(connectedIps[i].equals(s1))
{
resetDelay[i]++;
if(resetDelay[i] >= 10)
appendDDOSer(s1);
break;
}
i++;
} while(true);
}
catch(Exception exception) { }
}
public void addIpToList(String s1)
{
try
{
int i = 0;
do
{
if(i >= 200)
break;
if(connectedIps[i].equals(""))
{
connectedIps[i] = s1;
resetDelay[i] = 0;
break;
}
i++;
} while(true);
}
catch(Exception exception) { }
}
public String isLoggedOn(String s1)
{
label0:
{
int i = 1;
do
{
PlayerHandler _tmp = playerHandler;
if(i >= 1500)
break label0;
PlayerHandler _tmp1 = playerHandler;
if(PlayerHandler.players[i] != null)
{
PlayerHandler _tmp2 = playerHandler;
if(PlayerHandler.players[i].PlayerIp.equalsIgnoreCase(s1))
{
PlayerHandler _tmp3 = playerHandler;
return PlayerHandler.players[i].playerName;
}
}
i++;
} while(true);
}
return "";
}
public boolean bannedIp(String s1)
{
try
{
BufferedReader bufferedreader = new BufferedReader(new FileReader("./Data/BannedIps.txt"));
String s2 = null;
do
if((s2 = bufferedreader.readLine()) == null)
break;
while(!s1.startsWith(s2));
return true;
}
catch(IOException ioexception)
{
System.out.println("Critical error while checking banned ips!");
}
return false;
}
public void appendDDOSer(String s1)
{
Object obj = null;
try
{
BufferedWriter bufferedwriter = new BufferedWriter(new FileWriter("./Logs/DDOS.txt", true));
bufferedwriter.write(s1);
bufferedwriter.newLine();
bufferedwriter.flush();
bufferedwriter.close();
}
catch(IOException ioexception)
{
System.out.println("Critical error while writing players IP!");
}
}
public String passHash_ipb(String s1, String s2)
{
try
{
String s3 = (new MD5(s2)).compute();
String s4 = (new MD5(s1)).compute();
return (new MD5((new StringBuilder()).append(s3).append(s4).toString())).compute();
}
catch(Exception exception)
{
System.out.println(exception.getMessage());
}
return "null";
}
public String passHash_vb(String s1, String s2)
{
String s3 = (new MD5(s1)).compute();
String s4 = (new MD5((new StringBuilder()).append(s3).append(s2).toString())).compute();
return s1;
}
public void appendtoIPBanned(String s1)
{
Object obj = null;
try
{
BufferedWriter bufferedwriter = new BufferedWriter(new FileWriter("./Data/BannedIps.txt", true));
bufferedwriter.write(s1);
bufferedwriter.newLine();
bufferedwriter.flush();
bufferedwriter.close();
}
catch(IOException ioexception)
{
System.out.println("Critical error while writing an IP banned player!");
}
}
public final void windowClosing(WindowEvent windowevent)
{
PlayerHandler _tmp = playerHandler;
Player aplayer[] = PlayerHandler.players;
int i = aplayer.length;
for(int j = 0; j < i; j++)
{
Player player = aplayer[j];
if(player != null)
{
System.out.println((new StringBuilder()).append(player.playerName).append(" saved.").toString());
playerHandler.SaveChar(player);
playerHandler.SaveMoreInfo(player);
player.disconnected = true;
}
}
}
public Connection myConnection;
public Statement myStmt;
public final static int CYCLE_TIME = 500;
public final int SERVER_PORT = 43676;
public ServerSocket newSocket;
public String connectedIps[];
public int resetDelay[];
public int restartTime;
public boolean keepServerOn;
public int garbageCollectDelay;
public int msLag;
public static PlayerHandler playerHandler;
public NPCHandler npcHandler;
public ItemHandler itemHandler;
public ShopHandler shopHandler;
public MagicHandler magicHandler;
public PestControl pc;
public static Server s = null;
public WorldObjects worldO;
}
please fix it.