mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-10 10:20:41 -07:00
217 lines
No EOL
7.9 KiB
Text
217 lines
No EOL
7.9 KiB
Text
package core
|
|
|
|
import core.game.system.SystemShutdownHook
|
|
import core.game.system.mysql.SQLManager
|
|
import core.game.world.map.Location
|
|
import core.tools.mysql.Database
|
|
import core.tools.secondsToTicks
|
|
import org.json.simple.JSONObject
|
|
import java.io.File
|
|
import java.math.BigInteger
|
|
|
|
/**
|
|
* A class holding various variables for the server.
|
|
* @author Ceikry
|
|
*/
|
|
class ServerConstants {
|
|
companion object {
|
|
@JvmField
|
|
var SHUTDOWN_HOOK: Thread = Thread(SystemShutdownHook())
|
|
|
|
@JvmField
|
|
var DATA_PATH: String? = null
|
|
|
|
//path to the cache
|
|
@JvmField
|
|
var CACHE_PATH: String? = null
|
|
|
|
//path for the server store (obsolete, but kept for the sake of system sanity.)
|
|
@JvmField
|
|
var STORE_PATH: String? = null
|
|
|
|
//path for player saves
|
|
@JvmField
|
|
var PLAYER_SAVE_PATH: String? = null
|
|
|
|
@JvmField
|
|
var PLAYER_ATTRIBUTE_PATH = "ish";
|
|
|
|
//path to the various config files, such as npc_spawns.json
|
|
var CONFIG_PATH: String? = null
|
|
|
|
@JvmField
|
|
var GRAND_EXCHANGE_DATA_PATH: String? = null
|
|
|
|
@JvmField
|
|
var RDT_DATA_PATH: String? = null
|
|
|
|
@JvmField
|
|
var OBJECT_PARSER_PATH: String? = null
|
|
|
|
@JvmField
|
|
var SCRIPTS_PATH: String? = null
|
|
|
|
@JvmField
|
|
var DIALOGUE_SCRIPTS_PATH: String? = null
|
|
|
|
@JvmField
|
|
var LOGS_PATH: String? = null
|
|
|
|
@JvmField
|
|
var BOT_DATA_PATH: String? = null
|
|
|
|
//the max number of players.
|
|
@JvmField
|
|
var MAX_PLAYERS = 0
|
|
|
|
//the max number of NPCs
|
|
@JvmField
|
|
var MAX_NPCS = 0
|
|
|
|
//the location where new players are placed on login.
|
|
@JvmField
|
|
var START_LOCATION: Location? = null
|
|
|
|
//Location for all home teleports/respawn location
|
|
@JvmField
|
|
var HOME_LOCATION: Location? = null
|
|
|
|
//the name for the database
|
|
@JvmField
|
|
var DATABASE_NAME: String? = null
|
|
|
|
//username for the database
|
|
@JvmField
|
|
var DATABASE_USER: String? = null
|
|
|
|
//password for the database
|
|
@JvmField
|
|
var DATABASE_PASS: String? = null
|
|
|
|
//address for the database
|
|
@JvmField
|
|
var DATABASE_ADDRESS: String? = null
|
|
|
|
@JvmField
|
|
var DATABASE_PORT: String? = null
|
|
|
|
@JvmField
|
|
var WRITE_LOGS: Boolean = false
|
|
|
|
@JvmField
|
|
var BANK_SIZE: Int = 496
|
|
|
|
@JvmField
|
|
var GE_AUTOSAVE_FREQUENCY = secondsToTicks(3600) //1 hour
|
|
|
|
@JvmField
|
|
var GE_AUTOSTOCK_ENABLED = false
|
|
|
|
//location names for the ::to command.
|
|
val TELEPORT_DESTINATIONS = arrayOf(
|
|
arrayOf(Location.create(2974, 4383, 2), "corp", "corporal", "corporeal"),
|
|
arrayOf(Location.create(2659, 2649, 0), "pc", "pest control", "pest"),
|
|
arrayOf(Location.create(3293, 3184, 0), "al kharid", "alkharid", "kharid"),
|
|
arrayOf(Location.create(3222, 3217, 0), "lumbridge", "lumby"),
|
|
arrayOf(Location.create(3110, 3168, 0), "wizard tower", "wizards tower", "tower", "wizards"),
|
|
arrayOf(Location.create(3083, 3249, 0), "draynor", "draynor village"),
|
|
arrayOf(Location.create(3019, 3244, 0), "port sarim", "sarim"),
|
|
arrayOf(Location.create(2956, 3209, 0), "rimmington"),
|
|
arrayOf(Location.create(2965, 3380, 0), "fally", "falador"),
|
|
arrayOf(Location.create(2895, 3436, 0), "taverley"),
|
|
arrayOf(Location.create(3080, 3423, 0), "barbarian village", "barb"),
|
|
arrayOf(Location.create(3213, 3428, 0), "varrock"),
|
|
arrayOf(Location.create(3164, 3485, 0), "grand exchange", "ge"),
|
|
arrayOf(Location.create(2917, 3175, 0), "karamja"),
|
|
arrayOf(Location.create(2450, 5165, 0), "tzhaar"),
|
|
arrayOf(Location.create(2795, 3177, 0), "brimhaven"),
|
|
arrayOf(Location.create(2849, 2961, 0), "shilo village", "shilo"),
|
|
arrayOf(Location.create(2605, 3093, 0), "yanille"),
|
|
arrayOf(Location.create(2663, 3305, 0), "ardougne", "ardy"),
|
|
arrayOf(Location.create(2450, 3422, 0), "gnome stronghold", "gnome"),
|
|
arrayOf(Location.create(2730, 3485, 0), "camelot", "cammy", "seers"),
|
|
arrayOf(Location.create(2805, 3435, 0), "catherby"),
|
|
arrayOf(Location.create(2659, 3657, 0), "rellekka"),
|
|
arrayOf(Location.create(2890, 3676, 0), "trollheim"),
|
|
arrayOf(Location.create(2914, 3746, 0), "godwars", "gwd", "god wars"),
|
|
arrayOf(Location.create(3180, 3684, 0), "bounty hunter", "bh"),
|
|
arrayOf(Location.create(3272, 3687, 0), "clan wars", "clw"),
|
|
arrayOf(Location.create(3090, 3957, 0), "mage arena", "mage", "magearena", "arena"),
|
|
arrayOf(Location.create(3069, 10257, 0), "king black dragon", "kbd"),
|
|
arrayOf(Location.create(3359, 3416, 0), "digsite"),
|
|
arrayOf(Location.create(3488, 3489, 0), "canifis"),
|
|
arrayOf(Location.create(3428, 3526, 0), "slayer tower", "slayer"),
|
|
arrayOf(Location.create(3502, 9483, 2), "kalphite queen", "kq", "kalphite hive", "kalphite"),
|
|
arrayOf(Location.create(3233, 2913, 0), "pyramid"),
|
|
arrayOf(Location.create(3419, 2917, 0), "nardah"),
|
|
arrayOf(Location.create(3482, 3090, 0), "uzer"),
|
|
arrayOf(Location.create(3358, 2970, 0), "pollnivneach", "poln"),
|
|
arrayOf(Location.create(3305, 2788, 0), "sophanem"),
|
|
arrayOf(Location.create(2898, 3544, 0), "burthorpe", "burthorp"),
|
|
arrayOf(Location.create(3088, 3491, 0), "edge", "edgeville"),
|
|
arrayOf(Location.create(3169, 3034, 0), "bedabin"),
|
|
arrayOf(Location.create(3565, 3289, 0), "barrows"),
|
|
arrayOf(Location.create(3016, 3513, 0), "bkf", "black knights fortress"),
|
|
arrayOf(Location.create(3052, 3481, 0), "monastery")
|
|
)
|
|
|
|
@JvmField
|
|
var DATABASE: Database? = null
|
|
|
|
//if SQL is enabled
|
|
@JvmField
|
|
var MYSQL = true
|
|
|
|
//the server name
|
|
@JvmField
|
|
var SERVER_NAME: String = ""
|
|
|
|
//The RSA_KEY for the server.
|
|
@JvmField
|
|
var EXPONENT = BigInteger("109343860332353211924482133180092752644123222251570035818592399718899543340247882615012834369709881454157761178411602406231525266135486523035643931381979724348736863559735931163013508521663192459153115214061347330689961869574877386212674606945486858607548180282077056338048348202722564364196572081666257569141")
|
|
|
|
//The MODULUS for the server.
|
|
@JvmField
|
|
var MODULUS = BigInteger("96982303379631821170939875058071478695026608406924780574168393250855797534862289546229721580153879336741968220328805101128831071152160922518190059946555203865621183480223212969502122536662721687753974815205744569357388338433981424032996046420057284324856368815997832596174397728134370577184183004453899764051")
|
|
|
|
/**
|
|
* Parses a JSONObject and retrieves the values for all settings in this file.
|
|
* @author Ceikry
|
|
* @param data : The JSONObject to parse.
|
|
*/
|
|
fun parse(data: JSONObject) {
|
|
MAX_PLAYERS = data["max_players"].toString().toInt()
|
|
MAX_NPCS = data["max_npcs"].toString().toInt()
|
|
|
|
START_LOCATION = JSONUtils.parseLocation(data["new_player_location"].toString())
|
|
HOME_LOCATION = JSONUtils.parseLocation(data["home_location"].toString())
|
|
|
|
DATA_PATH = JSONUtils.parsePath(data["data_path"].toString())
|
|
CACHE_PATH = JSONUtils.parsePath(data["cache_path"].toString())
|
|
STORE_PATH = JSONUtils.parsePath(data["store_path"].toString())
|
|
PLAYER_SAVE_PATH = JSONUtils.parsePath(data["save_path"].toString())
|
|
CONFIG_PATH = JSONUtils.parsePath(data["configs_path"].toString())
|
|
PLAYER_ATTRIBUTE_PATH = PLAYER_SAVE_PATH + "attributes" + File.separator
|
|
GRAND_EXCHANGE_DATA_PATH = JSONUtils.parsePath(data["grand_exchange_data_path"].toString())
|
|
BOT_DATA_PATH = JSONUtils.parsePath(data["bot_data_path"].toString())
|
|
RDT_DATA_PATH = JSONUtils.parsePath(data["rare_drop_table_path"].toString())
|
|
OBJECT_PARSER_PATH = JSONUtils.parsePath(data["object_parser_path"].toString())
|
|
SCRIPTS_PATH = JSONUtils.parsePath(data["scripts_path"].toString())
|
|
DIALOGUE_SCRIPTS_PATH = JSONUtils.parsePath(data["dialogue_scripts_path"].toString())
|
|
if(data.containsKey("logs_path")){
|
|
LOGS_PATH = data["logs_path"].toString()
|
|
}
|
|
if(data.containsKey("writeLogs")){
|
|
WRITE_LOGS = data["writeLogs"] as Boolean
|
|
}
|
|
|
|
DATABASE_NAME = data["database_name"].toString()
|
|
DATABASE_USER = data["database_username"].toString()
|
|
DATABASE_PASS = data["database_password"].toString()
|
|
DATABASE_ADDRESS = data["database_address"].toString()
|
|
DATABASE_PORT = data["database_port"].toString()
|
|
|
|
DATABASE = Database(DATABASE_ADDRESS, DATABASE_NAME, DATABASE_USER, DATABASE_PASS)
|
|
}
|
|
}
|
|
} |