Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Hopzone/topzone/network Vote Reward

Iniciado por Swarlog, Sep 01, 2022, 12:06 AM

Tema anterior - Siguiente tema

Swarlog

Index: config/events.properties
===================================================================
--- config/events.properties (revision 2)
+++ config/events.properties (working copy)
@@ -241,4 +241,61 @@
 AltFishChampionshipReward2 = 500000
 AltFishChampionshipReward3 = 300000
 AltFishChampionshipReward4 = 200000
-AltFishChampionshipReward5 = 100000
\ No newline at end of file
+AltFishChampionshipReward5 = 100000
+
+# Vote reward for Network.
+AllowNetworkVoteReward = False
+# Vote reward server link. (IMPORTANT!!!! Always add .html at the end of the link)
+NetworkServerLink =
+# Votes for next reward needed.
+NetworkVotesDifference = 4
+# Minutes between rewards.
+# Eg. You put 5 it checks every 5 minutes for reward.
+NetworkRewardCheckTime = 5
+# Reward(s).
+NetworkReward = 3481,5;
+# Network reward max dual boxes reward.
+# For example if you put 2 and someone has 3 boxes open 2 will be rewarded.
+NetworkDuaboxesAllowed = 1
+# Game server console report.
+# If set to true, game server console will get a report of
+# current vote count, votes needed for next reward and votes needed for first page.
+AllowNetworkGameServerReport = False
+
+# Vote reward for Topzone.
+AllowTopzoneVoteReward = False
+# Vote reward server link. (IMPORTANT!!!! Always add .html at the end of the link)
+TopzoneServerLink =
+# Votes for next reward needed.
+TopzoneVotesDifference = 4
+# Minutes between rewards.
+# Eg. You put 5 it checks every 5 minutes for reward.
+TopzoneRewardCheckTime = 5
+# Reward(s).
+TopzoneReward = 3481,5;
+# Topzone reward max dual boxes reward.
+# For example if you put 2 and someone has 3 boxes open 2 will be rewarded.
+TopzoneDuaboxesAllowed = 1
+# Game server console report.
+# If set to true, game server console will get a report of
+# current vote count, votes needed for next reward and votes needed for first page.
+AllowTopzoneGameServerReport = False
+
+# Vote reward for Hopzone.
+AllowHopzoneVoteReward = False
+# Vote reward server link. (IMPORTANT!!!! Always add .html at the end of the link)
+HopzoneServerLink =
+# Votes for next reward needed.
+HopzoneVotesDifference = 4
+# Minutes between rewards.
+# Eg. You put 5 it checks every 5 minutes for reward.
+HopzoneRewardCheckTime = 5
+# Reward(s).
+HopzoneReward = 3481,5;
+# Topzone reward max dual boxes reward.
+# For example if you put 2 and someone has 3 boxes open 2 will be rewarded.
+HopzoneDuaboxesAllowed = 1
+# Game server console report.
+# If set to true, game server console will get a report of
+# current vote count, votes needed for next reward and votes needed for first page.
+AllowHopzoneGameServerReport = False
\ No newline at end of file
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java (revision 6)
+++ java/net/sf/l2j/Config.java (working copy)
@@ -222,6 +222,29 @@
  public static int ALT_FISH_CHAMPIONSHIP_REWARD_4;
  public static int ALT_FISH_CHAMPIONSHIP_REWARD_5;
 
+ /** Vote reward */
+ public static boolean ALLOW_NETWORK_VOTE_REWARD;
+ public static String NETWORK_SERVER_LINK;
+ public static int NETWORK_VOTES_DIFFERENCE;
+ public static int NETWORK_REWARD_CHECK_TIME;
+ public static Map<Integer, Integer> NETWORK_REWARD = new HashMap<>();
+ public static int NETWORK_DUALBOXES_ALLOWED;
+ public static boolean ALLOW_NETWORK_GAME_SERVER_REPORT;
+ public static boolean ALLOW_TOPZONE_VOTE_REWARD;
+ public static String TOPZONE_SERVER_LINK;
+ public static int TOPZONE_VOTES_DIFFERENCE;
+ public static int TOPZONE_REWARD_CHECK_TIME;
+ public static Map<Integer, Integer> TOPZONE_REWARD = new HashMap<>();
+ public static int TOPZONE_DUALBOXES_ALLOWED;
+ public static boolean ALLOW_TOPZONE_GAME_SERVER_REPORT;
+ public static boolean ALLOW_HOPZONE_VOTE_REWARD;
+ public static String HOPZONE_SERVER_LINK;
+ public static int HOPZONE_VOTES_DIFFERENCE;
+ public static int HOPZONE_REWARD_CHECK_TIME;
+ public static Map<Integer, Integer> HOPZONE_REWARD = new HashMap<>();
+ public static int HOPZONE_DUALBOXES_ALLOWED;
+ public static boolean ALLOW_HOPZONE_GAME_SERVER_REPORT;
+
  // --------------------------------------------------
  // GeoEngine
  // --------------------------------------------------
@@ -911,6 +934,46 @@
  ALT_FISH_CHAMPIONSHIP_REWARD_3 = events.getProperty("AltFishChampionshipReward3", 300000);
  ALT_FISH_CHAMPIONSHIP_REWARD_4 = events.getProperty("AltFishChampionshipReward4", 200000);
  ALT_FISH_CHAMPIONSHIP_REWARD_5 = events.getProperty("AltFishChampionshipReward5", 100000);
+
+        ALLOW_NETWORK_VOTE_REWARD = events.getProperty("AllowNetworkVoteReward", false);
+        NETWORK_SERVER_LINK = events.getProperty("NetworkServerLink", "");
+        NETWORK_VOTES_DIFFERENCE = events.getProperty("NetworkVotesDifference", 5);
+        NETWORK_REWARD_CHECK_TIME = events.getProperty("NetworkRewardCheckTime", 5);
+        String NETWORK_SMALL_REWARD_VALUE = events.getProperty("NetworkReward", "57,100000000;");
+        String[] NETWORK_small_reward_splitted_1 = NETWORK_SMALL_REWARD_VALUE.split(";");
+        for (String i : NETWORK_small_reward_splitted_1)
+        {
+        String[] NETWORK_small_reward_splitted_2 = i.split(",");
+        NETWORK_REWARD.put(Integer.parseInt(NETWORK_small_reward_splitted_2[0]), Integer.parseInt(NETWORK_small_reward_splitted_2[1]));
+        }
+        NETWORK_DUALBOXES_ALLOWED = events.getProperty("NetworkDualboxesAllowed", 1);
+        ALLOW_NETWORK_GAME_SERVER_REPORT = events.getProperty("AllowNetworkGameServerReport", false);
+        ALLOW_TOPZONE_VOTE_REWARD = events.getProperty("AllowTopzoneVoteReward", false);
+        TOPZONE_SERVER_LINK = events.getProperty("TopzoneServerLink", "");
+        TOPZONE_VOTES_DIFFERENCE = events.getProperty("TopzoneVotesDifference", 5);
+        TOPZONE_REWARD_CHECK_TIME = events.getProperty("TopzoneRewardCheckTime", 5);
+        String TOPZONE_SMALL_REWARD_VALUE = events.getProperty("TopzoneReward", "57,100000000;");
+        String[] topzone_small_reward_splitted_1 = TOPZONE_SMALL_REWARD_VALUE.split(";");
+        for (String i : topzone_small_reward_splitted_1)
+        {
+        String[] topzone_small_reward_splitted_2 = i.split(",");
+        TOPZONE_REWARD.put(Integer.parseInt(topzone_small_reward_splitted_2[0]), Integer.parseInt(topzone_small_reward_splitted_2[1]));
+        }
+        TOPZONE_DUALBOXES_ALLOWED = events.getProperty("TopzoneDualboxesAllowed", 1);
+        ALLOW_TOPZONE_GAME_SERVER_REPORT = events.getProperty("AllowTopzoneGameServerReport", false);
+        ALLOW_HOPZONE_VOTE_REWARD = events.getProperty("AllowHopzoneVoteReward", false);
+        HOPZONE_SERVER_LINK = events.getProperty("HopzoneServerLink", "");
+        HOPZONE_VOTES_DIFFERENCE = events.getProperty("HopzoneVotesDifference", 5);
+        HOPZONE_REWARD_CHECK_TIME = events.getProperty("HopzoneRewardCheckTime", 5);
+        String HOPZONE_SMALL_REWARD_VALUE = events.getProperty("HopzoneReward", "57,100000000;");
+        String[] hopzone_small_reward_splitted_1 = HOPZONE_SMALL_REWARD_VALUE.split(";");
+        for (String i : hopzone_small_reward_splitted_1)
+        {
+        String[] hopzone_small_reward_splitted_2 = i.split(",");
+        HOPZONE_REWARD.put(Integer.parseInt(hopzone_small_reward_splitted_2[0]), Integer.parseInt(hopzone_small_reward_splitted_2[1]));
+        }
+        HOPZONE_DUALBOXES_ALLOWED = events.getProperty("HopzoneDualboxesAllowed", 1);
+        ALLOW_HOPZONE_GAME_SERVER_REPORT = events.getProperty("AllowHopzoneGameServerReport", false);
  }
 
  /**
Index: java/net/sf/l2j/gameserver/GameServer.java
===================================================================
--- java/net/sf/l2j/gameserver/GameServer.java (revision 5)
+++ java/net/sf/l2j/gameserver/GameServer.java (working copy)
@@ -120,6 +120,7 @@
 import net.sf.l2j.gameserver.taskmanager.ShadowItemTaskManager;
 import net.sf.l2j.gameserver.taskmanager.TaskManager;
 import net.sf.l2j.gameserver.taskmanager.WaterTaskManager;
+import net.sf.l2j.gameserver.votereward.VoteSystem;
 import net.sf.l2j.gameserver.xmlfactory.XMLDocumentFactory;
 import net.sf.l2j.util.DeadLockDetector;
 import net.sf.l2j.util.IPv4Filter;
@@ -290,6 +291,9 @@
  if (Config.ALT_FISH_CHAMPIONSHIP_ENABLED)
  FishingChampionshipManager.getInstance();
 
+ StringUtil.printSection("Vote Reward");
+ VoteSystem.initialize();
+
  StringUtil.printSection("System");
  TaskManager.getInstance();
  Runtime.getRuntime().addShutdownHook(Shutdown.getInstance());
Index: java/net/sf/l2j/gameserver/votereward/Hopzone.java
===================================================================
--- java/net/sf/l2j/gameserver/votereward/Hopzone.java (revision 0)
+++ java/net/sf/l2j/gameserver/votereward/Hopzone.java (revision 0)
@@ -0,0 +1,82 @@
+/*
+ * 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 net.sf.l2j.gameserver.votereward;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Map;
+
+import net.sf.l2j.Config;
+
+/**
+ * @author Anarchy
+ *
+ */
+public class Hopzone extends VoteSystem
+{
+ public Hopzone(int votesDiff, boolean allowReport, int boxes, Map<Integer, Integer> rewards, int checkMins)
+ {
+ super(votesDiff, allowReport, boxes, rewards, checkMins);
+ }
+
+ @Override
+ public void run()
+ {
+ reward();
+ }
+
+ @Override
+ public int getVotes()
+ {
+ InputStreamReader isr = null;
+ BufferedReader br = null;
+
+ try
+ {
+ URLConnection con = new URL(Config.HOPZONE_SERVER_LINK).openConnection();
+ con.addRequestProperty("User-Agent", "Mozilla/4.76");
+ isr = new InputStreamReader(con.getInputStream());
+ br = new BufferedReader(isr);
+
+ String line;
+ while ((line = br.readLine()) != null)
+ {
+ if (line.contains("<li><span class=\"rank anonymous tooltip\" title"))
+ {
+ int votes = Integer.valueOf(line.split(">")[2].replace("</span", ""));
+ return votes;
+ }
+ }
+
+ br.close();
+ isr.close();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ System.out.println("Error while getting server vote count from "+getSiteName()+".");
+ }
+
+ return -1;
+ }
+
+ @Override
+ public String getSiteName()
+ {
+ return "Hopzone";
+ }
+}
Index: java/net/sf/l2j/gameserver/votereward/Network.java
===================================================================
--- java/net/sf/l2j/gameserver/votereward/Network.java (revision 0)
+++ java/net/sf/l2j/gameserver/votereward/Network.java (revision 0)
@@ -0,0 +1,82 @@
+/*
+ * 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 net.sf.l2j.gameserver.votereward;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Map;
+
+import net.sf.l2j.Config;
+
+/**
+ * @author Anarchy
+ *
+ */
+public class Network extends VoteSystem
+{
+ public Network(int votesDiff, boolean allowReport, int boxes, Map<Integer, Integer> rewards, int checkMins)
+ {
+ super(votesDiff, allowReport, boxes, rewards, checkMins);
+ }
+
+ @Override
+ public void run()
+ {
+ reward();
+ }
+
+ @Override
+ public int getVotes()
+ {
+ InputStreamReader isr = null;
+ BufferedReader br = null;
+
+ try
+ {
+ URLConnection con = new URL(Config.NETWORK_SERVER_LINK).openConnection();
+ con.addRequestProperty("User-L2Network", "Mozilla/4.76");
+ isr = new InputStreamReader(con.getInputStream());
+ br = new BufferedReader(isr);
+
+ String line;
+ while ((line = br.readLine()) != null)
+ {
+ if (line.contains("<div class=\"tls-in-sts\"><b style"))
+ {
+ int votes = Integer.valueOf(line.split(">")[2].replace("</b", ""));
+ return votes;
+ }
+ }
+
+ br.close();
+ isr.close();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ System.out.println("Error while getting server vote count from "+getSiteName()+".");
+ }
+
+ return -1;
+ }
+
+ @Override
+ public String getSiteName()
+ {
+ return "Network";
+ }
+}
Index: java/net/sf/l2j/gameserver/votereward/Topzone.java
===================================================================
--- java/net/sf/l2j/gameserver/votereward/Topzone.java (revision 0)
+++ java/net/sf/l2j/gameserver/votereward/Topzone.java (revision 0)
@@ -0,0 +1,82 @@
+/*
+ * 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 net.sf.l2j.gameserver.votereward;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Map;
+
+import net.sf.l2j.Config;
+
+/**
+ * @author Anarchy
+ *
+ */
+public class Topzone extends VoteSystem
+{
+ public Topzone(int votesDiff, boolean allowReport, int boxes, Map<Integer, Integer> rewards, int checkMins)
+ {
+ super(votesDiff, allowReport, boxes, rewards, checkMins);
+ }
+
+ @Override
+ public void run()
+ {
+ reward();
+ }
+
+ @Override
+ public int getVotes()
+ {
+ InputStreamReader isr = null;
+ BufferedReader br = null;
+
+ try
+ {
+ URLConnection con = new URL(Config.TOPZONE_SERVER_LINK).openConnection();
+ con.addRequestProperty("User-Agent", "L2TopZone");
+ isr = new InputStreamReader(con.getInputStream());
+ br = new BufferedReader(isr);
+
+ String line;
+ while ((line = br.readLine()) != null)
+ {
+ if (line.contains("</span></small>"))
+ {
+ int votes = Integer.valueOf(line.split(">")[9].replace("</span", ""));
+ return votes;
+ }
+ }
+
+ br.close();
+ isr.close();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ System.out.println("Error while getting server vote count from "+getSiteName()+".");
+ }
+
+ return -1;
+ }
+
+ @Override
+ public String getSiteName()
+ {
+ return "Topzone";
+ }
+}
Index: java/net/sf/l2j/gameserver/votereward/VoteSystem.java
===================================================================
--- java/net/sf/l2j/gameserver/votereward/VoteSystem.java (revision 0)
+++ java/net/sf/l2j/gameserver/votereward/VoteSystem.java (revision 0)
@@ -0,0 +1,163 @@
+/*
+ * 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 net.sf.l2j.gameserver.votereward;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.ThreadPoolManager;
+import net.sf.l2j.gameserver.model.L2World;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.network.serverpackets.CreatureSay;
+import net.sf.l2j.gameserver.util.Broadcast;
+
+/**
+ * @author Anarchy
+ *
+ */
+public abstract class VoteSystem implements Runnable
+{
+ private static List<VoteSystem> voteSystems = new ArrayList<>();
+
+ protected int votesDiff;
+ protected boolean allowReport;
+ protected int boxes;
+ protected Map<Integer, Integer> rewards;
+ protected int checkMins;
+ protected int lastVotes = 0;
+ private Map<String, Integer> playerIps = new HashMap<>();
+
+ public static void initialize()
+ {
+ System.out.println("Vote System: Loaded");
+ if (Config.ALLOW_NETWORK_VOTE_REWARD)
+ voteSystems.add(new Network(Config.NETWORK_VOTES_DIFFERENCE, Config.ALLOW_NETWORK_GAME_SERVER_REPORT, Config.NETWORK_DUALBOXES_ALLOWED, Config.NETWORK_REWARD, Config.NETWORK_REWARD_CHECK_TIME));
+ if (Config.ALLOW_TOPZONE_VOTE_REWARD)
+ voteSystems.add(new Topzone(Config.TOPZONE_VOTES_DIFFERENCE, Config.ALLOW_TOPZONE_GAME_SERVER_REPORT, Config.TOPZONE_DUALBOXES_ALLOWED, Config.TOPZONE_REWARD, Config.TOPZONE_REWARD_CHECK_TIME));
+ if (Config.ALLOW_HOPZONE_VOTE_REWARD)
+ voteSystems.add(new Hopzone(Config.HOPZONE_VOTES_DIFFERENCE, Config.ALLOW_HOPZONE_GAME_SERVER_REPORT, Config.HOPZONE_DUALBOXES_ALLOWED, Config.HOPZONE_REWARD, Config.HOPZONE_REWARD_CHECK_TIME));
+ }
+
+ public static VoteSystem getVoteSystem(String name)
+ {
+ for (VoteSystem vs : voteSystems)
+ if (vs.getSiteName().equals(name))
+ return vs;
+
+ return null;
+ }
+
+ public VoteSystem(int votesDiff, boolean allowReport, int boxes, Map<Integer, Integer> rewards, int checkMins)
+ {
+ this.votesDiff = votesDiff;
+ this.allowReport = allowReport;
+ this.boxes = boxes;
+ this.rewards = rewards;
+ this.checkMins = checkMins;
+
+ ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(this, checkMins*1000*60, checkMins*1000*60);
+ }
+
+ protected void reward()
+ {
+ int currentVotes = getVotes();
+
+ if (currentVotes == -1)
+ {
+ System.out.println("There was a problem on getting server votes.");
+ return;
+ }
+
+ if (lastVotes == 0)
+ {
+ lastVotes = currentVotes;
+ announce(getSiteName()+": Current vote count is "+currentVotes+".");
+ announce(getSiteName()+": We need "+((lastVotes+votesDiff)-currentVotes)+" vote(s) for reward.");
+ if (allowReport)
+ {
+ System.out.println("Server votes on "+getSiteName()+": "+currentVotes);
+ System.out.println("Votes needed for reward: "+((lastVotes+votesDiff)-currentVotes));
+ }
+ return;
+ }
+
+ if (currentVotes >= lastVotes+votesDiff)
+ {
+ Collection<L2PcInstance> pls = L2World.getInstance().getPlayers();
+ if (allowReport)
+ {
+ System.out.println("Server votes on "+getSiteName()+": "+currentVotes);
+ System.out.println("Votes needed for next reward: "+((currentVotes+votesDiff)-currentVotes));
+ }
+ announce(getSiteName()+": Everyone has been rewarded.");
+ announce(getSiteName()+": Current vote count is "+currentVotes+".");
+ announce(getSiteName()+": We need "+votesDiff+" vote(s) for next reward.");
+ for (L2PcInstance p : pls)
+ {
+ if (p.getClient() == null || p.getClient().isDetached()) // offline shops protection
+ continue;
+
+ boolean canReward = false;
+ String pIp = p.getClient().getConnection().getInetAddress().getHostAddress();
+ if (playerIps.containsKey(pIp))
+ {
+ int count = playerIps.get(pIp);
+ if (count < boxes)
+ {
+ playerIps.remove(pIp);
+ playerIps.put(pIp, count+1);
+ canReward = true;
+ }
+ }
+ else
+ {
+ canReward = true;
+ playerIps.put(pIp, 1);
+ }
+ if (canReward)
+ for (int i : rewards.keySet())
+ p.addItem("Vote reward.", i, rewards.get(i), p, true);
+ else
+ p.sendMessage("Already "+boxes+" character(s) of your ip have been rewarded, so this character won't be rewarded.");
+ }
+ playerIps.clear();
+
+ lastVotes = currentVotes;
+ }
+ else
+ {
+ if (allowReport)
+ {
+ System.out.println("Server votes on "+getSiteName()+": "+currentVotes);
+ System.out.println("Votes needed for next reward: "+((lastVotes+votesDiff)-currentVotes));
+ }
+ announce(getSiteName()+": Current vote count is "+currentVotes+".");
+ announce(getSiteName()+": We need "+((lastVotes+votesDiff)-currentVotes)+" vote(s) for reward.");
+ }
+ }
+
+ private static void announce(String msg)
+ {
+ CreatureSay cs = new CreatureSay(0, 18, "", msg);
+ Broadcast.toAllOnlinePlayers(cs);
+ }
+
+ public abstract int getVotes();
+ public abstract String getSiteName();
+}

Debes de estar registrado para poder ver el contenido indicado. Registrate o ConectatePara acis debes de cambiar esto:

Collection<L2PcInstance> pls = L2World.getInstance().getPlayers();
Cambiarlo a esto otro:

Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
Y

StringUtil.printSection("Vote Reward");
A esto otro:

Util.printSection("Vote Reward");