Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * This is a script completely developed by Rain^ (?)
- * You are not allowed to sell any copies of it.
- * Since 2.0 (by Zoey76 for L2J Forums):
- * Added logger instead of System.out.println()
- * Moved to Datapack.
- * Reworked AutoReward class.
- * Reworked getVotes() method.
- * Time is in minutes instead of milliseconds.
- * Uses different amount for each item.
- * Only rewards online players, not offline shops.
- * Rewarded players count.
- */
- package custom.VoteEngine;
- import java.io.*;
- import java.net.*;
- import java.util.Collection;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import net.sf.l2j.gameserver.Announcements;
- import net.sf.l2j.gameserver.ThreadPoolManager;
- import net.sf.l2j.gameserver.model.L2World;
- import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
- /**
- * @author Zoey76
- * @version 2.0
- */
- public class AutoVoteRewardHandler
- {
- protected static final Logger _log = Logger.getLogger(AutoVoteRewardHandler.class.getName());
- //URL from your server site at HopZone.net
- //Example: http://l2.hopzone.net/lineage2/moreinfo/YourServer/ID.html
- private final static String _url = "http://l2.hopzone.net/lineage2/details/91914/L2NetherWorld";//Add your URL from HopZone here!
- //Reward all online players each '_votesRequiredForReward' votes.
- private final int _votesRequiredForReward = 1;//
- //Initial check, time in minutes:
- //Default: 1 minute
- private final int initialCheck = 5;
- //Delay interval, time in minutes (do not set it too low):
- //Default: 10 minutes
- private final int delayForCheck = 5;
- //Item Id, Amount.
- private final static int[][] ITEMs =
- {
- { 5575, 10 }, //10 Ancient Adena
- { 57, 1000000 }, //1kk Adena
- };
- //Do not change
- private int _lastVoteCount = 0;
- private AutoVoteRewardHandler()
- {
- _log.info("[AutoVoteRewardHandler]: Vote Reward System Initiated.");
- ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck * 60000, delayForCheck * 60000);
- }
- private class AutoReward implements Runnable
- {
- public void run()
- {
- int votes = getVotes();
- int rewardedPlayers = 0;
- if (votes > -1)
- {
- if ((getLastVoteCount() != 0) && (votes >= (getLastVoteCount() + _votesRequiredForReward)))
- {
- Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
- for (L2PcInstance player : pls)
- {
- if ((player != null) && !player.getClient().isDetached())
- {
- for (int[] reward : ITEMs)
- {
- if (player.getInventory().validateCapacityByItemId(reward[0]))
- {
- player.addItem("reward", reward[0], reward[1], player, true);
- }
- }
- rewardedPlayers++;
- }
- }
- setLastVoteCount(getLastVoteCount() + _votesRequiredForReward);
- }
- else if (getLastVoteCount() == 0)
- {
- setLastVoteCount(votes);
- }
- _log.info("[AutoVoteRewardHandler]: Server Votes: " + votes + ", Rewarded players: " + rewardedPlayers);
- Announcements.getInstance().announceToAll("Server Votes: " + votes + " | Next Reward on " + (getLastVoteCount() + _votesRequiredForReward) + " votes!");
- }
- else
- {
- _log.log(Level.WARNING, "[AutoVoteRewardHandler]: Error retreiving server votes count!");
- }
- }
- }
- private static int getVotes()
- {
- InputStreamReader isr = null;
- BufferedReader in = null;
- int votes = -1;
- try
- {
- URLConnection conn = new URL(_url).openConnection();
- conn.addRequestProperty("User-Agent", "Mozilla/4.76");
- isr = new InputStreamReader(conn.getInputStream());
- in = new BufferedReader(isr);
- String inputLine;
- while (((inputLine = in.readLine()) != null) && (votes == -1))
- {
- if (inputLine.contains("Anonymous User Votes"))
- {
- try
- {
- votes = Integer.valueOf(inputLine.split(">")[2].replace("</span", ""));
- }
- catch (Exception e)
- {
- }
- }
- }
- in.close();
- }
- catch (Exception e)
- {
- _log.log(Level.WARNING, "[AutoVoteRewardHandler]: " + e.getMessage(), e);
- }
- return votes;
- }
- 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();
- }
- public static void main(String[] args)
- {
- //System.out.println("Server votes: " + getVotes());//Just a test.
- AutoVoteRewardHandler.getInstance();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment