Jump to content
  • 0

Hopzone Vote Reward


protoftw

Question

Hey guys can anyone help me fix the code in order to make hopzone work too??

 

this is the error i'm getting for HOPZONE ,  [topzone and network are working.]

 

https://postimg.org/image/7h9r3u1nj/

https://postimg.org/image/a0a08du0f/

https://postimg.org/image/bu705n613/

 

So here's the code of the Auto Vote Reward system im currently using:

package com.l2jfrozen.gameserver.handler;

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;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.l2jfrozen.Config;
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.powerpak.PowerPakConfig;
import com.l2jfrozen.gameserver.thread.ThreadPoolManager;

/**
 * @author L2jFrozen <br>
 * <br>
 *         Network working with L2jFrozen AutoVoteReward: <br>
 *         Hopzone -> http://l2.hopzone.net/ <br>
 *         Topzone -> http://l2topzone.com/ <br>
 *         L2network -> http://l2network.eu/ <br>
 */

public class AutoVoteRewardHandler
{
	protected static final Logger LOGGER = Logger.getLogger(AutoVoteRewardHandler.class);
	
	protected List<String> already_rewarded;
	
	private int _l2networkVotesCount = 0;
	private int _hopzoneVotesCount = 0;
	private int _topzoneVotesCount = 0;
	protected List<String> _already_rewarded;
	
	protected static boolean _l2network = false;
	protected static boolean _topzone = false;
	protected static boolean _hopzone = false;
	
	private AutoVoteRewardHandler()
	{
		LOGGER.info("Vote Reward System Initiated.");
		
		if (_hopzone)
		{
			int hopzone_votes = getHopZoneVotes();
			
			if (hopzone_votes == -1)
			{
				hopzone_votes = 0;
			}
			
			setHopZoneVoteCount(hopzone_votes);
		}
		
		if (_l2network)
		{
			int l2network_votes = getL2NetworkVotes();
			
			if (l2network_votes == -1)
			{
				l2network_votes = 0;
			}
			
			setL2NetworkVoteCount(l2network_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()
		{
			final int minutes = (PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 1000) / 60;
			
			if (_hopzone)
			{
				final int hopzone_votes = getHopZoneVotes();
				
				if (hopzone_votes != -1)
				{
					LOGGER.info("[VoteReward] Server HOPZONE Votes: " + hopzone_votes);
					Announcements.getInstance().gameAnnounceToAll("[VoteReward] Actual HOPZONE Votes are " + hopzone_votes + "");
					
					if (hopzone_votes != 0 && hopzone_votes >= getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
					{
						_already_rewarded = new ArrayList<>();
						
						final Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
						
						Announcements.getInstance().gameAnnounceToAll("[VoteReward] Great Work! Check your inventory for Reward!");
						
						// L2ItemInstance item;
						for (final L2PcInstance player : pls)
						{
							if (player != null && !player.isInOfflineMode() && player.isOnline() == 1)
							{
								if (player._active_boxes <= 1 || (player._active_boxes > 1 && checkSingleBox(player)))
								{
									
									final Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
									for (final 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("[VoteReward] Next Reward in " + minutes + " minutes at " + (getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!");
					// site web
					
					
				}
				
			}
			
			if (_topzone && _hopzone && PowerPakConfig.VOTES_SYSYEM_STEP_DELAY > 0)
			{
				try
				{
					Thread.sleep(PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 2);
				}
				catch (final InterruptedException e)
				{
					if (Config.ENABLE_ALL_EXCEPTIONS)
						e.printStackTrace();
				}
			}
			
			if (_topzone)
			{
				final int topzone_votes = getTopZoneVotes();
				
				if (topzone_votes != -1)
				{
					LOGGER.info("[VoteReward] Server TOPZONE Votes: " + topzone_votes);
					Announcements.getInstance().gameAnnounceToAll("[VoteReward] Actual TOPZONE Votes are " + topzone_votes + "");
					
					if (topzone_votes != 0 && topzone_votes >= getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
					{
						_already_rewarded = new ArrayList<>();
						
						final Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
						
						Announcements.getInstance().gameAnnounceToAll("[VoteReward] Great Work! Check your inventory for Reward!");
						
						// L2ItemInstance item;
						for (final L2PcInstance player : pls)
						{
							if (player != null && !player.isInOfflineMode() && player.isOnline() == 1)
							{
								if (player._active_boxes <= 1 || (player._active_boxes > 1 && checkSingleBox(player)))
								{
									final Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
									for (final 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("[VoteReward] Next Reward in " + minutes + " minutes at " + (getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!");
					// site web
					
				}
			}
			
			if (_topzone && _hopzone && _l2network && PowerPakConfig.VOTES_SYSYEM_STEP_DELAY > 0)
			{
				try
				{
					Thread.sleep(PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 2);
				}
				catch (final InterruptedException e)
				{
					if (Config.ENABLE_ALL_EXCEPTIONS)
						e.printStackTrace();
				}
			}
			
			if (_l2network)
			{
				final int l2network_votes = getL2NetworkVotes();
				
				if (l2network_votes != -1)
				{
					LOGGER.info("[VoteReward] Server L2NETWORK Votes: " + l2network_votes);
					Announcements.getInstance().gameAnnounceToAll("[VoteReward] Actual L2Network Votes are " + l2network_votes + "");
					
					if (l2network_votes != 0 && l2network_votes >= getL2NetworkVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
					{
						already_rewarded = new ArrayList<>();
						
						final Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
						
						Announcements.getInstance().gameAnnounceToAll("[VoteReward] Great Work! Check your inventory for Reward!");
						
						// L2ItemInstance item;
						for (final L2PcInstance player : pls)
						{
							if (player != null && !player.isInOfflineMode() && player.isOnline() == 1)
							{
								if (player._active_boxes <= 1 || (player._active_boxes > 1 && checkSingleBox(player)))
								{
									final Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
									for (final 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);
									}
								}
							}
						}
						setL2NetworkVoteCount(l2network_votes);
					}
					Announcements.getInstance().gameAnnounceToAll("[VoteReward] Next Reward in " + minutes + " minutes at " + (getL2NetworkVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!");
					// site web
					
				}
			}
		}
	}
	
	// Check boxes
	protected boolean checkSingleBox(final L2PcInstance player)
	{
		if (player == null)
			return false;
		
		if (player.getClient() != null && player.getClient().getConnection() != null && !player.getClient().getConnection().isClosed() && player.isOnline() == 1 && !player.isInOfflineMode())
		{
			final 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;
		
		try
		{
			final WebClient webClient = new WebClient(BrowserVersion.CHROME);
			webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
			webClient.getOptions().setThrowExceptionOnScriptError(false);
			webClient.getOptions().setPrintContentOnFailingStatusCode(false);
			
			final HtmlPage page = webClient.getPage(PowerPakConfig.VOTES_SITE_HOPZONE_URL);
			
			final String fullPage = page.asXml();
			final int constrainA = fullPage.indexOf("rank anonymous tooltip") + 24;
			String voteSection = fullPage.substring(constrainA);
			final int constrainB = voteSection.indexOf("span") - 2;
			voteSection = voteSection.substring(0, constrainB).trim();
			votes = Integer.parseInt(voteSection);
			
			// Try to free all the freaking resources
			page.cleanUp();
			webClient.getJavaScriptEngine().shutdown();
			webClient.closeAllWindows();
		}
		catch (final Exception e)
		{
			LOGGER.warn("[VoteReward] HOPZONE is offline or something is wrong in link", e);
			Announcements.getInstance().gameAnnounceToAll("[VoteReward] HOPZONE is offline. We will check reward as it will be online again");
		}
		
		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", "L2TopZone");
		is = con.getInputStream();
		isr = new InputStreamReader(is);
		in = new BufferedReader(isr);
		String inputLine;
		while ((inputLine = in.readLine()) != null)
		{
		votes = Integer.valueOf(inputLine);
		break;
		}
		}
		catch (final Exception e)
		{
			LOGGER.warn("[VoteReward] TOPZONE is offline or something is wrong in link");
			Announcements.getInstance().gameAnnounceToAll("[VoteReward] TOPZONE is offline. We will check reward as it will be online again");
			// e.printStackTrace();
		}
		finally
		{
			if (in != null)
				try
				{
					in.close();
				}
				catch (final IOException e1)
				{
					e1.printStackTrace();
				}
			if (isr != null)
				try
				{
					isr.close();
				}
				catch (final IOException e1)
				{
					e1.printStackTrace();
				}
			if (is != null)
				try
				{
					is.close();
				}
				catch (final IOException e1)
				{
					e1.printStackTrace();
				}
		}
		return votes;
	}
	
	protected int getL2NetworkVotes()
	{
		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_L2NETWORK_URL);
			con = url.openConnection();
			con.addRequestProperty("User-Agent", "L2Network");
			is = con.getInputStream();
			isr = new InputStreamReader(is);
			in = new BufferedReader(isr);
			String inputLine;
			while ((inputLine = in.readLine()) != null)
			{
				if (inputLine.contains("color:#e7ebf2"))
				{
					votes = Integer.valueOf(inputLine.split(">")[2].replace("</b", ""));
					break;
				}
			}
		}
		catch (final Exception e)
		{
			LOGGER.warn("[VoteReward] L2NETWORK is offline or something is wrong in link");
			Announcements.getInstance().gameAnnounceToAll("[VoteReward] L2Network is offline. We will check reward as it will be online again");
			// e.printStackTrace();
		}
		finally
		{
			if (in != null)
				try
				{
					in.close();
				}
				catch (final IOException e1)
				{
					e1.printStackTrace();
				}
			if (isr != null)
				try
				{
					isr.close();
				}
				catch (final IOException e1)
				{
					e1.printStackTrace();
				}
			if (is != null)
				try
				{
					is.close();
				}
				catch (final IOException e1)
				{
					e1.printStackTrace();
				}
		}
		return votes;
	}
	
	protected void setHopZoneVoteCount(final int voteCount)
	{
		_hopzoneVotesCount = voteCount;
	}
	
	protected int getHopZoneVoteCount()
	{
		return _hopzoneVotesCount;
	}
	
	protected void setTopZoneVoteCount(final int voteCount)
	{
		_topzoneVotesCount = voteCount;
	}
	
	protected int getTopZoneVoteCount()
	{
		return _topzoneVotesCount;
	}
	
	protected void setL2NetworkVoteCount(final int voteCount)
	{
		_l2networkVotesCount = voteCount;
	}
	
	protected int getL2NetworkVoteCount()
	{
		return _l2networkVotesCount;
	}
	
	public static AutoVoteRewardHandler getInstance()
	{
		Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF);
		
		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 (PowerPakConfig.VOTES_SITE_L2NETWORK_URL != null && !PowerPakConfig.VOTES_SITE_L2NETWORK_URL.equals(""))
			_l2network = true;
		
		if (_topzone || _hopzone || _l2network)
			return SingletonHolder._instance;
		
		return null;
	}
	
	@SuppressWarnings("synthetic-access")
	private static class SingletonHolder
	{
		protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler();
	}
}
Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

there are no errors in eclipse and gameserver but im not getting hopzone votes at all

only topzone and network are shown properly.

 

also i had to:

 

change: public int getHopzoneVotes()     to    public int getHopZoneVotes()

 

import:   HttpURLConnection

 

change:  announce    to    Announcements.getInstance().gameAnnounceToAll

 

i think i should change:

 

Config.VOTES_SITE_HOPZONE_URL  to PowerPakConfig.VOTES_SITE_HOPZONE_URL

 

right?

public int getHopZoneVotes()
    {
        int votes = -1;
        try
        {
            final URL obj = new URL(Config.VOTES_SITE_HOPZONE_URL);
            final HttpURLConnection con = (HttpURLConnection) obj.openConnection();
           
            con.addRequestProperty("User-Agent", "L2Hopzone");
            con.setConnectTimeout(5000);
           
            final int responseCode = con.getResponseCode();
            if (responseCode == 200)
            {
                try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())))
                {
                    String inputLine;
                    while ((inputLine = in.readLine()) != null)
                    {
                        if (inputLine.contains("<li><span class=\"rank anonymous tooltip\" title"))
                        {
                            votes = Integer.valueOf(inputLine.split(">")[2].replace("</span", ""));
                            break;
                        }
                    }
                }
            }
        }
        catch (Exception e)
        {
            Announcements.getInstance().gameAnnounceToAll("HOPZONE is offline. We will check reward as it will be online again.");
        }
        return votes;
    }
Edited by protoftw
Link to comment
Share on other sites

  • 0


package net.sf.l2j.gameserver.voteengine;

 

import java.io.BufferedReader;

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.logging.Logger;

 

import net.sf.l2j.commons.concurrent.ThreadPool;

 

import net.sf.l2j.Config;

import net.sf.l2j.gameserver.model.World;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

import net.sf.l2j.gameserver.network.L2GameClient;

import net.sf.l2j.gameserver.network.serverpackets.CreatureSay;

import net.sf.l2j.gameserver.util.Broadcast;

 

 

 

public class AutoVoteReward

{

public static Logger _log = Logger.getLogger(AutoVoteReward.class.getName());

 

private int hopzoneVotesCount = 0;

private int topzoneVotesCount = 0;

private int networkVotesCount = 0;

protected List<String> already_rewarded;

 

protected static boolean topzone = false;

protected static boolean hopzone = false;

protected static boolean network = false;

 

private AutoVoteReward()

{

_log.info("VoteRewardSystem: Initialized.");

if(Config.VOTE_HOPZONE_ENABLED)

{

if(hopzone)

{

int hopzone_votes = getHopZoneVotes();

if(hopzone_votes == -1)

{

hopzone_votes = 0;

}

 

setHopZoneVoteCount(hopzone_votes);

}

}

 

if(Config.VOTE_TOPZONE_ENABLED)

{

if(topzone)

{

int topzone_votes = getTopZoneVotes();

if(topzone_votes == -1)

{

topzone_votes = 0;

}

 

setTopZoneVoteCount(topzone_votes);

}

}

 

if(Config.VOTE_NETWORK_ENABLED)

{

if(network)

{

int network_votes = getNetworkVotes();

if(network_votes == -1)

{

network_votes = 0;

}

 

setNetworkVoteCount(network_votes);

}

}

 

ThreadPool.scheduleAtFixedRate(new AutoReward(), Config.VOTES_SYSTEM_INITIAL_DELAY, Config.VOTES_SYSTEM_STEP_DELAY);

}

 

protected class AutoReward implements Runnable

{

@Override

public void run()

{

if(Config.VOTE_HOPZONE_ENABLED)

{

if(hopzone)

{

int hopzone_votes = getHopZoneVotes();

if(hopzone_votes != -1)

{

_log.info("Hopzone Votes: " + hopzone_votes);

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Hopzone", "Actual Votes are " + hopzone_votes + "..."));

 

if(hopzone_votes != 0 && hopzone_votes >= getHopZoneVoteCount() + Config.VOTES_FOR_REWARD)

{

already_rewarded = new ArrayList<>();

 

Collection<L2PcInstance> pls = World.getInstance().getPlayers();

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Hopzone", "Great Work! Check your inventory for Reward!!"));

 

for(L2PcInstance player : pls)

{

if(player != null)

{

if(checkSingleBox(player))

{

player.addItem("reward", Config.HOPZONE_REWARD_ID, Config.HOPZONE_REWARD_COUNT, player, true);

}

}

}

 

setHopZoneVoteCount(hopzone_votes);

}

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Hopzone", "Next Reward will be on - " + (getHopZoneVoteCount() + Config.VOTES_FOR_REWARD) + " Votes!!"));

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Hopzone", "For Vote Visit our website - http://site.com"));

}

}

}

if (hopzone && Config.VOTES_SYSTEM_STEP_DELAY > 0)

{

try

{

Thread.sleep(Config.VOTES_SYSTEM_STEP_DELAY / 2);

}

catch (final InterruptedException e)

{

e.printStackTrace();

}

}

 

if(Config.VOTE_TOPZONE_ENABLED)

{

if(topzone)

{

int topzone_votes = getTopZoneVotes();

if(topzone_votes != -1)

{

_log.info("TopZone Votes: " + topzone_votes);

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Topzone", "Actual Votes are " + topzone_votes + "..."));

 

if(topzone_votes != 0 && topzone_votes >= getTopZoneVoteCount() + Config.VOTES_FOR_REWARD)

{

already_rewarded = new ArrayList<>();

 

Collection<L2PcInstance> pls = World.getInstance().getPlayers();

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Topzone", "Great Work! Check your inventory for Reward!!"));

 

for(L2PcInstance player : pls)

{

if(player != null)

{

if(checkSingleBox(player))

{

player.addItem("reward", Config.TOPZONE_REWARD_ID, Config.TOPZONE_REWARD_COUNT, player, true);

}

}

}

 

setTopZoneVoteCount(topzone_votes);

}

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Topzone", "Next Reward will be on - " + (getTopZoneVoteCount() + Config.VOTES_FOR_REWARD) + " Votes!!"));

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Topzone", "For Vote Visit our website - http://site.com"));

}

}

}

if (topzone && hopzone && Config.VOTES_SYSTEM_STEP_DELAY > 0)

{

try

{

Thread.sleep(Config.VOTES_SYSTEM_STEP_DELAY / 2);

}

catch (final InterruptedException e)

{

e.printStackTrace();

}

}

if(Config.VOTE_NETWORK_ENABLED)

{

if(network)

{

int network_votes = getNetworkVotes();

if(network_votes != -1)

{

_log.info("Network Votes: " + network_votes);

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Network", "Actual Votes are " + network_votes + "..."));

 

if(network_votes != 0 && network_votes >= getNetworkVoteCount() + Config.VOTES_FOR_REWARD)

{

already_rewarded = new ArrayList<>();

 

Collection<L2PcInstance> pls = World.getInstance().getPlayers();

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Network", "Great Work! Check your inventory for Reward!!"));

 

for(L2PcInstance player : pls)

{

if(player != null)

{

if(checkSingleBox(player))

{

player.addItem("reward", Config.NETWORK_REWARD_ID, Config.NETWORK_REWARD_COUNT, player, true);

}

}

}

 

setNetworkVoteCount(network_votes);

}

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Network", "Next Reward will be on - " + (getNetworkVoteCount() + Config.VOTES_FOR_REWARD) + " Votes!!"));

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Network", "For Vote Visit our website - http://site.com"));

}

}

}

if (topzone && hopzone && network && Config.VOTES_SYSTEM_STEP_DELAY > 0)

{

try

{

Thread.sleep(Config.VOTES_SYSTEM_STEP_DELAY / 2);

}

catch (final InterruptedException e)

{

e.printStackTrace();

}

}

}

}

 

protected boolean checkSingleBox(L2PcInstance player)

{

L2GameClient client = player.getClient();

if(player.getClient()!=null && player.getClient().getConnection()!=null && !client.isDetached() && !player.getClient().getConnection().isClosed()){

 

String playerip = player.getClient().getConnection().getInetAddress().getHostAddress();

 

if(already_rewarded.contains(playerip))

return false;

already_rewarded.add(playerip);

return true;

}

return false;

}

 

 

 

protected int getHopZoneVotes()

{

try

{

BufferedReader in = new BufferedReader(new InputStreamReader(new URL(Config.VOTES_SITE_HOPZONE_URL).openConnection().getInputStream()));

String[] tokens = in.readLine().split(",");

in.close();

return Integer.parseInt(tokens[1].substring(tokens[1].indexOf(":") + 1, tokens[1].length()));

}

catch (final Exception e)

{

_log.warning("[AutoVoteReward] Server L2Hopzone is offline or something is wrong in link");

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Hopzone", "is offline. We will check reward as it will be online again"));

}

return -1;

}

 

protected int getTopZoneVotes()

{

InputStreamReader isr = null;

BufferedReader br = null;

try

{

URLConnection con = new URL(Config.VOTES_SITE_TOPZONE_URL).openConnection();

con.addRequestProperty("User-Agent", "L2TopZone");

con.setConnectTimeout(5000);

isr = new InputStreamReader(con.getInputStream());

br = new BufferedReader(isr);

 

String line;

while ((line = br.readLine()) != null)

{

 

int votes = Integer.valueOf(line);

return votes;

 

}

 

br.close();

isr.close();

}

catch (Exception e)

{

if (topzone)

System.out.println("TOPZONE is offline. We will check reward as it will be online again.");

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Topzone", "is offline. We will check reward as it will be online again"));

}

return -1;

}

 

protected int getNetworkVotes()

{

InputStreamReader isr = null;

BufferedReader br = null;

try

{

URLConnection con = new URL(Config.VOTES_SITE_NETWORK_URL).openConnection();

con.addRequestProperty("User-Agent", "Mozilla/5.0");

con.setConnectTimeout(5000);

isr = new InputStreamReader(con.getInputStream());

br = new BufferedReader(isr);

 

String line;

while ((line = br.readLine()) != null)

{

if (line.contains("<div class=\"tls-in-sts\"><b style"))

{

int votes = Integer.valueOf(line.split(">")[2].replace("</b", ""));

return votes;

}

}

 

br.close();

isr.close();

}

catch (Exception e)

{

if (network)

System.out.println("NETWORK is offline. We will check reward as it will be online again.");

Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Network", "is offline. We will check reward as it will be online again"));

}

return -1;

}

 

protected void setHopZoneVoteCount(int voteCount)

{

hopzoneVotesCount = voteCount;

}

 

protected int getHopZoneVoteCount()

{

return hopzoneVotesCount;

}

 

protected void setTopZoneVoteCount(int voteCount)

{

topzoneVotesCount = voteCount;

}

 

protected int getTopZoneVoteCount()

{

return topzoneVotesCount;

}

 

protected void setNetworkVoteCount(int voteCount)

{

networkVotesCount = voteCount;

}

 

protected int getNetworkVoteCount()

{

return networkVotesCount;

}

 

public static AutoVoteReward getInstance()

{

if(Config.VOTES_SITE_HOPZONE_URL != null && !Config.VOTES_SITE_HOPZONE_URL.equals("")){

hopzone = true;

}

 

if(Config.VOTES_SITE_TOPZONE_URL != null && !Config.VOTES_SITE_TOPZONE_URL.equals("")){

topzone = true;

}

 

if(Config.VOTES_SITE_NETWORK_URL != null && !Config.VOTES_SITE_NETWORK_URL.equals("")){

network = true;

}

 

if(topzone || hopzone || network)

return SingletonHolder._instance;

return null;

}

 

 

@SuppressWarnings("synthetic-access")

private static class SingletonHolder

{

protected static final AutoVoteReward _instance = new AutoVoteReward();

}

 

}

Link to comment
Share on other sites

  • 0

 

there are no errors in eclipse and gameserver but im not getting hopzone votes at all

only topzone and network are shown properly.

 

also i had to:

 

change: public int getHopzoneVotes()     to    public int getHopZoneVotes()

 

import:   HttpURLConnection

 

change:  announce    to    Announcements.getInstance().gameAnnounceToAll

 

i think i should change:

 

Config.VOTES_SITE_HOPZONE_URL  to PowerPakConfig.VOTES_SITE_HOPZONE_URL

 

right?

public int getHopZoneVotes()
    {
        int votes = -1;
        try
        {
            final URL obj = new URL(Config.VOTES_SITE_HOPZONE_URL);
            final HttpURLConnection con = (HttpURLConnection) obj.openConnection();
           
            con.addRequestProperty("User-Agent", "L2Hopzone");
            con.setConnectTimeout(5000);
           
            final int responseCode = con.getResponseCode();
            if (responseCode == 200)
            {
                try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())))
                {
                    String inputLine;
                    while ((inputLine = in.readLine()) != null)
                    {
                        if (inputLine.contains("<li><span class=\"rank anonymous tooltip\" title"))
                        {
                            votes = Integer.valueOf(inputLine.split(">")[2].replace("</span", ""));
                            break;
                        }
                    }
                }
            }
        }
        catch (Exception e)
        {
            Announcements.getInstance().gameAnnounceToAll("HOPZONE is offline. We will check reward as it will be online again.");
        }
        return votes;
    }

If u read the error (3rd pic) it says "parseInt " and "NumberFormatException.

 

Try to "try/catch" /throw the error or just  print that string and see by urself whats going on...

First,try to confirm by urself that u can actually get the number properly.

 

change: public int getHopzoneVotes()     to    public int getHopZoneVotes()

Nice change mate!

Edited by bravetobe
Link to comment
Share on other sites

  • 0

Just check here VoteHandler.java and change config.

To powerpackConfig.

Change the gethopzonevotes compile and ready

Link to comment
Share on other sites

  • 0

If u read the error (3rd pic) it says "parseInt " and "NumberFormatException.

 

Try to "try/catch" /throw the error or just  print that string and see by urself whats going on...

First,try to confirm by urself that u can actually get the number properly.

 

change: public int getHopzoneVotes()     to    public int getHopZoneVotes()

Nice change mate!

 

hahahahahah cmon...i posted it to let people know what to do....i had to post it ...if someone uses l2jfrozen and see this topic then he will also be able to fix hopzone problem

Link to comment
Share on other sites

  • 0
package net.sf.l2j.gameserver.voteengine;

import java.io.BufferedReader;
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.logging.Logger;

import net.sf.l2j.commons.concurrent.ThreadPool;

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.model.World;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.L2GameClient;
import net.sf.l2j.gameserver.network.serverpackets.CreatureSay;
import net.sf.l2j.gameserver.util.Broadcast;



public class AutoVoteReward
{
    public static Logger _log = Logger.getLogger(AutoVoteReward.class.getName());

    private int hopzoneVotesCount = 0;
    private int topzoneVotesCount = 0;
    private int networkVotesCount = 0;
    protected List<String> already_rewarded;

    protected static boolean topzone = false;
    protected static boolean hopzone = false;
    protected static boolean network = false;

    private AutoVoteReward()
    {
        _log.info("VoteRewardSystem: Initialized.");
        if(Config.VOTE_HOPZONE_ENABLED)
        {
        if(hopzone)
        {
            int hopzone_votes = getHopZoneVotes();
            if(hopzone_votes == -1)
            {
                hopzone_votes = 0;
            }

            setHopZoneVoteCount(hopzone_votes);
        }
        }
        
        if(Config.VOTE_TOPZONE_ENABLED)
        {
           if(topzone)
           {
            int topzone_votes = getTopZoneVotes();
            if(topzone_votes == -1)
            {
                topzone_votes = 0;
            }

            setTopZoneVoteCount(topzone_votes);
           }
        }
        
        if(Config.VOTE_NETWORK_ENABLED)
        {
           if(network)
           {
            int network_votes = getNetworkVotes();
            if(network_votes == -1)
            {
                network_votes = 0;
            }

            setNetworkVoteCount(network_votes);
           }
        }
        
        ThreadPool.scheduleAtFixedRate(new AutoReward(), Config.VOTES_SYSTEM_INITIAL_DELAY, Config.VOTES_SYSTEM_STEP_DELAY);
    }

    protected class AutoReward implements Runnable
    {
        @Override
        public void run()
        {
        if(Config.VOTE_HOPZONE_ENABLED)	
        {
            if(hopzone)
            {
                int hopzone_votes = getHopZoneVotes();
                if(hopzone_votes != -1)
                {
                    _log.info("Hopzone Votes: " + hopzone_votes);
                    Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Hopzone", "Actual Votes are " + hopzone_votes + "..."));

                    if(hopzone_votes != 0 && hopzone_votes >= getHopZoneVoteCount() + Config.VOTES_FOR_REWARD)
                    {
                        already_rewarded = new ArrayList<>();

                        Collection<L2PcInstance> pls = World.getInstance().getPlayers();
                        Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Hopzone", "Great Work! Check your inventory for Reward!!"));

                        for(L2PcInstance player : pls)
                        {
                            if(player != null)
                            {
                                if(checkSingleBox(player))
                                {
                                    player.addItem("reward", Config.HOPZONE_REWARD_ID, Config.HOPZONE_REWARD_COUNT, player, true);
                                }
                            }
                        }

                        setHopZoneVoteCount(hopzone_votes);
                    }
                    Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Hopzone", "Next Reward will be on - " + (getHopZoneVoteCount() + Config.VOTES_FOR_REWARD) + " Votes!!"));
                    Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Hopzone", "For Vote Visit our website - http://site.com"));
                }
            }
        }
            if (hopzone && Config.VOTES_SYSTEM_STEP_DELAY > 0)
            {
                try
                {
                    Thread.sleep(Config.VOTES_SYSTEM_STEP_DELAY / 2);
                }
                catch (final InterruptedException e)
                {
                        e.printStackTrace();
                }
            }
            
    if(Config.VOTE_TOPZONE_ENABLED)	
    {
            if(topzone)
            {
                int topzone_votes = getTopZoneVotes();
                if(topzone_votes != -1)
                {
                    _log.info("TopZone Votes: " + topzone_votes);
                    Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Topzone", "Actual Votes are " + topzone_votes + "..."));

                    if(topzone_votes != 0 && topzone_votes >= getTopZoneVoteCount() + Config.VOTES_FOR_REWARD)
                    {
                        already_rewarded = new ArrayList<>();

                        Collection<L2PcInstance> pls = World.getInstance().getPlayers();
                        Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Topzone", "Great Work! Check your inventory for Reward!!"));

                        for(L2PcInstance player : pls)
                        {
                            if(player != null)
                            {
                                if(checkSingleBox(player))
                                {
                                   player.addItem("reward", Config.TOPZONE_REWARD_ID, Config.TOPZONE_REWARD_COUNT, player, true);
                                }
                            }
                        }

                        setTopZoneVoteCount(topzone_votes);
                    }
                    Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Topzone", "Next Reward will be on - " + (getTopZoneVoteCount() + Config.VOTES_FOR_REWARD) + " Votes!!"));
                    Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Topzone", "For Vote Visit our website - http://site.com"));
                }
            }
        }
    if (topzone && hopzone && Config.VOTES_SYSTEM_STEP_DELAY > 0)
    {
        try
        {
            Thread.sleep(Config.VOTES_SYSTEM_STEP_DELAY / 2);
        }
        catch (final InterruptedException e)
        {
                e.printStackTrace();
        }
    }
    if(Config.VOTE_NETWORK_ENABLED)	
    {
            if(network)
            {
                int network_votes = getNetworkVotes();
                if(network_votes != -1)
                {
                    _log.info("Network Votes: " + network_votes);
                    Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Network", "Actual Votes are " + network_votes + "..."));

                    if(network_votes != 0 && network_votes >= getNetworkVoteCount() + Config.VOTES_FOR_REWARD)
                    {
                        already_rewarded = new ArrayList<>();

                        Collection<L2PcInstance> pls = World.getInstance().getPlayers();
                        Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Network", "Great Work! Check your inventory for Reward!!"));

                        for(L2PcInstance player : pls)
                        {
                            if(player != null)
                            {
                                if(checkSingleBox(player))
                                {
                                   player.addItem("reward", Config.NETWORK_REWARD_ID, Config.NETWORK_REWARD_COUNT, player, true);
                                }
                            }
                        }

                        setNetworkVoteCount(network_votes);
                    }
                    Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Network", "Next Reward will be on - " + (getNetworkVoteCount() + Config.VOTES_FOR_REWARD) + " Votes!!"));
                    Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Network", "For Vote Visit our website - http://site.com"));
                }
            }
        }
    if (topzone && hopzone && network && Config.VOTES_SYSTEM_STEP_DELAY > 0)
    {
        try
        {
            Thread.sleep(Config.VOTES_SYSTEM_STEP_DELAY / 2);
        }
        catch (final InterruptedException e)
        {
                e.printStackTrace();
        }
    }
        }
    }
    
    protected boolean checkSingleBox(L2PcInstance player)
    {
        L2GameClient client = player.getClient();
        if(player.getClient()!=null && player.getClient().getConnection()!=null && !client.isDetached() && !player.getClient().getConnection().isClosed()){
            
            String playerip = player.getClient().getConnection().getInetAddress().getHostAddress();
            
            if(already_rewarded.contains(playerip))
                return false;
            already_rewarded.add(playerip);
            return true;
        }
        return false;
    }
    

    
    protected int getHopZoneVotes()
    {
        try
        {
            BufferedReader in = new BufferedReader(new InputStreamReader(new URL(Config.VOTES_SITE_HOPZONE_URL).openConnection().getInputStream()));
            String[] tokens = in.readLine().split(",");
            in.close();
            return Integer.parseInt(tokens[1].substring(tokens[1].indexOf(":") + 1, tokens[1].length()));
        }
        catch (final Exception e)
        {
                _log.warning("[AutoVoteReward] Server L2Hopzone is offline or something is wrong in link");
                Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Hopzone", "is offline. We will check reward as it will be online again"));
        }
        return -1;
    }

    protected int getTopZoneVotes()
    {
        InputStreamReader isr = null;
        BufferedReader br = null;
        try
        {
     	   URLConnection con = new URL(Config.VOTES_SITE_TOPZONE_URL).openConnection();
                 con.addRequestProperty("User-Agent", "L2TopZone");
                 con.setConnectTimeout(5000);
                 isr = new InputStreamReader(con.getInputStream());
                 br = new BufferedReader(isr);

                 String line;
                 while ((line = br.readLine()) != null)
                 {
                         
                                 int votes = Integer.valueOf(line);
                                 return votes;
                       
                 }
                
                 br.close();
                 isr.close();
         }
        catch (Exception e)
        {
            if (topzone)
            	System.out.println("TOPZONE is offline. We will check reward as it will be online again.");
            Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Topzone", "is offline. We will check reward as it will be online again"));
        }
        return -1;
    }
    
    protected int getNetworkVotes()
    {
        InputStreamReader isr = null;
        BufferedReader br = null;
        try
        {
                URLConnection con = new URL(Config.VOTES_SITE_NETWORK_URL).openConnection();
                con.addRequestProperty("User-Agent", "Mozilla/5.0");
                con.setConnectTimeout(5000);
                isr = new InputStreamReader(con.getInputStream());
                br = new BufferedReader(isr);
               
                String line;
                while ((line = br.readLine()) != null)
                {
                        if (line.contains("<div class=\"tls-in-sts\"><b style"))
                        {
                                int votes = Integer.valueOf(line.split(">")[2].replace("</b", ""));
                                return votes;
                        }
                }
               
                br.close();
                isr.close();
        }
        catch (Exception e)
        {
            if (network)
            	System.out.println("NETWORK is offline. We will check reward as it will be online again.");
            Broadcast.toAllOnlinePlayers(new CreatureSay(0,8,"Network", "is offline. We will check reward as it will be online again"));
        }
        return -1;
    }

    protected void setHopZoneVoteCount(int voteCount)
    {
        hopzoneVotesCount = voteCount;
    }

    protected  int getHopZoneVoteCount()
    {
        return hopzoneVotesCount;
    }

    protected  void setTopZoneVoteCount(int voteCount)
    {
        topzoneVotesCount = voteCount;
    }

    protected  int getTopZoneVoteCount()
    {
        return topzoneVotesCount;
    }
    
    protected  void setNetworkVoteCount(int voteCount)
    {
        networkVotesCount = voteCount;
    }

    protected  int getNetworkVoteCount()
    {
        return networkVotesCount;
    }

    public static AutoVoteReward getInstance()
    {
        if(Config.VOTES_SITE_HOPZONE_URL != null && !Config.VOTES_SITE_HOPZONE_URL.equals("")){
            hopzone = true;
        }
        
        if(Config.VOTES_SITE_TOPZONE_URL != null && !Config.VOTES_SITE_TOPZONE_URL.equals("")){
            topzone = true;
        }
        
        if(Config.VOTES_SITE_NETWORK_URL != null && !Config.VOTES_SITE_NETWORK_URL.equals("")){
            network = true;
        }
        
        if(topzone || hopzone || network)
            return SingletonHolder._instance;
        return null;
    }
    
    
    @SuppressWarnings("synthetic-access")
    private static class SingletonHolder
    {
        protected static final AutoVoteReward _instance = new AutoVoteReward();
    }

}

 

 i used the hopzone part and at gs i get : hopzone is offline or sth is wrong with the link

i use that link: http://l2.hopzone.net/lineage2/details/93067/L2-DAMAGE/

Link to comment
Share on other sites

  • 0

 

for hopzone is this

http://prnt.sc/b0brdg

 

use this for test if u want

http://api.hopzone.net/lineage2/votes?token=4dkBi72AztjXocda

 

http://api.hopzone.net/lineage2/votes?token=4dkBi72AztjXocda

 

so how am i gonna find that last part after "token" ?

Link to comment
Share on other sites

  • 0

its already done man just change the link in config...

all i am asking is if this link is for every server..

if i want to use it for my server to count my server's votes am i gonna use the link u gave me?

or am i gonna use another link??that's what i am asking

Link to comment
Share on other sites

  • 0

when u add server in hopzone there is button see screnshot i give u 

thank you mate and thanks for the code ...it's working!! :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   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

    • Hello everyone, I am excited to announce the launch of my new Lineage 2 High Five server! If you're a fan of Lineage 2, you won't want to miss out on the action that my server has to offer. With a High Five chronicle, you can expect a truly unique and immersive gaming experience. My server offers a variety of exciting features, including a balanced economy, custom NPCs, and a friendly and active community. One of the standout features of my server is the focus on PvP. Whether you're a seasoned veteran or a newcomer to the world of Lineage 2, you'll find plenty of opportunities to engage in thrilling battles with other players. With our custom PvP system and unique events, you'll never run out of challenges to overcome. But that's not all - my server also offers a range of custom content and quests that will keep you engaged and entertained for hours on end. With regular updates and a dedicated team of developers, you can expect a high-quality and enjoyable gaming experience every time you log in. So what are you waiting for? Join the action on my Lineage 2 High Five server today and experience the thrill of a truly epic adventure!     Cronica High Five Rates: XP x30 SP x30 Adena x10 Drop x10 Spoil x 10 Seal Stone  x10 RateQuestsReward x5 RateQuestsAdenaReward x 5 RateRaidBoss x5 RateQuestsDrop x5 RateSiegeGuard x 1 RateSiegeGuardPA x1 RateManor x 5 Features Server: Free subb class Free class transfer Gm shop grade S Gk global Quest certification :on Siegue castle  monthly :on Olympiad  monthly :on Seven sings free :on 2 HOUR buffs Olympiad max enchant +6 Safe enchant normal 50% Safe enchant blessed 50% EnchantAttributeChance  50% EnchantAttributeCrystalChance =30% EPIC RAID BOSS CONFIG ANTHARAS_RESPAWN_TIME_PATTERN  17DAYS +-120 MINT #Time in minutes, at the end of which, Antharas spawned at the entrance to the lair: ANTHARAS_SPAWN_DELAY = 20 MIN. # Time in minutes, after which, if Antharas is not attacked, he falls asleep ANTHARAS_SLEEP_TIME = 30 # Valakas settings VALAKAS_RESPAWN_TIME_PATTERN  27 DAYS +- 120 M,IN # Time in minutes, at the end of which, Valakas spawned at the entrance to the lair: VALAKAS_SPAWN_DELAY = 10 # Time in minutes, after which, if Valakas is not attacked, he falls asleep: VALAKAS_SLEEP_TIME = 20 # Baium settings BAIUM_RESPAWN_TIME_PATTERN =  8 DAYS +-120 MIN # Time in minutes, after which, if Baium is not attacked, he falls asleep BAIUM_SLEEP_TIME = 30   "We are in beta phase."   L2EUROLATIN HIGH FIVE X30
    • Does anybody found the way to solve problems with precice calculation on drop? i found the same formula of drop in l2jsunrise en l2jserver. https://bitbucket.org/l2jserver/l2j-server-game/src/develop/src/main/java/com/l2jserver/gameserver/model/drops/strategy/IGroupedItemDropCalculationStrategy.java yesterday i check that the problem is with drop group, because for example Celtus npc drops holys on 100% configurated like datapack is comming. but if i creat a drop of holys or an item outside of a group drop. it is droped well.
    • Well, i have to agree with you here, as a community we should respect each other and respect each others interests and not damage them, they unbanned the idiot kara for no reason like 5 times like he will bring something to the community but all he did was to damage it over and over again and i still cant explain why that had to happen, i swear whoever contact me says that he've been scammed by him for atleast 50-100e and some for even much more.   p.s. its a community to provide/share cheats for games not share someone's work.
    • I dont see the unfairness here, I provided free sources to everyone for free, as a Cheater would do, isnt this what MAXCHEATERS were meant to be? Hell YES! As Im aware, the poor subscriber I took over to get your files, had PAID for them. Nobody is scamming anyone, not from my part, since I offered those files for FREE and they are virus free which anyone who have downloaded them can scan and provide full report they're clean as a fresh shaved pussy!   Maxcheaters once was MaxBastards, which i Liked more. It shall rise again for the old memories sake and not become a den full of pussies who are afraid to do what this forum is ALL about.   my 2 cents
  • Topics

×
×
  • 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