Jump to content

[JAVA][HOT] Multiple site support vote reward system


Recommended Posts

Hello everyone, here I make a vote system for a firend but him dont want to use it anymore then I will share here.

 

Support these sites:

http://l2.hopzone.net/

http://l2topzone.com/

http://www.gtop100.com/

IMPORTANT

- Test it.

- I dont help to adapt it.

- Missing: No config file, just the core.

- Dont share it anywhere whitout credits (Like here http://adminsprol2.com/ total dumbasses).

- I chose 300 post also the pepole contribute more in maxcheaters and make happy maxtor :P and prevent noobs reshare whitout credits (So, dont share it or quote me in the topic).

 

/*
* 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.handler;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

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 OPhE
*/
public class AutoVoteRewardHandler
{
private static int _minForStart = 5;
private static int _minForPool = 5;
private static String _Url = "";
int[][] _items = {{1111, 2}, {8888,7}}; // {{ITEM ID, QUANTY}, {ITEM ID, QUANTY}}

/* DONT TOUCH FROM HERE IF YOU DONT KNOW WHAT ARE YOU DOING */
int votesForReward = 10;
int lastVotes = 0;
int currentVotes = 0;
int _operation = 0;


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

public AutoVoteRewardHandler()
{
	lastVotes = getVotes();
	ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
	{

		@Override
		public void run()
		{
			currentVotes = getVotes();
			_operation = currentVotes - lastVotes;
			if(_operation >= votesForReward)
			{
				int i = _operation;
				for(L2PcInstance pc : L2World.getInstance().getAllPlayersArray())
					for(int item[] : _items)
						pc.addItem("votereward", item[0], item[1] * i - (i % 1), pc, true);
				if(i - (i % 1) > 1)
					Announcements.getInstance().announceToAll("All players rewared " + (i - (i % 1)) + " times by vote system");
				else
					Announcements.getInstance().announceToAll("All players rewared by vote system");
			} else
				Announcements.getInstance().announceToAll("We need " + _operation + " votes more for reward all players.");
		}
	}, _minForStart * 60000, _minForPool * 60000);
}

public static int getVotes()
{
	String data1 = null;
	int data2 = 0;
	if(_Url.startsWith("http://l2.hopzone.net/"))
		data1= "<li><span class=\"rank anonymous tooltip\" title=\"Anonymous User Votes\">";
	else if(_Url.startsWith("http://l2topzone.com/"))
		data1 = "<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\">";
	else if(_Url.startsWith("http://www.gtop100.com/"))
	{
		DateFormat dateFormat = new SimpleDateFormat("yyyy-M-d");
		Date date = new Date();
		data1 = "<div class=\"barhcaption\" style=\"line-height:17px; width:90px;\">"+ dateFormat.format(date) +"</div>";
		data2 = 2;
	}


	if(data1 != null)
		try {
			URL url = new URL(_Url);
			try {
				URLConnection connection = url.openConnection();
		        connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401");
		        
		        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
		        String line;
		        boolean onix = false;
		        int io = 0;
				while((line = in.readLine()) != null)
				{
					if(line.contains(data1))
						onix = true;
					if(onix)
					{
						if(io >= data2)
							return Integer.parseInt(line.replaceAll("\\<.*?\\>", "").trim());
						io++;
					}
				}

			} catch (IOException e) {
				e.printStackTrace();
			}

		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
	return 0;
}

private static class SingletonHolder
{
	protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler();
}
}

 

To start it call:

AutoVoteRewardHandler.getInstance();

 

Credits: Me (OPhE)

I used these info to make it:

- http://docs.oracle.com/javase/1.4.2/docs/api/java/net/URL.html

- http://discuss.itacumens.com/index.php?topic=44801.0

- http://stackoverflow.com/questions/2793150/how-to-use-java-net-urlconnection-to-fire-and-handle-http-requests

Link to comment
Share on other sites

Need a fix . : "else if(_Url.startsWith("http://www.gtop100.com/"))"

 

By setting startsWith and then http://www.gtop......

Is a terrible mistake, If the user will use www.gtop .... or http://gtop100..... will be false.

 

So its better to do it . : "else if(_Url.contains("gtop100.com"))"

Link to comment
Share on other sites

Need a fix . : "else if(_Url.startsWith("http://www.gtop100.com/"))"

 

By setting startsWith and then http://www.gtop......

Is a terrible mistake, If the user will use www.gtop .... or http://gtop100..... will be false.

 

So its better to do it . : "else if(_Url.contains("gtop100.com"))"

Please be informed before post:

http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#startsWith%28java.lang.String%29

 

String object as determined by the equals(Object) method.

Link to comment
Share on other sites

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock