Guest User

Untitled

a guest
Apr 2nd, 2015
444
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.60 KB | None | 0 0
  1. package com.rs;
  2.  
  3. import java.util.concurrent.TimeUnit;
  4. import java.io.IOException;
  5. import java.net.URL;
  6. import java.net.URLConnection;
  7.  
  8. import com.alex.store.Index;
  9. import com.rs.cache.Cache;
  10. import com.rs.cache.loaders.ItemDefinitions;
  11. import com.rs.cache.loaders.ItemsEquipIds;
  12. import com.rs.cache.loaders.NPCDefinitions;
  13. import com.rs.cache.loaders.ObjectDefinitions;
  14. import com.rs.cores.CoresManager;
  15. import com.rs.game.Region;
  16. import com.rs.game.RegionBuilder;
  17. import com.rs.game.World;
  18. import com.rs.game.WorldTile;
  19. import com.rs.game.item.Item;
  20. import com.rs.game.npc.combat.CombatScriptsHandler;
  21. import com.rs.game.player.LendingManager;
  22. import com.rs.game.player.Player;
  23. import com.rs.game.player.content.FishingSpotsHandler;
  24. import com.rs.game.player.content.FriendChatsManager;
  25. import com.rs.game.player.content.clans.ClansManager;
  26. import com.rs.game.player.content.grandExchange.GrandExchangeLoader;
  27. import com.rs.game.player.controlers.ControlerHandler;
  28. import com.rs.game.player.cutscenes.CutscenesHandler;
  29. import com.rs.game.player.dialogues.DialogueHandler;
  30. import com.rs.game.worldlist.WorldList;
  31. import com.rs.net.ServerChannelHandler;
  32. import com.rs.net.decoders.handlers.NPCExamines;
  33. //import com.rs.utils.AutoBackup;
  34. import com.rs.utils.Censor;
  35. import com.rs.utils.DTRank;
  36. import com.rs.utils.DisplayNames;
  37. import com.rs.utils.IPBanL;
  38. import com.rs.utils.IPMute;
  39. import com.rs.utils.MacManagement;
  40. import com.rs.utils.NPCSpawning;
  41. import com.rs.utils.ItemBonuses;
  42. import com.rs.utils.ItemExamines;
  43. import com.rs.utils.Logger;
  44. import com.rs.utils.MACBan;
  45. import com.rs.utils.MapArchiveKeys;
  46. import com.rs.utils.MapAreas;
  47. import com.rs.utils.MusicHints;
  48. import com.rs.utils.NPCBonuses;
  49. import com.rs.utils.NPCCombatDefinitionsL;
  50. import com.rs.utils.NPCDrops;
  51. import com.rs.utils.NPCSpawns;
  52. import com.rs.utils.Text;
  53. import com.rs.utils.ObjectSpawns;
  54. import com.rs.utils.PkRank;
  55. import com.rs.utils.SerializableFilesManager;
  56. import com.rs.utils.ShopsHandler;
  57. import com.rs.utils.WorldObjectDelete;
  58. import com.rs.utils.huffman.Huffman;
  59. import com.rs.utils.mysql.DonationManager;
  60.  
  61. public final class ServerLauncher {
  62.  
  63.     public static long ONLINE = System.currentTimeMillis();
  64.     public static DonationManager md;
  65.     //public static AutoBackup backup;
  66.  
  67.     public static void main(String[] args) throws Exception {
  68.         if (args.length < 3) {
  69.             System.out
  70.                     .println("USE: guimode(boolean) debug(boolean) hosted(boolean) port(integer)");
  71.             return;
  72.         }
  73.         Settings.ECONOMY_MODE = Boolean.parseBoolean(args[2]);
  74.         Settings.DEBUG = Boolean.parseBoolean(args[1]);
  75.         Settings.SERVER_PORT = Integer.parseInt(args[3]);
  76.         Logger.log("ServerLauncher", "Initing Server...");
  77.         //backup = new AutoBackup();
  78.         if (System.getenv("computername").replace("-PC", "").equalsIgnoreCase("Mikk"))
  79.             DataConstant.CACHE_PATH = "C:/Lastrise/data/cache/";
  80.         Cache.init();
  81.         ItemsEquipIds.init();
  82.         Huffman.init();
  83.         DisplayNames.init();
  84.         IPBanL.init();
  85.         MacManagement.initialize();
  86.         NPCExamines.init();
  87.         IPMute.init();
  88.         PkRank.init();
  89.         DTRank.init();
  90.         GrandExchangeLoader.initialize();
  91.         MapArchiveKeys.init();
  92.         MapAreas.init();
  93.         WorldObjectDelete.deleteWorldObject();
  94.         ObjectSpawns.init();
  95.         NPCSpawns.init();
  96.         NPCCombatDefinitionsL.init();
  97.         NPCBonuses.init();
  98.         NPCDrops.init();
  99.         ItemExamines.init();
  100.         ItemBonuses.init();
  101.         MusicHints.init();
  102.         ShopsHandler.init();
  103.         WorldList.init();
  104.         NPCDrops.init();
  105.         Text.init();
  106.         FishingSpotsHandler.init();
  107.         CombatScriptsHandler.init();
  108.         DialogueHandler.init();
  109.         ControlerHandler.init();
  110.         CutscenesHandler.init();
  111.         FriendChatsManager.init();
  112.         ClansManager.init();
  113.         LendingManager.init();
  114.         CoresManager.init();
  115.         addUpdatePlayersOnlineTask();
  116.         World.init();
  117.         RegionBuilder.init();
  118.         ServerChannelHandler.init();
  119.         NPCSpawning.spawnNPCS();
  120.         Censor.init();
  121.         addGroundItemTask();
  122.         //md = new DonationManager();
  123.         md.start();
  124.         Logger.log("ServerLauncher", "Server launched and bound to port: "
  125.                 + Settings.SERVER_PORT);
  126.         addAccountsSavingTask();
  127.         addCleanMemoryTask();//run here i never done it on here :L
  128.     }
  129.    
  130.     private static void setWebsitePlayersOnline(int amount) throws IOException {
  131.         URL url = new URL(
  132.                 "http://lastrisersps/forumsk/register.php?amount=" + amount);
  133.         url.openStream().close();
  134.     }
  135.    
  136.     private static void addGroundItemTask() {
  137.         CoresManager.slowExecutor.scheduleWithFixedDelay(new Runnable() {
  138.             @Override
  139.             public void run() {
  140.                 try {
  141.                    
  142.                     World.addGroundItem2(new Item(946, 1), new WorldTile(3096, 3957, 0));
  143.                 } catch (Throwable e) {
  144.                     Logger.handle(e);
  145.                 }
  146.  
  147.             }
  148.         }, 1, 5, TimeUnit.SECONDS);
  149.     }
  150.  
  151.     private static void addUpdatePlayersOnlineTask() {
  152.         CoresManager.slowExecutor.scheduleWithFixedDelay(new Runnable() {
  153.             @Override
  154.             public void run() {
  155.                 try {
  156.                     setWebsitePlayersOnline(World.getPlayers().size());
  157.                 } catch (Throwable e) {
  158.                 //  Logger.handle(e);
  159.                 }
  160.             }
  161.         }, 1, 1, TimeUnit.MINUTES);
  162.     }
  163.  
  164.     private static void addAccountsSavingTask() {
  165.         CoresManager.slowExecutor.scheduleWithFixedDelay(new Runnable() {
  166.             @Override
  167.             public void run() {
  168.                 try {
  169.                     saveFiles();
  170.                 } catch (Throwable e) {
  171.                     Logger.handle(e);
  172.                 }
  173.             }
  174.         }, 1, 1, TimeUnit.SECONDS);
  175.     }
  176.  
  177.     private static void addCleanMemoryTask() {
  178.         CoresManager.slowExecutor.scheduleWithFixedDelay(new Runnable() {
  179.             @Override
  180.             public void run() {
  181.                 try {
  182.                     cleanMemory(Runtime.getRuntime().freeMemory() < DataConstant.MINIMUM_RAM_ALLOCATED);
  183.                 } catch (Throwable e) {
  184.                     Logger.handle(e);
  185.                 }
  186.             }
  187.         }, 0, 10, TimeUnit.MINUTES);
  188.     }
  189.  
  190.     public static void cleanMemory(boolean force) {
  191.         if (force) {
  192.             ItemDefinitions.clearItemsDefinitions();
  193.             NPCDefinitions.clearNPCDefinitions();
  194.             ObjectDefinitions.clearObjectDefinitions();
  195.             for (Region region : World.getRegions().values())
  196.                 region.removeMapFromMemory();
  197.         }
  198.         for (Index index : Cache.STORE.getIndexes())
  199.             index.resetCachedFiles();
  200.         CoresManager.fastExecutor.purge();
  201.         System.gc();
  202.     }
  203.  
  204.     public static void closeServices() {
  205.         ServerChannelHandler.shutdown();
  206.         CoresManager.shutdown();
  207.     }
  208.  
  209.     public static void saveFiles() {
  210.         for (Player player : World.getPlayers()) {
  211.             if (player == null || !player.hasStarted() || player.hasFinished())
  212.                 continue;
  213.             SerializableFilesManager.savePlayer(player);
  214.         }
  215.         DisplayNames.save();
  216.         IPBanL.save();
  217.         IPMute.save();
  218.         MACBan.save();
  219.         PkRank.save();
  220.         DTRank.save();
  221.     }
  222.  
  223.     public static void shutdown() {
  224.         try {
  225.             closeServices();
  226.         } finally {
  227.             System.exit(0);
  228.         }
  229.     }
  230.  
  231.     private ServerLauncher() {
  232.  
  233.     }
  234. }
Advertisement
Add Comment
Please, Sign In to add comment