Boorinio Posted December 24, 2010 Posted December 24, 2010 Hello this code was taken from extreme i made it for interlude and putted some configs it has been tested on a live server everything works fine! Index: java/com/l2jmoxos12/gameserver/instancemanager/AutoVoteRewardHandler.java =================================================================== --- java/com/l2jmoxos12/gameserver/instancemanager/AutoVoteRewardHandler.java (revision 0) +++ java/com/l2jmoxos12/gameserver/instancemanager/AutoVoteRewardHandler.java (revision 0) @@ -0,0 +1,162 @@ +package com.l2jmoxos12.gameserver.instancemanager; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URL; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import com.l2jmoxos12.Config; +import com.l2jmoxos12.L2DatabaseFactory; +import com.l2jmoxos12.gameserver.Announcements; +import com.l2jmoxos12.gameserver.ThreadPoolManager; +import com.l2jmoxos12.gameserver.model.L2ItemInstance; +import com.l2jmoxos12.gameserver.model.L2World; +import com.l2jmoxos12.gameserver.model.actor.instance.L2PcInstance; + +public class AutoVoteRewardHandler +{ + private final String HOPZONE = "Config.HopZone_ID"; + // 60 * 1000(1000milliseconds = 1 second) = 60seconds + private final int initialCheck = 60 * 1000; + // 1800 * 1000(1000milliseconds = 1 second) = 1800seconds = 30minutes + private final int delayForCheck = Config.Delay_for_check * 1000; + private final int[] itemId = {Config.Item_ID}; + private final int[] itemCount = {Config.Item_Count}; + private final int[] maxStack = {Config.Max_Stack}; + private final int votesRequiredForReward = Config.Votes_Required; + // do not change + private int lastVoteCount = 0; + + private AutoVoteRewardHandler() + { + System.out.println("Vote Reward System Initiated."); + ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck); + } + + private class AutoReward implements Runnable + { + public void run() + { + int votes = getVotes(); + System.out.println("Server Votes: " + votes); + if (votes != 0 && getLastVoteCount() != 0 && votes >= getLastVoteCount() + votesRequiredForReward) + { + Connection con = null; + try + { + con = L2DatabaseFactory.getInstance().getConnection(); + PreparedStatement statement = con.prepareStatement("" + + "SELECT" + + " c.charId," + + " c.char_name" + + "FROM" + + " characters AS c" + + "LEFT JOIN" + + " accounts AS a" + + "ON" + + " c.account_name = a.login" + + "WHERE" + + " c.online > 0" + + "GROUP BY" + + " a.lastIP" + + "ORDER BY" + + " c.level" + + "DESC"); + ResultSet rset = statement.executeQuery(); + L2PcInstance player = null; + L2ItemInstance item = null; + while (rset.next()) + { + player = L2World.getInstance().getPlayer("charId"); + if (player != null && !player.getClient().isDetached()) + { + for (int i = 0; i < itemId.length; i++) + { + item = player.getInventory().getItemByItemId(itemId[i]); + if (item == null || item.getCount() < maxStack[i]) + player.addItem("reward", itemId[i], itemCount[i], player, true); + } + } + } + statement.close(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + finally + { + try { if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } + } + + 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(); + } +} Index: java/com/l2jmoxos12/gameserver/GameServer.java =================================================================== --- java/com/l2jmoxos12/gameserver/GameServer.java (revision 4407) +++ java/com/l2jmoxos12/gameserver/GameServer.java (working copy) @@ -83,6 +83,7 @@ import com.l2jmoxos12.gameserver.idfactory.IdFactory; import com.l2jmoxos12.gameserver.instancemanager.AirShipManager; import com.l2jmoxos12.gameserver.instancemanager.AuctionManager; +import com.l2jmoxos12.gameserver.instancemanager.AutoVoteRewardHandler; import com.l2jmoxos12.gameserver.instancemanager.BoatManager; import com.l2jmoxos12.gameserver.instancemanager.CastleManager; import com.l2jmoxos12.gameserver.instancemanager.CastleManorManager; @@ -406,6 +407,8 @@ if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS) OfflineTradersTable.restoreOfflineTraders(); + AutoVoteRewardHandler.getInstance(); + if (Config.DEADLOCK_DETECTOR) { _deadDetectThread = new DeadLockDetector(); Index: java/com/l2jmoxos12/gameserver/Config.java =================================================================== --- java/com/l2jmoxos12/gameserver/Config.java (revision 0) +++ java/com/l2jmoxos12/gameserver/Config.java (revision 0) @@ -0,0 +1,162 @@ public static int Random_Of_Sailren_Spawn; //Vote Reward by Boorinio + public static int HopZone_ID; + public static int Delay_for_check; + public static int Item_ID; + public static int Item_Count; + public static int Max_Stack; + public static int Votes_Required; @@ -32,4 +4,153 @@ CLAN_LEADER_COLOR_CLAN_LEVEL = Integer.parseInt(L2jMoxos12Settings.getProperty("ClanLeaderColorAtClanLevel", "1")); + +HopZone_ID = Integer.parseInt(L2jMoxos12Settings.getProperty("HopZoneID", "www.google.com")); +Delay_for_check = Integer.parseInt(L2jMoxos12Settings.getProperty("Delayforcheck", "600")); +Item_ID = Integer.parseInt(L2jMoxos12Settings.getProperty("ItemID", "3470")); +Item_Count = Integer.parseInt(L2jMoxos12Settings.getProperty("ItemCount", "1")); +Max_Stack = Integer.parseInt(L2jMoxos12Settings.getProperty("MaxStack", "1")); +Votes_Required = Integer.parseInt(L2jMoxos12Settings.getProperty("VotesRequired", "10")); Index: L2jMoxos12/config/l2jmoxos12.properties =================================================================== --- L2jMoxos12/config/l2jmoxos12.properties (revision 0) +++ L2jMoxos12/config/l2jmoxos12.properties (revision 0) @@ -39,6 +39,9 @@ +# ============================= # +#L2jMoxos12 HopZone Java Vote Reward +# ============================= # +# Hopzone Url +#For example http://l2.hopzone.net/lineage2/moreinfo/L2Gang/82066.html +HopZoneID = www.google.com + +# Dealy Check +#This means in every x seconds the Handler will check for vote count +Delayforcheck = 600 + +# Item id +# The reward of your choice +ItemID = 3470 + +# Item Count +# The Count of your choice +ItemCount = 1 + +# MaxStack +# Recommended 1 +MaxStack = 1 + +# Votes Required +# Votes required between rewards +VotesRequired = 10 Quote
Boorinio Posted December 24, 2010 Author Posted December 24, 2010 nice work dude i like you work ;) :o ty man ! Quote
Boorinio Posted December 24, 2010 Author Posted December 24, 2010 Very good at last a free one :P i'm using it in my pack so i said to share it here ;) Quote
FighterBoss Posted December 24, 2010 Posted December 24, 2010 why it writes l2jmoxos and no l2j? Just change it xD . For some personal reason,author write it like that. Quote
Boorinio Posted December 24, 2010 Author Posted December 24, 2010 Because i was using it in my project l2jmoxos12...change it whatever you like! Quote
PiKKa Posted December 24, 2010 Posted December 24, 2010 [javac] C:\Users\Florin\Desktop\java\Promisance\L2_GameServer_It\java\net\sf\l2j\gameserver\instancemanager\AutoVoteRewardHandler.java:179: illegal start of expression [javac] private void setLastVoteCount(int voteCount) [javac] ^ [javac] C:\Users\Florin\Desktop\java\Promisance\L2_GameServer_It\java\net\sf\l2j\gameserver\instancemanager\AutoVoteRewardHandler.java:179: illegal start of expression [javac] private void setLastVoteCount(int voteCount) [javac] ^ [javac] C:\Users\Florin\Desktop\java\Promisance\L2_GameServer_It\java\net\sf\l2j\gameserver\instancemanager\AutoVoteRewardHandler.java:179: ';' expected [javac] private void setLastVoteCount(int voteCount) [javac] ^ [javac] C:\Users\Florin\Desktop\java\Promisance\L2_GameServer_It\java\net\sf\l2j\gameserver\instancemanager\AutoVoteRewardHandler.java:179: ';' expected [javac] private void setLastVoteCount(int voteCount) [javac] ^ [javac] C:\Users\Florin\Desktop\java\Promisance\L2_GameServer_It\java\net\sf\l2j\gameserver\instancemanager\AutoVoteRewardHandler.java:184: illegal start of expression [javac] private int getLastVoteCount() [javac] ^ [javac] C:\Users\Florin\Desktop\java\Promisance\L2_GameServer_It\java\net\sf\l2j\gameserver\instancemanager\AutoVoteRewardHandler.java:184: ';' expected [javac] private int getLastVoteCount() [javac] ^ [javac] C:\Users\Florin\Desktop\java\Promisance\L2_GameServer_It\java\net\sf\l2j\gameserver\instancemanager\AutoVoteRewardHandler.java:189: illegal start of expression [javac] public static AutoVoteRewardHandler getInstance() [javac] ^ [javac] C:\Users\Florin\Desktop\java\Promisance\L2_GameServer_It\java\net\sf\l2j\gameserver\instancemanager\AutoVoteRewardHandler.java:189: illegal start of expression [javac] public static AutoVoteRewardHandler getInstance() [javac] ^ [javac] C:\Users\Florin\Desktop\java\Promisance\L2_GameServer_It\java\net\sf\l2j\gameserver\instancemanager\AutoVoteRewardHandler.java:189: ';' expected [javac] public static AutoVoteRewardHandler getInstance() [javac] ^ [javac] C:\Users\Florin\Desktop\java\Promisance\L2_GameServer_It\java\net\sf\l2j\gameserver\instancemanager\AutoVoteRewardHandler.java:189: ';' expected [javac] public static AutoVoteRewardHandler getInstance() [javac] ^ [javac] C:\Users\Florin\Desktop\java\Promisance\L2_GameServer_It\java\net\sf\l2j\gameserver\instancemanager\AutoVoteRewardHandler.java:200: reached end of file while parsing [javac] } [javac] ^ [javac] 11 errors Quote
Boorinio Posted December 24, 2010 Author Posted December 24, 2010 0 to me and my friend too....are there any errors when you are putting the code? do it manually not by applying the patch Quote
PiKKa Posted December 24, 2010 Posted December 24, 2010 0 to me and my friend too....are there any errors when you are putting the code? do it manually not by applying the patch I did it manually and same.. Quote
Boorinio Posted December 24, 2010 Author Posted December 24, 2010 Do you get this error in compile? 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.