Kolibri Posted April 23, 2014 Posted April 23, 2014 Hello all i have a problem with my vote system ... it works only for hopzone and topzone not ...2months ago worked fine then stopped working /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package com.l2jfrozen.gameserver.handler; import com.l2jfrozen.gameserver.powerpak.PowerPakConfig; import com.l2jfrozen.gameserver.model.L2World; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.model.entity.Announcements; import com.l2jfrozen.gameserver.thread.ThreadPoolManager; import java.util.logging.Logger; 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.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Set; public class AutoVoteRewardHandler { protected static final Logger _log = Logger.getLogger(AutoVoteRewardHandler.class.getName()); private int hopzoneVotesCount = 0; private int topzoneVotesCount = 0; protected List<String> already_rewarded; protected static boolean topzone = false; protected static boolean hopzone = false; private AutoVoteRewardHandler() { _log.info("Vote Reward System Initiated."); if (hopzone) { int hopzone_votes = getHopZoneVotes(); if (hopzone_votes == -1) { hopzone_votes = 0; } setHopZoneVoteCount(hopzone_votes); } if (topzone) { int topzone_votes = getTopZoneVotes(); if (topzone_votes == -1) { topzone_votes = 0; } setTopZoneVoteCount(topzone_votes); } ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), PowerPakConfig.VOTES_SYSYEM_INITIAL_DELAY, PowerPakConfig.VOTES_SYSYEM_STEP_DELAY); } protected class AutoReward implements Runnable { @Override public void run() { int minutes = (PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 1000) / 60; if (hopzone) { int hopzone_votes = getHopZoneVotes(); if (hopzone_votes != -1) { _log.info("[AutoVoteReward] Server HOPZONE Votes: " + hopzone_votes); Announcements.getInstance().gameAnnounceToAll("[AutoVoteReward] Actual HOPZONE Votes are " + hopzone_votes + "..."); if (hopzone_votes != 0 && hopzone_votes >= getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) { already_rewarded = new ArrayList<String>(); Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers(); Announcements.getInstance().gameAnnounceToAll("[AutoVoteReward] Great Work! Check your inventory for Reward!!"); //L2ItemInstance item; for (L2PcInstance player : pls) { if (player != null && !player.isOffline() && player.isOnline() == 1) { if (player._active_boxes <= 1 || (player._active_boxes > 1 && checkSingleBox(player))) { Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet(); for (Integer i : items) { //item = player.getInventory().getItemByItemId(i); //TODO: check on maxstack for item player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true); } } } } setHopZoneVoteCount(hopzone_votes); } Announcements.getInstance().gameAnnounceToAll("[AutoVoteReward] Next HOPZONE Reward in " + minutes + " minutes at " + (getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!!"); //site web Announcements.getInstance().gameAnnounceToAll("[SiteWeb] " + PowerPakConfig.SERVER_WEB_SITE); } } if (topzone && hopzone && PowerPakConfig.VOTES_SYSYEM_STEP_DELAY > 0) { try { Thread.sleep(PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 2); } catch (InterruptedException e) { _log.info(""); } } if (topzone) { int topzone_votes = getTopZoneVotes(); if (topzone_votes != -1) { _log.info("[AutoVoteReward] Server TOPZONE Votes: " + topzone_votes); Announcements.getInstance().gameAnnounceToAll("[AutoVoteReward] Actual TOPZONE Votes are " + topzone_votes + "..."); if (topzone_votes != 0 && topzone_votes >= getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) { already_rewarded = new ArrayList<String>(); Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers(); Announcements.getInstance().gameAnnounceToAll("[AutoVoteReward] Great Work! Check your inventory for Reward!!"); //L2ItemInstance item; for (L2PcInstance player : pls) { if (player != null && !player.isOffline() && player.isOnline() == 1) { if (player._active_boxes <= 1 || (player._active_boxes > 1 && checkSingleBox(player))) { Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet(); for (Integer i : items) { //item = player.getInventory().getItemByItemId(i); //TODO: check on maxstack for item player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true); } } } } setTopZoneVoteCount(topzone_votes); } Announcements.getInstance().gameAnnounceToAll("[AutoVoteReward] Next TOPZONE Reward in " + minutes + " minutes at " + (getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!!"); //site web Announcements.getInstance().gameAnnounceToAll("[SiteWeb] " + PowerPakConfig.SERVER_WEB_SITE); } } } } protected boolean checkSingleBox(L2PcInstance player) { if (player.getClient() != null && player.getClient().getConnection() != null && !player.getClient().getConnection().isClosed() && !player.isOffline()) { String playerip = player.getClient().getConnection().getInetAddress().getHostAddress(); if (already_rewarded.contains(playerip)) { return false; } already_rewarded.add(playerip); return true; } //if no connection (maybe offline shop) dnt reward return false; } protected int getHopZoneVotes() { int votes = -1; URL url = null; URLConnection con = null; InputStream is = null; InputStreamReader isr = null; BufferedReader in = null; try { url = new URL(PowerPakConfig.VOTES_SITE_HOPZONE_URL); con = url.openConnection(); con.addRequestProperty("User-Agent", "Mozilla/4.76"); is = con.getInputStream(); isr = new InputStreamReader(is); in = new BufferedReader(isr); String inputLine; while ((inputLine = in.readLine()) != null) { if (inputLine.contains("rank anonymous tooltip")) { votes = Integer.valueOf(inputLine.split(">")[2].replace("</span", "")); break; } } } catch (Exception e) { _log.info("[AutoVoteReward] Server HOPZONE is offline or something is wrong in link"); Announcements.getInstance().gameAnnounceToAll("[AutoVoteReward] HOPZONE is offline. We will check reward as it will be online again"); //e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e1) { _log.info("unhandled exception"); } } if (isr != null) { try { isr.close(); } catch (IOException e1) { _log.info("unhandled exception"); } } if (is != null) { try { is.close(); } catch (IOException e1) { _log.info("unhandled exception"); } } } return votes; } protected int getTopZoneVotes() { int votes = -1; URL url = null; URLConnection con = null; InputStream is = null; InputStreamReader isr = null; BufferedReader in = null; try { url = new URL(PowerPakConfig.VOTES_SITE_TOPZONE_URL); con = url.openConnection(); con.addRequestProperty("User-Agent", "Mozilla/4.76"); is = con.getInputStream(); isr = new InputStreamReader(is); in = new BufferedReader(isr); String inputLine; while ((inputLine = in.readLine()) != null) { if (inputLine.contains("Votes")) { String votesLine = inputLine; votes = Integer.valueOf(votesLine.split(">")[3].replace("</div", "")); break; } } } catch (Exception e) { _log.info("[AutoVoteReward] Server TOPZONE is offline or something is wrong in link"); Announcements.getInstance().gameAnnounceToAll("[AutoVoteReward] TOPZONE is offline. We will check reward as it will be online again"); //e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e1) { _log.info("unhandled exception"); } } if (isr != null) { try { isr.close(); } catch (IOException e1) { _log.info("unhandled exception"); } } if (is != null) { try { is.close(); } catch (IOException e1) { _log.info("unhandled exception"); } } } return votes; } protected void setHopZoneVoteCount(int voteCount) { hopzoneVotesCount = voteCount; } protected int getHopZoneVoteCount() { return hopzoneVotesCount; } protected void setTopZoneVoteCount(int voteCount) { topzoneVotesCount = voteCount; } protected int getTopZoneVoteCount() { return topzoneVotesCount; } public static AutoVoteRewardHandler getInstance() { if (PowerPakConfig.VOTES_SITE_HOPZONE_URL != null && !PowerPakConfig.VOTES_SITE_HOPZONE_URL.equals("")) { hopzone = true; } if (PowerPakConfig.VOTES_SITE_TOPZONE_URL != null && !PowerPakConfig.VOTES_SITE_TOPZONE_URL.equals("")) { topzone = true; } if (topzone || hopzone) { return SingletonHolder._instance; } return null; } @SuppressWarnings("synthetic-access") private static class SingletonHolder { protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler(); } }
0 iStigma Posted April 23, 2014 Posted April 23, 2014 Change this:Code: [select] Code: [select] String votesLine = in.readLine();To this: Code: [select] String votesLine = inputLine;Find this line: Code: [select] votes = Integer.valueOf(votesLine.split(">")[5].replace("</font", ""));and replace with this: Code: [select] votes = Integer.valueOf(votesLine.split(">")[3].replace("</div", ""));
0 iStigma Posted April 23, 2014 Posted April 23, 2014 Code: [select] con.addRequestProperty("User-Agent", "Mozilla/4.76");or something like this and replace with this: Code: [select] con.addRequestProperty("User-Agent", "L2TopZone");
0 Kolibri Posted April 25, 2014 Author Posted April 25, 2014 Change this: Code: [select] Code: [select] String votesLine = in.readLine(); To this: Code: [select] String votesLine = inputLine; Find this line: Code: [select] votes = Integer.valueOf(votesLine.split(">")[5].replace("</font", "")); and replace with this: Code: [select] votes = Integer.valueOf(votesLine.split(">")[3].replace("</div", "")); Code: [select] con.addRequestProperty("User-Agent", "Mozilla/4.76"); or something like this and replace with this: Code: [select] con.addRequestProperty("User-Agent", "L2TopZone"); the 1st i've already done it i'll try the other
0 Chemotox Posted June 3, 2014 Posted June 3, 2014 Pease help! This is my code. But i got always Votes = 0. What can I change to work? /* * Copyright (C) 2013 AdminsProL2 * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */ package com.l2jserver.gameserver.instancemanager.votereward; import java.io.BufferedReader; import java.io.IOException; 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.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import com.l2jserver.Config; import com.l2jserver.L2DatabaseFactory; import com.l2jserver.gameserver.Announcements; import com.l2jserver.gameserver.ThreadPoolManager; import com.l2jserver.gameserver.model.L2World; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; /** * @author ??? * @reworked fissban */ public class VoteRewardTopzone { static Logger _log = Logger.getLogger(VoteRewardTopzone.class.getName()); static final int initialCheck = Config.VOTE_SYSTEM_START_TIME * 1000; static final int delayForCheck = Config.VOTE_SYSTEM_CHECK_TIME * 1000; int votesneed; static List<String> _ips = new ArrayList<>(); static List<String> _accounts = new ArrayList<>(); static int lastVoteCount = 0; VoteRewardTopzone() { if (Config.VOTE_SYSTEM_DATABASE_SAVE) { load(); } ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck); } public class AutoReward implements Runnable { @Override public void run() { int votes = getVotes(); _log.info("VoteReward: Current Votes Topzone: " + votes); if (votes >= (getLastVoteCount() + Config.VOTE_SYSTEM_COUNT)) { Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().valueCollection(); { for (L2PcInstance onlinePlayer : pls) { if (onlinePlayer.isOnline() && !onlinePlayer.getClient().isDetached() && !_accounts.contains(onlinePlayer.getAccountName()) && !_ips.contains(onlinePlayer.getClient().getConnection().getInetAddress().getHostAddress())) { String[] parase = Config.VOTE_SYSTEM_ITEM_ID_TOPZONE.split(","); String[] parase3 = Config.VOTE_SYSTEM_ITEM_COUNT_TOPZONE.split(","); for (int o = 0; o < parase.length; o++) { int parase2 = Integer.parseInt(parase[o]); int parase4 = Integer.parseInt(parase3[o]); onlinePlayer.addItem("vote_reward", parase2, parase4, onlinePlayer, true); } _ips.add(onlinePlayer.getClient().getConnection().getInetAddress().getHostAddress()); _accounts.add(onlinePlayer.getAccountName()); } } } _log.info("VoteReward Topzone: All players has been rewared!"); Announcements.getInstance().announceToAll("be rewarded!"); Announcements.getInstance().announceToAll("for Topzone vote!"); setLastVoteCount(getLastVoteCount() + Config.VOTE_SYSTEM_COUNT); } if (getLastVoteCount() == 0) { setLastVoteCount(votes); } else if ((((getLastVoteCount() + Config.VOTE_SYSTEM_COUNT) - votes) > Config.VOTE_SYSTEM_COUNT) || (votes > (getLastVoteCount() + Config.VOTE_SYSTEM_COUNT))) { setLastVoteCount(votes); } votesneed = (getLastVoteCount() + Config.VOTE_SYSTEM_COUNT) - votes; if (votesneed == 0) { votesneed = Config.VOTE_SYSTEM_COUNT; } Announcements.getInstance().announceToAll("== VoteReward =="); Announcements.getInstance().announceToAll("Current votes " + votes + "."); Announcements.getInstance().announceToAll("Missing " + votesneed + " votes in Topzone!"); _ips.clear(); _accounts.clear(); } } public int getVotes() { URL url = null; InputStreamReader isr = null; BufferedReader in = null; try { url = new URL(Config.VOTE_SYSTEM_PAGE_TOPZONE); URLConnection con = url.openConnection(); con.addRequestProperty("User-Agent", "L2TopZone"); isr = new InputStreamReader(con.getInputStream()); in = new BufferedReader(isr); String inputLine; while ((inputLine = in.readLine()) != null) { if (inputLine.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\">")) { i = inputLine.replace("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\">", ""); i = i.replace("</font></b></div></td></tr>", ""); i = i.trim(); int o = Integer.parseInt(i); return Integer.valueOf(o); } } } catch (IOException e) { Announcements.getInstance().announceToAll("Topzone is offline"); _log.warning("AutoVoteRewardHandler: " + e); } return 0; } public void setLastVoteCount(int voteCount) { lastVoteCount = voteCount; } public int getLastVoteCount() { return lastVoteCount; } public void load() { int votes = 0; try (Connection con = L2DatabaseFactory.getInstance().getConnection()) { PreparedStatement statement = con.prepareStatement("SELECT vote FROM votetopzone LIMIT 1");// DB votetopzone 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 Topzone: ", e); } setLastVoteCount(votes); } public void save() { try (Connection con = L2DatabaseFactory.getInstance().getConnection()) { PreparedStatement statement = con.prepareStatement("UPDATE votetopzone SET vote = ? WHERE id=1"); statement.setInt(1, getLastVoteCount()); statement.execute(); statement.close(); } catch (Exception e) { _log.log(Level.WARNING, "data error on vote Topzone: ", e); } } public static VoteRewardTopzone getInstance() { return SingletonHolder._instance; } static class SingletonHolder { protected static final VoteRewardTopzone _instance = new VoteRewardTopzone(); } }
0 iStigma Posted June 3, 2014 Posted June 3, 2014 http://l2topzone.com/forum/announcements-and-news/fix-for-voterewards/
Question
Kolibri
Hello all i have a problem with my vote system ... it works only for hopzone and topzone not ...2months ago worked fine then stopped working
6 answers to this question
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now