Jump to content
  • 0

[help] vote reward...


Question

Posted

i have this reward system

package com.l2jserver.gameserver.instancemanager;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;


import com.l2jserver.gameserver.Announcements;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.model.item.instance.L2ItemInstance;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;

public class AutoVoteRewardHandler
{
private final String HOPZONE = "http://l2.hopzone.net/lineage2/moreinfo/L2Worldx20x1000PvP/74078.html";
// 60 * 1000(1000milliseconds = 1 second) = 60seconds
private final int initialCheck = 60 * 1000;
// 1800 * 1000(1000milliseconds = 1 second) = 1800seconds = 30minutes
private final int delayForCheck = 600 * 1000;
private final int[] itemId = {3500, 5000, 6500 };
private final int[] itemCount = { 1, 5, 4};
private final int[] maxStack = { 1, 1, 1 };
private final int votesRequiredForReward = 1;
// do not change
private int lastVoteCount = 0;
private static ArrayList<String> _listedIps;

private AutoVoteRewardHandler()
{
	System.out.println("Vote Reward System Initiated.");
	ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);
}

private class AutoReward implements Runnable
{
	@Override
	public void run()
	{
		int votes = getVotes();
		System.out.println("Server Votes: " + votes);
		if (votes != 0 && getLastVoteCount() != 0 && votes >= getLastVoteCount() + votesRequiredForReward)
		{
			Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
			int onlinePlayers = 0;
			for (L2PcInstance pl : pls)
			{
				if (pl.isOnline() && !pl.getClient().isDetached())
				{
					onlinePlayers++;
				}
			}
			_listedIps = new ArrayList<String>(onlinePlayers);
			L2ItemInstance item;
			for (L2PcInstance player : pls)
			{
				if (player != null && player.isOnline() && !player.getClient().isDetached())
				{
					for (int i = 0; i < itemId.length; i++)
					{
						item = player.getInventory().getItemByItemId(itemId[i]);
						if (item == null || item.getCount() < maxStack[i])
						{
							String host = player.getClient().getConnection().getInetAddress().getHostAddress();
							if (host != null && !_listedIps.contains(host))
								_listedIps.add(host);
							else
								return;

							player.addItem("reward", itemId[i], itemCount[i], player, true);
						}
					}
				}
			}
			setLastVoteCount(getLastVoteCount() + votesRequiredForReward);
		}
		Announcements.getInstance().announceToAll("Server Votes: " + votes + " | Next Reward on " + (getLastVoteCount() + votesRequiredForReward) + " Votes.");
		if (getLastVoteCount() == 0)
		{
			setLastVoteCount(votes);
		}
	}
}

private int getVotes()
{
	URL url = null;
	InputStreamReader isr = null;
	BufferedReader in = null;
	try
	{
		url = new URL(HOPZONE);
		isr = new InputStreamReader(url.openStream());
		in = new BufferedReader(isr);
		String inputLine;
		while ((inputLine = in.readLine()) != null)
		{
			if (inputLine.contains("moreinfo_total_rank_text"))
			{
				return Integer.valueOf(inputLine.split(">")[2].replace("</div", ""));
			}
		}
	}
	catch (IOException e)
	{
		e.printStackTrace();
	}
	finally
	{
		try
		{
			in.close();
		}
		catch (IOException e)
		{
		}
		try
		{
			isr.close();
		}
		catch (IOException e)
		{
		}
	}
	return 0;
}

private void setLastVoteCount(int voteCount)
{
	lastVoteCount = voteCount;
}

private int getLastVoteCount()
{
	return lastVoteCount;
}

public static AutoVoteRewardHandler getInstance()
{
	return SingletonHolder._instance;
}

@SuppressWarnings("synthetic-access")
private static class SingletonHolder
{
	protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler();
}
}

 

its for freya but i wanna use it on H5, why i get warning at "Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();" ?

2 answers to this question

Recommended Posts

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