Jump to content
  • 0

Topzone Vote Reward On H5


Question

Posted

Hi mxc i've try to change the code on h5

 

Vote reward they dont count i change the font to div but code it's too difference from the other code's

 

Here it is the code if some1 know the fix and they can help me i will appreciate alot ! thanks

 

 

/*
* Copyright (C) 2013 AwakeNz
* 
* 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 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();
}
}

3 answers to this question

Recommended Posts

  • 0
Posted

Change the if inside the while() with this

 

if (inputLine.contains("class=\"votes2\""))
			{
				return Integer.valueOf(inputLine.split(">")[3].replace("</div", "")));
			}

Guest
This topic is now closed to further replies.


×
×
  • Create New...