Files
GTA4RP/scripts/server/startup.js

160 lines
4.2 KiB
JavaScript

// ===========================================================================
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/gtac_roleplay
// ===========================================================================
// FILE: startup.js
// DESC: Provides startup/shutdown procedures
// TYPE: Server (JavaScript)
// ===========================================================================
function initServerScripts() {
checkForAllRequiredModules();
initClassScript();
initDatabaseScript();
initConfigScript();
initEmailScript();
initBitFlagScript();
initItemScript();
initBusinessScript();
initClanScript();
initHouseScript();
initChatScript();
initStaffScript();
initAccountScript();
initSubAccountScript();
initChatScript();
initJobScript();
initVehicleScript();
initDeveloperScript();
initKeyBindScript();
initEventScript();
initAntiCheatScript();
initClientScript();
initMessagingScript();
initHelpScript();
initFishingScript();
initGUIScript();
initEconomyScript();
initRadioScript();
initLocaleScript();
initCommandScript();
loadServerDataFromDatabase();
setAllServerDataIndexes();
createAllServerElements();
initAllClients();
initTimers();
serverStartTime = getCurrentUnixTimestamp();
}
// ===========================================================================
function checkForHashingModule() {
if(typeof module.hashing == "undefined") {
return false;
}
return true;
}
// ===========================================================================
function checkForMySQLModule() {
if(typeof module.mysql == "undefined") {
return false;
}
return true;
}
// ===========================================================================
function checkForSMTPModule() {
if(typeof module.smtp == "undefined") {
return false;
}
return true;
}
// ===========================================================================
function checkForAllRequiredModules() {
logToConsole(LOG_DEBUG, "[VRR.Startup]: Checking for required modules ...");
if(!checkForHashingModule()) {
console.warn("[VRR.Startup]: Hashing module is not loaded!");
console.warn("[VRR.Startup]: This resource will now shutdown.");
thisResource.stop();
}
if(!checkForMySQLModule()) {
console.warn("[VRR.Startup]: MySQL module is not loaded!");
console.warn("[VRR.Startup]: This resource will now shutdown.");
thisResource.stop();
}
if(!checkForSMTPModule()) {
console.warn("[VRR.Startup]: SMTP Email module is not loaded!");
console.warn("[VRR.Startup]: Email features will NOT be available!");
}
logToConsole(LOG_DEBUG, "[VRR.Startup]: All required modules loaded!");
return true;
}
// ===========================================================================
function loadServerDataFromDatabase() {
getServerData().itemTypes = loadItemTypesFromDatabase();
if(!getServerConfig().devServer) {
getServerData().items = loadItemsFromDatabase();
getServerData().businesses = loadBusinessesFromDatabase();
getServerData().houses = loadHousesFromDatabase();
getServerData().vehicles = loadVehiclesFromDatabase();
getServerData().clans = loadClansFromDatabase();
getServerData().jobs = loadJobsFromDatabase();
getServerData().npcs = loadNPCsFromDatabase();
getServerData().races = loadRacesFromDatabase();
getServerData().radioStations = loadRadioStationsFromDatabase();
}
}
// ===========================================================================
function setAllServerDataIndexes() {
setItemTypeDataIndexes();
setItemDataIndexes();
setBusinessDataIndexes();
setHouseDataIndexes();
setAllClanDataIndexes();
setAllJobDataIndexes();
setNPCDataIndexes();
setAllRaceDataIndexes();
setAllRadioStationIndexes();
cacheAllGroundItems();
cacheAllBusinessItems();
}
// ===========================================================================
function createAllServerElements() {
createAllBusinessPickups();
createAllBusinessBlips();
createAllHousePickups();
createAllHouseBlips();
createAllJobPickups();
createAllJobBlips();
createAllGroundItemObjects();
spawnAllVehicles();
spawnAllNPCs();
}
// ===========================================================================
initServerScripts();
// ===========================================================================