Jump to content

Hopzone & Topzone Vote Reward System.


Recommended Posts

  • 2 months later...

There was a problem on getting server votes.

There was a problem on getting server votes.

 

la vita e bella
no steal make love
no votes here

 

But they haven't changed the  class="rank anonymous tooltip"

 

Can someone share the fix?

or skype

im paying for this fix

pm me please if you have

 

EDIT:

Thank you mirsadse

 

On the line 305 you will see this
 

if (line.contains("Anonymous User Votes"))

Replace it with:
if (line.contains("rank anonymous tooltip"))
 
Edited by rildojr
Link to comment
Share on other sites

  • 1 month later...
### Eclipse Workspace Patch 1.0
#P aCis_gameserver
Index: java/net/sf/l2j/custom/VoteRewardHopzone.java
===================================================================
--- java/net/sf/l2j/custom/VoteRewardHopzone.java	(revision 0)
+++ java/net/sf/l2j/custom/VoteRewardHopzone.java	(revision 0)
@@ -0,0 +1,317 @@
+/*
+ * 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 net.sf.l2j.custom;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Collection;
+import java.util.HashMap;
+
+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 VoteRewardHopzone
+{
+	// 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 HashMap<String, Integer> playerIps = new HashMap<>();
+	
+	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 system initialized.");
+		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				if (Config.ALLOW_HOPZONE_VOTE_REWARD)
+				{
+					reward();
+				}
+				else
+				{
+					return;
+				}
+			}
+		}, checkTime/2, checkTime);
+	}
+	
+	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 Hopzone votes from server with rank "+firstPageRankNeeded+".");
+			}
+			if (currentVotes == -1)
+			{
+				System.out.println("There was a problem on getting Hopzone server votes.");
+			}
+			
+			return;
+		}
+		
+		if (lastVotes == 0)
+		{
+			lastVotes = currentVotes;
+			Announcements.announceToAll("Hopzone: Vote count is "+currentVotes+".");
+			Announcements.announceToAll("Hopzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for reward.");
+			if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
+			{
+				System.out.println("Server votes on hopzone: "+currentVotes);
+				System.out.println("Votes needed for reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+			}
+			if (firstPageVotes-lastVotes <= 0)
+			{
+				Announcements.announceToAll("Hopzone: We are in the top "+firstPageRankNeeded+", so the reward will be big.");
+				if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server is on the top "+firstPageRankNeeded+" of hopzone.");
+				}
+			}
+			else
+			{
+				Announcements.announceToAll("Hopzone: We need "+(firstPageVotes-lastVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of Hopzone for big reward.");
+				if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server votes needed for top "+firstPageRankNeeded+": "+(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)-currentVotes));
+				}
+				Announcements.announceToAll("Hopzone: Everyone has been rewarded with big reward.");
+				Announcements.announceToAll("Hopzone: Current vote count is "+currentVotes+".");
+				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 = 0; i < Config.HOPZONE_BIG_REWARD.length; i++)
+						{
+							p.addItem("Vote reward.", Config.HOPZONE_BIG_REWARD[i][0], Config.HOPZONE_BIG_REWARD[i][1], p, true);
+						}
+					}
+					else
+					{
+						p.sendMessage("Already "+Config.HOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have 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)-currentVotes));
+				}
+				Announcements.announceToAll("Hopzone: Everyone has been rewarded with small reward.");
+				Announcements.announceToAll("Hopzone: Current vote count is "+currentVotes+".");
+				Announcements.announceToAll("Hopzone: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of Hopzone for big reward.");
+				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 = 0; i < Config.HOPZONE_SMALL_REWARD.length; i++)
+						{
+							p.addItem("Vote reward.", Config.HOPZONE_SMALL_REWARD[i][0], Config.HOPZONE_SMALL_REWARD[i][1], p, true);
+						}
+					}
+					else
+					{
+						p.sendMessage("Already "+Config.HOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have 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)-currentVotes));
+				}
+				Announcements.announceToAll("Hopzone: Current vote count is "+currentVotes+".");
+				Announcements.announceToAll("Hopzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for big 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)-currentVotes));
+				}
+				Announcements.announceToAll("Hopzone: Current vote count is "+currentVotes+".");
+				Announcements.announceToAll("Hopzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for small reward.");
+				Announcements.announceToAll("Hopzone: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of Hopzone for big 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("<span class=\"rank anonymous tooltip\"") && i == 1)
+				{
+					i = 0;
+					int votes = Integer.valueOf(line.replaceAll("[^\\d]", ""));
+					return votes;
+				}
+			}
+			
+			br.close();
+			isr.close();
+		}
+		catch (Exception e)
+		{
+			System.out.println(e);
+			System.out.println("Error while getting Hopzone 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("no steal make love")||line.contains("no votes here")||line.contains("bang, you don't have votes")|| line.contains("la vita e bella"))
+				{
+					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;
+	}
+}
\ No newline at end of file
Index: java/net/sf/l2j/custom/VoteRewardTopzone.java
===================================================================
--- java/net/sf/l2j/custom/VoteRewardTopzone.java	(revision 0)
+++ java/net/sf/l2j/custom/VoteRewardTopzone.java	(revision 0)
@@ -0,0 +1,314 @@
+/*
+ * 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 net.sf.l2j.custom;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Collection;
+import java.util.HashMap;
+
+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 VoteRewardTopzone
+{
+	// Configurations.
+	private static String topzoneUrl = Config.TOPZONE_SERVER_LINK;
+	private static String page1Url = Config.TOPZONE_FIRST_PAGE_LINK;
+	private static int voteRewardVotesDifference = Config.TOPZONE_VOTES_DIFFERENCE;
+	private static int firstPageRankNeeded = Config.TOPZONE_FIRST_PAGE_RANK_NEEDED;
+	private static int checkTime = 60*1000*Config.TOPZONE_REWARD_CHECK_TIME;
+	
+	// Don't-touch variables.
+	private static int lastVotes = 0;
+	private static HashMap<String, Integer> playerIps = new HashMap<>();
+	
+	public static void updateConfigurations()
+	{
+		topzoneUrl = Config.TOPZONE_SERVER_LINK;
+		page1Url = Config.TOPZONE_FIRST_PAGE_LINK;
+		voteRewardVotesDifference = Config.TOPZONE_VOTES_DIFFERENCE;
+		firstPageRankNeeded = Config.TOPZONE_FIRST_PAGE_RANK_NEEDED;
+		checkTime = 60*1000*Config.TOPZONE_REWARD_CHECK_TIME;
+	}
+	
+	public static void getInstance()
+	{
+		System.out.println("Topzone - Vote reward system initialized.");
+		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				if (Config.ALLOW_TOPZONE_VOTE_REWARD)
+				{
+					reward();
+				}
+				else
+				{
+					return;
+				}
+			}
+		}, checkTime/2, checkTime);
+	}
+	
+	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 Topzone votes from server with rank "+firstPageRankNeeded+".");
+			}
+			if (currentVotes == -1)
+			{
+				System.out.println("There was a problem on getting Topzone server votes.");
+			}
+			
+			return;
+		}
+		
+		if (lastVotes == 0)
+		{
+			lastVotes = currentVotes;
+			Announcements.announceToAll("Topzone: Current vote count is "+currentVotes+".");
+			Announcements.announceToAll("Topzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for reward.");
+			if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+			{
+				System.out.println("Server votes on topzone: "+currentVotes);
+				System.out.println("Votes needed for reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+			}
+			if (firstPageVotes-lastVotes <= 0)
+			{
+				Announcements.announceToAll("Topzone: We are in the top "+firstPageRankNeeded+" of topzone, so the reward will be big.");
+				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server is on the top "+firstPageRankNeeded+" of topzone.");
+				}
+			}
+			else
+			{
+				Announcements.announceToAll("Topzone: We need "+(firstPageVotes-lastVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of topzone for big reward.");
+				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server votes needed for top "+firstPageRankNeeded+": "+(firstPageVotes-lastVotes));
+				}
+			}
+			return;
+		}
+		
+		if (currentVotes >= lastVotes+voteRewardVotesDifference)
+		{
+			Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
+			if (firstPageVotes-currentVotes <= 0)
+			{
+				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server votes on topzone: "+currentVotes);
+					System.out.println("Server is on the top "+firstPageRankNeeded+" of topzone.");
+					System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes));
+				}
+				Announcements.announceToAll("Topzone: Everyone has been rewarded with big reward.");
+				Announcements.announceToAll("Topzone: Current vote count is "+currentVotes+".");
+				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.TOPZONE_DUALBOXES_ALLOWED)
+						{
+							playerIps.remove(pIp);
+							playerIps.put(pIp, count+1);
+							canReward = true;
+						}
+					}
+					else
+					{
+						canReward = true;
+						playerIps.put(pIp, 1);
+					}
+					if (canReward)
+					{
+						for (int i = 0; i < Config.TOPZONE_BIG_REWARD.length; i++)
+						{
+							p.addItem("Vote reward.", Config.TOPZONE_BIG_REWARD[i][0], Config.TOPZONE_BIG_REWARD[i][1], p, true);
+						}
+					}
+					else
+					{
+						p.sendMessage("Already "+Config.TOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have been rewarded, so this character won't be rewarded.");
+					}
+				}
+				playerIps.clear();
+			}
+			else
+			{
+				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server votes on topzone: "+currentVotes);
+					System.out.println("Server votes needed for top "+firstPageRankNeeded+": "+(firstPageVotes-lastVotes));
+					System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes));
+				}
+				Announcements.announceToAll("Topzone: Everyone has been rewarded with small reward.");
+				Announcements.announceToAll("Topzone: Current vote count is "+currentVotes+".");
+				Announcements.announceToAll("Topzone: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of topzone for big reward.");
+				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.TOPZONE_DUALBOXES_ALLOWED)
+						{
+							playerIps.remove(pIp);
+							playerIps.put(pIp, count+1);
+							canReward = true;
+						}
+					}
+					else
+					{
+						canReward = true;
+						playerIps.put(pIp, 1);
+					}
+					if (canReward)
+					{
+						for (int i = 0; i < Config.TOPZONE_SMALL_REWARD.length; i++)
+						{
+							p.addItem("Vote reward.", Config.TOPZONE_SMALL_REWARD[i][0], Config.TOPZONE_SMALL_REWARD[i][1], p, true);
+						}
+					}
+					else
+					{
+						p.sendMessage("Already "+Config.TOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have been rewarded, so this character won't be rewarded.");
+					}
+				}
+				playerIps.clear();
+			}
+			
+			lastVotes = currentVotes;
+		}
+		else
+		{
+			if (firstPageVotes-currentVotes <= 0)
+			{
+				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server votes on topzone: "+currentVotes);
+					System.out.println("Server is on the top "+firstPageRankNeeded+" of topzone.");
+					System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+				}
+				Announcements.announceToAll("Topzone: Current vote count is "+currentVotes+".");
+				Announcements.announceToAll("Topzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for big reward.");
+			}
+			else
+			{
+				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server votes on topzone: "+currentVotes);
+					System.out.println("Server votes needed for top "+firstPageRankNeeded+": "+(firstPageVotes-lastVotes));
+					System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+				}
+				Announcements.announceToAll("Topzone: Current vote count is "+currentVotes+".");
+				Announcements.announceToAll("Topzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for small reward.");
+				Announcements.announceToAll("Topzone: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of topzone for big reward.");
+			}
+		}
+	}
+	
+	private static int getFirstPageRankVotes()
+	{
+		InputStreamReader isr = null;
+		BufferedReader br = null;
+		
+		try
+		{
+			URLConnection con = new URL(page1Url).openConnection();
+			con.addRequestProperty("User-Agent", "L2TopZone");
+			isr = new InputStreamReader(con.getInputStream());
+			br = new BufferedReader(isr);
+			
+			String line;
+			while ((line = br.readLine()) != null)
+			{
+				if(line.contains("<div class=\"slr\">"+firstPageRankNeeded))
+                {
+					int votes = Integer.valueOf(line.split(">")[4].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(topzoneUrl).openConnection();
+			con.addRequestProperty("User-Agent", "L2TopZone");
+			isr = new InputStreamReader(con.getInputStream());
+			br = new BufferedReader(isr);
+			
+			boolean got = false;
+			
+			String line;
+			while ((line = br.readLine()) != null)
+			{
+				if (line.contains("<div class=\"rank\"><div class=\"votes2\">Votes:<br>") && !got)
+				{
+					got = true;
+					int votes = Integer.valueOf(line.split("<div class=\"rank\"><div class=\"votes2\">Votes:<br>")[1].replace("</div></div>", ""));
+					return votes;
+				}
+			}
+			
+			br.close();
+			isr.close();
+		}
+		catch (Exception e)
+		{
+			System.out.println(e);
+			System.out.println("Error while getting server vote count.");
+		}
+		
+		return -1;
+	}
+}
\ No newline at end of file

I just fixed the code cause Topzone changed some things , its for aCis 300 , working 100%

24m8c9x.jpg

Link to comment
Share on other sites

### Eclipse Workspace Patch 1.0
#P aCis_gameserver
Index: java/net/sf/l2j/custom/VoteRewardHopzone.java
===================================================================
--- java/net/sf/l2j/custom/VoteRewardHopzone.java	(revision 0)
+++ java/net/sf/l2j/custom/VoteRewardHopzone.java	(revision 0)
@@ -0,0 +1,317 @@
+/*
+ * 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 net.sf.l2j.custom;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Collection;
+import java.util.HashMap;
+
+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 VoteRewardHopzone
+{
+	// 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 HashMap<String, Integer> playerIps = new HashMap<>();
+	
+	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 system initialized.");
+		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				if (Config.ALLOW_HOPZONE_VOTE_REWARD)
+				{
+					reward();
+				}
+				else
+				{
+					return;
+				}
+			}
+		}, checkTime/2, checkTime);
+	}
+	
+	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 Hopzone votes from server with rank "+firstPageRankNeeded+".");
+			}
+			if (currentVotes == -1)
+			{
+				System.out.println("There was a problem on getting Hopzone server votes.");
+			}
+			
+			return;
+		}
+		
+		if (lastVotes == 0)
+		{
+			lastVotes = currentVotes;
+			Announcements.announceToAll("Hopzone: Vote count is "+currentVotes+".");
+			Announcements.announceToAll("Hopzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for reward.");
+			if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
+			{
+				System.out.println("Server votes on hopzone: "+currentVotes);
+				System.out.println("Votes needed for reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+			}
+			if (firstPageVotes-lastVotes <= 0)
+			{
+				Announcements.announceToAll("Hopzone: We are in the top "+firstPageRankNeeded+", so the reward will be big.");
+				if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server is on the top "+firstPageRankNeeded+" of hopzone.");
+				}
+			}
+			else
+			{
+				Announcements.announceToAll("Hopzone: We need "+(firstPageVotes-lastVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of Hopzone for big reward.");
+				if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server votes needed for top "+firstPageRankNeeded+": "+(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)-currentVotes));
+				}
+				Announcements.announceToAll("Hopzone: Everyone has been rewarded with big reward.");
+				Announcements.announceToAll("Hopzone: Current vote count is "+currentVotes+".");
+				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 = 0; i < Config.HOPZONE_BIG_REWARD.length; i++)
+						{
+							p.addItem("Vote reward.", Config.HOPZONE_BIG_REWARD[i][0], Config.HOPZONE_BIG_REWARD[i][1], p, true);
+						}
+					}
+					else
+					{
+						p.sendMessage("Already "+Config.HOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have 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)-currentVotes));
+				}
+				Announcements.announceToAll("Hopzone: Everyone has been rewarded with small reward.");
+				Announcements.announceToAll("Hopzone: Current vote count is "+currentVotes+".");
+				Announcements.announceToAll("Hopzone: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of Hopzone for big reward.");
+				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 = 0; i < Config.HOPZONE_SMALL_REWARD.length; i++)
+						{
+							p.addItem("Vote reward.", Config.HOPZONE_SMALL_REWARD[i][0], Config.HOPZONE_SMALL_REWARD[i][1], p, true);
+						}
+					}
+					else
+					{
+						p.sendMessage("Already "+Config.HOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have 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)-currentVotes));
+				}
+				Announcements.announceToAll("Hopzone: Current vote count is "+currentVotes+".");
+				Announcements.announceToAll("Hopzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for big 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)-currentVotes));
+				}
+				Announcements.announceToAll("Hopzone: Current vote count is "+currentVotes+".");
+				Announcements.announceToAll("Hopzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for small reward.");
+				Announcements.announceToAll("Hopzone: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of Hopzone for big 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("<span class=\"rank anonymous tooltip\"") && i == 1)
+				{
+					i = 0;
+					int votes = Integer.valueOf(line.replaceAll("[^\\d]", ""));
+					return votes;
+				}
+			}
+			
+			br.close();
+			isr.close();
+		}
+		catch (Exception e)
+		{
+			System.out.println(e);
+			System.out.println("Error while getting Hopzone 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("no steal make love")||line.contains("no votes here")||line.contains("bang, you don't have votes")|| line.contains("la vita e bella"))
+				{
+					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;
+	}
+}
\ No newline at end of file
Index: java/net/sf/l2j/custom/VoteRewardTopzone.java
===================================================================
--- java/net/sf/l2j/custom/VoteRewardTopzone.java	(revision 0)
+++ java/net/sf/l2j/custom/VoteRewardTopzone.java	(revision 0)
@@ -0,0 +1,314 @@
+/*
+ * 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 net.sf.l2j.custom;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Collection;
+import java.util.HashMap;
+
+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 VoteRewardTopzone
+{
+	// Configurations.
+	private static String topzoneUrl = Config.TOPZONE_SERVER_LINK;
+	private static String page1Url = Config.TOPZONE_FIRST_PAGE_LINK;
+	private static int voteRewardVotesDifference = Config.TOPZONE_VOTES_DIFFERENCE;
+	private static int firstPageRankNeeded = Config.TOPZONE_FIRST_PAGE_RANK_NEEDED;
+	private static int checkTime = 60*1000*Config.TOPZONE_REWARD_CHECK_TIME;
+	
+	// Don't-touch variables.
+	private static int lastVotes = 0;
+	private static HashMap<String, Integer> playerIps = new HashMap<>();
+	
+	public static void updateConfigurations()
+	{
+		topzoneUrl = Config.TOPZONE_SERVER_LINK;
+		page1Url = Config.TOPZONE_FIRST_PAGE_LINK;
+		voteRewardVotesDifference = Config.TOPZONE_VOTES_DIFFERENCE;
+		firstPageRankNeeded = Config.TOPZONE_FIRST_PAGE_RANK_NEEDED;
+		checkTime = 60*1000*Config.TOPZONE_REWARD_CHECK_TIME;
+	}
+	
+	public static void getInstance()
+	{
+		System.out.println("Topzone - Vote reward system initialized.");
+		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				if (Config.ALLOW_TOPZONE_VOTE_REWARD)
+				{
+					reward();
+				}
+				else
+				{
+					return;
+				}
+			}
+		}, checkTime/2, checkTime);
+	}
+	
+	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 Topzone votes from server with rank "+firstPageRankNeeded+".");
+			}
+			if (currentVotes == -1)
+			{
+				System.out.println("There was a problem on getting Topzone server votes.");
+			}
+			
+			return;
+		}
+		
+		if (lastVotes == 0)
+		{
+			lastVotes = currentVotes;
+			Announcements.announceToAll("Topzone: Current vote count is "+currentVotes+".");
+			Announcements.announceToAll("Topzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for reward.");
+			if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+			{
+				System.out.println("Server votes on topzone: "+currentVotes);
+				System.out.println("Votes needed for reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+			}
+			if (firstPageVotes-lastVotes <= 0)
+			{
+				Announcements.announceToAll("Topzone: We are in the top "+firstPageRankNeeded+" of topzone, so the reward will be big.");
+				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server is on the top "+firstPageRankNeeded+" of topzone.");
+				}
+			}
+			else
+			{
+				Announcements.announceToAll("Topzone: We need "+(firstPageVotes-lastVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of topzone for big reward.");
+				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server votes needed for top "+firstPageRankNeeded+": "+(firstPageVotes-lastVotes));
+				}
+			}
+			return;
+		}
+		
+		if (currentVotes >= lastVotes+voteRewardVotesDifference)
+		{
+			Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
+			if (firstPageVotes-currentVotes <= 0)
+			{
+				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server votes on topzone: "+currentVotes);
+					System.out.println("Server is on the top "+firstPageRankNeeded+" of topzone.");
+					System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes));
+				}
+				Announcements.announceToAll("Topzone: Everyone has been rewarded with big reward.");
+				Announcements.announceToAll("Topzone: Current vote count is "+currentVotes+".");
+				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.TOPZONE_DUALBOXES_ALLOWED)
+						{
+							playerIps.remove(pIp);
+							playerIps.put(pIp, count+1);
+							canReward = true;
+						}
+					}
+					else
+					{
+						canReward = true;
+						playerIps.put(pIp, 1);
+					}
+					if (canReward)
+					{
+						for (int i = 0; i < Config.TOPZONE_BIG_REWARD.length; i++)
+						{
+							p.addItem("Vote reward.", Config.TOPZONE_BIG_REWARD[i][0], Config.TOPZONE_BIG_REWARD[i][1], p, true);
+						}
+					}
+					else
+					{
+						p.sendMessage("Already "+Config.TOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have been rewarded, so this character won't be rewarded.");
+					}
+				}
+				playerIps.clear();
+			}
+			else
+			{
+				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server votes on topzone: "+currentVotes);
+					System.out.println("Server votes needed for top "+firstPageRankNeeded+": "+(firstPageVotes-lastVotes));
+					System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes));
+				}
+				Announcements.announceToAll("Topzone: Everyone has been rewarded with small reward.");
+				Announcements.announceToAll("Topzone: Current vote count is "+currentVotes+".");
+				Announcements.announceToAll("Topzone: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of topzone for big reward.");
+				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.TOPZONE_DUALBOXES_ALLOWED)
+						{
+							playerIps.remove(pIp);
+							playerIps.put(pIp, count+1);
+							canReward = true;
+						}
+					}
+					else
+					{
+						canReward = true;
+						playerIps.put(pIp, 1);
+					}
+					if (canReward)
+					{
+						for (int i = 0; i < Config.TOPZONE_SMALL_REWARD.length; i++)
+						{
+							p.addItem("Vote reward.", Config.TOPZONE_SMALL_REWARD[i][0], Config.TOPZONE_SMALL_REWARD[i][1], p, true);
+						}
+					}
+					else
+					{
+						p.sendMessage("Already "+Config.TOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have been rewarded, so this character won't be rewarded.");
+					}
+				}
+				playerIps.clear();
+			}
+			
+			lastVotes = currentVotes;
+		}
+		else
+		{
+			if (firstPageVotes-currentVotes <= 0)
+			{
+				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server votes on topzone: "+currentVotes);
+					System.out.println("Server is on the top "+firstPageRankNeeded+" of topzone.");
+					System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+				}
+				Announcements.announceToAll("Topzone: Current vote count is "+currentVotes+".");
+				Announcements.announceToAll("Topzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for big reward.");
+			}
+			else
+			{
+				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+				{
+					System.out.println("Server votes on topzone: "+currentVotes);
+					System.out.println("Server votes needed for top "+firstPageRankNeeded+": "+(firstPageVotes-lastVotes));
+					System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+				}
+				Announcements.announceToAll("Topzone: Current vote count is "+currentVotes+".");
+				Announcements.announceToAll("Topzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for small reward.");
+				Announcements.announceToAll("Topzone: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of topzone for big reward.");
+			}
+		}
+	}
+	
+	private static int getFirstPageRankVotes()
+	{
+		InputStreamReader isr = null;
+		BufferedReader br = null;
+		
+		try
+		{
+			URLConnection con = new URL(page1Url).openConnection();
+			con.addRequestProperty("User-Agent", "L2TopZone");
+			isr = new InputStreamReader(con.getInputStream());
+			br = new BufferedReader(isr);
+			
+			String line;
+			while ((line = br.readLine()) != null)
+			{
+				if(line.contains("<div class=\"slr\">"+firstPageRankNeeded))
+                {
+					int votes = Integer.valueOf(line.split(">")[4].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(topzoneUrl).openConnection();
+			con.addRequestProperty("User-Agent", "L2TopZone");
+			isr = new InputStreamReader(con.getInputStream());
+			br = new BufferedReader(isr);
+			
+			boolean got = false;
+			
+			String line;
+			while ((line = br.readLine()) != null)
+			{
+				if (line.contains("<div class=\"rank\"><div class=\"votes2\">Votes:<br>") && !got)
+				{
+					got = true;
+					int votes = Integer.valueOf(line.split("<div class=\"rank\"><div class=\"votes2\">Votes:<br>")[1].replace("</div></div>", ""));
+					return votes;
+				}
+			}
+			
+			br.close();
+			isr.close();
+		}
+		catch (Exception e)
+		{
+			System.out.println(e);
+			System.out.println("Error while getting server vote count.");
+		}
+		
+		return -1;
+	}
+}
\ No newline at end of file

I just fixed the code cause Topzone changed some things , its for aCis 300 , working 100%

24m8c9x.jpg

 

GZ SPIDEY with some adapt with this code work on freya and work and topzone and hopzone! GZ!

Link to comment
Share on other sites

  • 4 weeks later...
  • 8 months later...
Exception in thread "GeneralSTPool-8" java.lang.NullPointerException
	at net.sf.l2j.gameserver.model.entity.VoteRewardTopzone.reward(VoteRewardTopzone.java:183)
	at net.sf.l2j.gameserver.model.entity.VoteRewardTopzone$1.run(VoteRewardTopzone.java:65)
	at net.sf.l2j.gameserver.ThreadPoolManager$RunnableWrapper.run(ThreadPoolManager.java:85)

183 line in my code - 

String pIp = p.getClient().getConnection().getInetAddress().getHostAddress();

Maybe it's beacause of offline shops?

Link to comment
Share on other sites

  • 1 month later...

you have to edit your getVotes() on hopzone ...... :) change your getVotes() with mine working aswell :)

 

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

try
{
if(!hopzoneUrl.endsWith(".html"))
hopzoneUrl+=".html";

URLConnection con = new URL(hopzoneUrl).openConnection();


con.addRequestProperty("User-L2Hopzone", "Mozilla/4.76");
isr = new InputStreamReader(con.getInputStream());
br = new BufferedReader(isr);

String line;
while ((line = br.readLine()) != null)
{
if (line.contains("no steal make love")||line.contains("no votes here")||line.contains("bang, you don't have votes")|| line.contains("la vita e bella"))
{
int votes = Integer.valueOf(line.split(">")[2].replace("</span", ""));

return votes;
}
}

br.close();
isr.close();
}
catch (Exception e)
{
System.out.println("[VoteRewardManager]: Problem occured while getting Hopzone votes. Error Trace: " + e.getMessage());
}
return -1;
}
Link to comment
Share on other sites

  • 2 months later...

Does the reward go to all the players or only the players who voted? because i cant test it now. And if it goes to all the players can someone change it so only the players who vote get reward? Thanks.

Link to comment
Share on other sites

  • 6 months later...

Hi, now topzone not working.

No get votes..

 

 
TopzoneFirstPageLink = http://l2topzone.com/lineage2/list
Link to comment
Share on other sites

 

Hi, now topzone not working.

 

No get votes..

 

 
TopzoneFirstPageLink = http://l2topzone.com/lineage2/list

 

http://pastebin.com/ZtZhQw6q

 

Take the new one.

Edited by Devlin
Link to comment
Share on other sites

Hello, i see most of you use old links from l2topzone.com. That why most of you get error and this system will not work.


Try to replace old link with the new one.


 


Old link :



http://l2topzone.com/lineage2/server-list/top.html

is now :



http://l2topzone.com/lineage2/list

Old server info link :



http://l2topzone.com/lineage2/server-info/7737/L2SpiritCustom.html

is now:



http://l2topzone.com/lineage/server-info/7737/l2sp-custom

Also if your vote reward is based on our previews design use this link to get  total votes:



http://l2topzone.com/totalvotes.php?id=YOUR_SERVER_ID

Good luck.


Link to comment
Share on other sites

Guest
This topic is now closed to further replies.



×
×
  • Create New...