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
Boorinio Posted December 24, 2010 Author Posted December 24, 2010 nice work dude i like you work ;) :o ty man !
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 ;)
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.
Boorinio Posted December 24, 2010 Author Posted December 24, 2010 Because i was using it in my project l2jmoxos12...change it whatever you like!
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
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
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..
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now