marcose Posted July 12, 2012 Posted July 12, 2012 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 Quote
™® Stergios ®™ Posted July 15, 2012 Posted July 15, 2012 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"))" Quote
seven2099 Posted July 16, 2012 Posted July 16, 2012 great stuff man i just had a few questions but i guess this is old no? Quote
marcose Posted July 17, 2012 Author Posted July 17, 2012 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. Quote
marcose Posted July 18, 2012 Author Posted July 18, 2012 great stuff man i just had a few questions but i guess this is old no? SPAM! minimum 300 post to see this Quote
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.