Jump to content
  • 0

Topzone Problem H5


Question

Posted

Heyz MxC i've got Prob with Topzone Reward ! i try to change the readline but nothing !

 

Here is the code of my Vote Reward!



package com.l2jserver.gameserver.instancemanager.votereward;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.Announcements;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;

/**
 * @author ???
 * @reworked fissban
 */

public class VoteRewardTopzone
{
	static Logger _log = Logger.getLogger(VoteRewardTopzone.class.getName());
	
	static final int initialCheck = Config.VOTE_SYSTEM_START_TIME * 1000;
	static final int delayForCheck = Config.VOTE_SYSTEM_CHECK_TIME * 1000;
	int votesneed;
	
	static List<String> _ips = new ArrayList<>();
	static List<String> _accounts = new ArrayList<>();
	
	static int lastVoteCount = 0;
	
	VoteRewardTopzone()
	{
		if (Config.VOTE_SYSTEM_DATABASE_SAVE)
		{
			load();
		}
		
		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);
	}
	
	public class AutoReward implements Runnable
	{
		@Override
		public void run()
		{
			int votes = getVotes();
			_log.info("VoteReward: Current Votes Topzone: " + votes);
			
			if (votes >= (getLastVoteCount() + Config.VOTE_SYSTEM_COUNT))
			{
				Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().valueCollection();
				{
					for (L2PcInstance onlinePlayer : pls)
					{
						if (onlinePlayer.isOnline() && !onlinePlayer.getClient().isDetached() && !_accounts.contains(onlinePlayer.getAccountName()) && !_ips.contains(onlinePlayer.getClient().getConnection().getInetAddress().getHostAddress()))
						{
							String[] parase = Config.VOTE_SYSTEM_ITEM_ID_TOPZONE.split(",");
							String[] parase3 = Config.VOTE_SYSTEM_ITEM_COUNT_TOPZONE.split(",");
							
							for (int o = 0; o < parase.length; o++)
							{
								int parase2 = Integer.parseInt(parase[o]);
								int parase4 = Integer.parseInt(parase3[o]);
								
								onlinePlayer.addItem("vote_reward", parase2, parase4, onlinePlayer, true);
							}
							
							_ips.add(onlinePlayer.getClient().getConnection().getInetAddress().getHostAddress());
							_accounts.add(onlinePlayer.getAccountName());
						}
					}
				}
				
				_log.info("VoteReward Topzone: All players has been rewared!");
				
				Announcements.getInstance().announceToAll("be rewarded!");
				Announcements.getInstance().announceToAll("for Topzone vote!");
				setLastVoteCount(getLastVoteCount() + Config.VOTE_SYSTEM_COUNT);
			}
			
			if (getLastVoteCount() == 0)
			{
				setLastVoteCount(votes);
			}
			
			else if ((((getLastVoteCount() + Config.VOTE_SYSTEM_COUNT) - votes) > Config.VOTE_SYSTEM_COUNT) || (votes > (getLastVoteCount() + Config.VOTE_SYSTEM_COUNT)))
			{
				setLastVoteCount(votes);
			}
			
			votesneed = (getLastVoteCount() + Config.VOTE_SYSTEM_COUNT) - votes;
			
			if (votesneed == 0)
			{
				votesneed = Config.VOTE_SYSTEM_COUNT;
			}
			
			Announcements.getInstance().announceToAll("Our Current vote count is " + votes + ".");
			Announcements.getInstance().announceToAll("We Need " + votesneed + " votes in Topzone!");
			
			_ips.clear();
			_accounts.clear();
		}
	}
	
	public int getVotes()
	{
		URL url = null;
		InputStreamReader isr = null;
		BufferedReader in = null;
		try
		{
			url = new URL(Config.VOTE_SYSTEM_PAGE_TOPZONE);
			URLConnection con = url.openConnection();
			con.addRequestProperty("User-Agent", "Mozilla/4.76");
			isr = new InputStreamReader(con.getInputStream());
			in = new BufferedReader(isr);
			String inputLine;
			
			while ((inputLine = in.readLine()) != null)
			{
				if (inputLine.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\">"))
				{
					String i = inputLine.replace("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\">", "");
					i = i.replace("</font></b></div></td></tr>", "");
					i = i.trim();
					int o = Integer.parseInt(i);
					return Integer.valueOf(o);
				}
			}
		}
		catch (IOException e)
		{
			Announcements.getInstance().announceToAll("Topzone is offline");
			_log.warning("AutoVoteRewardHandler: " + e);
		}
		return 0;
	}
	
	public void setLastVoteCount(int voteCount)
	{
		lastVoteCount = voteCount;
	}
	
	public int getLastVoteCount()
	{
		return lastVoteCount;
	}
	
	public void load()
	{
		int votes = 0;
		
		try (Connection con = L2DatabaseFactory.getInstance().getConnection())
		{
			PreparedStatement statement = con.prepareStatement("SELECT vote FROM votetopzone LIMIT 1");// DB votetopzone
			ResultSet rset = statement.executeQuery();
			
			while (rset.next())
			{
				votes = rset.getInt("vote");
			}
			rset.close();
			statement.close();
		}
		catch (Exception e)
		{
			_log.log(Level.WARNING, "data error on vote Topzone: ", e);
		}
		
		setLastVoteCount(votes);
	}
	
	public void save()
	{
		try (Connection con = L2DatabaseFactory.getInstance().getConnection())
		{
			PreparedStatement statement = con.prepareStatement("UPDATE votetopzone SET vote = ? WHERE id=1");
			statement.setInt(1, getLastVoteCount());
			statement.execute();
			statement.close();
		}
		catch (Exception e)
		{
			_log.log(Level.WARNING, "data error on vote Topzone: ", e);
		}
	}
	
	public static VoteRewardTopzone getInstance()
	{
		return SingletonHolder._instance;
	}
	
	static class SingletonHolder
	{
		protected static final VoteRewardTopzone _instance = new VoteRewardTopzone();
	}
}

if some1 know how can i fix it !

2 answers to this question

Recommended Posts

  • 0
Posted (edited)

Already answered a couple of times.

W/e here you go

-                                              con.addRequestProperty("User-Agent", "Mozilla/4.76");
+                                              con.addRequestProperty("User-Agent", "L2TopZone");
Edited by `NeverMore

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



×
×
  • Create New...