Jump to content

Recommended Posts

Posted

hello all,With this contrib olympiad info saved into database table olympiad_data. All fully backward compartible - if table is empty - old configuration file loaded (but saved into db).

 

so lets start

 

DP part:

   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 UNSIGNED NOT NULL default 0,

     `validation_end` BIGINT UNSIGNED NOT NULL default 0,

     `next_weekly_change` BIGINT UNSIGNED NOT NULL default 0,

     PRIMARY KEY (`id`)

   );

   

 

now do this code:

 

Index: java/net/sf/l2j/gameserver/model/olympiad/Olympiad.java

===================================================================

--- java/net/sf/l2j/gameserver/model/olympiad/Olympiad.java (revision 3199)

+++ java/net/sf/l2j/gameserver/model/olympiad/Olympiad.java (working copy)

@@ -21,7 +21,6 @@

 

import java.io.File;

import java.io.FileInputStream;

-import java.io.FileOutputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStream;

@@ -66,6 +65,12 @@

 

private static final String OLYMPIAD_DATA_FILE = "config/olympiad.properties";

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 (?,?,?,?,?,?) "

+ + "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 "

@@ -162,35 +167,79 @@

{

_nobles = new FastMap<Integer, StatsSet>();

 

- Properties OlympiadProperties = new Properties();

- InputStream is = null;

+ Connection con = null;

+

+ boolean loaded = false;

try

{

- is = new FileInputStream(new File("./" + OLYMPIAD_DATA_FILE));

- OlympiadProperties.load(is);

+ con = L2DatabaseFactory.getInstance().getConnection();

+ PreparedStatement statement = con.prepareStatement(OLYMPIAD_LOAD_DATA);

+ ResultSet rset = statement.executeQuery();

+

+ 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;

+ }

+

+ rset.close();

+ statement.close();

}

catch (Exception e)

{

- _log.log(Level.SEVERE, "Olympiad System: Error loading olympiad properties: ", e);

- return;

+ _log.log(Level.WARNING, "Olympiad System: Error loading olympiad data from database: ", e);

}

finally

{

try

{

- is.close();

+ con.close();

}

catch (Exception e)

{

+ e.printStackTrace();

}

}

+

+ if (!loaded)

+ {

+ _log.log(Level.INFO, "Olympiad System: failed to load data from database, trying to load from file.");

+

+ Properties OlympiadProperties = new Properties();

+ InputStream is = null;

+ try

+ {

+ is = new FileInputStream(new File("./" + OLYMPIAD_DATA_FILE));

+ OlympiadProperties.load(is);

+ }

+ catch (Exception e)

+ {

+ _log.log(Level.SEVERE, "Olympiad System: Error loading olympiad properties: ", e);

+ return;

+ }

+ finally

+ {

+ try

+ {

+ is.close();

+ }

+ catch (Exception e)

+ {

+ e.printStackTrace();

+ }

+ }

+

+ _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("ValidationEnd", "0"));

- _nextWeeklyChange = Long.parseLong(OlympiadProperties.getProperty("NextWeeklyChange", "0"));

-

switch (_period)

{

case 0:

@@ -218,7 +267,6 @@

return;

}

 

- Connection con = null;

try

{

con = L2DatabaseFactory.getInstance().getConnection();

@@ -256,6 +304,7 @@

}

catch (Exception e)

{

+ e.printStackTrace();

}

}

 

@@ -1072,7 +1121,43 @@

{

saveNobleData();

 

- Properties OlympiadProperties = new Properties();

+ Connection con = null;

+ try

+ {

+ con = L2DatabaseFactory.getInstance().getConnection();

+ PreparedStatement statement = con.prepareStatement(OLYMPIAD_SAVE_DATA);

+

+ statement.setInt(1, 0);

+ statement.setInt(2, _currentCycle);

+ statement.setInt(3, _period);

+ statement.setLong(4, _olympiadEnd);

+ statement.setLong(5, _validationEnd);

+ statement.setLong(6, _nextWeeklyChange);

+ statement.setInt(7, _currentCycle);

+ statement.setInt(8, _period);

+ statement.setLong(9, _olympiadEnd);

+ statement.setLong(10, _validationEnd);

+ statement.setLong(11, _nextWeeklyChange);

+

+ statement.execute();

+ statement.close();

+ }

+ catch (SQLException e)

+ {

+ _log.log(Level.SEVERE, "Olympiad System: Failed to save olympiad data to database: ", e);

+ }

+ finally

+ {

+ try

+ {

+ con.close();

+ }

+ catch (Exception e)

+ {

+ e.printStackTrace();

+ }

+ }

+/* Properties OlympiadProperties = new Properties();

FileOutputStream fos = null;

try

{

@@ -1099,7 +1184,7 @@

catch (Exception e)

{

}

- }

+ }*/

}

 

protected void updateMonthlyData()

 

and you are done

credits:_DS_ from l2jserver

enjoy

 

 

  • 4 weeks later...
Posted

Heres somthing that works!great share man,i was disappointed cause none of the mods here could work on my server,this one is from the few ones... :)

  • 2 weeks later...
  • 3 weeks later...
  • 2 weeks later...
  • 3 weeks later...
Posted

where to do the code ? :P

open your eyes

--- java/net/sf/l2j/gameserver/model/olympiad/Olympiad.java  (revision 3199)

+++ java/net/sf/l2j/gameserver/model/olympiad/Olympiad.java  (working copy)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock