Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.l2jfrozen.gameserver.handler;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
- import java.util.Set;
- import org.apache.log4j.Level;
- import org.apache.log4j.Logger;
- import com.l2jfrozen.Config;
- import com.l2jfrozen.gameserver.model.L2World;
- import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jfrozen.gameserver.model.entity.Announcements;
- import com.l2jfrozen.gameserver.powerpak.PowerPakConfig;
- import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
- /**
- * @author L2jFrozen <br>
- * <br>
- * Network working with L2jFrozen AutoVoteReward: <br>
- * Hopzone -> http://l2.hopzone.net/ <br>
- * Topzone -> http://l2topzone.com/ <br>
- * L2network -> http://l2network.eu/ <br>
- */
- public class AutoVoteRewardHandler
- {
- protected static final Logger LOGGER = Logger.getLogger(AutoVoteRewardHandler.class);
- protected List<String> already_rewarded;
- private int _l2networkVotesCount = 0;
- private int _hopzoneVotesCount = 0;
- private int _topzoneVotesCount = 0;
- protected List<String> _already_rewarded;
- protected static boolean _l2network = false;
- protected static boolean _topzone = false;
- protected static boolean _hopzone = false;
- private AutoVoteRewardHandler()
- {
- LOGGER.info("Vote Reward System Initiated.");
- if (_hopzone)
- {
- int hopzone_votes = getHopZoneVotes();
- if (hopzone_votes == -1)
- {
- hopzone_votes = 0;
- }
- setHopZoneVoteCount(hopzone_votes);
- }
- if (_l2network)
- {
- int l2network_votes = getL2NetworkVotes();
- if (l2network_votes == -1)
- {
- l2network_votes = 0;
- }
- setL2NetworkVoteCount(l2network_votes);
- }
- if (_topzone)
- {
- int topzone_votes = getTopZoneVotes();
- if (topzone_votes == -1)
- {
- topzone_votes = 0;
- }
- setTopZoneVoteCount(topzone_votes);
- }
- ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), PowerPakConfig.VOTES_SYSYEM_INITIAL_DELAY, PowerPakConfig.VOTES_SYSYEM_STEP_DELAY);
- }
- protected class AutoReward implements Runnable
- {
- @SuppressWarnings("unused")
- @Override
- public void run()
- {
- final int minutes = (PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 1000) / 60;
- if (_hopzone)
- {
- final int hopzone_votes = getHopZoneVotes();
- if (hopzone_votes != -1)
- {
- LOGGER.info("Server votes on HopZone: " + hopzone_votes);
- LOGGER.info("Votes needed for reward: " + (getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + "");
- Announcements.getInstance().PartyAnnounce("Hopzone: Vote count is " + hopzone_votes + ".");
- if (hopzone_votes != 0 && hopzone_votes >= getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
- {
- _already_rewarded = new ArrayList<>();
- final Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
- LOGGER.info("HopZone: All players got their reward ");
- Announcements.getInstance().PartyAnnounce("Hopzone: All players got their reward.");
- // L2ItemInstance item;
- for (final L2PcInstance player : pls)
- {
- if (player != null && !player.isInOfflineMode() && player.isOnline() == 1)
- {
- if (player._active_boxes <= 1 || (player._active_boxes > 1 && checkSingleBox(player)))
- {
- final Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
- for (final Integer i : items)
- {
- // item = player.getInventory().getItemByItemId(i);
- // TODO: check on maxstack for item
- player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);
- player.sendMessage("You have been rewarded for your votes, Thanks!");
- }
- }
- }
- }
- setHopZoneVoteCount(hopzone_votes);
- }
- Announcements.getInstance().PartyAnnounce("Hopzone: We need " + (getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes to get rewards.");
- // site web
- Announcements.getInstance().PartyAnnounce("Server Site: " + PowerPakConfig.SERVER_WEB_SITE);
- }
- }
- if (_topzone && _hopzone && PowerPakConfig.VOTES_SYSYEM_STEP_DELAY > 0)
- {
- try
- {
- Thread.sleep(PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 2);
- }
- catch (final InterruptedException e)
- {
- if (Config.ENABLE_ALL_EXCEPTIONS)
- e.printStackTrace();
- }
- }
- if (_topzone)
- {
- final int topzone_votes = getTopZoneVotes();
- if (topzone_votes != -1)
- {
- LOGGER.info("Server votes on TopZone: " + topzone_votes);
- LOGGER.info("Votes needed for Reward: " + (getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + "");
- Announcements.getInstance().PartyAnnounce("Topzone: Votes count is " + topzone_votes + ".");
- if (topzone_votes != 0 && topzone_votes >= getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
- {
- _already_rewarded = new ArrayList<>();
- final Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
- LOGGER.info("Topzone: All players got their reward ");
- Announcements.getInstance().PartyAnnounce("Topzone: All players got their reward.");
- // L2ItemInstance item;
- for (final L2PcInstance player : pls)
- {
- if (player != null && !player.isInOfflineMode() && player.isOnline() == 1)
- {
- if (player._active_boxes <= 1 || (player._active_boxes > 1 && checkSingleBox(player)))
- {
- final Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
- for (final Integer i : items)
- {
- // item = player.getInventory().getItemByItemId(i);
- // TODO: check on maxstack for item
- player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);
- player.sendMessage("You have been rewarded for your votes, Thanks!");
- }
- }
- }
- }
- setTopZoneVoteCount(topzone_votes);
- }
- Announcements.getInstance().PartyAnnounce("Topzone: We need " + (getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes to get rewards.");
- // site web
- Announcements.getInstance().PartyAnnounce("Server Site: " + PowerPakConfig.SERVER_WEB_SITE);
- }
- }
- if (_topzone && _hopzone && _l2network && PowerPakConfig.VOTES_SYSYEM_STEP_DELAY > 0)
- {
- try
- {
- Thread.sleep(PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 2);
- }
- catch (final InterruptedException e)
- {
- if (Config.ENABLE_ALL_EXCEPTIONS)
- e.printStackTrace();
- }
- }
- if (_l2network)
- {
- final int l2network_votes = getL2NetworkVotes();
- if (l2network_votes != -1)
- {
- LOGGER.info("Server votes L2Network Votes: " + l2network_votes);
- Announcements.getInstance().PartyAnnounce("L2Network: Votes count is " + l2network_votes + ".");
- if (l2network_votes != 0 && l2network_votes >= getL2NetworkVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
- {
- already_rewarded = new ArrayList<>();
- final Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
- Announcements.getInstance().PartyAnnounce("L2Netowrk: All players got their reward.");
- // L2ItemInstance item;
- for (final L2PcInstance player : pls)
- {
- if (player != null && !player.isInOfflineMode() && player.isOnline() == 1)
- {
- if (player._active_boxes <= 1 || (player._active_boxes > 1 && checkSingleBox(player)))
- {
- final Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
- for (final Integer i : items)
- {
- // item = player.getInventory().getItemByItemId(i);
- // TODO: check on maxstack for item
- player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);
- player.sendMessage("You have been rewarded for your votes, Thanks!");
- }
- }
- }
- }
- setL2NetworkVoteCount(l2network_votes);
- }
- Announcements.getInstance().PartyAnnounce("L2Network: We need " + (getL2NetworkVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes to get rewards.");
- // site web
- Announcements.getInstance().PartyAnnounce("Server Site: " + PowerPakConfig.SERVER_WEB_SITE);
- }
- }
- }
- }
- // Check boxes
- protected boolean checkSingleBox(final L2PcInstance player)
- {
- if (player == null)
- return false;
- if (player.getClient() != null && player.getClient().getConnection() != null && !player.getClient().getConnection().isClosed() && player.isOnline() == 1 && !player.isInOfflineMode())
- {
- final String playerip = player.getClient().getConnection().getInetAddress().getHostAddress();
- if (_already_rewarded.contains(playerip))
- return false;
- _already_rewarded.add(playerip);
- return true;
- }
- // if no connection (maybe offline shop) dnt reward
- return false;
- }
- public static int getHopZoneVotes()
- {
- int votes = -1;
- try
- {
- final URL obj = new URL(PowerPakConfig.VOTES_SITE_HOPZONE_URL);
- final HttpURLConnection con = (HttpURLConnection) obj.openConnection();
- con.addRequestProperty("User-Agent", "L2Hopzone");
- con.setConnectTimeout(5000);
- final int responseCode = con.getResponseCode();
- if (responseCode == 200)
- {
- try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())))
- {
- String line;
- while ((line = in.readLine()) != null)
- {
- if (line.contains("Total Votes"))
- {
- String inputLine = line.split(">")[2].replace("</span", "");
- votes = Integer.parseInt(inputLine);
- break;
- }
- }
- }
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- System.out.println("HOPZONE is offline. We will check reward as it will be online again.");
- }
- return votes;
- }
- public static int getTopZoneVotes()
- {
- int votes = -1;
- try
- {
- final URL obj = new URL(PowerPakConfig.VOTES_SITE_TOPZONE_URL);
- final HttpURLConnection con = (HttpURLConnection) obj.openConnection();
- con.addRequestProperty("User-Agent", "L2TopZone");
- con.setConnectTimeout(5000);
- final int responseCode = con.getResponseCode();
- if (responseCode == 200)
- {
- try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())))
- {
- String inputLine;
- while ((inputLine = in.readLine()) != null)
- {
- votes = Integer.valueOf(inputLine);
- break;
- }
- }
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- System.out.println("TOPZONE is offline. We will check reward as it will be online again.");
- }
- return votes;
- }
- public static int getL2NetworkVotes()
- {
- int votes = -1;
- try
- {
- final URL obj = new URL(PowerPakConfig.VOTES_SITE_L2NETWORK_URL);
- final HttpURLConnection con = (HttpURLConnection) obj.openConnection();
- con.addRequestProperty("User-Agent", "L2Network");
- con.setConnectTimeout(5000);
- final int responseCode = con.getResponseCode();
- if (responseCode == 200)
- {
- try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())))
- {
- String inputLine;
- while ((inputLine = in.readLine()) != null)
- {
- if (inputLine.contains("color:#e7ebf2"))
- {
- votes = Integer.valueOf(inputLine.split(">")[2].replace("</b", ""));
- break;
- }
- }
- }
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- System.out.println("NetWork is offline. We will check reward as it will be online again.");
- }
- return votes;
- }
- protected void setHopZoneVoteCount(final int voteCount)
- {
- _hopzoneVotesCount = voteCount;
- }
- protected int getHopZoneVoteCount()
- {
- return _hopzoneVotesCount;
- }
- protected void setTopZoneVoteCount(final int voteCount)
- {
- _topzoneVotesCount = voteCount;
- }
- protected int getTopZoneVoteCount()
- {
- return _topzoneVotesCount;
- }
- protected void setL2NetworkVoteCount(final int voteCount)
- {
- _l2networkVotesCount = voteCount;
- }
- protected int getL2NetworkVoteCount()
- {
- return _l2networkVotesCount;
- }
- public static AutoVoteRewardHandler getInstance()
- {
- Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF);
- if (PowerPakConfig.VOTES_SITE_HOPZONE_URL != null && !PowerPakConfig.VOTES_SITE_HOPZONE_URL.equals(""))
- _hopzone = true;
- if (PowerPakConfig.VOTES_SITE_TOPZONE_URL != null && !PowerPakConfig.VOTES_SITE_TOPZONE_URL.equals(""))
- _topzone = true;
- if (PowerPakConfig.VOTES_SITE_L2NETWORK_URL != null && !PowerPakConfig.VOTES_SITE_L2NETWORK_URL.equals(""))
- _l2network = true;
- if (_topzone || _hopzone || _l2network)
- return SingletonHolder._instance;
- return null;
- }
- @SuppressWarnings("synthetic-access")
- private static class SingletonHolder
- {
- protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement