have played many years ago excited to play again on launch. i have seen wonderful things about the server it looks how it should be theres hard work and it shows. it lives up to the glory days of l2 elixir.
I wish the best of luck for the project i will be playing actively!
Question
kris131
Edit : I add one new vote Autovotereward and i have some errors. L2jserver high five last version
errors : http://prnt.sc/afihhb
Code :
package com.l2jserver.gameserver.instancemanager; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; import com.l2jserver.Config; import com.l2jserver.L2DatabaseFactory; import com.l2jserver.gameserver.ThreadPoolManager; import com.l2jserver.gameserver.model.L2World; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.items.instance.L2ItemInstance; import com.l2jserver.gameserver.network.clientpackets.Say2; import com.l2jserver.gameserver.network.serverpackets.CreatureSay; import com.l2jserver.gameserver.util.Broadcast; public class AutoVoteRewardHandler { private static Logger _log = Logger.getLogger(AutoVoteRewardHandler.class.getName()); private static final int initialCheck = 1 * 1000; private static final int delayForCheck = Config.DELAY_FOR_NEXT_REWARD * 1000; private static int lastVoteCount = 0; @SuppressWarnings("synthetic-access") private AutoVoteRewardHandler() { _log.info("Vote Reward System: Vote reward system initiated."); if (Config.VOTE_REWARD_ENABLE) { load(); } ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck); } private class AutoReward implements Runnable { @SuppressWarnings( { "null", "synthetic-access" }) @Override public void run() { int votes = getVotes(Config.VOTE_HTML_PATCH); System.out.println("Server Votes: " + votes); if ((votes != 0) && (getLastVoteCount() != 0) && (votes >= (getLastVoteCount() + Config.VOTES_FOR_REWARD))) { Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("SELECT c.charId, c.char_name FROM characters AS c LEFT JOIN loginserver.accounts AS a ON c.account_name = a.login WHERE c.online > 0 GROUP BY a.lastIP ORDER BY c.level DESC"); ResultSet rset = statement.executeQuery(); L2PcInstance player = null; L2ItemInstance item = null; L2ItemInstance item2 = null; while (rset.next()) { player = L2World.getInstance().getPlayer(rset.getInt("charId")); if ((player != null) && !player.getClient().isDetached()) { item = player.getInventory().getItemByItemId(Config.VOTE_REWARD1_ID); if ((item == null) || (item.getCount() < Config.MAX_REWARD_COUNT_FOR_STACK_ITEM1)) { player.addItem("reward", Config.VOTE_REWARD1_ID, Config.VOTE_REWARD1_COUNT, player, true); } item2 = player.getInventory().getItemByItemId(Config.VOTE_REWARD1_ID); if ((item2 == null) || (item2.getCount() < Config.MAX_REWARD_COUNT_FOR_STACK_ITEM1)) { player.addItem("reward", Config.VOTE_REWARD2_ID, Config.VOTE_REWARD2_COUNT, player, true); } } } setLastVoteCount(getLastVoteCount() + Config.VOTES_FOR_REWARD); statement.close(); _log.info("Vote Reward System: Reward for votes now!"); Broadcast.toAllOnlinePlayers(new CreatureSay(1, Say2.CRITICAL_ANNOUNCE, "", "Vote Manager: Reward for players! Thanks for Vote.")); } catch (SQLException e) { e.printStackTrace(); } finally { try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } setLastVoteCount(getLastVoteCount() + Config.VOTES_FOR_REWARD); } Broadcast.toAllOnlinePlayers(new CreatureSay(1, Say2.CRITICAL_ANNOUNCE, "", "Vote Manager: Server votes: " + votes + " | Next Reward on " + (getLastVoteCount() + Config.VOTES_FOR_REWARD) + " Votes.")); if (getLastVoteCount() == 0) { setLastVoteCount(votes); } } } @SuppressWarnings("null") private int getVotes(String urlString) { URL url = null; InputStreamReader isr = null; BufferedReader in = null; try { url = new URL(urlString); URLConnection connection = url.openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2"); connection.connect(); InputStream response = connection.getInputStream(); isr = new InputStreamReader(response); in = new BufferedReader(isr); String inputLine; while ((inputLine = in.readLine()) != null) { if (Config.VOTE_REWARD_TOPZONE_ENABLE) { // for TopZone if (inputLine.contains("<div class=\"rank\"><div class=\"votes2\">Votes:<br>")) { return Integer.valueOf(inputLine.split(">")[5].replace("</font", "")); } } if (Config.VOTE_REWARD_HOPZONE_ENABLE) { // for HopZone if (inputLine.contains("no steal make love") || inputLine.contains("no votes here") || inputLine.contains("bang, you don't have votes") || inputLine.contains("la vita e bella")) { @SuppressWarnings("unused") int Sub = 12; switch (inputLine.length()) { case 116: Sub = 13; break; case 117: Sub = 14; break; case 118: Sub = 15; break; case 119: Sub = 16; break; } return Integer.valueOf(inputLine.split(">")[2].replace("</span", "")); } } } } catch (IOException e) { _log.warning("Vote Reward System: " + e); } finally { try { in.close(); } catch (IOException e) { } try { isr.close(); } catch (IOException e) { } } return 0; } private void setLastVoteCount(int voteCount) { lastVoteCount = voteCount; } private int getLastVoteCount() { return lastVoteCount; } @SuppressWarnings("null") private void load() { int votes = 0; Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("SELECT vote FROM votes LIMIT 1"); ResultSet rset = statement.executeQuery(); while (rset.next()) { votes = rset.getInt("vote"); } rset.close(); statement.close(); } catch (Exception e) { _log.log(Level.WARNING, "data error on vote: ", e); } finally { try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } setLastVoteCount(votes); } @SuppressWarnings("null") public void save() { Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE votes SET vote = ? WHERE id=1"); statement.setInt(1, getLastVoteCount()); statement.execute(); statement.close(); } catch (Exception e) { _log.log(Level.WARNING, "data error on vote: ", e); } finally { try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static AutoVoteRewardHandler getInstance() { return SingletonHolder._instance; } @SuppressWarnings("synthetic-access") private static class SingletonHolder { protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler(); } }Edited by kris13116 answers to this question
Recommended Posts