You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

82 lines
1.9 KiB

  1. require('./globals');
  2. const server = require('./server/index');
  3. const components = require('./components/components');
  4. const mods = require('./misc/mods');
  5. const animations = require('./config/animations');
  6. const skins = require('./config/skins');
  7. const factions = require('./config/factions');
  8. const classes = require('./config/spirits');
  9. const spellsConfig = require('./config/spellsConfig');
  10. const spells = require('./config/spells');
  11. const itemTypes = require('./items/config/types');
  12. const salvager = require('./items/salvager');
  13. const recipes = require('./config/recipes/recipes');
  14. const mapManager = require('./world/mapManager');
  15. const fixes = require('./fixes/fixes');
  16. const profanities = require('./misc/profanities');
  17. const routerConfig = require('./security/routerConfig');
  18. const { spawnMapThreads } = require('./world/threadManager');
  19. let startup = {
  20. init: function () {
  21. io.init(this.onDbReady.bind(this));
  22. },
  23. onDbReady: async function () {
  24. await fixes.fixDb();
  25. process.on('unhandledRejection', this.onError.bind(this));
  26. process.on('uncaughtException', this.onError.bind(this));
  27. await mods.init();
  28. this.onModsLoaded();
  29. },
  30. onModsLoaded: function () {
  31. animations.init();
  32. routerConfig.init();
  33. classes.init();
  34. spellsConfig.init();
  35. spells.init();
  36. recipes.init();
  37. itemTypes.init();
  38. salvager.init();
  39. profanities.init();
  40. mapManager.init();
  41. components.init(this.onComponentsReady.bind(this));
  42. },
  43. onComponentsReady: async function () {
  44. skins.init();
  45. factions.init();
  46. await clientConfig.init();
  47. await server.init();
  48. await leaderboard.init();
  49. await spawnMapThreads();
  50. },
  51. onError: async function (e) {
  52. if (e.toString().indexOf('ERR_IPC_CHANNEL_CLOSED') > -1)
  53. return;
  54. _.log('Error Logged: ' + e.toString());
  55. _.log(e.stack);
  56. await io.setAsync({
  57. key: new Date(),
  58. table: 'error',
  59. value: e.toString() + ' | ' + e.stack.toString()
  60. });
  61. process.exit();
  62. }
  63. };
  64. startup.init();