From cb45d546cbcb62a9b00bc956cb410501f5b6bf5a Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 11 Jun 2020 22:40:47 +0000 Subject: [PATCH] Olympiad database load adjustments. --- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../db_installer/sql/game/olympiad_data.sql | 9 + .../gameserver/datatables/sql/SpawnTable.java | 2 +- .../model/entity/olympiad/Olympiad.java | 197 +++++++++--------- .../model/entity/olympiad/OlympiadGame.java | 2 +- .../gameserver/model/olympiad/Olympiad.java | 7 +- .../gameserver/model/olympiad/Olympiad.java | 2 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- .../gameserver/model/olympiad/Olympiad.java | 3 +- 21 files changed, 141 insertions(+), 123 deletions(-) create mode 100644 L2J_Mobius_C6_Interlude/dist/db_installer/sql/game/olympiad_data.sql diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index 5f4cb0c1f3..cf5d5c013b 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -146,6 +146,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -168,7 +169,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index 5f4cb0c1f3..cf5d5c013b 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -146,6 +146,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -168,7 +169,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index 5f4cb0c1f3..cf5d5c013b 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -146,6 +146,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -168,7 +169,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index 98db583182..c54ea4ce85 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -143,6 +143,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -165,7 +166,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index 57cf929cd8..370f1cb0fc 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -143,6 +143,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -165,7 +166,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index 57cf929cd8..370f1cb0fc 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -143,6 +143,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -165,7 +166,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index 57cf929cd8..370f1cb0fc 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -143,6 +143,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -165,7 +166,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index 9ce786fa07..7b25515036 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -144,6 +144,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -166,7 +167,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_C6_Interlude/dist/db_installer/sql/game/olympiad_data.sql b/L2J_Mobius_C6_Interlude/dist/db_installer/sql/game/olympiad_data.sql new file mode 100644 index 0000000000..4a4edfb193 --- /dev/null +++ b/L2J_Mobius_C6_Interlude/dist/db_installer/sql/game/olympiad_data.sql @@ -0,0 +1,9 @@ +CREATE TABLE IF NOT EXISTS `olympiad_data` ( + `id` TINYINT UNSIGNED NOT NULL DEFAULT 0, + `current_cycle` MEDIUMINT UNSIGNED NOT NULL DEFAULT 1, + `period` MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, + `olympiad_end` bigint(13) unsigned NOT NULL DEFAULT '0', + `validation_end` bigint(13) unsigned NOT NULL DEFAULT '0', + `next_weekly_change` bigint(13) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; \ No newline at end of file diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/SpawnTable.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/SpawnTable.java index cad7f57503..0e74788d29 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/SpawnTable.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/SpawnTable.java @@ -138,7 +138,7 @@ public class SpawnTable } if (spawnDat.getTemplate().getNpcId() == Olympiad.OLY_MANAGER) { - Olympiad.olymanagers.add(spawnDat); + Olympiad.OLY_MANAGERS.add(spawnDat); } } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/olympiad/Olympiad.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/olympiad/Olympiad.java index e317405dc6..fbb5b28375 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/olympiad/Olympiad.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/olympiad/Olympiad.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.model.entity.olympiad; import java.io.File; import java.io.FileInputStream; -import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; @@ -26,12 +25,10 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; -import java.util.GregorianCalendar; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -39,6 +36,7 @@ import java.util.Map.Entry; import java.util.Properties; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; +import java.util.logging.Level; import java.util.logging.Logger; import org.l2jmobius.Config; @@ -59,16 +57,17 @@ public class Olympiad { protected static final Logger LOGGER = Logger.getLogger(Olympiad.class.getName()); - private static Map _nobles; - private static Map _oldnobles; - protected static List _heroesToBe; + private static Map NOBLES; + private static Map NOBLES_RANK; + private static List HEROS_TO_BE; private static List _nonClassBasedRegisters; private static Map> _classBasedRegisters; + public static List OLY_MANAGERS = new ArrayList<>(); public static final int OLY_MANAGER = 31688; - public static List olymanagers = new ArrayList<>(); - - private static final String OLYMPIAD_DATA_FILE = "config/olympiad.cfg"; + private static final String OLYMPIAD_DATA_FILE = "./config/olympiad.cfg"; public static final String OLYMPIAD_HTML_PATH = "data/html/olympiad/"; + private static final String OLYMPIAD_LOAD_DATA = "SELECT current_cycle, period, olympiad_end, validation_end, next_weekly_change FROM olympiad_data WHERE id = 0"; + private static final String OLYMPIAD_SAVE_DATA = "INSERT INTO olympiad_data (id, current_cycle, period, olympiad_end, validation_end, next_weekly_change) VALUES (0,?,?,?,?,?) ON DUPLICATE KEY UPDATE current_cycle=?, period=?, olympiad_end=?, validation_end=?, next_weekly_change=?"; private static final String OLYMPIAD_LOAD_NOBLES = "SELECT olympiad_nobles.charId, olympiad_nobles.class_id, characters.char_name, olympiad_nobles.olympiad_points, olympiad_nobles.competitions_done, olympiad_nobles.competitions_won, olympiad_nobles.competitions_lost, olympiad_nobles.competitions_drawn FROM olympiad_nobles, characters WHERE characters.obj_Id = olympiad_nobles.charId"; private static final String OLYMPIAD_SAVE_NOBLES = "INSERT INTO olympiad_nobles (`charId`,`class_id`,`char_name`,`olympiad_points`,`competitions_done`,`competitions_won`,`competitions_lost`,`competitions_drawn`) VALUES (?,?,?,?,?,?,?,?)"; private static final String OLYMPIAD_UPDATE_NOBLES = "UPDATE olympiad_nobles SET olympiad_points = ?, competitions_done = ?, competitions_won = ?, competitions_lost = ?, competitions_drawn = ? WHERE charId = ?"; @@ -178,40 +177,57 @@ public class Olympiad private void load() { - _nobles = new ConcurrentHashMap<>(); - _oldnobles = new HashMap<>(); + NOBLES = new ConcurrentHashMap<>(); + NOBLES_RANK = new HashMap<>(); - final Properties olympiadProperties = new Properties(); - InputStream is = null; - try + boolean loaded = false; + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); + ResultSet rset = statement.executeQuery()) { - is = new FileInputStream(new File("./" + OLYMPIAD_DATA_FILE)); - olympiadProperties.load(is); + while (rset.next()) + { + _currentCycle = rset.getInt("current_cycle"); + _period = rset.getInt("period"); + _olympiadEnd = rset.getLong("olympiad_end"); + _validationEnd = rset.getLong("validation_end"); + _nextWeeklyChange = rset.getLong("next_weekly_change"); + loaded = true; + } } catch (Exception e) { - LOGGER.warning(OLYMPIAD_DATA_FILE + " cannot be loaded... It will be created on next save or server shutdown.."); + LOGGER.log(Level.WARNING, "Olympiad System: Error loading olympiad data from database: ", e); } - finally + + if (!loaded) { + // LOGGER.log(Level.INFO, "Olympiad System: failed to load data from database, trying to load from file."); + + final Properties olympiadProperties = new Properties(); + InputStream is = null; try { - if (is != null) + final File file = new File(OLYMPIAD_DATA_FILE); + if (file.exists()) { - is.close(); + is = new FileInputStream(file); + olympiadProperties.load(is); } } catch (Exception e) { + LOGGER.log(Level.SEVERE, "Olympiad System: Error loading olympiad properties: ", e); + return; } + + _currentCycle = Integer.parseInt(olympiadProperties.getProperty("CurrentCycle", "1")); + _period = Integer.parseInt(olympiadProperties.getProperty("Period", "0")); + _olympiadEnd = Long.parseLong(olympiadProperties.getProperty("OlympiadEnd", "0")); + _validationEnd = Long.parseLong(olympiadProperties.getProperty("ValidationEnd", "0")); + _nextWeeklyChange = Long.parseLong(olympiadProperties.getProperty("NextWeeklyChange", "0")); } - _currentCycle = Integer.parseInt(olympiadProperties.getProperty("CurrentCycle", "1")); - _period = Integer.parseInt(olympiadProperties.getProperty("Period", "0")); - _olympiadEnd = Long.parseLong(olympiadProperties.getProperty("OlympiadEnd", "0")); - _validationEnd = Long.parseLong(olympiadProperties.getProperty("ValdationEnd", "0")); - _nextWeeklyChange = Long.parseLong(olympiadProperties.getProperty("NextWeeklyChange", "0")); - switch (_period) { case 0: @@ -265,7 +281,7 @@ public class Olympiad statData.set(COMP_LOST, rset.getInt(COMP_LOST)); statData.set(COMP_DRAWN, rset.getInt(COMP_DRAWN)); statData.set("to_save", false); - _nobles.put(charId, statData); + NOBLES.put(charId, statData); } rset.close(); @@ -293,7 +309,7 @@ public class Olympiad statData.set(COMP_LOST, rset.getInt(COMP_LOST)); statData.set(COMP_DRAWN, rset.getInt(COMP_DRAWN)); statData.set("to_save", false); - _oldnobles.put(charId, statData); + NOBLES_RANK.put(charId, statData); } rset.close(); @@ -335,7 +351,7 @@ public class Olympiad } } - LOGGER.info("Olympiad System: Loaded " + _nobles.size() + " Nobles"); + LOGGER.info("Olympiad System: Loaded " + NOBLES.size() + " Nobles"); } protected final void init() @@ -410,7 +426,7 @@ public class Olympiad _period = 1; sortHerosToBe(); giveHeroBonus(); - Hero.getInstance().computeNewHeroes(_heroesToBe); + Hero.getInstance().computeNewHeroes(HEROS_TO_BE); saveOlympiadStatus(); updateMonthlyData(); @@ -529,7 +545,7 @@ public class Olympiad return false; } - if (!_nobles.containsKey(noble.getObjectId())) + if (!NOBLES.containsKey(noble.getObjectId())) { final StatSet statDat = new StatSet(); statDat.set(CLASS_ID, noble.getClassId().getId()); @@ -540,7 +556,7 @@ public class Olympiad statDat.set(COMP_LOST, 0); statDat.set(COMP_DRAWN, 0); statDat.set("to_save", true); - _nobles.put(noble.getObjectId(), statDat); + NOBLES.put(noble.getObjectId(), statDat); } if (classBased && (getNoblePoints(noble.getObjectId()) < 3)) @@ -586,24 +602,24 @@ public class Olympiad protected static int getNobleCount() { - return _nobles.size(); + return NOBLES.size(); } protected static StatSet getNobleStats(int playerId) { - return _nobles.get(playerId); + return NOBLES.get(playerId); } protected static synchronized void updateNobleStats(int playerId, StatSet stats) { - _nobles.remove(playerId); - _nobles.put(playerId, stats); + NOBLES.remove(playerId); + NOBLES.put(playerId, stats); } protected static synchronized void updateOldNobleStats(int playerId, StatSet stats) { - _oldnobles.remove(playerId); - _oldnobles.put(playerId, stats); + NOBLES_RANK.remove(playerId); + NOBLES_RANK.put(playerId, stats); getInstance().saveOldNobleData(playerId); } @@ -987,7 +1003,7 @@ public class Olympiad return; } - for (Entry entry : _nobles.entrySet()) + for (Entry entry : NOBLES.entrySet()) { final Integer nobleId = entry.getKey(); final StatSet nobleInfo = entry.getValue(); @@ -1102,7 +1118,7 @@ public class Olympiad protected synchronized void saveNobleData() { Connection con = null; - if ((_nobles == null) || _nobles.isEmpty()) + if ((NOBLES == null) || NOBLES.isEmpty()) { return; } @@ -1111,7 +1127,7 @@ public class Olympiad { con = DatabaseFactory.getConnection(); PreparedStatement statement; - for (Entry entry : _nobles.entrySet()) + for (Entry entry : NOBLES.entrySet()) { final Integer nobleId = entry.getKey(); final StatSet nobleInfo = entry.getValue(); @@ -1175,7 +1191,7 @@ public class Olympiad PreparedStatement statement = null; try (Connection con = DatabaseFactory.getConnection()) { - final StatSet nobleInfo = _oldnobles.get(nobleId); + final StatSet nobleInfo = NOBLES_RANK.get(nobleId); if (nobleInfo == null) { return; @@ -1203,51 +1219,28 @@ public class Olympiad } } - /** - * Save olympiad.cfg file with current olympiad status and update noblesse table in database - */ public void saveOlympiadStatus() { saveNobleData(); - final Properties olympiadProperties = new Properties(); - FileOutputStream fos = null; - try + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement statement = con.prepareStatement(OLYMPIAD_SAVE_DATA)) { - fos = new FileOutputStream(new File("./" + OLYMPIAD_DATA_FILE)); - olympiadProperties.setProperty("CurrentCycle", String.valueOf(_currentCycle)); - olympiadProperties.setProperty("Period", String.valueOf(_period)); - olympiadProperties.setProperty("OlympiadEnd", String.valueOf(_olympiadEnd)); - olympiadProperties.setProperty("ValdationEnd", String.valueOf(_validationEnd)); - olympiadProperties.setProperty("NextWeeklyChange", String.valueOf(_nextWeeklyChange)); - - final GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance(); - gc.clear(); - gc.setTimeInMillis(_nextWeeklyChange); - - olympiadProperties.setProperty("NextWeeklyChange_DateFormat", DateFormat.getDateTimeInstance().format(gc.getTime())); - gc.clear(); - gc.setTimeInMillis(_olympiadEnd); - - olympiadProperties.setProperty("OlympiadEnd_DateFormat", DateFormat.getDateTimeInstance().format(gc.getTime())); - olympiadProperties.store(fos, "Olympiad Properties"); + statement.setInt(1, _currentCycle); + statement.setInt(2, _period); + statement.setLong(3, _olympiadEnd); + statement.setLong(4, _validationEnd); + statement.setLong(5, _nextWeeklyChange); + statement.setInt(6, _currentCycle); + statement.setInt(7, _period); + statement.setLong(8, _olympiadEnd); + statement.setLong(9, _validationEnd); + statement.setLong(10, _nextWeeklyChange); + statement.execute(); } - catch (Exception e) + catch (SQLException e) { - LOGGER.warning("Olympiad System: Unable to save olympiad properties to file: " + e); - } - finally - { - try - { - if (fos != null) - { - fos.close(); - } - } - catch (Exception e) - { - } + LOGGER.log(Level.SEVERE, "Olympiad System: Failed to save olympiad data to database: ", e); } } @@ -1276,9 +1269,9 @@ public class Olympiad return; } - if (_nobles != null) + if (NOBLES != null) { - for (Entry entry : _nobles.entrySet()) + for (Entry entry : NOBLES.entrySet()) { final Integer nobleId = entry.getKey(); final StatSet nobleInfo = entry.getValue(); @@ -1296,7 +1289,7 @@ public class Olympiad } } - _heroesToBe = new ArrayList<>(); + HEROS_TO_BE = new ArrayList<>(); PreparedStatement statement = null; ResultSet rset = null; try (Connection con = DatabaseFactory.getConnection()) @@ -1315,7 +1308,7 @@ public class Olympiad hero.set(CHAR_ID, rset.getInt(CHAR_ID)); hero.set(CHAR_NAME, rset.getString(CHAR_NAME)); logResult(hero.getString(CHAR_NAME), "", hero.getDouble(CHAR_ID), hero.getDouble(CLASS_ID), 0, 0, "awarded hero", 0, ""); - _heroesToBe.add(hero); + HEROS_TO_BE.add(hero); } statement.close(); } @@ -1362,15 +1355,15 @@ public class Olympiad protected void giveHeroBonus() { - if (_heroesToBe.isEmpty()) + if (HEROS_TO_BE.isEmpty()) { return; } - for (StatSet hero : _heroesToBe) + for (StatSet hero : HEROS_TO_BE) { final int charId = hero.getInt(CHAR_ID); - final StatSet noble = _nobles.get(charId); + final StatSet noble = NOBLES.get(charId); int currentPoints = noble.getInt(POINTS); currentPoints += Config.ALT_OLY_HERO_POINTS; noble.set(POINTS, currentPoints); @@ -1382,12 +1375,12 @@ public class Olympiad { if (_period == 1) { - if (_nobles.isEmpty()) + if (NOBLES.isEmpty()) { return 0; } - final StatSet noble = _nobles.get(objId); + final StatSet noble = NOBLES.get(objId); if (noble == null) { return 0; @@ -1404,12 +1397,12 @@ public class Olympiad return points; } - if (_oldnobles.isEmpty()) + if (NOBLES_RANK.isEmpty()) { return 0; } - final StatSet noble = _oldnobles.get(objId); + final StatSet noble = NOBLES_RANK.get(objId); if (noble == null) { return 0; @@ -1445,12 +1438,12 @@ public class Olympiad public int getNoblePoints(int objId) { - if (_nobles.isEmpty()) + if (NOBLES.isEmpty()) { return 0; } - final StatSet noble = _nobles.get(objId); + final StatSet noble = NOBLES.get(objId); if (noble == null) { return 0; @@ -1461,12 +1454,12 @@ public class Olympiad public int getCompetitionDone(int objId) { - if (_nobles.isEmpty()) + if (NOBLES.isEmpty()) { return 0; } - final StatSet noble = _nobles.get(objId); + final StatSet noble = NOBLES.get(objId); if (noble == null) { return 0; @@ -1477,12 +1470,12 @@ public class Olympiad public int getCompetitionWon(int objId) { - if (_nobles.isEmpty()) + if (NOBLES.isEmpty()) { return 0; } - final StatSet noble = _nobles.get(objId); + final StatSet noble = NOBLES.get(objId); if (noble == null) { return 0; @@ -1493,12 +1486,12 @@ public class Olympiad public int getCompetitionLost(int objId) { - if (_nobles.isEmpty()) + if (NOBLES.isEmpty()) { return 0; } - final StatSet noble = _nobles.get(objId); + final StatSet noble = NOBLES.get(objId); if (noble == null) { return 0; @@ -1521,9 +1514,9 @@ public class Olympiad LOGGER.warning("Olympiad System: Couldnt delete nobles from DB"); } - _oldnobles.clear(); - _oldnobles = _nobles; - _nobles = new ConcurrentHashMap<>(); + NOBLES_RANK.clear(); + NOBLES_RANK = NOBLES; + NOBLES = new ConcurrentHashMap<>(); } /** diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/olympiad/OlympiadGame.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/olympiad/OlympiadGame.java index e8170b5f4e..72d07474a9 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/olympiad/OlympiadGame.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/olympiad/OlympiadGame.java @@ -981,7 +981,7 @@ class OlympiadGame protected void announceGame() { - for (Spawn manager : Olympiad.olymanagers) + for (Spawn manager : Olympiad.OLY_MANAGERS) { if ((manager != null) && (manager.getLastSpawn() != null)) { diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index 8ad9ebbee8..f61e8a3319 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -62,7 +62,7 @@ public class Olympiad extends ListenersContainer protected static final Logger LOGGER_OLYMPIAD = Logger.getLogger("olympiad"); private static final Map NOBLES = new ConcurrentHashMap<>(); - protected static List HEROS_TO_BE; + private static List HEROS_TO_BE; private static Map NOBLES_RANK = new HashMap<>(); private static List _nonClassBasedRegisters; private static Map> _classBasedRegisters; @@ -184,6 +184,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -206,13 +207,13 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.log(Level.INFO, "Olympiad System: failed to load data from database, trying to load from file."); + // LOGGER.log(Level.INFO, "Olympiad System: failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); InputStream is = null; try { - is = new FileInputStream(new File("./" + Config.OLYMPIAD_CONFIG_FILE)); + is = new FileInputStream(new File(Config.OLYMPIAD_CONFIG_FILE)); olympiadProperties.load(is); } catch (Exception e) diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index f6e46dc7f0..0ebbca5501 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -201,7 +201,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index ec534b03d1..2d349d42ac 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -145,6 +145,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -167,7 +168,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index ec534b03d1..2d349d42ac 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -145,6 +145,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -167,7 +168,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index ec534b03d1..2d349d42ac 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -145,6 +145,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -167,7 +168,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index ec534b03d1..2d349d42ac 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -145,6 +145,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -167,7 +168,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index ec534b03d1..2d349d42ac 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -145,6 +145,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -167,7 +168,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index cba081a702..989b70ad96 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -146,6 +146,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -168,7 +169,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE)) diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java index ec534b03d1..2d349d42ac 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/olympiad/Olympiad.java @@ -145,6 +145,7 @@ public class Olympiad extends ListenersContainer private void load() { NOBLES.clear(); + boolean loaded = false; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA); @@ -167,7 +168,7 @@ public class Olympiad extends ListenersContainer if (!loaded) { - LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); + // LOGGER.info("Olympiad System: Failed to load data from database, trying to load from file."); final Properties olympiadProperties = new Properties(); try (InputStream is = new FileInputStream(Config.OLYMPIAD_CONFIG_FILE))