All pastes #46517 Raw Edit

Someone

public text v1 · immutable
#46517 ·published 2006-03-21 18:30 UTC
rendered paste body
Index: C:/L2J/L2_GameServer_c4/java/net/sf/l2j/gameserver/Shutdown.java
===================================================================
--- C:/L2J/L2_GameServer_c4/java/net/sf/l2j/gameserver/Shutdown.java (revisione 1616)
+++ C:/L2J/L2_GameServer_c4/java/net/sf/l2j/gameserver/Shutdown.java (copia locale)
@@ -347,19 +347,16 @@
disconnectAllCharacters();

// Save Seven Signs data before closing. 
- synchronized (this)
- {
- try {
- SevenSigns.getInstance().saveSevenSignsData(null, true);
- 
- // Seven Signs data is now saved along with Festival data.
- if (!SevenSigns.getInstance().isSealValidationPeriod())
- SevenSignsFestival.getInstance().saveFestivalData(false);
- }
- catch (Exception e) {
- System.err.println("Failed to save Seven Signs configuration: " + e);
- }
+ try {
+ SevenSigns.getInstance().saveSevenSignsData(null, true);
+ 
+ // Seven Signs data is now saved along with Festival data.
+ if (!SevenSigns.getInstance().isSealValidationPeriod())
+ SevenSignsFestival.getInstance().saveFestivalData(false);
}
+ catch (Exception e) {
+ System.err.println("Failed to save Seven Signs configuration: " + e);
+ }

System.err.println("Data saved. All players disconnected, shutting down.");
try {
Index: C:/L2J/L2_GameServer_c4/java/net/sf/l2j/gameserver/SevenSignsFestival.java
===================================================================
--- C:/L2J/L2_GameServer_c4/java/net/sf/l2j/gameserver/SevenSignsFestival.java (revisione 1616)
+++ C:/L2J/L2_GameServer_c4/java/net/sf/l2j/gameserver/SevenSignsFestival.java (copia locale)
@@ -3,6 +3,7 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
+import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
@@ -1019,7 +1020,27 @@
statement.close(); 
con.close();

- Properties festivalData = new Properties();
+ String query = "SELECT festival_cycle, ";
+ for(int i = 0; i < FESTIVAL_COUNT-1; i++)
+ query += "accumulated_bonus" + String.valueOf(i) + ", ";
+ query += "accumulated_bonus" + String.valueOf(FESTIVAL_COUNT -1) + " ";
+ query += "FROM seven_signs_status WHERE id=1";
+ Connection con2 = L2DatabaseFactory.getInstance().getConnection();
+ PreparedStatement statement2 = con2.prepareStatement(query);
+ ResultSet rset2 = statement2.executeQuery();
+ 
+ while(rset2.next())
+ {
+ _festivalCycle = rset2.getInt("festival_cycle");
+ for(int i = 0; i < FESTIVAL_COUNT; i++)
+ _accumulatedBonuses.add(i, rset2.getInt("accumulated_bonus" + String.valueOf(i)));
+ 
+ }
+ 
+ if (Config.DEBUG)
+ _log.info("SevenSignsFestival: Loaded data from SQL.");
+ 
+ /*Properties festivalData = new Properties();
InputStream is = new FileInputStream(new File("./" + FESTIVAL_DATA_FILE)); 
festivalData.load(is);
is.close();
@@ -1030,7 +1051,7 @@
_accumulatedBonuses.add(i, Integer.parseInt(festivalData.getProperty("AccumulatedBonus_" + i, "0")));

if (Config.DEBUG)
- _log.info("SevenSignsFestival: Loaded data from signs.properties.");
+ _log.info("SevenSignsFestival: Loaded data from signs.properties.");*/
}

/**
@@ -2205,4 +2226,4 @@
_npcId = -1;
}
}
-}
\ No newline at end of file
+}
Index: C:/L2J/L2_GameServer_c4/java/net/sf/l2j/gameserver/SevenSigns.java
===================================================================
--- C:/L2J/L2_GameServer_c4/java/net/sf/l2j/gameserver/SevenSigns.java (revisione 1616)
+++ C:/L2J/L2_GameServer_c4/java/net/sf/l2j/gameserver/SevenSigns.java (copia locale)
@@ -4,6 +4,7 @@
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
+import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Calendar;
@@ -340,7 +341,9 @@

// Schedule a time for the next period change.
SevenSignsPeriodChange sspc = new SevenSignsPeriodChange();
+ SevenSignsUpdateSystem ssus = new SevenSignsUpdateSystem();
ClientScheduler.getInstance().scheduleMed(sspc, milliToChange);
+ ClientScheduler.getInstance().scheduleMedAtFixedRate(ssus, 1000*60*60, 1000*60*60);

// Thanks to http://rainbow.arch.scriptmania.com/scri..._countdown.html for help with this.
double numSecs = (milliToChange / 1000) % 60;
@@ -824,8 +827,46 @@
rset.close();
statement.close(); 
con.close();
- 
- Properties SevenSignsProp = new Properties();
+ 
+ Connection con2 = L2DatabaseFactory.getInstance().getConnection();
+ PreparedStatement statement2 = con2.prepareStatement("SELECT * FROM seven_signs_status WHERE id=1");
+ ResultSet rset2 = statement2.executeQuery();
+ 
+ while(rset2.next())
+ {
+ _currentCycle = rset2.getInt("current_cycle");
+ _activePeriod = rset2.getInt("active_period");
+ _previousWinner = rset2.getInt("previous_winner"); 
+ 
+ _dawnStoneScore = rset2.getInt("dawn_stone_score");
+ _dawnFestivalScore = rset2.getInt("dawn_festival_score");
+ _duskStoneScore = rset2.getInt("dusk_stone_score");
+ _duskFestivalScore = rset2.getInt("dusk_festival_score");
+ 
+ _signsSealOwners.put(SEAL_AVARICE, rset2.getInt("avarice_owner"));
+ _signsSealOwners.put(SEAL_GNOSIS, rset2.getInt("gnosis_owner"));
+ _signsSealOwners.put(SEAL_STRIFE, rset2.getInt("strife_owner"));
+ 
+ _signsDawnSealTotals.put(SEAL_AVARICE, rset2.getInt("avarice_dawn_score"));
+ _signsDawnSealTotals.put(SEAL_GNOSIS, rset2.getInt("gnosis_dawn_score"));
+ _signsDawnSealTotals.put(SEAL_STRIFE, rset2.getInt("strife_dawn_score"));
+ _signsDuskSealTotals.put(SEAL_AVARICE, rset2.getInt("avarice_dusk_score"));
+ _signsDuskSealTotals.put(SEAL_GNOSIS, rset2.getInt("gnosis_dusk_score"));
+ _signsDuskSealTotals.put(SEAL_STRIFE, rset2.getInt("strife_dusk_score"));
+ }
+ 
+ rset2.close();
+ statement2.close();
+ con2.close();
+ 
+ Connection con3 = L2DatabaseFactory.getInstance().getConnection();
+ PreparedStatement statement3 = con3.prepareStatement("UPDATE seven_signs_status SET date=? WHERE id=1");
+ statement3.setInt(1, Calendar.getInstance().get(Calendar.DAY_OF_WEEK));
+ statement3.execute();
+ statement3.close();
+ con3.close();
+ 
+ /*Properties SevenSignsProp = new Properties();
InputStream is = new FileInputStream(new File("./" + SEVEN_SIGNS_DATA_FILE)); 
SevenSignsProp.load(is);
is.close();
@@ -848,7 +889,7 @@
_signsDawnSealTotals.put(SEAL_STRIFE, Integer.parseInt(SevenSignsProp.getProperty("StrifeDawnScore", "0")));
_signsDuskSealTotals.put(SEAL_AVARICE, Integer.parseInt(SevenSignsProp.getProperty("AvariceDuskScore", "0")));
_signsDuskSealTotals.put(SEAL_GNOSIS, Integer.parseInt(SevenSignsProp.getProperty("GnosisDuskScore", "0")));
- _signsDuskSealTotals.put(SEAL_STRIFE, Integer.parseInt(SevenSignsProp.getProperty("StrifeDuskScore", "0")));
+ _signsDuskSealTotals.put(SEAL_STRIFE, Integer.parseInt(SevenSignsProp.getProperty("StrifeDuskScore", "0")));*/

// Festival data is loaded now after the Seven Signs engine data.
}
@@ -896,8 +937,54 @@
}

con.close();
+ 
+ Connection con2 = L2DatabaseFactory.getInstance().getConnection();
+ 
+ if(updateSettings) {
+ 
+ String query = "UPDATE seven_signs_status SET current_cycle=?, active_period=?, previous_winner=?, " +
+ "dawn_stone_score=?, dawn_festival_score=?, dusk_stone_score=?, dusk_festival_score=?, " +
+ "avarice_owner=?, gnosis_owner=?, strife_owner=?, avarice_dawn_score=?, gnosis_dawn_score=?, " +
+ "strife_dawn_score=?, avarice_dusk_score=?, gnosis_dusk_score=?, strife_dusk_score=?, " +
+ "festival_cycle=?, ";
+ for(int i = 0; i < (SevenSignsFestival.FESTIVAL_COUNT); i++)
+ query += "accumulated_bonus" + String.valueOf(i) + "=?, ";
+ query += "date=? WHERE id=1";
+ 
+ PreparedStatement statement2 = con2.prepareStatement(query);
+ 
+ statement2.setInt(1, _currentCycle);
+ statement2.setInt(2, _activePeriod);
+ statement2.setInt(3, _previousWinner);
+ statement2.setInt(4, _dawnStoneScore);
+ statement2.setInt(5, _dawnFestivalScore);
+ statement2.setInt(6, _duskStoneScore);
+ statement2.setInt(7, _duskFestivalScore);
+ statement2.setInt(8, _signsSealOwners.get(SEAL_AVARICE));
+ statement2.setInt(9, _signsSealOwners.get(SEAL_GNOSIS));
+ statement2.setInt(10,_signsSealOwners.get(SEAL_STRIFE));
+ statement2.setInt(11,_signsDawnSealTotals.get(SEAL_AVARICE));
+ statement2.setInt(12,_signsDawnSealTotals.get(SEAL_GNOSIS));
+ statement2.setInt(13,_signsDawnSealTotals.get(SEAL_STRIFE));
+ statement2.setInt(14,_signsDuskSealTotals.get(SEAL_AVARICE));
+ statement2.setInt(15,_signsDuskSealTotals.get(SEAL_GNOSIS));
+ statement2.setInt(16,_signsDuskSealTotals.get(SEAL_STRIFE));
+ 
+ statement2.setInt(17,SevenSignsFestival.getInstance().getCurrentFestivalCycle());
+ for(int i = 0; i < SevenSignsFestival.FESTIVAL_COUNT; i++)
+ statement2.setInt(18+i,SevenSignsFestival.getInstance().getAccumulatedBonus(i));
+ statement2.setInt(18 + SevenSignsFestival.FESTIVAL_COUNT,Calendar.getInstance().get(Calendar.DAY_OF_WEEK));
+ 
+ statement2.execute();
+ statement2.close();
+ 
+ if (Config.DEBUG)
+ _log.info("SevenSigns: Updated data in SQL database.");
+ 
+ }
+ con2.close();

- if (updateSettings) {
+ /*if (updateSettings) {
Properties SevenSignsProp = new Properties();
FileOutputStream fos = new FileOutputStream(new File(Config.DATAPACK_ROOT, SEVEN_SIGNS_DATA_FILE));

@@ -932,7 +1019,7 @@

if (Config.DEBUG)
_log.info("SevenSigns: Updated data in signs.properties file.");
- }
+ }*/
}

/**
@@ -1463,4 +1550,14 @@
ClientScheduler.getInstance().scheduleMed(sspc, getMilliToPeriodChange());
}
}
-}
\ No newline at end of file
+ 
+ private class SevenSignsUpdateSystem implements Runnable {
+ public void run() {
+ try {
+ saveSevenSignsData(null, true);
+ } catch (Exception e) {
+ _log.severe("SevenSigns: Failed to save configuration: " + e);
+ }
+ }
+ }
+}