Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 31.67 KB | None | 0 0
  1. //
  2. // Source code recreated from a .class file by IntelliJ IDEA
  3. // (powered by Fernflower decompiler)
  4. //
  5.  
  6. package com.wurmonline.server;
  7.  
  8. import java.io.File;
  9. import java.io.FileInputStream;
  10. import java.io.FileNotFoundException;
  11. import java.io.IOException;
  12. import java.util.Properties;
  13. import java.util.logging.Level;
  14. import java.util.logging.Logger;
  15.  
  16. public final class Constants {
  17.     public static String dbHost = "localhost";
  18.     public static String dbPort = ":3306";
  19.     private static final boolean DEFAULT_DB_AUTO_MIGRATE = true;
  20.     public static boolean dbAutoMigrate = true;
  21.     public static boolean enabledMounts = true;
  22.     public static boolean loadNpcs = true;
  23.     public static boolean loadEndGameItems = true;
  24.     public static boolean enableSpyPrevention = true;
  25.     public static boolean enableAutoNetworking = true;
  26.     public static boolean analyseAllDbTables = false;
  27.     public static boolean checkAllDbTables = false;
  28.     public static boolean optimiseAllDbTables = false;
  29.     public static boolean useSplitCreaturesTable = false;
  30.     public static boolean createTemporaryDatabaseIndicesAtStartup = true;
  31.     public static boolean dropTemporaryDatabaseIndicesAtStartup = true;
  32.     public static boolean usePrepStmts = false;
  33.     public static boolean gatherDbStats = false;
  34.     public static boolean checkWurmLogs = false;
  35.     public static boolean startChallenge = false;
  36.     public static int challengeDays = 30;
  37.     private static final boolean DEFAULT_IS_GAME_SERVER = true;
  38.     public static boolean isGameServer = true;
  39.     public static boolean isEigcEnabled = false;
  40.     public static String dbUser = "";
  41.     public static String dbPass = "";
  42.     public static String dbDriver = "com.mysql.jdbc.Driver";
  43.     public static String webPath = ".";
  44.     public static final boolean useDb = true;
  45.     public static boolean usePooledDb = true;
  46.     public static boolean trackOpenDatabaseResources = false;
  47.     public static boolean enablePnpPortForward = true;
  48.     private static Logger logger = Logger.getLogger(Constants.class.getName());
  49.     private static Properties props = null;
  50.     public static int numberOfDirtyMeshRowsToSaveEachCall = 1;
  51.     public static boolean useDirectByteBuffersForMeshIO = false;
  52.     public static int meshSize;
  53.     public static boolean createSeeds = false;
  54.     public static boolean devmode = false;
  55.     public static String motd = "Wurm has been waiting for you.";
  56.     public static String skillTemplatesDBPath;
  57.     public static String zonesDBPath;
  58.     public static String itemTemplatesDBPath;
  59.     public static String creatureTemplatesDBPath;
  60.     public static String creatureStatsDBPath;
  61.     public static String playerStatsDBPath;
  62.     public static String itemStatsDBPath;
  63.     public static String tileStatsDBPath;
  64.     public static String itemOldStatsDBPath;
  65.     public static String creatureOldStatsDBPath;
  66.     public static boolean RUNBATCH;
  67.     public static boolean maintaining;
  68.     public static boolean useQueueToSendDataToPlayers;
  69.     public static boolean useMultiThreadedBankPolling;
  70.     public static boolean useScheduledExecutorToCountEggs;
  71.     public static boolean useScheduledExecutorToSaveConstants;
  72.     public static boolean useScheduledExecutorToSaveDirtyMeshRows;
  73.     public static boolean useScheduledExecutorToSendTimeSync;
  74.     public static boolean useScheduledExecutorToSwitchFatigue;
  75.     public static boolean useScheduledExecutorToTickCalendar;
  76.     public static boolean useScheduledExecutorToWriteLogs;
  77.     public static boolean useScheduledExecutorForServer;
  78.     public static int scheduledExecutorServiceThreads;
  79.     public static String playerStatLog;
  80.     public static String logonStatLog;
  81.     public static String ipStatLog;
  82.     public static String tutorialLog;
  83.     public static String newbieStatLog;
  84.     public static String totIpStatLog;
  85.     public static String payingLog;
  86.     public static String subscriptionLog;
  87.     public static String moneyLog;
  88.     public static String economyLog;
  89.     public static String expiryLog;
  90.     public static String lagLog;
  91.     public static String retentionStatLog;
  92.     public static String retentionPercentStatLog;
  93.     public static boolean useItemTransferLog;
  94.     public static boolean useTileEventLog;
  95.     public static boolean useDatabaseForServerStatisticsLog;
  96.     public static boolean useScheduledExecutorToUpdateCreaturePositionInDatabase;
  97.     public static int numberOfDbCreaturePositionsToUpdateEachTime;
  98.     public static boolean useScheduledExecutorToUpdatePlayerPositionInDatabase;
  99.     public static int numberOfDbPlayerPositionsToUpdateEachTime;
  100.     public static boolean useScheduledExecutorToUpdateItemDamageInDatabase;
  101.     public static int numberOfDbItemDamagesToUpdateEachTime;
  102.     public static boolean useScheduledExecutorToUpdateItemOwnerInDatabase;
  103.     public static boolean useScheduledExecutorToUpdateItemLastOwnerInDatabase;
  104.     public static boolean useScheduledExecutorToUpdateItemParentInDatabase;
  105.     public static int numberOfDbItemOwnersToUpdateEachTime;
  106.     public static boolean useScheduledExecutorToConnectToTwitter;
  107.     public static boolean useScheduledExecutorForTrello;
  108.     public static long lagThreshold;
  109.     static boolean crashed;
  110.     public static boolean respawnUniques;
  111.     public static boolean pruneDb;
  112.     public static boolean reprospect;
  113.     public static boolean caveImg;
  114.     public static long minMillisBetweenPlayerConns;
  115.     public static String trelloBoardid;
  116.     public static String trelloApiKey;
  117.     public static String trelloToken;
  118.     public static String trelloMVBoardId;
  119.     private static final boolean DEFAULT_USE_INCOMING_RMI = false;
  120.     public static boolean useIncomingRMI;
  121.     public static boolean isNewbieFriendly;
  122.  
  123.     public static final void load() {
  124.         props = new Properties();
  125.         File file = null;
  126.  
  127.         FileInputStream dbdir;
  128.         try {
  129.             file = new File(ServerDirInfo.getConstantsFileName());
  130.             logger.info("Loading configuration file at " + file.getAbsolutePath());
  131.             dbdir = new FileInputStream(file);
  132.             props.load(dbdir);
  133.             dbdir.close();
  134.         } catch (FileNotFoundException var11) {
  135.             logger.log(Level.SEVERE, "Failed to locate wurm initializer file at " + file.getAbsolutePath());
  136.  
  137.             try {
  138.                 save();
  139.             } catch (Exception var10) {
  140.                 logger.log(Level.SEVERE, "Failed to create wurm initializer file at " + file.getAbsolutePath(), var10);
  141.             }
  142.         } catch (IOException var12) {
  143.             logger.log(Level.SEVERE, "Failed to load properties at " + file.getAbsolutePath());
  144.         }
  145.  
  146.         try {
  147.             motd = props.getProperty("MOTD");
  148.             dbdir = null;
  149.             dbHost = props.getProperty("DB_HOST");
  150.             dbUser = props.getProperty("DB_USER");
  151.             dbPass = props.getProperty("DB_PASS");
  152.             dbDriver = props.getProperty("DB_DRIVER");
  153.             webPath = props.getProperty("WEB_PATH");
  154.             usePooledDb = getBoolean("USE_POOLED_DB", false);
  155.             trackOpenDatabaseResources = getBoolean("TRACK_OPEN_DATABASE_RESOURCES", false);
  156.             createSeeds = getBoolean("CREATESEEDS", false);
  157.             if (props.getProperty("DB_PORT") != null && props.getProperty("DB_PORT").length() > 0) {
  158.                 dbPort = ":" + props.getProperty("DB_PORT");
  159.             }
  160.  
  161.             dbAutoMigrate = getBoolean("DB_AUTO_MIGRATE", true);
  162.  
  163.             try {
  164.                 numberOfDirtyMeshRowsToSaveEachCall = Integer.parseInt(props.getProperty("NUMBER_OF_DIRTY_MESH_ROWS_TO_SAVE_EACH_CALL"));
  165.                 useDirectByteBuffersForMeshIO = getBoolean("USE_DIRECT_BYTE_BUFFERS_FOR_MESHIO", false);
  166.             } catch (Exception var9) {
  167.                 numberOfDirtyMeshRowsToSaveEachCall = 10;
  168.                 useDirectByteBuffersForMeshIO = false;
  169.             }
  170.  
  171.             File worldMachineOutput = new File(ServerDirInfo.getFileDBPath() + "top_layer.map");
  172.             long baseFileSize = worldMachineOutput.length();
  173.             int mapDimension = (int)Math.sqrt((double)baseFileSize) / 2;
  174.             meshSize = (int)(Math.log((double)mapDimension) / Math.log(2.0D));
  175.             System.out.println("Meshsize=" + meshSize);
  176.             devmode = getBoolean("DEVMODE", false);
  177.             crashed = getBoolean("CRASHED", false);
  178.             RUNBATCH = getBoolean("RUNBATCH", false);
  179.             maintaining = getBoolean("MAINTAINING", false);
  180.             checkWurmLogs = getBoolean("CHECK_WURMLOGS", false);
  181.  
  182.             try {
  183.                 startChallenge = getBoolean("STARTCHALLENGE", false);
  184.                 challengeDays = Integer.parseInt(props.getProperty("CHALLENGEDAYS"));
  185.             } catch (Exception var8) {
  186.             }
  187.  
  188.             isGameServer = getBoolean("IS_GAME_SERVER", true);
  189.             lagThreshold = getLong("LAG_THRESHOLD", 1000L);
  190.             useSplitCreaturesTable = getBoolean("USE_SPLIT_CREATURES_TABLE", false);
  191.             analyseAllDbTables = getBoolean("ANALYSE_ALL_DB_TABLES", false);
  192.             checkAllDbTables = getBoolean("CHECK_ALL_DB_TABLES", false);
  193.             optimiseAllDbTables = getBoolean("OPTIMISE_ALL_DB_TABLES", false);
  194.             usePrepStmts = getBoolean("PREPSTATEMENTS", false);
  195.             gatherDbStats = getBoolean("DBSTATS", false);
  196.             pruneDb = getBoolean("PRUNEDB", false);
  197.             reprospect = getBoolean("PROSPECT", false);
  198.             props.put("PROSPECT", String.valueOf(false));
  199.             caveImg = getBoolean("CAVEIMG", false);
  200.             props.put("CAVEIMG", String.valueOf(false));
  201.  
  202.             try {
  203.                 respawnUniques = getBoolean("RESPAWN", false);
  204.                 props.put("RESPAWN", String.valueOf(false));
  205.             } catch (Exception var7) {
  206.                 logger.log(Level.WARNING, "Not respawning uniques");
  207.             }
  208.  
  209.             loadNpcs = getBoolean("NPCS", true);
  210.             minMillisBetweenPlayerConns = getLong("PLAYER_CONN_MILLIS", 1000L);
  211.             useQueueToSendDataToPlayers = getBoolean("USE_QUEUE_TO_SEND_DATA_TO_PLAYERS", false);
  212.             useMultiThreadedBankPolling = getBoolean("USE_MULTI_THREADED_BANK_POLLING", false);
  213.             useScheduledExecutorToCountEggs = getBoolean("USE_SCHEDULED_EXECUTOR_TO_COUNT_EGGS", false);
  214.             useScheduledExecutorToSaveDirtyMeshRows = getBoolean("USE_SCHEDULED_EXECUTOR_TO_SAVE_DIRTY_MESH_ROWS", false);
  215.             useScheduledExecutorToSendTimeSync = getBoolean("USE_SCHEDULED_EXECUTOR_TO_SEND_TIME_SYNC", false);
  216.             useScheduledExecutorToSwitchFatigue = getBoolean("USE_SCHEDULED_EXECUTOR_TO_SWITCH_FATIGUE", false);
  217.             useScheduledExecutorToTickCalendar = getBoolean("USE_SCHEDULED_EXECUTOR_TO_TICK_CALENDAR", false);
  218.             useScheduledExecutorToWriteLogs = getBoolean("USE_SCHEDULED_EXECUTOR", false);
  219.             useScheduledExecutorForServer = getBoolean("USE_SCHEDULED_EXECUTOR_FOR_SERVER", false);
  220.             useScheduledExecutorForTrello = getBoolean("USE_SCHEDULED_EXECUTOR_FOR_TRELLO", false);
  221.             scheduledExecutorServiceThreads = getInt("SCHEDULED_EXECUTOR_SERVICE_NUMBER_OF_THREADS", scheduledExecutorServiceThreads);
  222.             useItemTransferLog = getBoolean("USE_ITEM_TRANSFER_LOG", false);
  223.             useTileEventLog = getBoolean("USE_TILE_LOG", false);
  224.             useDatabaseForServerStatisticsLog = getBoolean("USE_DATABASE_FOR_SERVER_STATISTICS_LOG", false);
  225.             useScheduledExecutorToUpdateCreaturePositionInDatabase = getBoolean("USE_SCHEDULED_EXECUTOR_TO_UPDATE_CREATURE_POSITION_IN_DATABASE", false);
  226.             useScheduledExecutorToUpdatePlayerPositionInDatabase = getBoolean("USE_SCHEDULED_EXECUTOR_TO_UPDATE_PLAYER_POSITION_IN_DATABASE", false);
  227.             useScheduledExecutorToUpdateItemDamageInDatabase = getBoolean("USE_SCHEDULED_EXECUTOR_TO_UPDATE_ITEM_DAMAGE_IN_DATABASE", false);
  228.             useScheduledExecutorToUpdateItemOwnerInDatabase = getBoolean("USE_SCHEDULED_EXECUTOR_TO_UPDATE_ITEM_OWNER_IN_DATABASE", true);
  229.             useScheduledExecutorToUpdateItemLastOwnerInDatabase = getBoolean("USE_SCHEDULED_EXECUTOR_TO_UPDATE_ITEM_LASTOWNER_IN_DATABASE", true);
  230.             useScheduledExecutorToUpdateItemParentInDatabase = getBoolean("USE_SCHEDULED_EXECUTOR_TO_UPDATE_ITEM_PARENT_IN_DATABASE", true);
  231.             numberOfDbCreaturePositionsToUpdateEachTime = getInt("NUMBER_OF_DB_CREATURE_POSITIONS_TO_UPDATE_EACH_TIME", numberOfDbCreaturePositionsToUpdateEachTime);
  232.             numberOfDbPlayerPositionsToUpdateEachTime = getInt("NUMBER_OF_DB_PLAYER_POSITIONS_TO_UPDATE_EACH_TIME", numberOfDbPlayerPositionsToUpdateEachTime);
  233.             numberOfDbItemDamagesToUpdateEachTime = getInt("NUMBER_OF_DB_ITEM_DAMAGES_TO_UPDATE_EACH_TIME", numberOfDbItemDamagesToUpdateEachTime);
  234.             numberOfDbItemOwnersToUpdateEachTime = getInt("NUMBER_OF_DB_ITEM_OWNERS_TO_UPDATE_EACH_TIME", numberOfDbItemOwnersToUpdateEachTime);
  235.             trelloBoardid = props.getProperty("TRELLO_BOARD_ID", "");
  236.             trelloMVBoardId = props.getProperty("TRELLO_MUTE_VOTE_BOARD_ID", "");
  237.             trelloApiKey = props.getProperty("TRELLO_APIKEY", "");
  238.             trelloToken = props.getProperty("TRELLO_TOKEN");
  239.             enableAutoNetworking = getBoolean("AUTO_NETWORKING", true);
  240.             enablePnpPortForward = getBoolean("ENABLE_PNP_PORT_FORWARD", true);
  241.             useIncomingRMI = getBoolean("USE_INCOMING_RMI", false);
  242.             String logfile = props.getProperty("PLAYERLOG");
  243.             if (logfile != null && logfile.length() > 0) {
  244.                 if (logfile.endsWith(".log")) {
  245.                     playerStatLog = logfile;
  246.                 } else {
  247.                     logger.log(Level.WARNING, "PLAYERLOG file does not end with '.log'. Using default: " + playerStatLog);
  248.                 }
  249.             } else {
  250.                 logger.log(Level.WARNING, "PLAYERLOG not specified. Using default: " + playerStatLog);
  251.             }
  252.         } catch (Exception var13) {
  253.             logger.log(Level.WARNING, "Failed to load property.", var13);
  254.         }
  255.  
  256.     }
  257.  
  258.     private static boolean getBoolean(String key, boolean defaultValue) {
  259.         String maybeBoolean = props.getProperty(key);
  260.         return maybeBoolean == null ? defaultValue : Boolean.parseBoolean(maybeBoolean);
  261.     }
  262.  
  263.     private static int getInt(String key, int defaultValue) {
  264.         String maybeInt = props.getProperty(key);
  265.         if (maybeInt == null) {
  266.             System.out.println(key + " - " + maybeInt);
  267.             return defaultValue;
  268.         } else {
  269.             try {
  270.                 return Integer.parseInt(maybeInt);
  271.             } catch (NumberFormatException var4) {
  272.                 System.out.println(key + " - " + maybeInt);
  273.                 return defaultValue;
  274.             }
  275.         }
  276.     }
  277.  
  278.     private static long getLong(String key, long defaultValue) {
  279.         String maybeLong = props.getProperty(key);
  280.         if (maybeLong == null) {
  281.             return defaultValue;
  282.         } else {
  283.             try {
  284.                 return Long.parseLong(maybeLong);
  285.             } catch (NumberFormatException var5) {
  286.                 System.out.println(key + " - " + maybeLong);
  287.                 return defaultValue;
  288.             }
  289.         }
  290.     }
  291.  
  292.     private Constants() {
  293.     }
  294.  
  295.     public static int getMeshSize() {
  296.         return meshSize;
  297.     }
  298.  
  299.     public static void save() {
  300.         File file = new File(ServerDirInfo.getConstantsFileName());
  301.         if (logger.isLoggable(Level.FINER)) {
  302.             logger.finer("Saving wurm initializer file at " + file.getAbsolutePath());
  303.         }
  304.  
  305.         try {
  306.             if (!ServerDirInfo.getFileDBPath().endsWith(File.separator)) {
  307.                 ServerDirInfo.setFileDBPath(ServerDirInfo.getFileDBPath() + File.separator);
  308.             }
  309.  
  310.             props.put("DBPATH", ServerDirInfo.getFileDBPath());
  311.             props.put("MOTD", motd);
  312.             props.put("CHECK_WURMLOGS", String.valueOf(checkWurmLogs));
  313.             props.put("LAG_THRESHOLD", String.valueOf(lagThreshold));
  314.             props.put("DB_HOST", dbHost);
  315.             props.put("DB_USER", dbUser);
  316.             props.put("DB_PASS", dbPass);
  317.             props.put("DB_DRIVER", dbDriver);
  318.             props.put("USEDB", String.valueOf(true));
  319.             props.put("USE_POOLED_DB", String.valueOf(usePooledDb));
  320.             props.put("TRACK_OPEN_DATABASE_RESOURCES", String.valueOf(trackOpenDatabaseResources));
  321.             props.put("NUMBER_OF_DIRTY_MESH_ROWS_TO_SAVE_EACH_CALL", Integer.toString(numberOfDirtyMeshRowsToSaveEachCall));
  322.             props.put("USE_DIRECT_BYTE_BUFFERS_FOR_MESHIO", Boolean.toString(useDirectByteBuffersForMeshIO));
  323.             props.put("MAINTAINING", String.valueOf(false));
  324.             props.put("RUNBATCH", String.valueOf(false));
  325.             props.put("PROSPECT", String.valueOf(false));
  326.             props.put("CAVEIMG", String.valueOf(false));
  327.             props.put("USE_QUEUE_TO_SEND_DATA_TO_PLAYERS", Boolean.toString(useQueueToSendDataToPlayers));
  328.             props.put("USE_MULTI_THREADED_BANK_POLLING", Boolean.toString(useMultiThreadedBankPolling));
  329.             props.put("USE_SCHEDULED_EXECUTOR_TO_COUNT_EGGS", Boolean.toString(useScheduledExecutorToCountEggs));
  330.             props.put("USE_SCHEDULED_EXECUTOR_TO_SAVE_DIRTY_MESH_ROWS", Boolean.toString(useScheduledExecutorToSaveDirtyMeshRows));
  331.             props.put("USE_SCHEDULED_EXECUTOR_TO_SEND_TIME_SYNC", Boolean.toString(useScheduledExecutorToSendTimeSync));
  332.             props.put("USE_SCHEDULED_EXECUTOR_TO_SWITCH_FATIGUE", Boolean.toString(useScheduledExecutorToSwitchFatigue));
  333.             props.put("USE_SCHEDULED_EXECUTOR_TO_TICK_CALENDAR", Boolean.toString(useScheduledExecutorToTickCalendar));
  334.             props.put("USE_SCHEDULED_EXECUTOR", Boolean.toString(useScheduledExecutorToWriteLogs));
  335.             props.put("USE_SCHEDULED_EXECUTOR_FOR_SERVER", Boolean.toString(useScheduledExecutorForServer));
  336.             props.put("USE_SCHEDULED_EXECUTOR_FOR_TRELLO", Boolean.toString(useScheduledExecutorForTrello));
  337.             props.put("SCHEDULED_EXECUTOR_SERVICE_NUMBER_OF_THREADS", Integer.toString(scheduledExecutorServiceThreads));
  338.             props.put("PLAYERLOG", playerStatLog);
  339.             props.put("USE_ITEM_TRANSFER_LOG", Boolean.toString(useItemTransferLog));
  340.             props.put("USE_TILE_LOG", Boolean.toString(useTileEventLog));
  341.             props.put("USE_DATABASE_FOR_SERVER_STATISTICS_LOG", Boolean.toString(useDatabaseForServerStatisticsLog));
  342.             props.put("USE_SCHEDULED_EXECUTOR_TO_UPDATE_CREATURE_POSITION_IN_DATABASE", Boolean.toString(useScheduledExecutorToUpdateCreaturePositionInDatabase));
  343.             props.put("USE_SCHEDULED_EXECUTOR_TO_UPDATE_PLAYER_POSITION_IN_DATABASE", Boolean.toString(useScheduledExecutorToUpdatePlayerPositionInDatabase));
  344.             props.put("USE_SCHEDULED_EXECUTOR_TO_UPDATE_ITEM_DAMAGE_IN_DATABASE", Boolean.toString(useScheduledExecutorToUpdateItemDamageInDatabase));
  345.             props.put("USE_SCHEDULED_EXECUTOR_TO_UPDATE_ITEM_OWNER_IN_DATABASE", Boolean.toString(useScheduledExecutorToUpdateItemOwnerInDatabase));
  346.             props.put("USE_SCHEDULED_EXECUTOR_TO_UPDATE_ITEM_LASTOWNER_IN_DATABASE", Boolean.toString(useScheduledExecutorToUpdateItemLastOwnerInDatabase));
  347.             props.put("USE_SCHEDULED_EXECUTOR_TO_UPDATE_ITEM_Parent_IN_DATABASE", Boolean.toString(useScheduledExecutorToUpdateItemParentInDatabase));
  348.             props.put("NUMBER_OF_DB_CREATURE_POSITIONS_TO_UPDATE_EACH_TIME", Integer.toString(numberOfDbCreaturePositionsToUpdateEachTime));
  349.             props.put("NUMBER_OF_DB_PLAYER_POSITIONS_TO_UPDATE_EACH_TIME", Integer.toString(numberOfDbPlayerPositionsToUpdateEachTime));
  350.             props.put("NUMBER_OF_DB_ITEM_DAMAGES_TO_UPDATE_EACH_TIME", Integer.toString(numberOfDbItemDamagesToUpdateEachTime));
  351.             props.put("NUMBER_OF_DB_ITEM_OWNERS_TO_UPDATE_EACH_TIME", Integer.toString(numberOfDbItemOwnersToUpdateEachTime));
  352.             props.put("USE_SCHEDULED_EXECUTOR_TO_UPDATE_TWITTER", Boolean.toString(useScheduledExecutorToConnectToTwitter));
  353.             props.put("WEB_PATH", webPath);
  354.             props.put("CREATESEEDS", "false");
  355.             props.put("DEVMODE", String.valueOf(devmode));
  356.             props.put("CRASHED", String.valueOf(crashed));
  357.             props.put("PRUNEDB", String.valueOf(pruneDb));
  358.             props.put("PLAYER_CONN_MILLIS", String.valueOf(minMillisBetweenPlayerConns));
  359.             props.put("USE_SPLIT_CREATURES_TABLE", Boolean.toString(useSplitCreaturesTable));
  360.             props.put("ANALYSE_ALL_DB_TABLES", Boolean.toString(analyseAllDbTables));
  361.             props.put("CHECK_ALL_DB_TABLES", Boolean.toString(checkAllDbTables));
  362.             props.put("OPTIMISE_ALL_DB_TABLES", Boolean.toString(optimiseAllDbTables));
  363.             props.put("CREATE_TEMPORARY_DATABASE_INDICES_AT_STARTUP", Boolean.toString(createTemporaryDatabaseIndicesAtStartup));
  364.             props.put("DROP_TEMPORARY_DATABASE_INDICES_AT_STARTUP", Boolean.toString(dropTemporaryDatabaseIndicesAtStartup));
  365.             props.put("PREPSTATEMENTS", String.valueOf(usePrepStmts));
  366.             props.put("DBSTATS", String.valueOf(gatherDbStats));
  367.             props.put("MOUNTS", String.valueOf(enabledMounts));
  368.             props.put("DB_PORT", String.valueOf(dbPort.replace(":", "")));
  369.             props.put("TRELLO_BOARD_ID", trelloBoardid);
  370.             props.put("TRELLO_MUTE_VOTE_BOARD_ID", trelloMVBoardId);
  371.             props.put("TRELLO_APIKEY", trelloApiKey);
  372.             props.put("NPCS", Boolean.toString(loadNpcs));
  373.             if (trelloToken != null) {
  374.                 props.put("TRELLO_TOKEN", trelloToken);
  375.             }
  376.         } catch (Exception var2) {
  377.             logger.log(Level.SEVERE, "Failed to create wurm initializer file at " + file.getAbsolutePath(), var2);
  378.         }
  379.  
  380.     }
  381.  
  382.     static void logConstantValues(boolean aWithPasswords) {
  383.         logger.info("motd: " + motd);
  384.         logger.info("");
  385.         logger.info("fileName: " + ServerDirInfo.getConstantsFileName());
  386.         logger.info("");
  387.         logger.info("Check WURMLOGS: " + checkWurmLogs);
  388.         logger.info("isGameServer: " + isGameServer);
  389.         logger.info("devmode: " + devmode);
  390.         logger.info("maintaining: " + maintaining);
  391.         logger.info("crashed: " + crashed);
  392.         logger.info("RUNBATCH: " + RUNBATCH);
  393.         logger.info("pruneDb: " + pruneDb);
  394.         logger.info("reprospect: " + reprospect);
  395.         logger.info("caveImg: " + caveImg);
  396.         logger.info("createSeeds: " + createSeeds);
  397.         logger.info("Min millis between player connections: " + minMillisBetweenPlayerConns);
  398.         logger.info("");
  399.         logger.info("fileDBPath: " + ServerDirInfo.getFileDBPath());
  400.         logger.info("dbHost: " + dbHost);
  401.         logger.info("useSplitCreaturesTable: " + useSplitCreaturesTable);
  402.         logger.info("analyseAllDbTables: " + analyseAllDbTables);
  403.         logger.info("checkAllDbTables: " + checkAllDbTables);
  404.         logger.info("optimiseAllDbTables: " + optimiseAllDbTables);
  405.         logger.info("createTemporaryDatabaseIndicesAtStartup: " + createTemporaryDatabaseIndicesAtStartup);
  406.         logger.info("dropTemporaryDatabaseIndicesAtStartup: " + dropTemporaryDatabaseIndicesAtStartup);
  407.         logger.info("usePrepStmts: " + usePrepStmts);
  408.         logger.info("gatherDbStats: " + gatherDbStats);
  409.         logger.info("");
  410.         logger.info("");
  411.         logger.info("");
  412.         logger.info("dbUser: " + dbUser);
  413.         if (aWithPasswords) {
  414.             logger.info("dbPass: " + dbPass);
  415.         }
  416.  
  417.         logger.info("dbDriver: " + dbDriver);
  418.         logger.info("useDb: true");
  419.         logger.info("usePooledDb: " + usePooledDb);
  420.         logger.info("dbPort: " + dbPort);
  421.         logger.info("trackOpenDatabaseResources: " + trackOpenDatabaseResources);
  422.         logger.info("");
  423.         logger.info("numberOfDirtyMeshRowsToSaveEachCall: " + numberOfDirtyMeshRowsToSaveEachCall);
  424.         logger.info("useDirectByteBuffersForMeshIO: " + useDirectByteBuffersForMeshIO);
  425.         logger.info("");
  426.         logger.info("webPath: " + webPath);
  427.         logger.info("skillTemplatesDBPath: " + skillTemplatesDBPath);
  428.         logger.info("zonesDBPath: " + zonesDBPath);
  429.         logger.info("itemTemplatesDBPath: " + itemTemplatesDBPath);
  430.         logger.info("creatureStatsDBPath: " + creatureStatsDBPath);
  431.         logger.info("playerStatsDBPath: " + playerStatsDBPath);
  432.         logger.info("itemStatsDBPath: " + itemStatsDBPath);
  433.         logger.info("tileStatsDBPath: " + tileStatsDBPath);
  434.         logger.info("itemOldStatsDBPath: " + itemOldStatsDBPath);
  435.         logger.info("creatureOldStatsDBPath: " + creatureOldStatsDBPath);
  436.         logger.info("useQueueToSendDataToPlayers: " + useQueueToSendDataToPlayers);
  437.         logger.info("useMultiThreadedBankPolling: " + useMultiThreadedBankPolling);
  438.         logger.info("useScheduledExecutorToCountEggs: " + useScheduledExecutorToCountEggs);
  439.         logger.info("useScheduledExecutorToSaveConstants: " + useScheduledExecutorToSaveConstants);
  440.         logger.info("useScheduledExecutorToSaveDirtyMeshRows: " + useScheduledExecutorToSaveDirtyMeshRows);
  441.         logger.info("useScheduledExecutorToSendTimeSync: " + useScheduledExecutorToSendTimeSync);
  442.         logger.info("useScheduledExecutorToSwitchFatigue: " + useScheduledExecutorToSwitchFatigue);
  443.         logger.info("useScheduledExecutorToTickCalendar: " + useScheduledExecutorToTickCalendar);
  444.         logger.info("useScheduledExecutorToWriteLogs: " + useScheduledExecutorToWriteLogs);
  445.         logger.info("useScheduledExecutorForServer: " + useScheduledExecutorForServer);
  446.         logger.info("scheduledExecutorServiceThreads: " + scheduledExecutorServiceThreads);
  447.         logger.info("useItemTransferLog: " + useItemTransferLog);
  448.         logger.info("useTileEventLog: " + useTileEventLog);
  449.         logger.info("useDatabaseForServerStatisticsLog: " + useDatabaseForServerStatisticsLog);
  450.         logger.info("useScheduledExecutorToUpdateCreaturePositionInDatabase: " + useScheduledExecutorToUpdateCreaturePositionInDatabase);
  451.         logger.info("useScheduledExecutorToUpdatePlayerPositionInDatabase: " + useScheduledExecutorToUpdatePlayerPositionInDatabase);
  452.         logger.info("useScheduledExecutorToUpdateItemDamageInDatabase: " + useScheduledExecutorToUpdateItemDamageInDatabase);
  453.         logger.info("useScheduledExecutorToUpdateItemOwnerInDatabase: " + useScheduledExecutorToUpdateItemOwnerInDatabase);
  454.         logger.info("useScheduledExecutorToUpdateItemLastOwnerInDatabase: " + useScheduledExecutorToUpdateItemLastOwnerInDatabase);
  455.         logger.info("useScheduledExecutorToUpdateItemParentInDatabase: " + useScheduledExecutorToUpdateItemParentInDatabase);
  456.         logger.info("useScheduledExecutorToConnectToTwitter: " + useScheduledExecutorToConnectToTwitter);
  457.         logger.info("numberOfDbCreaturePositionsToUpdateEachTime: " + numberOfDbCreaturePositionsToUpdateEachTime);
  458.         logger.info("numberOfDbPlayerPositionsToUpdateEachTime: " + numberOfDbPlayerPositionsToUpdateEachTime);
  459.         logger.info("numberOfDbItemDamagesToUpdateEachTime: " + numberOfDbItemDamagesToUpdateEachTime);
  460.         logger.info("numberOfDbItemOwnersToUpdateEachTime: " + numberOfDbItemOwnersToUpdateEachTime);
  461.         logger.info("playerStatLog: " + playerStatLog);
  462.         logger.info("logonStatLog: " + logonStatLog);
  463.         logger.info("ipStatLog: " + ipStatLog);
  464.         logger.info("newbieStatLog: " + newbieStatLog);
  465.         logger.info("totIpStatLog: " + totIpStatLog);
  466.         logger.info("payingLog: " + payingLog);
  467.         logger.info("moneyLog: " + moneyLog);
  468.         logger.info("lagLog: " + lagLog);
  469.         logger.info("lagThreshold: " + lagThreshold);
  470.         logger.info("Eigc enabled " + isEigcEnabled);
  471.         logger.info("useIncomingRMI: " + useIncomingRMI);
  472.     }
  473.  
  474.     static {
  475.         skillTemplatesDBPath = "templates" + File.separator + "skills" + File.separator;
  476.         zonesDBPath = "zones" + File.separator;
  477.         itemTemplatesDBPath = "templates" + File.separator + "items" + File.separator;
  478.         creatureTemplatesDBPath = "templates" + File.separator + "creatures" + File.separator;
  479.         creatureStatsDBPath = "creatures" + File.separator;
  480.         playerStatsDBPath = "players" + File.separator;
  481.         itemStatsDBPath = "items" + File.separator;
  482.         tileStatsDBPath = "tiles" + File.separator;
  483.         itemOldStatsDBPath = "olditems" + File.separator;
  484.         creatureOldStatsDBPath = "deadCreatures" + File.separator;
  485.         RUNBATCH = false;
  486.         maintaining = false;
  487.         useQueueToSendDataToPlayers = false;
  488.         useMultiThreadedBankPolling = false;
  489.         useScheduledExecutorToCountEggs = false;
  490.         useScheduledExecutorToSaveConstants = false;
  491.         useScheduledExecutorToSaveDirtyMeshRows = false;
  492.         useScheduledExecutorToSendTimeSync = false;
  493.         useScheduledExecutorToSwitchFatigue = false;
  494.         useScheduledExecutorToTickCalendar = false;
  495.         useScheduledExecutorToWriteLogs = false;
  496.         useScheduledExecutorForServer = false;
  497.         scheduledExecutorServiceThreads = 1;
  498.         playerStatLog = "numplayers.log";
  499.         logonStatLog = "numlogons.log";
  500.         ipStatLog = "numips.log";
  501.         tutorialLog = "tutorial.log";
  502.         newbieStatLog = "newbies.log";
  503.         totIpStatLog = "totalips.log";
  504.         payingLog = "paying.log";
  505.         subscriptionLog = "subscriptions.log";
  506.         moneyLog = "mrtgmoney.log";
  507.         economyLog = "economy.log";
  508.         expiryLog = "expiry.log";
  509.         lagLog = "lag.log";
  510.         retentionStatLog = "retention.log";
  511.         retentionPercentStatLog = "retentionpercent.log";
  512.         useItemTransferLog = false;
  513.         useTileEventLog = false;
  514.         useDatabaseForServerStatisticsLog = false;
  515.         useScheduledExecutorToUpdateCreaturePositionInDatabase = false;
  516.         numberOfDbCreaturePositionsToUpdateEachTime = 500;
  517.         useScheduledExecutorToUpdatePlayerPositionInDatabase = false;
  518.         numberOfDbPlayerPositionsToUpdateEachTime = 500;
  519.         useScheduledExecutorToUpdateItemDamageInDatabase = false;
  520.         numberOfDbItemDamagesToUpdateEachTime = 500;
  521.         useScheduledExecutorToUpdateItemOwnerInDatabase = true;
  522.         useScheduledExecutorToUpdateItemLastOwnerInDatabase = true;
  523.         useScheduledExecutorToUpdateItemParentInDatabase = true;
  524.         numberOfDbItemOwnersToUpdateEachTime = 500;
  525.         useScheduledExecutorToConnectToTwitter = true;
  526.         useScheduledExecutorForTrello = false;
  527.         lagThreshold = 1000L;
  528.         crashed = true;
  529.         respawnUniques = false;
  530.         pruneDb = true;
  531.         reprospect = false;
  532.         caveImg = false;
  533.         minMillisBetweenPlayerConns = 1000L;
  534.         trelloBoardid = "";
  535.         trelloApiKey = "";
  536.         trelloToken = null;
  537.         trelloMVBoardId = "";
  538.         useIncomingRMI = false;
  539.         isNewbieFriendly = false;
  540.         load();
  541.     }
  542.  
  543.     static final class ConstantsSaver implements Runnable {
  544.         ConstantsSaver() {
  545.         }
  546.  
  547.         public void run() {
  548.             if (Constants.logger.isLoggable(Level.FINER)) {
  549.                 Constants.logger.finer("Running newSingleThreadScheduledExecutor for saving Constants to wurm.ini");
  550.             }
  551.  
  552.             try {
  553.                 long now = System.nanoTime();
  554.                 Constants.save();
  555.                 float lElapsedTime = (float)(System.nanoTime() - now) / 1000000.0F;
  556.                 if (lElapsedTime > (float)Constants.lagThreshold) {
  557.                     Constants.logger.info("Finished saving Constants to wurm.ini, which took " + lElapsedTime + " millis.");
  558.                 }
  559.  
  560.             } catch (RuntimeException var4) {
  561.                 Constants.logger.log(Level.WARNING, "Caught exception in ScheduledExecutorService while calling Constants.save()", var4);
  562.                 throw var4;
  563.             }
  564.         }
  565.     }
  566. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement