Vote system configs.
This commit is contained in:
parent
7382399e58
commit
b5901b178d
56
L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom/VoteReward.ini
vendored
Normal file
56
L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom/VoteReward.ini
vendored
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# 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.
|
||||||
|
NetworkDualboxesAllowed = 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.
|
||||||
|
TopzoneDualboxesAllowed = 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.
|
||||||
|
HopzoneDualboxesAllowed = 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
|
@ -128,6 +128,7 @@ public final class Config
|
|||||||
public static final String CUSTOM_SERVER_TIME_CONFIG_FILE = "./config/Custom/ServerTime.ini";
|
public static final String CUSTOM_SERVER_TIME_CONFIG_FILE = "./config/Custom/ServerTime.ini";
|
||||||
public static final String CUSTOM_STARTING_LOCATION_CONFIG_FILE = "./config/Custom/StartingLocation.ini";
|
public static final String CUSTOM_STARTING_LOCATION_CONFIG_FILE = "./config/Custom/StartingLocation.ini";
|
||||||
public static final String CUSTOM_TVT_CONFIG_FILE = "./config/Custom/TeamVersusTeam.ini";
|
public static final String CUSTOM_TVT_CONFIG_FILE = "./config/Custom/TeamVersusTeam.ini";
|
||||||
|
public static final String CUSTOM_VOTE_REWARD_CONFIG_FILE = "./config/Custom/VoteReward.ini";
|
||||||
public static final String CUSTOM_WAREHOUSE_SORTING_CONFIG_FILE = "./config/Custom/WarehouseSorting.ini";
|
public static final String CUSTOM_WAREHOUSE_SORTING_CONFIG_FILE = "./config/Custom/WarehouseSorting.ini";
|
||||||
public static final String CUSTOM_WEDDING_CONFIG_FILE = "./config/Custom/Wedding.ini";
|
public static final String CUSTOM_WEDDING_CONFIG_FILE = "./config/Custom/Wedding.ini";
|
||||||
public static final String CUSTOM_MULTILANGUAL_SUPPORT_CONFIG_FILE = "./config/Custom/MultilingualSupport.ini";
|
public static final String CUSTOM_MULTILANGUAL_SUPPORT_CONFIG_FILE = "./config/Custom/MultilingualSupport.ini";
|
||||||
@ -1296,6 +1297,27 @@ public final class Config
|
|||||||
public static long SELLBUFF_MIN_PRICE;
|
public static long SELLBUFF_MIN_PRICE;
|
||||||
public static long SELLBUFF_MAX_PRICE;
|
public static long SELLBUFF_MAX_PRICE;
|
||||||
public static int SELLBUFF_MAX_BUFFS;
|
public static int SELLBUFF_MAX_BUFFS;
|
||||||
|
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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class initializes all global variables for configuration.<br>
|
* This class initializes all global variables for configuration.<br>
|
||||||
@ -3201,6 +3223,49 @@ public final class Config
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Load VoteReward config file (if exists)
|
||||||
|
final PropertiesParser VoteReward = new PropertiesParser(CUSTOM_VOTE_REWARD_CONFIG_FILE);
|
||||||
|
|
||||||
|
ALLOW_NETWORK_VOTE_REWARD = VoteReward.getBoolean("AllowNetworkVoteReward", false);
|
||||||
|
NETWORK_SERVER_LINK = VoteReward.getString("NetworkServerLink", "");
|
||||||
|
NETWORK_VOTES_DIFFERENCE = VoteReward.getInt("NetworkVotesDifference", 5);
|
||||||
|
NETWORK_REWARD_CHECK_TIME = VoteReward.getInt("NetworkRewardCheckTime", 5);
|
||||||
|
String NETWORK_SMALL_REWARD_VALUE = VoteReward.getString("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 = VoteReward.getInt("NetworkDualboxesAllowed", 1);
|
||||||
|
ALLOW_NETWORK_GAME_SERVER_REPORT = VoteReward.getBoolean("AllowNetworkGameServerReport", false);
|
||||||
|
ALLOW_TOPZONE_VOTE_REWARD = VoteReward.getBoolean("AllowTopzoneVoteReward", false);
|
||||||
|
TOPZONE_SERVER_LINK = VoteReward.getString("TopzoneServerLink", "");
|
||||||
|
TOPZONE_VOTES_DIFFERENCE = VoteReward.getInt("TopzoneVotesDifference", 5);
|
||||||
|
TOPZONE_REWARD_CHECK_TIME = VoteReward.getInt("TopzoneRewardCheckTime", 5);
|
||||||
|
String TOPZONE_SMALL_REWARD_VALUE = VoteReward.getString("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 = VoteReward.getInt("TopzoneDualboxesAllowed", 1);
|
||||||
|
ALLOW_TOPZONE_GAME_SERVER_REPORT = VoteReward.getBoolean("AllowTopzoneGameServerReport", false);
|
||||||
|
ALLOW_HOPZONE_VOTE_REWARD = VoteReward.getBoolean("AllowHopzoneVoteReward", false);
|
||||||
|
HOPZONE_SERVER_LINK = VoteReward.getString("HopzoneServerLink", "");
|
||||||
|
HOPZONE_VOTES_DIFFERENCE = VoteReward.getInt("HopzoneVotesDifference", 5);
|
||||||
|
HOPZONE_REWARD_CHECK_TIME = VoteReward.getInt("HopzoneRewardCheckTime", 5);
|
||||||
|
String HOPZONE_SMALL_REWARD_VALUE = VoteReward.getString("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 = VoteReward.getInt("HopzoneDualboxesAllowed", 1);
|
||||||
|
ALLOW_HOPZONE_GAME_SERVER_REPORT = VoteReward.getBoolean("AllowHopzoneGameServerReport", false);
|
||||||
|
|
||||||
// Load WalkerBotProtection config file (if exists)
|
// Load WalkerBotProtection config file (if exists)
|
||||||
final PropertiesParser WalkerBotProtection = new PropertiesParser(CUSTOM_WALKER_BOT_PROTECTION_CONFIG_FILE);
|
final PropertiesParser WalkerBotProtection = new PropertiesParser(CUSTOM_WALKER_BOT_PROTECTION_CONFIG_FILE);
|
||||||
|
|
||||||
|
@ -134,6 +134,7 @@ import com.l2jmobius.gameserver.model.entity.Hero;
|
|||||||
import com.l2jmobius.gameserver.model.entity.TvTManager;
|
import com.l2jmobius.gameserver.model.entity.TvTManager;
|
||||||
import com.l2jmobius.gameserver.model.events.EventDispatcher;
|
import com.l2jmobius.gameserver.model.events.EventDispatcher;
|
||||||
import com.l2jmobius.gameserver.model.olympiad.Olympiad;
|
import com.l2jmobius.gameserver.model.olympiad.Olympiad;
|
||||||
|
import com.l2jmobius.gameserver.model.votereward.VoteSystem;
|
||||||
import com.l2jmobius.gameserver.network.ClientNetworkManager;
|
import com.l2jmobius.gameserver.network.ClientNetworkManager;
|
||||||
import com.l2jmobius.gameserver.network.loginserver.LoginServerNetworkManager;
|
import com.l2jmobius.gameserver.network.loginserver.LoginServerNetworkManager;
|
||||||
import com.l2jmobius.gameserver.network.telnet.TelnetServer;
|
import com.l2jmobius.gameserver.network.telnet.TelnetServer;
|
||||||
@ -325,6 +326,7 @@ public class GameServer
|
|||||||
FourSepulchersManager.getInstance().init();
|
FourSepulchersManager.getInstance().init();
|
||||||
DimensionalRiftManager.getInstance();
|
DimensionalRiftManager.getInstance();
|
||||||
RaidBossSpawnManager.getInstance();
|
RaidBossSpawnManager.getInstance();
|
||||||
|
VoteSystem.initialize();
|
||||||
|
|
||||||
printSection("Siege");
|
printSection("Siege");
|
||||||
SiegeManager.getInstance().getSieges();
|
SiegeManager.getInstance().getSieges();
|
||||||
|
@ -0,0 +1,83 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* 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 com.l2jmobius.gameserver.model.votereward;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLConnection;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.l2jmobius.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/5.0");
|
||||||
|
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();
|
||||||
|
LOGGER.warning("VoteSystem: Error while getting server vote count from " + getSiteName() + ".");
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSiteName()
|
||||||
|
{
|
||||||
|
return "Hopzone";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,83 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* 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 com.l2jmobius.gameserver.model.votereward;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLConnection;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.l2jmobius.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-Agent", "Mozilla/5.0");
|
||||||
|
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();
|
||||||
|
LOGGER.warning("VoteSystem: Error while getting server vote count from " + getSiteName() + ".");
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSiteName()
|
||||||
|
{
|
||||||
|
return "Network";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,80 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* 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 com.l2jmobius.gameserver.model.votereward;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLConnection;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.l2jmobius.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)
|
||||||
|
{
|
||||||
|
int votes = Integer.valueOf(line);
|
||||||
|
return votes;
|
||||||
|
}
|
||||||
|
|
||||||
|
br.close();
|
||||||
|
isr.close();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
LOGGER.warning("VoteSystem: Error while getting server vote count from " + getSiteName() + ".");
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSiteName()
|
||||||
|
{
|
||||||
|
return "Topzone";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,209 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* 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 com.l2jmobius.gameserver.model.votereward;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import com.l2jmobius.Config;
|
||||||
|
import com.l2jmobius.commons.concurrent.ThreadPool;
|
||||||
|
import com.l2jmobius.gameserver.enums.ChatType;
|
||||||
|
import com.l2jmobius.gameserver.model.L2World;
|
||||||
|
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||||
|
import com.l2jmobius.gameserver.network.serverpackets.CreatureSay;
|
||||||
|
import com.l2jmobius.gameserver.util.Broadcast;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Anarchy
|
||||||
|
*/
|
||||||
|
public abstract class VoteSystem implements Runnable
|
||||||
|
{
|
||||||
|
protected static final Logger LOGGER = Logger.getLogger(VoteSystem.class.getName());
|
||||||
|
|
||||||
|
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 final Map<String, Integer> playerIps = new HashMap<>();
|
||||||
|
|
||||||
|
public static void initialize()
|
||||||
|
{
|
||||||
|
if (Config.ALLOW_NETWORK_VOTE_REWARD || Config.ALLOW_TOPZONE_VOTE_REWARD || Config.ALLOW_HOPZONE_VOTE_REWARD)
|
||||||
|
{
|
||||||
|
LOGGER.info("VoteSystem: Initialized.");
|
||||||
|
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));
|
||||||
|
LOGGER.info("VoteSystem: Network votes enabled.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOGGER.info("VoteSystem: Network votes disabled.");
|
||||||
|
}
|
||||||
|
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));
|
||||||
|
LOGGER.info("VoteSystem: Topzone votes enabled.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOGGER.info("VoteSystem: Topzone votes disabled.");
|
||||||
|
}
|
||||||
|
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));
|
||||||
|
LOGGER.info("VoteSystem: Hopzone votes enabled.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOGGER.info("VoteSystem: Hopzone votes disabled.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOGGER.info("VoteSystem: Disabled.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
ThreadPool.scheduleAtFixedRate(this, checkMins * 1000 * 60, checkMins * 1000 * 60);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void reward()
|
||||||
|
{
|
||||||
|
int currentVotes = getVotes();
|
||||||
|
|
||||||
|
if (currentVotes == -1)
|
||||||
|
{
|
||||||
|
LOGGER.info("VoteSystem: 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)
|
||||||
|
{
|
||||||
|
LOGGER.info("VoteSystem: Server votes on " + getSiteName() + ": " + currentVotes);
|
||||||
|
LOGGER.info("VoteSystem: Votes needed for reward: " + ((lastVotes + votesDiff) - currentVotes));
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentVotes >= (lastVotes + votesDiff))
|
||||||
|
{
|
||||||
|
Collection<L2PcInstance> pls = L2World.getInstance().getPlayers();
|
||||||
|
if (allowReport)
|
||||||
|
{
|
||||||
|
LOGGER.info("VoteSystem: Server votes on " + getSiteName() + ": " + currentVotes);
|
||||||
|
LOGGER.info("VoteSystem: 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())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean canReward = false;
|
||||||
|
String pIp = p.getClient().getConnectionAddress().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)
|
||||||
|
{
|
||||||
|
LOGGER.info("VoteSystem: Server votes on " + getSiteName() + ": " + currentVotes);
|
||||||
|
LOGGER.info("VoteSystem: 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, ChatType.CRITICAL_ANNOUNCE, "", msg);
|
||||||
|
Broadcast.toAllOnlinePlayers(cs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract int getVotes();
|
||||||
|
|
||||||
|
public abstract String getSiteName();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user