hello guys i need to modify the vote reward system to reward only 1 client box per personal computer.
here is the code
/* 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 2, 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package net.sf.l2j.gameserver.model;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.Collection;
import net.sf.l2j.Config;
import net.sf.l2j.gameserver.Announcements;
import net.sf.l2j.gameserver.GmListTable;
import net.sf.l2j.gameserver.ThreadPoolManager;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
/**
*
* @author eXtr3me
*
*/
public class AutoVoteRewardHandler
{
private int lastVoteCount = 0;
private int initialCheck = 60 * 1000;
private int delayForCheck = 300 * 1000;
private int votesForReward = 10;
private int maxRewardStack = 5;
private AutoVoteRewardHandler()
{
System.out.println("Vote Reward System activated.");
ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);
}
private class AutoReward implements Runnable
{
public void run()
{
System.out.println("Vote Count Check.");
if (Config.VOTE_REWARD1_ID == 0 || Config.VOTE_REWARD1_COUNT == 0 || Config.VOTE_REWARD2_ID == 0 || Config.VOTE_REWARD2_COUNT == 0)
{
GmListTable.broadcastMessageToGMs("The rewards aren't Identified. Please take a look.");
return;
}
int newVoteCount = getVotes(Config.VOTE_HTML_PATCH);
System.out.println("newVoteCount:"+newVoteCount);
System.out.println("getLastVoteCount:"+getLastVoteCount());
if (newVoteCount != 0 && getLastVoteCount() != 0 && newVoteCount >= getLastVoteCount() + votesForReward)
{
Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
for (L2PcInstance player : pls)
{
if (player != null)
{
L2ItemInstance item1 = player.getInventory().getItemByItemId(Config.VOTE_REWARD1_ID);
if (item1 == null || item1.getCount() < maxRewardStack)
{
player.addItem("reward", Config.VOTE_REWARD1_ID, Config.VOTE_REWARD1_COUNT, player, true);
}
L2ItemInstance item2 = player.getInventory().getItemByItemId(Config.VOTE_REWARD2_ID);
if (item2 == null || item2.getCount() < maxRewardStack)
{
player.addItem("reward", Config.VOTE_REWARD2_ID, Config.VOTE_REWARD2_COUNT, player, true);
}
}
}
setLastVoteCount(getLastVoteCount()+ votesForReward);
}
Announcements.getInstance().announceToAll("Our Current vote count is: " + newVoteCount);
Announcements.getInstance().announceToAll("The next reward will be given at " + (getLastVoteCount()+ votesForReward) + " Votes.");
if (getLastVoteCount() == 0)
{
setLastVoteCount(newVoteCount);
}
}
}
private int getVotes(String urlString)
{
InputStreamReader isr = null;
BufferedReader in = null;
try
{
URL url = new URL(urlString);
isr = new InputStreamReader(url.openStream());
in = new BufferedReader(isr);
String inputLine;
int voteCount = 0;
while ((inputLine = in.readLine()) != null)
{
if (inputLine.contains("moreinfo_total_rank_text"))
{
int Sub = 12;
switch (inputLine.length())
{
case 116:
Sub = 13;
break;
case 117:
Sub = 14;
break;
case 118:
Sub = 15;
break;
case 119:
Sub = 16;
break;
}
voteCount = Integer.parseInt(inputLine.substring(inputLine.length() - Sub, inputLine.length() - 11));
break;
}
}
return voteCount;
}
catch (IOException e)
{
e.printStackTrace();
return 0;
}
finally
{
try
{
in.close();
}
catch (IOException e)
{
}
try
{
isr.close();
}
catch (IOException e)
{
}
}
}
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();
}
}
please tell me what i must increase and where to don't give to all clients
Question
TsIpIzTiK®
hello guys i need to modify the vote reward system to reward only 1 client box per personal computer.
here is the code
/* 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package net.sf.l2j.gameserver.model; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.util.Collection; import net.sf.l2j.Config; import net.sf.l2j.gameserver.Announcements; import net.sf.l2j.gameserver.GmListTable; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; /** * * @author eXtr3me * */ public class AutoVoteRewardHandler { private int lastVoteCount = 0; private int initialCheck = 60 * 1000; private int delayForCheck = 300 * 1000; private int votesForReward = 10; private int maxRewardStack = 5; private AutoVoteRewardHandler() { System.out.println("Vote Reward System activated."); ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck); } private class AutoReward implements Runnable { public void run() { System.out.println("Vote Count Check."); if (Config.VOTE_REWARD1_ID == 0 || Config.VOTE_REWARD1_COUNT == 0 || Config.VOTE_REWARD2_ID == 0 || Config.VOTE_REWARD2_COUNT == 0) { GmListTable.broadcastMessageToGMs("The rewards aren't Identified. Please take a look."); return; } int newVoteCount = getVotes(Config.VOTE_HTML_PATCH); System.out.println("newVoteCount:"+newVoteCount); System.out.println("getLastVoteCount:"+getLastVoteCount()); if (newVoteCount != 0 && getLastVoteCount() != 0 && newVoteCount >= getLastVoteCount() + votesForReward) { Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers(); for (L2PcInstance player : pls) { if (player != null) { L2ItemInstance item1 = player.getInventory().getItemByItemId(Config.VOTE_REWARD1_ID); if (item1 == null || item1.getCount() < maxRewardStack) { player.addItem("reward", Config.VOTE_REWARD1_ID, Config.VOTE_REWARD1_COUNT, player, true); } L2ItemInstance item2 = player.getInventory().getItemByItemId(Config.VOTE_REWARD2_ID); if (item2 == null || item2.getCount() < maxRewardStack) { player.addItem("reward", Config.VOTE_REWARD2_ID, Config.VOTE_REWARD2_COUNT, player, true); } } } setLastVoteCount(getLastVoteCount()+ votesForReward); } Announcements.getInstance().announceToAll("Our Current vote count is: " + newVoteCount); Announcements.getInstance().announceToAll("The next reward will be given at " + (getLastVoteCount()+ votesForReward) + " Votes."); if (getLastVoteCount() == 0) { setLastVoteCount(newVoteCount); } } } private int getVotes(String urlString) { InputStreamReader isr = null; BufferedReader in = null; try { URL url = new URL(urlString); isr = new InputStreamReader(url.openStream()); in = new BufferedReader(isr); String inputLine; int voteCount = 0; while ((inputLine = in.readLine()) != null) { if (inputLine.contains("moreinfo_total_rank_text")) { int Sub = 12; switch (inputLine.length()) { case 116: Sub = 13; break; case 117: Sub = 14; break; case 118: Sub = 15; break; case 119: Sub = 16; break; } voteCount = Integer.parseInt(inputLine.substring(inputLine.length() - Sub, inputLine.length() - 11)); break; } } return voteCount; } catch (IOException e) { e.printStackTrace(); return 0; } finally { try { in.close(); } catch (IOException e) { } try { isr.close(); } catch (IOException e) { } } } 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(); } }please tell me what i must increase and where to don't give to all clients
9 answers 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