Γεια σας παιδια εχω θεμα με το "VOTE REWARD" απο topzone. Δοκιμασα τα φιξ που προτινουν καποιοι αλλα το δικο μου δεν εχει καν αυτες τις γραμμες του κωδικα εχω αυτο εδω....
======================================
confings
===================================
# Vote reward for Topzone.
AllowTopzoneVoteReward = True
# Vote reward server link.
TopzoneServerLink = http://l2topzone.com/lineage2/server-info/6296/L2ToxiccomProMMORPG.html/
# First page of servers list link.
TopzoneFirstPageLink = http://l2topzone.com/lineage2/server-list/top.html/
# Votes for next reward needed.
TopzoneVotesDifference = 5
# Rank needed for server to be on first page.
TopzoneFirstPageRankNeeded = 15
# Minutes between rewards.
# Eg. You put 5 it checks every 5 minutes for reward.
TopzoneRewardCheckTime = 5
# Small reward(s).
TopzoneSmallReward = 57,100000000;
# Big reward(s).
TopzoneBigReward = 3470,1;
# Hopzone 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 = True
================================================
Config.java
=================================================
public static boolean ALLOW_TOPZONE_VOTE_REWARD;
public static String TOPZONE_SERVER_LINK;
public static String TOPZONE_FIRST_PAGE_LINK;
public static int TOPZONE_VOTES_DIFFERENCE;
public static int TOPZONE_FIRST_PAGE_RANK_NEEDED;
public static int TOPZONE_REWARD_CHECK_TIME;
public static Map<Integer, Integer> TOPZONE_SMALL_REWARD = new FastMap<Integer, Integer>();
public static Map<Integer, Integer> TOPZONE_BIG_REWARD = new FastMap<Integer, Integer>();
public static int TOPZONE_DUALBOXES_ALLOWED;
public static boolean ALLOW_TOPZONE_GAME_SERVER_REPORT;
ALLOW_TOPZONE_VOTE_REWARD = Boolean.parseBoolean(elcardia.getProperty("AllowTopzoneVoteReward", "false"));
TOPZONE_SERVER_LINK = elcardia.getProperty("TopzoneServerLink", "http://l2.topzone.net/lineage2/details/74078/L2World-Servers/");
TOPZONE_FIRST_PAGE_LINK = elcardia.getProperty("TopzoneFirstPageLink", "http://l2.topzone.net/lineage2/");
TOPZONE_VOTES_DIFFERENCE = Integer.parseInt(elcardia.getProperty("TopzoneVotesDifference", "5"));
TOPZONE_FIRST_PAGE_RANK_NEEDED = Integer.parseInt(elcardia.getProperty("TopzoneFirstPageRankNeeded", "15"));
TOPZONE_REWARD_CHECK_TIME = Integer.parseInt(elcardia.getProperty("TopzoneRewardCheckTime", "5"));
String TOPZONE_SMALL_REWARD_VALUE = elcardia.getProperty("TopzoneSmallReward", "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_SMALL_REWARD.put(Integer.parseInt(topzone_small_reward_splitted_2[0]), Integer.parseInt(topzone_small_reward_splitted_2[1]));
}
String TOPZONE_BIG_REWARD_VALUE = elcardia.getProperty("TopzoneBigReward", "3470,1;");
String[] topzone_big_reward_splitted_1 = TOPZONE_BIG_REWARD_VALUE.split(";");
for (String i : topzone_big_reward_splitted_1)
{
String[] topzone_big_reward_splitted_2 = i.split(",");
TOPZONE_BIG_REWARD.put(Integer.parseInt(topzone_big_reward_splitted_2[0]), Integer.parseInt(topzone_big_reward_splitted_2[1]));
}
TOPZONE_DUALBOXES_ALLOWED = Integer.parseInt(elcardia.getProperty("TopzoneDualboxesAllowed", "1"));
ALLOW_TOPZONE_GAME_SERVER_REPORT = Boolean.parseBoolean(elcardia.getProperty("AllowTopzoneGameServerReport", "false"));
===================================================
GameServer.java
===================================================
if (Config.ALLOW_TOPZONE_VOTE_REWARD)
{
VoteRewardTopzone.getInstance();
}
==================================================================
VoteRewardTopzone.java
==================================================================
/*
* 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.model.entity;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Collection;
import javolution.util.FastMap;
import net.sf.l2j.Config;
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 Anarchy
*
*/
public class VoteRewardTopzone
{
// Configurations.
private static String topzoneUrl = Config.TOPZONE_SERVER_LINK;
private static String page1Url = Config.TOPZONE_FIRST_PAGE_LINK;
private static int voteRewardVotesDifference = Config.TOPZONE_VOTES_DIFFERENCE;
private static int firstPageRankNeeded = Config.TOPZONE_FIRST_PAGE_RANK_NEEDED;
private static int checkTime = 60*1000*Config.TOPZONE_REWARD_CHECK_TIME;
// Don't-touch variables.
private static int lastVotes = 0;
private static FastMap<String, Integer> playerIps = new FastMap<String, Integer>();
public static void updateConfigurations()
{
topzoneUrl = Config.TOPZONE_SERVER_LINK;
page1Url = Config.TOPZONE_FIRST_PAGE_LINK;
voteRewardVotesDifference = Config.TOPZONE_VOTES_DIFFERENCE;
firstPageRankNeeded = Config.TOPZONE_FIRST_PAGE_RANK_NEEDED;
checkTime = 60*1000*Config.TOPZONE_REWARD_CHECK_TIME;
}
public static void getInstance()
{
System.out.println("Vote reward system initialized.");
ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
{
@Override
public void run()
{
if (Config.ALLOW_TOPZONE_VOTE_REWARD)
{
reward();
}
else
{
return;
}
}
}, checkTime/2, checkTime);
}
private static void reward()
{
int firstPageVotes = getFirstPageRankVotes();
int currentVotes = getVotes();
if (firstPageVotes == -1 || currentVotes == -1)
{
if (firstPageVotes == -1)
{
System.out.println("There was a problem on getting votes from server with rank "+firstPageRankNeeded+".");
}
if (currentVotes == -1)
{
System.out.println("There was a problem on getting server votes.");
}
return;
}
if (lastVotes == 0)
{
lastVotes = currentVotes;
Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for reward.");
if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
{
System.out.println("Server votes on topzone: "+currentVotes);
System.out.println("Votes needed for reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
}
if (firstPageVotes-lastVotes <= 0)
{
Announcements.getInstance().announceToAll("Vote reward: We are in the first page of topzone, so the reward will be big.");
if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
{
System.out.println("Server is on the first page of topzone.");
}
}
else
{
Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-lastVotes)+" vote(s) to get to the first page of topzone for big reward.");
if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
{
System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
}
}
Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
return;
}
if (currentVotes >= lastVotes+voteRewardVotesDifference)
{
Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
if (firstPageVotes-currentVotes <= 0)
{
if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
{
System.out.println("Server votes on topzone: "+currentVotes);
System.out.println("Server is on the first page of topzone.");
System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes));
}
Announcements.getInstance().announceToAll("Vote reward: Everyone has been rewarded with big reward.");
Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
for (L2PcInstance p : pls)
{
boolean canReward = false;
String pIp = p.getClient().getConnection().getInetAddress().getHostAddress();
if (playerIps.containsKey(pIp))
{
int count = playerIps.get(pIp);
if (count < Config.TOPZONE_DUALBOXES_ALLOWED)
{
playerIps.remove(pIp);
playerIps.put(pIp, count+1);
canReward = true;
}
}
else
{
canReward = true;
playerIps.put(pIp, 1);
}
if (canReward)
{
for (int i : Config.TOPZONE_BIG_REWARD.keySet())
{
p.addItem("Vote reward.", i, Config.TOPZONE_BIG_REWARD.get(i), p, true);
}
}
else
{
p.sendMessage("Already "+Config.TOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have been rewarded, so this character won't be rewarded.");
}
}
playerIps.clear();
}
else
{
if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
{
System.out.println("Server votes on topzone: "+currentVotes);
System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes));
}
Announcements.getInstance().announceToAll("Vote reward: Everyone has been rewarded with small reward.");
Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the first page of topzone for big reward.");
Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
for (L2PcInstance p : pls)
{
boolean canReward = false;
String pIp = p.getClient().getConnection().getInetAddress().getHostAddress();
if (playerIps.containsKey(pIp))
{
int count = playerIps.get(pIp);
if (count < Config.TOPZONE_DUALBOXES_ALLOWED)
{
playerIps.remove(pIp);
playerIps.put(pIp, count+1);
canReward = true;
}
}
else
{
canReward = true;
playerIps.put(pIp, 1);
}
if (canReward)
{
for (int i : Config.TOPZONE_SMALL_REWARD.keySet())
{
p.addItem("Vote reward.", i, Config.TOPZONE_SMALL_REWARD.get(i), p, true);
}
}
else
{
p.sendMessage("Already "+Config.TOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have been rewarded, so this character won't be rewarded.");
}
}
playerIps.clear();
}
lastVotes = currentVotes;
}
else
{
if (firstPageVotes-currentVotes <= 0)
{
if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
{
System.out.println("Server votes on topzone: "+currentVotes);
System.out.println("Server is on the first page of topzone.");
System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
}
Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for big reward.");
Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
}
else
{
if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
{
System.out.println("Server votes on topzone: "+currentVotes);
System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
}
Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for small reward.");
Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the first page of topzone for big reward.");
Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
}
}
}
private static int getFirstPageRankVotes()
{
InputStreamReader isr = null;
BufferedReader br = null;
try
{
URLConnection con = new URL(page1Url).openConnection();
con.addRequestProperty("User-Agent", "Mozilla/4.76");
isr = new InputStreamReader(con.getInputStream());
br = new BufferedReader(isr);
String line;
int i = 0;
while ((line = br.readLine()) != null)
{
if (line.contains("<td><div align=\"center\">"+firstPageRankNeeded+"</div></td>"))
{
i++;
}
if (line.contains("<td><div align=\"center\">") && i == 1)
{
i++;
}
if (line.contains("<td><div align=\"center\">") && i == 2)
{
i = 0;
int votes = Integer.valueOf(line.split(">")[2].replace("</div", ""));
return votes;
}
}
br.close();
isr.close();
}
catch (Exception e)
{
System.out.println(e);
System.out.println("Error while getting server vote count.");
}
return -1;
}
private static int getVotes()
{
InputStreamReader isr = null;
BufferedReader br = null;
try
{
URLConnection con = new URL(topzoneUrl).openConnection();
con.addRequestProperty("User-Agent", "Mozilla/4.76");
isr = new InputStreamReader(con.getInputStream());
br = new BufferedReader(isr);
boolean got = false;
String line;
while ((line = br.readLine()) != null)
{
if (line.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\"") && !got)
{
got = true;
int votes = Integer.valueOf(line.split("=\"font-size:14px;color:#018BC1;\">")[1].replace("</font></b></div></td></tr>", ""));
return votes;
}
}
br.close();
isr.close();
}
catch (Exception e)
{
System.out.println(e);
System.out.println("Error while getting server vote count.");
}
return -1;
}
}
Siege Reward
Start PM Msg
Rework Config root
BossDieAnnounce and BossDieSound in the L24Team.properties and Config.java files for global raid boss death notifications and sounds. Adds a new reward_list table to the DB.sql file to track castle rewards.
Improves character creation logic for thread safety and validation.
Adds extensive state checks to the RequestEnchantItem method to prevent enchantments during inappropriate player states.
Fixed auto-attack animation bug (there was no attack animation, only damage animation)
Clean Code
Other fixes I forgot to list!
Java 14
Fixed issue where deleting a character would prevent it from leaving the screen or being removed, or even after a delete CD (it would only exit when re-logging in or creating a new character).
Added Premium System from the other C2 project (Needs testing and improvement).
Added the "Improved" Community Board (incomplete).
Question
Kolibri
Γεια σας παιδια εχω θεμα με το "VOTE REWARD" απο topzone. Δοκιμασα τα φιξ που προτινουν καποιοι αλλα το δικο μου δεν εχει καν αυτες τις γραμμες του κωδικα εχω αυτο εδω....
====================================== confings =================================== # Vote reward for Topzone. AllowTopzoneVoteReward = True # Vote reward server link. TopzoneServerLink = http://l2topzone.com/lineage2/server-info/6296/L2ToxiccomProMMORPG.html/ # First page of servers list link. TopzoneFirstPageLink = http://l2topzone.com/lineage2/server-list/top.html/ # Votes for next reward needed. TopzoneVotesDifference = 5 # Rank needed for server to be on first page. TopzoneFirstPageRankNeeded = 15 # Minutes between rewards. # Eg. You put 5 it checks every 5 minutes for reward. TopzoneRewardCheckTime = 5 # Small reward(s). TopzoneSmallReward = 57,100000000; # Big reward(s). TopzoneBigReward = 3470,1; # Hopzone 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 = True ================================================ Config.java ================================================= public static boolean ALLOW_TOPZONE_VOTE_REWARD; public static String TOPZONE_SERVER_LINK; public static String TOPZONE_FIRST_PAGE_LINK; public static int TOPZONE_VOTES_DIFFERENCE; public static int TOPZONE_FIRST_PAGE_RANK_NEEDED; public static int TOPZONE_REWARD_CHECK_TIME; public static Map<Integer, Integer> TOPZONE_SMALL_REWARD = new FastMap<Integer, Integer>(); public static Map<Integer, Integer> TOPZONE_BIG_REWARD = new FastMap<Integer, Integer>(); public static int TOPZONE_DUALBOXES_ALLOWED; public static boolean ALLOW_TOPZONE_GAME_SERVER_REPORT; ALLOW_TOPZONE_VOTE_REWARD = Boolean.parseBoolean(elcardia.getProperty("AllowTopzoneVoteReward", "false")); TOPZONE_SERVER_LINK = elcardia.getProperty("TopzoneServerLink", "http://l2.topzone.net/lineage2/details/74078/L2World-Servers/"); TOPZONE_FIRST_PAGE_LINK = elcardia.getProperty("TopzoneFirstPageLink", "http://l2.topzone.net/lineage2/"); TOPZONE_VOTES_DIFFERENCE = Integer.parseInt(elcardia.getProperty("TopzoneVotesDifference", "5")); TOPZONE_FIRST_PAGE_RANK_NEEDED = Integer.parseInt(elcardia.getProperty("TopzoneFirstPageRankNeeded", "15")); TOPZONE_REWARD_CHECK_TIME = Integer.parseInt(elcardia.getProperty("TopzoneRewardCheckTime", "5")); String TOPZONE_SMALL_REWARD_VALUE = elcardia.getProperty("TopzoneSmallReward", "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_SMALL_REWARD.put(Integer.parseInt(topzone_small_reward_splitted_2[0]), Integer.parseInt(topzone_small_reward_splitted_2[1])); } String TOPZONE_BIG_REWARD_VALUE = elcardia.getProperty("TopzoneBigReward", "3470,1;"); String[] topzone_big_reward_splitted_1 = TOPZONE_BIG_REWARD_VALUE.split(";"); for (String i : topzone_big_reward_splitted_1) { String[] topzone_big_reward_splitted_2 = i.split(","); TOPZONE_BIG_REWARD.put(Integer.parseInt(topzone_big_reward_splitted_2[0]), Integer.parseInt(topzone_big_reward_splitted_2[1])); } TOPZONE_DUALBOXES_ALLOWED = Integer.parseInt(elcardia.getProperty("TopzoneDualboxesAllowed", "1")); ALLOW_TOPZONE_GAME_SERVER_REPORT = Boolean.parseBoolean(elcardia.getProperty("AllowTopzoneGameServerReport", "false")); =================================================== GameServer.java =================================================== if (Config.ALLOW_TOPZONE_VOTE_REWARD) { VoteRewardTopzone.getInstance(); } ================================================================== VoteRewardTopzone.java ================================================================== /* * 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.model.entity; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.util.Collection; import javolution.util.FastMap; import net.sf.l2j.Config; 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 Anarchy * */ public class VoteRewardTopzone { // Configurations. private static String topzoneUrl = Config.TOPZONE_SERVER_LINK; private static String page1Url = Config.TOPZONE_FIRST_PAGE_LINK; private static int voteRewardVotesDifference = Config.TOPZONE_VOTES_DIFFERENCE; private static int firstPageRankNeeded = Config.TOPZONE_FIRST_PAGE_RANK_NEEDED; private static int checkTime = 60*1000*Config.TOPZONE_REWARD_CHECK_TIME; // Don't-touch variables. private static int lastVotes = 0; private static FastMap<String, Integer> playerIps = new FastMap<String, Integer>(); public static void updateConfigurations() { topzoneUrl = Config.TOPZONE_SERVER_LINK; page1Url = Config.TOPZONE_FIRST_PAGE_LINK; voteRewardVotesDifference = Config.TOPZONE_VOTES_DIFFERENCE; firstPageRankNeeded = Config.TOPZONE_FIRST_PAGE_RANK_NEEDED; checkTime = 60*1000*Config.TOPZONE_REWARD_CHECK_TIME; } public static void getInstance() { System.out.println("Vote reward system initialized."); ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable() { @Override public void run() { if (Config.ALLOW_TOPZONE_VOTE_REWARD) { reward(); } else { return; } } }, checkTime/2, checkTime); } private static void reward() { int firstPageVotes = getFirstPageRankVotes(); int currentVotes = getVotes(); if (firstPageVotes == -1 || currentVotes == -1) { if (firstPageVotes == -1) { System.out.println("There was a problem on getting votes from server with rank "+firstPageRankNeeded+"."); } if (currentVotes == -1) { System.out.println("There was a problem on getting server votes."); } return; } if (lastVotes == 0) { lastVotes = currentVotes; Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+"."); Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for reward."); if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT) { System.out.println("Server votes on topzone: "+currentVotes); System.out.println("Votes needed for reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes)); } if (firstPageVotes-lastVotes <= 0) { Announcements.getInstance().announceToAll("Vote reward: We are in the first page of topzone, so the reward will be big."); if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT) { System.out.println("Server is on the first page of topzone."); } } else { Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-lastVotes)+" vote(s) to get to the first page of topzone for big reward."); if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT) { System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes)); } } Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is."); return; } if (currentVotes >= lastVotes+voteRewardVotesDifference) { Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values(); if (firstPageVotes-currentVotes <= 0) { if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT) { System.out.println("Server votes on topzone: "+currentVotes); System.out.println("Server is on the first page of topzone."); System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes)); } Announcements.getInstance().announceToAll("Vote reward: Everyone has been rewarded with big reward."); Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+"."); Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is."); for (L2PcInstance p : pls) { boolean canReward = false; String pIp = p.getClient().getConnection().getInetAddress().getHostAddress(); if (playerIps.containsKey(pIp)) { int count = playerIps.get(pIp); if (count < Config.TOPZONE_DUALBOXES_ALLOWED) { playerIps.remove(pIp); playerIps.put(pIp, count+1); canReward = true; } } else { canReward = true; playerIps.put(pIp, 1); } if (canReward) { for (int i : Config.TOPZONE_BIG_REWARD.keySet()) { p.addItem("Vote reward.", i, Config.TOPZONE_BIG_REWARD.get(i), p, true); } } else { p.sendMessage("Already "+Config.TOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have been rewarded, so this character won't be rewarded."); } } playerIps.clear(); } else { if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT) { System.out.println("Server votes on topzone: "+currentVotes); System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes)); System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes)); } Announcements.getInstance().announceToAll("Vote reward: Everyone has been rewarded with small reward."); Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+"."); Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the first page of topzone for big reward."); Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is."); for (L2PcInstance p : pls) { boolean canReward = false; String pIp = p.getClient().getConnection().getInetAddress().getHostAddress(); if (playerIps.containsKey(pIp)) { int count = playerIps.get(pIp); if (count < Config.TOPZONE_DUALBOXES_ALLOWED) { playerIps.remove(pIp); playerIps.put(pIp, count+1); canReward = true; } } else { canReward = true; playerIps.put(pIp, 1); } if (canReward) { for (int i : Config.TOPZONE_SMALL_REWARD.keySet()) { p.addItem("Vote reward.", i, Config.TOPZONE_SMALL_REWARD.get(i), p, true); } } else { p.sendMessage("Already "+Config.TOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have been rewarded, so this character won't be rewarded."); } } playerIps.clear(); } lastVotes = currentVotes; } else { if (firstPageVotes-currentVotes <= 0) { if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT) { System.out.println("Server votes on topzone: "+currentVotes); System.out.println("Server is on the first page of topzone."); System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes)); } Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+"."); Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for big reward."); Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is."); } else { if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT) { System.out.println("Server votes on topzone: "+currentVotes); System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes)); System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes)); } Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+"."); Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for small reward."); Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the first page of topzone for big reward."); Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is."); } } } private static int getFirstPageRankVotes() { InputStreamReader isr = null; BufferedReader br = null; try { URLConnection con = new URL(page1Url).openConnection(); con.addRequestProperty("User-Agent", "Mozilla/4.76"); isr = new InputStreamReader(con.getInputStream()); br = new BufferedReader(isr); String line; int i = 0; while ((line = br.readLine()) != null) { if (line.contains("<td><div align=\"center\">"+firstPageRankNeeded+"</div></td>")) { i++; } if (line.contains("<td><div align=\"center\">") && i == 1) { i++; } if (line.contains("<td><div align=\"center\">") && i == 2) { i = 0; int votes = Integer.valueOf(line.split(">")[2].replace("</div", "")); return votes; } } br.close(); isr.close(); } catch (Exception e) { System.out.println(e); System.out.println("Error while getting server vote count."); } return -1; } private static int getVotes() { InputStreamReader isr = null; BufferedReader br = null; try { URLConnection con = new URL(topzoneUrl).openConnection(); con.addRequestProperty("User-Agent", "Mozilla/4.76"); isr = new InputStreamReader(con.getInputStream()); br = new BufferedReader(isr); boolean got = false; String line; while ((line = br.readLine()) != null) { if (line.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\"") && !got) { got = true; int votes = Integer.valueOf(line.split("=\"font-size:14px;color:#018BC1;\">")[1].replace("</font></b></div></td></tr>", "")); return votes; } } br.close(); isr.close(); } catch (Exception e) { System.out.println(e); System.out.println("Error while getting server vote count."); } return -1; } }1 answer to this question
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