Jump to content

Recommended Posts

Posted
IOException: Server returned HTTP response code: 403 for URL: http://l2.hopzone.
net/lineage2/moreinfo/L2WorldPvP/74078.html
Exception in thread "main" java.lang.NullPointerException
        at Voter.getVotesHopZone(Voter.java:64)
        at Voter.main(Voter.java:10)

Posted

IOException: Server returned HTTP response code: 403 for URL: http://l2.hopzone.
net/lineage2/moreinfo/L2WorldPvP/74078.html
Exception in thread "main" java.lang.NullPointerException
        at Voter.getVotesHopZone(Voter.java:64)
        at Voter.main(Voter.java:10)

I think it was the same error i got when i tried to use Hopzone, so i used Topzone instead.. Not i just have another error where it wont load votes from site :(
Posted

IOException: Server returned HTTP response code: 403 for URL: http://l2.hopzone.
net/lineage2/moreinfo/L2WorldPvP/74078.html
Exception in thread "main" java.lang.NullPointerException
        at Voter.getVotesHopZone(Voter.java:64)
        at Voter.main(Voter.java:10)

Try use this http://maxcheaters.com/forum/index.php?topic=213613.0 Works for me! :D
Posted

same problem doesn't get the votes from topzone and doesn't insert them into database , using l2j hi5

 

I have the same problem.The server votes stays 0.....How can i fix it?

Posted

Try with this. This is with Razield "hack" for Hopzone..

AutoVoteRewardManager.java

package com.l2jserver.gameserver.instancemanager;
   
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;
   
public class AutoVoteRewardManager
{
  private static Logger _log = Logger.getLogger(AutoVoteRewardManager.class.getName());
      
  private static final String http = "http://l2.hopzone.net/lineage2/moreinfo/L2Empire/88729.html";
  private static final int initialCheck  = 1 * 1000;
  private static final int delayForCheck = 900 * 1000;
  private static final int[] itemId    = { 14721, 3794 };
  private static final int[] itemCount = { 50, 250 };
  private static final int votesRequiredForReward = 30;

  private static List<String> _ips = new ArrayList<String>();
  private static int lastVoteCount = 0;
     
  private AutoVoteRewardManager()
  {
      _log.info("AutoVoteRewardManager: Vote reward system initiated.");
      if (Config.L2JMOD_VOTE_ENGINE_SAVE)
          load();
      ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);
  }
     
  private class AutoReward implements Runnable
  {
      public void run()
      {
          int votes = getVotes();
          _log.info("AutoVoteRewardManager: We now have " + votes + "/"+(getLastVoteCount()+votesRequiredForReward)+" vote(s). Next check in "+(delayForCheck/1000)+" sec.");
          Announcements.getInstance().announceToAll("Vote on http://l2.gamesempire.ro/");

          if (votes >= getLastVoteCount() + votesRequiredForReward)
          {
              Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
              {
                  for (L2PcInstance onlinePlayer : pls)
                  {
                      if (onlinePlayer.isOnline() && !onlinePlayer.getClient().isDetached() && !_ips.contains(onlinePlayer.getClient().getConnection().getInetAddress().getHostAddress()))
                      {
                          for (int i = 0; i < itemId.length; i++)
                          {
                              onlinePlayer.addItem("vote_reward", itemId[i], itemCount[i], onlinePlayer, true);
                          }
                 
                          _ips.add(onlinePlayer.getClient().getConnection().getInetAddress().getHostAddress());
                      }
                  }
              }
              _log.info("AutoVoteRewardManager: Reward for votes now!");
              Announcements.getInstance().announceToAll("Reward for players! Thanks for Vote.");
              setLastVoteCount(getLastVoteCount() + votesRequiredForReward);
          }
               
          if (getLastVoteCount() == 0)
          {
              setLastVoteCount(votes);
          }
          else if ((getLastVoteCount() + votesRequiredForReward) - votes > votesRequiredForReward || votes > (getLastVoteCount() + votesRequiredForReward))
          {
              setLastVoteCount(votes);
          }
             
          Announcements.getInstance().announceToAll("We have " + votes + " vote(s). Next reward on " + (getLastVoteCount()+votesRequiredForReward) + " vote.");
          _ips.clear();
      }
  }
     
  private int getVotes()
  {
      URL url = null;
      InputStreamReader isr = null;
      BufferedReader in = null;
      try
      {
          url = new URL(http);
          URLConnection con = url.openConnection();
          con.addRequestProperty("User-Agent", "Mozilla/4.76"); 
          isr = new InputStreamReader(con.getInputStream());
          in = new BufferedReader(isr);
          String inputLine;
          while ((inputLine = in.readLine()) != null)
          {
              // for top-zone
              //if (inputLine.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\""))
              //{
                //return Integer.valueOf(inputLine.split(">")[5].replace("</font", ""));
              //}
             
              //for hopzone
              if (inputLine.contains("moreinfo_total_rank_text"))
                 return Integer.valueOf(inputLine.split(">")[2].replace("</div", ""));
          }
      }
      catch (IOException e)
      {
          _log.warning("AutoVoteRewardHandler: "+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;
  }
  
  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
      {
          L2DatabaseFactory.close(con);
      }
     
      setLastVoteCount(votes);
  }
  
  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
      {
          L2DatabaseFactory.close(con);
      }
  }
 
  public static AutoVoteRewardManager getInstance()
  {
      return SingletonHolder._instance;
  }
     
  @SuppressWarnings("synthetic-access")
  private static class SingletonHolder
  {
      protected static final AutoVoteRewardManager _instance = new AutoVoteRewardManager();
  }
}

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.




×
×
  • Create New...