Advertisement
Guest User

IOACCEPTOR

a guest
Feb 27th, 2015
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.83 KB | None | 0 0
  1. package game;
  2.  
  3. import java.io.IOException;
  4. import java.net.InetSocketAddress;
  5. import java.text.DecimalFormat;
  6.  
  7. import org.apache.mina.common.IoAcceptor;
  8. import org.apache.mina.transport.socket.nio.SocketAcceptor;
  9. import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;
  10.  
  11. import engine.event.CycleEventHandler;
  12. import engine.event.EventManager;
  13. import engine.event.Task;
  14. import engine.event.TaskScheduler;
  15. import engine.network.Connection;
  16. import engine.network.ConnectionHandler;
  17. import engine.network.ConnectionThrottleFilter;
  18. import engine.util.Logger;
  19. import engine.util.ShutDownHook;
  20. import engine.util.SimpleTimer;
  21. import engine.world.WalkingCheck;
  22. import engine.world.WorldObject;
  23. import game.clan.ClanManager;
  24. import game.clip.region.ObjectDef;
  25. import game.clip.region.Region;
  26. import game.content.GodBooks;
  27. //import org.runetoplist.VoteChecker;
  28. import game.item.ItemHandler;
  29. import game.minigame.fightcaves.FightCaves;
  30. import game.minigame.fightpits.FightPits;
  31. import game.minigame.pestcontrol.PestControl;
  32. import game.npc.NPCHandler;
  33. import game.object.DoubleDoorHandler;
  34. import game.object.ObjectHandler;
  35. import game.object.ObjectManager;
  36. import game.object.SingleDoorHandler;
  37. import game.player.Player;
  38. import game.player.PlayerHandler;
  39. import game.shop.ShopHandler;
  40. //import engine.util.HiscoresHandler;
  41. import game.minigame.dominiontower.DominionTower;
  42. //import game.minigame.publicevent.PublicEvent;
  43. import game.minigame.warriorsguild.WarriorsGuild;
  44.  
  45. //import game.minigame.triviabot.TriviaBot;
  46.  
  47. /*
  48.  * Project Insanity - Evolved v.3
  49.  * Server.java
  50.  */
  51.  
  52. public class Server {
  53.  
  54.     public static boolean sleeping;
  55.     public static final int cycleRate;
  56.     public static boolean UpdateServer = false;
  57.     private static IoAcceptors acceptor;
  58.     private static ConnectionHandler connectionHandler;
  59.     private static ConnectionThrottleFilter throttleFilter;
  60.     public static SimpleTimer engineTimer;
  61.     private static SimpleTimer debugTimer;
  62.     public static boolean shuttingDown = false;
  63.     public static long cycleTime;
  64.     private static DecimalFormat debugPercentFormat;
  65.     public static long cycles;
  66.     public static long totalCycleTime;
  67.     public static long sleepTime;
  68.     public static boolean shutdownServer = false;
  69.     public static int garbageCollectDelay = 40;
  70.     public static boolean shutdownClientHandler;
  71.     public static int serverlistenerPort;
  72.     public static WorldObject worldObject = new WorldObject();
  73.     public static ItemHandler itemHandler = new ItemHandler();
  74.     public static PestControl pestControl = new PestControl();
  75.     public static PlayerHandler playerHandler = new PlayerHandler();
  76.     public static NPCHandler npcHandler = new NPCHandler();
  77.     public static ShopHandler shopHandler = new ShopHandler();
  78.     public static ObjectHandler objectHandler = new ObjectHandler();
  79.     public static ObjectManager objectManager = new ObjectManager();
  80.     public static FightPits fightPits = new FightPits();
  81.     public static FightCaves fightCaves = new FightCaves();
  82.     public static DominionTower dominionTower = new DominionTower();
  83.     public static GodBooks godbooks = new GodBooks();
  84.     public static ClanManager clanManager = new ClanManager();
  85.     /**
  86.      * The task scheduler.
  87.      */
  88.     private static final TaskScheduler scheduler = new TaskScheduler();
  89.  
  90.     /**
  91.      * Gets the task scheduler.
  92.      *
  93.      * @return The task scheduler.
  94.      */
  95.     public static TaskScheduler getTaskScheduler() {
  96.         return scheduler;
  97.     }
  98.  
  99.     static {
  100.         serverlistenerPort = 43594;
  101.         cycleRate = 600;
  102.         shutdownServer = false;
  103.         engineTimer = new SimpleTimer();
  104.         debugTimer = new SimpleTimer();
  105.         sleepTime = 0;
  106.         debugPercentFormat = new DecimalFormat("0.0#%");
  107.     }
  108.  
  109.     public static boolean playerExecuted = false;
  110.  
  111.     public static long getSleepTimer() {
  112.         return Server.sleepTime;
  113.     }
  114.  
  115.     public static void main(java.lang.String args[])
  116.             throws NullPointerException, IOException {
  117.         /*
  118.          * Runtime.getRuntime().addShutdownHook(new Thread() {
  119.          *
  120.          * @Override public void run() { for (Player p : PlayerHandler.players)
  121.          * { if (p == null) continue;
  122.          * System.out.println("Saving all players...");
  123.          * PlayerSave.saveGame((Client) p); } }
  124.          */
  125.         /**
  126.          * Starting Up Server
  127.          */
  128.         System.setOut(new Logger(System.out));
  129.         System.setErr(new Logger(System.err));
  130.         System.out.println("[Stage - 1] Launching " + Config.SERVER_NAME
  131.                 + "...");
  132.         WalkingCheck.check();
  133.         WalkingCheck.check2();
  134.         ObjectDef.loadConfig();
  135.         //HiscoresHandler.connect();
  136.         Region.load();
  137.         /**
  138.          * Accepting Connections
  139.          */
  140.         Server.acceptor = new SocketAcceptor();
  141.         Server.connectionHandler = new ConnectionHandler();
  142.         SocketAcceptorConfig sac = new SocketAcceptorConfig();
  143.         sac.getSessionConfig().setTcpNoDelay(false);
  144.         sac.setReuseAddress(true);
  145.         sac.setBacklog(100);
  146.         Server.throttleFilter = new ConnectionThrottleFilter(
  147.                 Config.CONNECTION_DELAY);
  148.         sac.getFilterChain().addFirst("throttleFilter", Server.throttleFilter);
  149.         Server.acceptor.bind(new InetSocketAddress(Server.serverlistenerPort),
  150.                 Server.connectionHandler, sac);
  151.         ShutDownHook shutdownhook = new ShutDownHook();
  152.         Runtime.getRuntime().addShutdownHook(shutdownhook);
  153.         /**
  154.          * Initialize Handlers
  155.          */
  156.         EventManager.initialize();
  157.         SingleDoorHandler.getSingleton().load();
  158.         DoubleDoorHandler.getSingleton().load();
  159.         Connection.initialize();
  160.         /**
  161.          * Server Successfully Loaded
  162.          */
  163.         System.out.println("[Stage - 4] Server Connected to 127.0.0.1 :"
  164.                 + Server.serverlistenerPort);
  165.  
  166.         /**
  167.          * Main Server Tick
  168.          */
  169.         scheduler.schedule(new Task() {
  170.             @Override
  171.             protected void execute() {
  172.                 //PublicEvent.process();
  173.                 engineTimer.reset();
  174.                 CycleEventHandler.getSingleton().process();
  175.                 Server.itemHandler.process();
  176.                 Server.playerHandler.process();
  177.                 Server.npcHandler.process();
  178.                 Server.shopHandler.process();
  179.                 Server.objectManager.process();
  180.                 Server.pestControl.process();
  181.                 FightPits.process();
  182.                 cycleTime = engineTimer.elapsed();
  183.                 sleepTime = cycleRate - cycleTime;
  184.                 totalCycleTime += cycleTime;
  185.                 cycles++;
  186.                 debug();
  187.                 Server.garbageCollectDelay--;
  188.                 if (Server.garbageCollectDelay == 0) {
  189.                     Server.garbageCollectDelay = 40;
  190.                     System.gc();
  191.                 }
  192.             }
  193.         });
  194.     } // so the error it's importing, but i tried everything
  195.  
  196.     private static WarriorsGuild warriorsGuild = new WarriorsGuild();
  197.     public static WarriorsGuild getWarriorsGuild() {
  198.         return warriorsGuild;
  199.     }
  200.    
  201.     public static ObjectManager getObjectManager() {
  202.         return objectManager;
  203.     }
  204.  
  205.     public static void debug() {
  206.         if (Server.debugTimer.elapsed() > 360 * 1000 || Server.playerExecuted) {
  207.             final long averageCycleTime = Server.totalCycleTime / Server.cycles;
  208.             System.out.println("Average Cycle Time: " + averageCycleTime
  209.                     + "ms : Players online: " + PlayerHandler.playerCount + "");
  210.             Server.totalCycleTime = 0;
  211.             Server.cycles = 0;
  212.             System.gc();
  213.             System.runFinalization();
  214.             Server.debugTimer.reset();
  215.             Server.playerExecuted = false;
  216.         }
  217.     }
  218.  
  219.     public static void processAllPackets() {
  220.         for (final Player player : PlayerHandler.players) {
  221.             if (player != null) {
  222.                 while (player.processQueuedPackets()) {
  223.                     ;
  224.                 }
  225.             }
  226.         }
  227.     }
  228.  
  229.     public static void setupLoginChannels() {
  230.         /**
  231.          * Accepting Connections
  232.          */
  233.         Server.acceptor = new SocketAcceptor();
  234.         Server.connectionHandler = new ConnectionHandler();
  235.         final SocketAcceptorConfig sac = new SocketAcceptorConfig();
  236.         sac.getSessionConfig().setTcpNoDelay(false);
  237.         sac.setReuseAddress(true);
  238.         sac.setBacklog(100);
  239.         Server.throttleFilter = new ConnectionThrottleFilter(
  240.                 Config.CONNECTION_DELAY);
  241.         sac.getFilterChain().addFirst("throttleFilter", Server.throttleFilter);
  242.         try {
  243.             Server.acceptor.bind(new InetSocketAddress(
  244.                     Server.serverlistenerPort), Server.connectionHandler, sac);
  245.         } catch (final IOException e) {
  246.             e.printStackTrace();
  247.         }
  248.     }
  249.  
  250. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement