Jump to content

Recommended Posts

Posted

Have anyone else problem with the votes from Hopzone?

I don't know why but my votereward system don't take the votes anymore..

 

 

Anyone knows something?

 

Thanks in advance!

Posted

show me the code then i will be able to help you.

I mean, it was working before, but now not.

Not only for me, a friend has the same.

I wanted to know if someone else who have a server, if they can get the Hopzone votes or not?

 

 
package net.sf.l2j.gameserver.model.entity;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Collection;

import javolution.util.FastMap;

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.Announcements;
import net.sf.l2j.gameserver.ThreadPoolManager;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
/**
* @author Anarchy
*
*/
public class HopzoneVoteReward
{
// Configurations.
private static String hopzoneUrl = Config.HOPZONE_SERVER_LINK;
private static String page1Url = Config.HOPZONE_FIRST_PAGE_LINK;
private static int voteRewardVotesDifference = Config.HOPZONE_VOTES_DIFFERENCE;
private static int firstPageRankNeeded = Config.HOPZONE_FIRST_PAGE_RANK_NEEDED;
private static int checkTime = 60*1000*Config.HOPZONE_REWARD_CHECK_TIME;

// Don't-touch variables.
private static int lastVotes = 0;
private static FastMap<String, Integer> playerIps = new FastMap<String, Integer>();

public static void updateConfigurations()
{
	hopzoneUrl = Config.HOPZONE_SERVER_LINK;
	page1Url = Config.HOPZONE_FIRST_PAGE_LINK;
	voteRewardVotesDifference = Config.HOPZONE_VOTES_DIFFERENCE;
	firstPageRankNeeded = Config.HOPZONE_FIRST_PAGE_RANK_NEEDED;
	checkTime = 60*1000*Config.HOPZONE_REWARD_CHECK_TIME;
}

public static void getInstance()
{
	System.out.println("[Hopzone Vote Reward] Initialized D:");
	ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
	{
		@Override
		public void run()
		{
			if (Config.ALLOW_HOPZONE_VOTE_REWARD)
			{
				reward();
			}
			else
			{
				return;
			}
		}
	}, checkTime/2, checkTime);
}

private static void reward()
{
	int firstPageVotes = getFirstPageRankVotes();
	int currentVotes = getVotes();

	if (firstPageVotes == -1 || currentVotes == -1)
	{
		if (firstPageVotes == -1)
		{
			System.out.println("There was a problem on getting votes from server with rank "+firstPageRankNeeded+".");
		}
		if (currentVotes == -1)
		{
			System.out.println("There was a problem on getting server votes.");
		}

		return;
	}

	if (lastVotes == 0)
	{
		lastVotes = currentVotes;
		Announcements.getInstance().announceHopzone("Current vote count: "+currentVotes+" | Next reward: "+((currentVotes+voteRewardVotesDifference)));
		if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
		{
			System.out.println("Server votes on hopzone: "+currentVotes);
			System.out.println("Votes needed for reward: "+((lastVotes+voteRewardVotesDifference)));
		}
		if (firstPageVotes-lastVotes <= 0)
		{
			Announcements.getInstance().announceHopzone("Because we are on the front page, players will have a larger reward than usual! Keep it up!");
			if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
			{
				System.out.println("Server is on the first page of hopzone.");
			}
		}
		else
		{
			Announcements.getInstance().announceHopzone("We need "+((lastVotes+voteRewardVotesDifference))+" vote(s) for a large reward!");
			if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
			{
				System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
			}
		}
		return;
	}

	if (currentVotes >= lastVotes+voteRewardVotesDifference)
	{
		Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
		if (firstPageVotes-currentVotes <= 0)
		{
			if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
			{
				System.out.println("Server votes on hopzone: "+currentVotes);
				System.out.println("Server is on the first page of hopzone.");
				System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)));
			}
			Announcements.getInstance().announceHopzone("Because we are on the front page, players will have a larger reward than usual! Keep it up!");
			Announcements.getInstance().announceHopzone("Current vote count: "+currentVotes+" | Next reward: "+((currentVotes+voteRewardVotesDifference)));

			for (L2PcInstance p : pls)
			{
				boolean canReward = false;
				String pIp = p.getClient().getConnection().getInetAddress().getHostAddress();
				if (playerIps.containsKey(pIp))
				{
					int count = playerIps.get(pIp);
					if (count < Config.HOPZONE_DUALBOXES_ALLOWED)
					{
						playerIps.remove(pIp);
						playerIps.put(pIp, count+1);
						canReward = true;
					}
				}
				else
				{
					canReward = true;
					playerIps.put(pIp, 1);
				}
				if (canReward)
				{
					for (int i : Config.HOPZONE_BIG_REWARD.keySet())
					{
						p.addItem("Vote reward.", i, Config.HOPZONE_BIG_REWARD.get(i), p, true);
					}
				}
				else
				{
					p.sendMessage(""+Config.HOPZONE_DUALBOXES_ALLOWED+" character(s) of your IP have already been rewarded, so this character won't be rewarded.");
				}
			}
			playerIps.clear();
		}
		else
		{
			if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
			{
				System.out.println("Server votes on Hopzone: "+currentVotes);
				System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
				System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)));
			}
			Announcements.getInstance().announceHopzone("All online players have been rewarded. Keep it up! (larger reward if server is on front page)");
			Announcements.getInstance().announceHopzone("Current vote count: "+currentVotes+" | Next reward: "+((currentVotes+voteRewardVotesDifference)));
			for (L2PcInstance p : pls)
			{
				boolean canReward = false;
				String pIp = p.getClient().getConnection().getInetAddress().getHostAddress();
				if (playerIps.containsKey(pIp))
				{
					int count = playerIps.get(pIp);
					if (count < Config.HOPZONE_DUALBOXES_ALLOWED)
					{
						playerIps.remove(pIp);
						playerIps.put(pIp, count+1);
						canReward = true;
					}
				}
				else
				{
					canReward = true;
					playerIps.put(pIp, 1);
				}
				if (canReward)
				{
					for (int i : Config.HOPZONE_SMALL_REWARD.keySet())
					{
						p.addItem("Vote reward.", i, Config.HOPZONE_SMALL_REWARD.get(i), p, true);
					}
				}
				else
				{
					p.sendMessage(""+Config.HOPZONE_DUALBOXES_ALLOWED+" characters of your IP have already been rewarded, so this character won't be rewarded.");
				}
			}
			playerIps.clear();
		}

		lastVotes = currentVotes;
	}
	else
	{
		if (firstPageVotes-currentVotes <= 0)
		{
			if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
			{
				System.out.println("Server votes on hopzone: "+currentVotes);
				System.out.println("Server is on the first page of hopzone.");
				System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)));
			}
			Announcements.getInstance().announceHopzone("Current vote count: "+currentVotes+" | Next reward: "+((currentVotes+voteRewardVotesDifference)));
			Announcements.getInstance().announceHopzone("We need "+((lastVotes+voteRewardVotesDifference))+" vote(s) for a large reward!");
		}
		else
		{
			if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
			{
				System.out.println("Server votes on hopzone: "+currentVotes);
				System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
				System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)));
			}
			Announcements.getInstance().announceHopzone("Current vote count: "+currentVotes+" | Next reward: "+((currentVotes+voteRewardVotesDifference)));
			Announcements.getInstance().announceHopzone("We need "+((lastVotes+voteRewardVotesDifference))+" vote(s) for a large reward!");

		}
	}
}

private static int getFirstPageRankVotes()
{
	InputStreamReader isr = null;
	BufferedReader br = null;

	try
	{
		URLConnection con = new URL(page1Url).openConnection();
		con.addRequestProperty("User-Agent", "Mozilla/4.76");
		isr = new InputStreamReader(con.getInputStream());
		br = new BufferedReader(isr);

		String line;
		int i = 0;
		while ((line = br.readLine()) != null)
		{
			if (line.contains("<span class=\"no\">"+firstPageRankNeeded+"</span>"))
			{
				i++;
			}
			if (line.contains("Anonymous Votes") && i == 1)
			{
				i = 0;
				int votes = Integer.valueOf(line.split(">")[1].replace("</span", ""));
				return votes;
			}
		}

		br.close();
		isr.close();
	}
	catch (Exception e)
	{
		System.out.println(e);
		System.out.println("Error while getting server vote count.");
	}

	return -1;
}

private static int getVotes()
{
	InputStreamReader isr = null;
	BufferedReader br = null;

	try
	{
		URLConnection con = new URL(hopzoneUrl).openConnection();
		con.addRequestProperty("User-Agent", "Mozilla/4.76");
		isr = new InputStreamReader(con.getInputStream());
		br = new BufferedReader(isr);

		String line;
		while ((line = br.readLine()) != null)
		{
			if (line.contains("Anonymous User Votes"))
			{
				int votes = Integer.valueOf(line.split(">")[2].replace("</span", ""));
				return votes;
			}
		}

		br.close();
		isr.close();
	}
	catch (Exception e)
	{
		System.out.println(e);
		System.out.println("Error while getting server vote count.");
	}

	return -1;
}
}

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