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.
Note: Your post will require moderator approval before it will be visible.

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