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...
  • 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)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • Αν σε ενδιαφέρει ο κόσμος των κρυπτονομισμάτων και θέλεις να συζητάς, να μαθαίνεις, αλλά και να μοιράζεσαι γνώσεις με άλλους Έλληνες χρήστες, τότε σε προσκαλούμε στο νέο μας Telegram forum αποκλειστικά για την ελληνική crypto κοινότητα!   Συζητάμε για Bitcoin, altcoins, DeFi, trading, νέες τάσεις, NFTs, τεχνική ανάλυση και ό,τι άλλο αφορά τον κόσμο των crypto. Είτε είσαι αρχάριος είτε προχωρημένος, θα βρεις κάτι που σε ενδιαφέρει και μια παρέα που μιλάει τη γλώσσα σου – κυριολεκτικά!     Σύνδεσμος πρόσβασης:    https://t.me/investfuture_crypto_gr    ή   Scan QR Code:       Έλα να γίνουμε η πιο ενεργή ελληνική κοινότητα στο χώρο των crypto!
    • Αν σε ενδιαφέρει ο κόσμος των κρυπτονομισμάτων και θέλεις να συζητάς, να μαθαίνεις, αλλά και να μοιράζεσαι γνώσεις με άλλους Έλληνες χρήστες, τότε σε προσκαλούμε στο νέο μας Telegram forum αποκλειστικά για την ελληνική crypto κοινότητα!   Συζητάμε για Bitcoin, altcoins, DeFi, trading, νέες τάσεις, NFTs, τεχνική ανάλυση και ό,τι άλλο αφορά τον κόσμο των crypto. Είτε είσαι αρχάριος είτε προχωρημένος, θα βρεις κάτι που σε ενδιαφέρει και μια παρέα που μιλάει τη γλώσσα σου – κυριολεκτικά!     Σύνδεσμος πρόσβασης:    https://t.me/investfuture_crypto_gr    ή   Scan QR Code:       Έλα να γίνουμε η πιο ενεργή ελληνική κοινότητα στο χώρο των crypto!
    • ➡ Discount for your purchase: APRIL (10% discount) ➡ Our Online Shop: https://socnet.store  ➡ Our SMM-Boosting Panel: https://socnet.pro  ➡ Telegram Shop Bot: https://socnet.shop  ➡ Telegram Support: https://t.me/solomon_bog  ➡ Telegram Channel: https://t.me/accsforyou_shop  ➡ Discord Support: @AllSocialNetworksShop  ➡ Discord Server: https://discord.gg/y9AStFFsrh  ➡ WhatsApp Support: https://wa.me/79051904467 ➡ WhatsApp Channel: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n  ➡ Email Support: solomonbog@socnet.store 
    • ➡ Discount for your purchase: APRIL (10% discount) ➡ Our Online Shop: https://socnet.store  ➡ Our SMM-Boosting Panel: https://socnet.pro  ➡ Telegram Shop Bot: https://socnet.shop  ➡ Telegram Support: https://t.me/solomon_bog  ➡ Telegram Channel: https://t.me/accsforyou_shop  ➡ Discord Support: @AllSocialNetworksShop  ➡ Discord Server: https://discord.gg/y9AStFFsrh  ➡ WhatsApp Support: https://wa.me/79051904467 ➡ WhatsApp Channel: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n  ➡ Email Support: solomonbog@socnet.store 
    • Good luck with your g/o!
  • Topics

×
×
  • Create New...