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.

 Share



  • Posts

    • Я понимаю что тебе широкомыслящему все яснее, но есть много НО: 1. Ты постоянно используешь термин "война". Это юридический термин, разве Украина и РФ находятся в состоянии войны? Почему Украина не объяаляет войну в таком случае?  Киев за 3 дня - речь как раз о войне. Вывести из строя центры управления войсками и успокоить наркомана с Банковой не проблема в случае объявления войны. В текущих реалиях этот персонаж видимо для чего то нужен.  2. С чего ты решил что правда идет только с Запада? Потому что тебе так удобно и "тебя" они поддерживают, но есть проблема - Украина всего лишь разменная монета. Ты сам уже писал выше что Америка воюет руками украинцев. Я понимаю ненависть к РФ и тд, но понимание что тебя используют для решение своих проблем не вызывает ощущения что на самом деле тебя используют как марионетку?  И еще немного про правду: в США не раз признавали ложь в своих словах: перед вводом войск в Ирак (когда негр в ООН тряс пробиркой с солью, выдавая ее за хим оружее), устное обещание не расширять НАТО и так далее.  Подумай над этим, может быть неровен час и Украину надуют.  И ваша тетка кстати тоже врала про "зверства военных РФ" (не помню как ее зовут), потом сама призналась во лжи. Объяснения типо она переживала / стресс / и прочее тут не прокатят. Она знала что сочиняет на ходу и этому нет оправдания. Как и твоей истории с военкоматом кстати.  3. Можно линк как в РФ происходит грызня во власти? Перебои в снабжении на фронте это нормальная история, так было всегда и у всех во время военных конфликтов. Я хз чему тут удивляться.  4. Не могу согласиться с тем, что на Украине всегда говорили правду, поскольку советник наркомана Арестович признавался в том, что он врет. 
    • Hi, i'm selling Interface for Gracia Final with Auto Potions, Auto Attribute, Macroloop, AutoSS, On Screen Damage, Extra ShortCut, Class Icons on party and in Target u can see Weapon (with Aug) and Amor. If u want i can add Debuff Timer and Auto Augmented.   Image   Video   Paypal 70USD Binance 50USDT   PM.-
    • Ты по прежнему узко мыслишь. Начиная с "Киев за 3 дня" до того как ваш пыл начал приубавляться с прогрессирующим продвижением и успехами ВСУ. Психологически ты все равно пытаешься защищать свое моральное состояние фантазиями что вы воюете с НАТО, что вы "вторая армия мира великой руцкой империи", придумывая разные оправдания чтоб хоть как-то минимизировать проигрыш этой войны обманывая самого себя. Когда понемногу на подсознании ты начинаешь понимать что возможно все таки Украина все это время говорило правду, а ваше правительство накладывало лапшу вам на уши и продолжает это делать ещё больше и ещё невероятней. Что в эту лож даже тупому идиоту невозможно поверить или хоть как-то оправдать. На текущий момент вся ваша пропаганда уже сыпется, грызня во власти уже происходит, фронт из за нехватки снабжения сыпется, темпы провалены, обычный народ который поддерживал Z начинает открывать уже глаза на правду. Не это ли и есть агония путинского режима? Он сделал все ошибки которые мог сделать и ускорил развал РФ. Дальше уже и не нужно напрягаться, остается только брать попкорн и наблюдать развитие событий. Что касается Лимана, дальше на очереди Луганск и Херсон.  
    • https://disk.yandex.com/d/0AzWmDDcR3sGww
    • Скажу за себя: я никогда не кричал Крым наш и что либо подобное. Более того, я сам был не в восторге от этой движухи, так как из за этого купил новую машину почти в 2 раза дороже чем она стоила до истории с "Крым наш". Пару раз ездил в Крым на машине - я хз что стоило ожидать от этой поедки, но там как была разруха, так и остается. Да, постоили Тавриду может быть в Севастополе что то еще новое, но в целом, стоит съехать с трассы - моментально попадаешь в разруху.  Про то, что будут плевать в лицо - это не новость, это уже давно происходит. Я кстати этого и не понимаю, почему в ответ на плевок не полетит кулак в челюсть. Слишком мягкое политичекское руководство при разговорах с ЕС. Синие мобики на видюшках - это позор, я согласен. С другой стороны меньше таких останется, тем чище будет генофонд. Про Лиман: Да, мячик был на стороне ВСУ. Для РФ ситуация может стать как хуже, так и лучше, время покажет. На фронте не бывает так что всегда везло только одной стороне. НАТО: 99.9% что Украину не возьмут в НАТО. По крайней мере пока конфликт не закончится. В противном случае ни от Украины, ни он НАТО, ни от РФ ничего не останется. Заявления Зеленского выглядит как агония и пустословие для своего народа, дабы показать что он хоть что то делает. P.S. Это уже ни для кого не секрет, что Украина в настоящий момент неофициальный полигон между НАТО и РФ.
  • Topics

×
×
  • 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