Fixed max clan mission count, also DailyTaskManager and PlayerVariables cleanup.
Thanks to nasseka.
This commit is contained in:
@ -245,12 +245,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -276,13 +276,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -302,11 +302,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
|
@ -25,8 +25,6 @@ import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -85,7 +83,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -128,7 +126,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -155,14 +153,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
}
|
||||
|
@ -249,12 +249,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -280,13 +280,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -306,11 +306,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String CEREMONY_OF_CHAOS_SCORE = "CEREMONY_OF_CHAOS_SCORE";
|
||||
public static final String CEREMONY_OF_CHAOS_MARKS = "CEREMONY_OF_CHAOS_MARKS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
@ -92,7 +85,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -135,7 +128,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -162,85 +155,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -249,12 +249,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -280,13 +280,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -306,11 +306,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String CEREMONY_OF_CHAOS_SCORE = "CEREMONY_OF_CHAOS_SCORE";
|
||||
public static final String CEREMONY_OF_CHAOS_MARKS = "CEREMONY_OF_CHAOS_MARKS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
@ -92,7 +85,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -135,7 +128,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -162,85 +155,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -249,12 +249,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -280,13 +280,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -306,11 +306,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String CEREMONY_OF_CHAOS_SCORE = "CEREMONY_OF_CHAOS_SCORE";
|
||||
public static final String CEREMONY_OF_CHAOS_MARKS = "CEREMONY_OF_CHAOS_MARKS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
@ -92,7 +85,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -135,7 +128,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -162,85 +155,10 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -34,9 +34,10 @@ import org.l2jmobius.gameserver.model.DailyMissionPlayerEntry;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.events.ListenersContainer;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
* @author Sdw, NasSeKa
|
||||
*/
|
||||
public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
{
|
||||
@ -77,7 +78,7 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
return entry != null ? entry.getProgress() : 0;
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), false);
|
||||
return (entry != null) && entry.getRecentlyCompleted();
|
||||
@ -114,7 +115,17 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
giveRewards(player);
|
||||
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), true);
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
if (!_holder.isOneTime())
|
||||
{
|
||||
int doneDailyMissions = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
player.getVariables().set(PlayerVariables.DAILY_MISSION_COUNT, doneDailyMissions + 1);
|
||||
entry.setStatus(DailyMissionStatus.NOT_AVAILABLE);
|
||||
entry.setProgress(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
}
|
||||
entry.setLastCompleted(Chronos.currentTimeMillis());
|
||||
entry.setRecentlyCompleted(true);
|
||||
storePlayerEntry(entry);
|
||||
|
@ -27,8 +27,6 @@ import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.model.DailyMissionDataHolder;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.stat.PlayerStat;
|
||||
@ -80,6 +78,7 @@ public class DailyTaskManager
|
||||
clanLeaderApply();
|
||||
resetVitalityWeekly();
|
||||
resetClanContribution();
|
||||
resetDailyMissionRewards();
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -90,7 +89,6 @@ public class DailyTaskManager
|
||||
resetWorldChatPoints();
|
||||
resetRecommends();
|
||||
resetTrainingCamp();
|
||||
resetDailyMissionRewards();
|
||||
resetAttendanceRewards();
|
||||
}
|
||||
|
||||
@ -243,12 +241,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -274,13 +272,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -300,11 +298,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
@ -312,7 +310,26 @@ public class DailyTaskManager
|
||||
|
||||
private void resetDailyMissionRewards()
|
||||
{
|
||||
DailyMissionData.getInstance().getDailyMissionData().forEach(DailyMissionDataHolder::reset);
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var=?"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.DAILY_MISSION_COUNT);
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Clan Mission Rewards: ", e);
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.DAILY_MISSION_COUNT);
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
|
||||
LOGGER.info("Clan Mission Rewards has been resetted.");
|
||||
}
|
||||
|
||||
private void resetClanContribution()
|
||||
|
@ -136,7 +136,7 @@ public class DailyMissionDataHolder
|
||||
}
|
||||
|
||||
// Show only if its repeatable, recently completed or incompleted that has met the checks above.
|
||||
return (!_isOneTime || getRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
return (!_isOneTime || isRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
}
|
||||
|
||||
public void requestReward(Player player)
|
||||
@ -157,9 +157,9 @@ public class DailyMissionDataHolder
|
||||
return _handler != null ? _handler.getProgress(player) : DailyMissionStatus.NOT_AVAILABLE.getClientId();
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
return (_handler != null) && _handler.getRecentlyCompleted(player);
|
||||
return (_handler != null) && _handler.isRecentlyCompleted(player);
|
||||
}
|
||||
|
||||
public boolean isLevelUpMission()
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String DAILY_MISSION_COUNT = "DAILY_MISSION_COUNT";
|
||||
public static final String CEREMONY_OF_CHAOS_SCORE = "CEREMONY_OF_CHAOS_SCORE";
|
||||
public static final String CEREMONY_OF_CHAOS_MARKS = "CEREMONY_OF_CHAOS_MARKS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
@ -95,7 +89,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -138,7 +132,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -165,85 +159,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ public class ExPledgeMissionInfo implements IClientOutgoingPacket
|
||||
}
|
||||
else
|
||||
{
|
||||
status = reward.getRecentlyCompleted(_player) ? 0 : 3;
|
||||
status = reward.isRecentlyCompleted(_player) ? 0 : 3;
|
||||
}
|
||||
}
|
||||
else if (status == 1)
|
||||
|
@ -17,13 +17,13 @@
|
||||
package org.l2jmobius.gameserver.network.serverpackets.pledgeV2;
|
||||
|
||||
import org.l2jmobius.commons.network.PacketWriter;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
|
||||
/**
|
||||
* @author Bonux (bonuxq@gmail.com)
|
||||
* @author Bonux (bonuxq@gmail.com), NasSeKa
|
||||
* @date 29.09.2019
|
||||
**/
|
||||
public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
@ -33,8 +33,8 @@ public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
|
||||
public ExPledgeMissionRewardCount(Player player)
|
||||
{
|
||||
_doneMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getRecentlyCompleted(player)).count();
|
||||
_availableMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getStatus(player) == 1).count();
|
||||
_doneMissionsCount = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
_availableMissionsCount = player.getNobleLevel() == 1 ? 18 : player.getNobleLevel() >= 2 ? 20 : 16;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,9 +34,10 @@ import org.l2jmobius.gameserver.model.DailyMissionPlayerEntry;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.events.ListenersContainer;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
* @author Sdw, NasSeKa
|
||||
*/
|
||||
public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
{
|
||||
@ -77,7 +78,7 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
return entry != null ? entry.getProgress() : 0;
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), false);
|
||||
return (entry != null) && entry.getRecentlyCompleted();
|
||||
@ -114,7 +115,17 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
giveRewards(player);
|
||||
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), true);
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
if (!_holder.isOneTime())
|
||||
{
|
||||
int doneDailyMissions = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
player.getVariables().set(PlayerVariables.DAILY_MISSION_COUNT, doneDailyMissions + 1);
|
||||
entry.setStatus(DailyMissionStatus.NOT_AVAILABLE);
|
||||
entry.setProgress(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
}
|
||||
entry.setLastCompleted(Chronos.currentTimeMillis());
|
||||
entry.setRecentlyCompleted(true);
|
||||
storePlayerEntry(entry);
|
||||
|
@ -27,8 +27,6 @@ import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.model.DailyMissionDataHolder;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.stat.PlayerStat;
|
||||
@ -80,6 +78,7 @@ public class DailyTaskManager
|
||||
clanLeaderApply();
|
||||
resetVitalityWeekly();
|
||||
resetClanContribution();
|
||||
resetDailyMissionRewards();
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -90,7 +89,6 @@ public class DailyTaskManager
|
||||
resetWorldChatPoints();
|
||||
resetRecommends();
|
||||
resetTrainingCamp();
|
||||
resetDailyMissionRewards();
|
||||
resetAttendanceRewards();
|
||||
}
|
||||
|
||||
@ -243,12 +241,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -274,13 +272,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -300,11 +298,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
@ -312,7 +310,26 @@ public class DailyTaskManager
|
||||
|
||||
private void resetDailyMissionRewards()
|
||||
{
|
||||
DailyMissionData.getInstance().getDailyMissionData().forEach(DailyMissionDataHolder::reset);
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var=?"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.DAILY_MISSION_COUNT);
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Clan Mission Rewards: ", e);
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.DAILY_MISSION_COUNT);
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
|
||||
LOGGER.info("Clan Mission Rewards has been resetted.");
|
||||
}
|
||||
|
||||
private void resetClanContribution()
|
||||
|
@ -136,7 +136,7 @@ public class DailyMissionDataHolder
|
||||
}
|
||||
|
||||
// Show only if its repeatable, recently completed or incompleted that has met the checks above.
|
||||
return (!_isOneTime || getRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
return (!_isOneTime || isRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
}
|
||||
|
||||
public void requestReward(Player player)
|
||||
@ -157,9 +157,9 @@ public class DailyMissionDataHolder
|
||||
return _handler != null ? _handler.getProgress(player) : DailyMissionStatus.NOT_AVAILABLE.getClientId();
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
return (_handler != null) && _handler.getRecentlyCompleted(player);
|
||||
return (_handler != null) && _handler.isRecentlyCompleted(player);
|
||||
}
|
||||
|
||||
public boolean isLevelUpMission()
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String DAILY_MISSION_COUNT = "DAILY_MISSION_COUNT";
|
||||
public static final String CEREMONY_OF_CHAOS_SCORE = "CEREMONY_OF_CHAOS_SCORE";
|
||||
public static final String CEREMONY_OF_CHAOS_MARKS = "CEREMONY_OF_CHAOS_MARKS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
@ -95,7 +89,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -138,7 +132,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -165,85 +159,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ public class ExPledgeMissionInfo implements IClientOutgoingPacket
|
||||
}
|
||||
else
|
||||
{
|
||||
status = reward.getRecentlyCompleted(_player) ? 0 : 3;
|
||||
status = reward.isRecentlyCompleted(_player) ? 0 : 3;
|
||||
}
|
||||
}
|
||||
else if (status == 1)
|
||||
|
@ -17,13 +17,13 @@
|
||||
package org.l2jmobius.gameserver.network.serverpackets.pledgeV2;
|
||||
|
||||
import org.l2jmobius.commons.network.PacketWriter;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
|
||||
/**
|
||||
* @author Bonux (bonuxq@gmail.com)
|
||||
* @author Bonux (bonuxq@gmail.com), NasSeKa
|
||||
* @date 29.09.2019
|
||||
**/
|
||||
public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
@ -33,8 +33,8 @@ public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
|
||||
public ExPledgeMissionRewardCount(Player player)
|
||||
{
|
||||
_doneMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getRecentlyCompleted(player)).count();
|
||||
_availableMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getStatus(player) == 1).count();
|
||||
_doneMissionsCount = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
_availableMissionsCount = player.getNobleLevel() == 1 ? 18 : player.getNobleLevel() >= 2 ? 20 : 16;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,9 +34,10 @@ import org.l2jmobius.gameserver.model.DailyMissionPlayerEntry;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.events.ListenersContainer;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
* @author Sdw, NasSeKa
|
||||
*/
|
||||
public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
{
|
||||
@ -77,7 +78,7 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
return entry != null ? entry.getProgress() : 0;
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), false);
|
||||
return (entry != null) && entry.getRecentlyCompleted();
|
||||
@ -114,7 +115,17 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
giveRewards(player);
|
||||
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), true);
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
if (!_holder.isOneTime())
|
||||
{
|
||||
int doneDailyMissions = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
player.getVariables().set(PlayerVariables.DAILY_MISSION_COUNT, doneDailyMissions + 1);
|
||||
entry.setStatus(DailyMissionStatus.NOT_AVAILABLE);
|
||||
entry.setProgress(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
}
|
||||
entry.setLastCompleted(Chronos.currentTimeMillis());
|
||||
entry.setRecentlyCompleted(true);
|
||||
storePlayerEntry(entry);
|
||||
|
@ -27,8 +27,6 @@ import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.model.DailyMissionDataHolder;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.stat.PlayerStat;
|
||||
@ -80,6 +78,7 @@ public class DailyTaskManager
|
||||
clanLeaderApply();
|
||||
resetVitalityWeekly();
|
||||
resetClanContribution();
|
||||
resetDailyMissionRewards();
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -90,7 +89,6 @@ public class DailyTaskManager
|
||||
resetWorldChatPoints();
|
||||
resetRecommends();
|
||||
resetTrainingCamp();
|
||||
resetDailyMissionRewards();
|
||||
resetAttendanceRewards();
|
||||
}
|
||||
|
||||
@ -243,12 +241,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -274,13 +272,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -300,11 +298,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
@ -312,7 +310,26 @@ public class DailyTaskManager
|
||||
|
||||
private void resetDailyMissionRewards()
|
||||
{
|
||||
DailyMissionData.getInstance().getDailyMissionData().forEach(DailyMissionDataHolder::reset);
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var=?"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.DAILY_MISSION_COUNT);
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Clan Mission Rewards: ", e);
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.DAILY_MISSION_COUNT);
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
|
||||
LOGGER.info("Clan Mission Rewards has been resetted.");
|
||||
}
|
||||
|
||||
private void resetClanContribution()
|
||||
|
@ -136,7 +136,7 @@ public class DailyMissionDataHolder
|
||||
}
|
||||
|
||||
// Show only if its repeatable, recently completed or incompleted that has met the checks above.
|
||||
return (!_isOneTime || getRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
return (!_isOneTime || isRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
}
|
||||
|
||||
public void requestReward(Player player)
|
||||
@ -157,9 +157,9 @@ public class DailyMissionDataHolder
|
||||
return _handler != null ? _handler.getProgress(player) : DailyMissionStatus.NOT_AVAILABLE.getClientId();
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
return (_handler != null) && _handler.getRecentlyCompleted(player);
|
||||
return (_handler != null) && _handler.isRecentlyCompleted(player);
|
||||
}
|
||||
|
||||
public boolean isLevelUpMission()
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String DAILY_MISSION_COUNT = "DAILY_MISSION_COUNT";
|
||||
public static final String CEREMONY_OF_CHAOS_SCORE = "CEREMONY_OF_CHAOS_SCORE";
|
||||
public static final String CEREMONY_OF_CHAOS_MARKS = "CEREMONY_OF_CHAOS_MARKS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
@ -95,7 +89,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -138,7 +132,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -165,85 +159,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ public class ExPledgeMissionInfo implements IClientOutgoingPacket
|
||||
}
|
||||
else
|
||||
{
|
||||
status = reward.getRecentlyCompleted(_player) ? 0 : 3;
|
||||
status = reward.isRecentlyCompleted(_player) ? 0 : 3;
|
||||
}
|
||||
}
|
||||
else if (status == 1)
|
||||
|
@ -17,13 +17,13 @@
|
||||
package org.l2jmobius.gameserver.network.serverpackets.pledgeV2;
|
||||
|
||||
import org.l2jmobius.commons.network.PacketWriter;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
|
||||
/**
|
||||
* @author Bonux (bonuxq@gmail.com)
|
||||
* @author Bonux (bonuxq@gmail.com), NasSeKa
|
||||
* @date 29.09.2019
|
||||
**/
|
||||
public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
@ -33,8 +33,8 @@ public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
|
||||
public ExPledgeMissionRewardCount(Player player)
|
||||
{
|
||||
_doneMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getRecentlyCompleted(player)).count();
|
||||
_availableMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getStatus(player) == 1).count();
|
||||
_doneMissionsCount = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
_availableMissionsCount = player.getNobleLevel() == 1 ? 18 : player.getNobleLevel() >= 2 ? 20 : 16;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,9 +34,10 @@ import org.l2jmobius.gameserver.model.DailyMissionPlayerEntry;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.events.ListenersContainer;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
* @author Sdw, NasSeKa
|
||||
*/
|
||||
public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
{
|
||||
@ -77,7 +78,7 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
return entry != null ? entry.getProgress() : 0;
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), false);
|
||||
return (entry != null) && entry.getRecentlyCompleted();
|
||||
@ -114,7 +115,17 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
giveRewards(player);
|
||||
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), true);
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
if (!_holder.isOneTime())
|
||||
{
|
||||
int doneDailyMissions = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
player.getVariables().set(PlayerVariables.DAILY_MISSION_COUNT, doneDailyMissions + 1);
|
||||
entry.setStatus(DailyMissionStatus.NOT_AVAILABLE);
|
||||
entry.setProgress(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
}
|
||||
entry.setLastCompleted(Chronos.currentTimeMillis());
|
||||
entry.setRecentlyCompleted(true);
|
||||
storePlayerEntry(entry);
|
||||
|
@ -27,9 +27,7 @@ import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.DailyMissionDataHolder;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.stat.PlayerStat;
|
||||
@ -82,6 +80,7 @@ public class DailyTaskManager
|
||||
clanLeaderApply();
|
||||
resetVitalityWeekly();
|
||||
resetClanContribution();
|
||||
resetDailyMissionRewards();
|
||||
resetTimedHuntingZonesWeekly();
|
||||
}
|
||||
else
|
||||
@ -94,7 +93,6 @@ public class DailyTaskManager
|
||||
resetRecommends();
|
||||
resetTrainingCamp();
|
||||
resetTimedHuntingZones();
|
||||
resetDailyMissionRewards();
|
||||
resetAttendanceRewards();
|
||||
}
|
||||
|
||||
@ -247,12 +245,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -278,13 +276,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -304,11 +302,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
@ -316,7 +314,26 @@ public class DailyTaskManager
|
||||
|
||||
private void resetDailyMissionRewards()
|
||||
{
|
||||
DailyMissionData.getInstance().getDailyMissionData().forEach(DailyMissionDataHolder::reset);
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var=?"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.DAILY_MISSION_COUNT);
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Clan Mission Rewards: ", e);
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.DAILY_MISSION_COUNT);
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
|
||||
LOGGER.info("Clan Mission Rewards has been resetted.");
|
||||
}
|
||||
|
||||
private void resetClanContribution()
|
||||
@ -377,12 +394,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Special Hunting Zones has been resetted.");
|
||||
@ -411,12 +428,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Weekly Special Hunting Zones has been resetted.");
|
||||
|
@ -136,7 +136,7 @@ public class DailyMissionDataHolder
|
||||
}
|
||||
|
||||
// Show only if its repeatable, recently completed or incompleted that has met the checks above.
|
||||
return (!_isOneTime || getRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
return (!_isOneTime || isRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
}
|
||||
|
||||
public void requestReward(Player player)
|
||||
@ -157,9 +157,9 @@ public class DailyMissionDataHolder
|
||||
return _handler != null ? _handler.getProgress(player) : DailyMissionStatus.NOT_AVAILABLE.getClientId();
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
return (_handler != null) && _handler.getRecentlyCompleted(player);
|
||||
return (_handler != null) && _handler.isRecentlyCompleted(player);
|
||||
}
|
||||
|
||||
public boolean isLevelUpMission()
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String DAILY_MISSION_COUNT = "DAILY_MISSION_COUNT";
|
||||
public static final String CEREMONY_OF_CHAOS_SCORE = "CEREMONY_OF_CHAOS_SCORE";
|
||||
public static final String CEREMONY_OF_CHAOS_MARKS = "CEREMONY_OF_CHAOS_MARKS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
@ -99,7 +93,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -142,7 +136,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -169,85 +163,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ public class ExPledgeMissionInfo implements IClientOutgoingPacket
|
||||
}
|
||||
else
|
||||
{
|
||||
status = reward.getRecentlyCompleted(_player) ? 0 : 3;
|
||||
status = reward.isRecentlyCompleted(_player) ? 0 : 3;
|
||||
}
|
||||
}
|
||||
else if (status == 1)
|
||||
|
@ -17,13 +17,13 @@
|
||||
package org.l2jmobius.gameserver.network.serverpackets.pledgeV2;
|
||||
|
||||
import org.l2jmobius.commons.network.PacketWriter;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
|
||||
/**
|
||||
* @author Bonux (bonuxq@gmail.com)
|
||||
* @author Bonux (bonuxq@gmail.com), NasSeKa
|
||||
* @date 29.09.2019
|
||||
**/
|
||||
public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
@ -33,8 +33,8 @@ public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
|
||||
public ExPledgeMissionRewardCount(Player player)
|
||||
{
|
||||
_doneMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getRecentlyCompleted(player)).count();
|
||||
_availableMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getStatus(player) == 1).count();
|
||||
_doneMissionsCount = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
_availableMissionsCount = player.getNobleLevel() == 1 ? 18 : player.getNobleLevel() >= 2 ? 20 : 16;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,9 +34,10 @@ import org.l2jmobius.gameserver.model.DailyMissionPlayerEntry;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.events.ListenersContainer;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
* @author Sdw, NasSeKa
|
||||
*/
|
||||
public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
{
|
||||
@ -77,7 +78,7 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
return entry != null ? entry.getProgress() : 0;
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), false);
|
||||
return (entry != null) && entry.getRecentlyCompleted();
|
||||
@ -114,7 +115,17 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
giveRewards(player);
|
||||
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), true);
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
if (!_holder.isOneTime())
|
||||
{
|
||||
int doneDailyMissions = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
player.getVariables().set(PlayerVariables.DAILY_MISSION_COUNT, doneDailyMissions + 1);
|
||||
entry.setStatus(DailyMissionStatus.NOT_AVAILABLE);
|
||||
entry.setProgress(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
}
|
||||
entry.setLastCompleted(Chronos.currentTimeMillis());
|
||||
entry.setRecentlyCompleted(true);
|
||||
storePlayerEntry(entry);
|
||||
|
@ -29,9 +29,7 @@ import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.DailyMissionDataHolder;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.stat.PlayerStat;
|
||||
@ -84,6 +82,7 @@ public class DailyTaskManager
|
||||
clanLeaderApply();
|
||||
resetVitalityWeekly();
|
||||
resetClanContribution();
|
||||
resetDailyMissionRewards();
|
||||
resetTimedHuntingZonesWeekly();
|
||||
resetThroneOfHeroes();
|
||||
}
|
||||
@ -97,7 +96,6 @@ public class DailyTaskManager
|
||||
resetRecommends();
|
||||
resetTrainingCamp();
|
||||
resetTimedHuntingZones();
|
||||
resetDailyMissionRewards();
|
||||
resetHomunculusResetPoints();
|
||||
resetAttendanceRewards();
|
||||
}
|
||||
@ -251,12 +249,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -282,13 +280,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -308,11 +306,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
@ -320,7 +318,26 @@ public class DailyTaskManager
|
||||
|
||||
private void resetDailyMissionRewards()
|
||||
{
|
||||
DailyMissionData.getInstance().getDailyMissionData().forEach(DailyMissionDataHolder::reset);
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var=?"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.DAILY_MISSION_COUNT);
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Clan Mission Rewards: ", e);
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.DAILY_MISSION_COUNT);
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
|
||||
LOGGER.info("Clan Mission Rewards has been resetted.");
|
||||
}
|
||||
|
||||
private void resetClanContribution()
|
||||
@ -416,12 +433,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Special Hunting Zones has been resetted.");
|
||||
@ -450,12 +467,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Weekly Special Hunting Zones has been resetted.");
|
||||
|
@ -136,7 +136,7 @@ public class DailyMissionDataHolder
|
||||
}
|
||||
|
||||
// Show only if its repeatable, recently completed or incompleted that has met the checks above.
|
||||
return (!_isOneTime || getRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
return (!_isOneTime || isRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
}
|
||||
|
||||
public void requestReward(Player player)
|
||||
@ -157,9 +157,9 @@ public class DailyMissionDataHolder
|
||||
return _handler != null ? _handler.getProgress(player) : DailyMissionStatus.NOT_AVAILABLE.getClientId();
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
return (_handler != null) && _handler.getRecentlyCompleted(player);
|
||||
return (_handler != null) && _handler.isRecentlyCompleted(player);
|
||||
}
|
||||
|
||||
public boolean isLevelUpMission()
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String DAILY_MISSION_COUNT = "DAILY_MISSION_COUNT";
|
||||
public static final String CEREMONY_OF_CHAOS_SCORE = "CEREMONY_OF_CHAOS_SCORE";
|
||||
public static final String CEREMONY_OF_CHAOS_MARKS = "CEREMONY_OF_CHAOS_MARKS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
@ -111,7 +105,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -154,7 +148,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -181,85 +175,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ public class ExPledgeMissionInfo implements IClientOutgoingPacket
|
||||
}
|
||||
else
|
||||
{
|
||||
status = reward.getRecentlyCompleted(_player) ? 0 : 3;
|
||||
status = reward.isRecentlyCompleted(_player) ? 0 : 3;
|
||||
}
|
||||
}
|
||||
else if (status == 1)
|
||||
|
@ -17,13 +17,13 @@
|
||||
package org.l2jmobius.gameserver.network.serverpackets.pledgeV2;
|
||||
|
||||
import org.l2jmobius.commons.network.PacketWriter;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
|
||||
/**
|
||||
* @author Bonux (bonuxq@gmail.com)
|
||||
* @author Bonux (bonuxq@gmail.com), NasSeKa
|
||||
* @date 29.09.2019
|
||||
**/
|
||||
public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
@ -33,8 +33,8 @@ public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
|
||||
public ExPledgeMissionRewardCount(Player player)
|
||||
{
|
||||
_doneMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getRecentlyCompleted(player)).count();
|
||||
_availableMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getStatus(player) == 1).count();
|
||||
_doneMissionsCount = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
_availableMissionsCount = player.getNobleLevel() == 1 ? 18 : player.getNobleLevel() >= 2 ? 20 : 16;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,9 +34,10 @@ import org.l2jmobius.gameserver.model.DailyMissionPlayerEntry;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.events.ListenersContainer;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
* @author Sdw, NasSeKa
|
||||
*/
|
||||
public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
{
|
||||
@ -77,7 +78,7 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
return entry != null ? entry.getProgress() : 0;
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), false);
|
||||
return (entry != null) && entry.getRecentlyCompleted();
|
||||
@ -114,7 +115,17 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
giveRewards(player);
|
||||
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), true);
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
if (!_holder.isOneTime())
|
||||
{
|
||||
int doneDailyMissions = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
player.getVariables().set(PlayerVariables.DAILY_MISSION_COUNT, doneDailyMissions + 1);
|
||||
entry.setStatus(DailyMissionStatus.NOT_AVAILABLE);
|
||||
entry.setProgress(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
}
|
||||
entry.setLastCompleted(Chronos.currentTimeMillis());
|
||||
entry.setRecentlyCompleted(true);
|
||||
storePlayerEntry(entry);
|
||||
|
@ -29,9 +29,7 @@ import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.DailyMissionDataHolder;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.stat.PlayerStat;
|
||||
@ -84,6 +82,7 @@ public class DailyTaskManager
|
||||
clanLeaderApply();
|
||||
resetVitalityWeekly();
|
||||
resetClanContribution();
|
||||
resetDailyMissionRewards();
|
||||
resetTimedHuntingZonesWeekly();
|
||||
resetThroneOfHeroes();
|
||||
}
|
||||
@ -97,7 +96,6 @@ public class DailyTaskManager
|
||||
resetRecommends();
|
||||
resetTrainingCamp();
|
||||
resetTimedHuntingZones();
|
||||
resetDailyMissionRewards();
|
||||
resetHomunculusResetPoints();
|
||||
resetAttendanceRewards();
|
||||
}
|
||||
@ -251,12 +249,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -282,13 +280,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -308,11 +306,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
@ -320,7 +318,26 @@ public class DailyTaskManager
|
||||
|
||||
private void resetDailyMissionRewards()
|
||||
{
|
||||
DailyMissionData.getInstance().getDailyMissionData().forEach(DailyMissionDataHolder::reset);
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var=?"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.DAILY_MISSION_COUNT);
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Clan Mission Rewards: ", e);
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.DAILY_MISSION_COUNT);
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
|
||||
LOGGER.info("Clan Mission Rewards has been resetted.");
|
||||
}
|
||||
|
||||
private void resetClanContribution()
|
||||
@ -416,12 +433,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Special Hunting Zones has been resetted.");
|
||||
@ -450,12 +467,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Weekly Special Hunting Zones has been resetted.");
|
||||
|
@ -136,7 +136,7 @@ public class DailyMissionDataHolder
|
||||
}
|
||||
|
||||
// Show only if its repeatable, recently completed or incompleted that has met the checks above.
|
||||
return (!_isOneTime || getRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
return (!_isOneTime || isRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
}
|
||||
|
||||
public void requestReward(Player player)
|
||||
@ -157,9 +157,9 @@ public class DailyMissionDataHolder
|
||||
return _handler != null ? _handler.getProgress(player) : DailyMissionStatus.NOT_AVAILABLE.getClientId();
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
return (_handler != null) && _handler.getRecentlyCompleted(player);
|
||||
return (_handler != null) && _handler.isRecentlyCompleted(player);
|
||||
}
|
||||
|
||||
public boolean isLevelUpMission()
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String DAILY_MISSION_COUNT = "DAILY_MISSION_COUNT";
|
||||
public static final String CEREMONY_OF_CHAOS_SCORE = "CEREMONY_OF_CHAOS_SCORE";
|
||||
public static final String CEREMONY_OF_CHAOS_MARKS = "CEREMONY_OF_CHAOS_MARKS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
@ -111,7 +105,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -154,7 +148,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -181,85 +175,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ public class ExPledgeMissionInfo implements IClientOutgoingPacket
|
||||
}
|
||||
else
|
||||
{
|
||||
status = reward.getRecentlyCompleted(_player) ? 0 : 3;
|
||||
status = reward.isRecentlyCompleted(_player) ? 0 : 3;
|
||||
}
|
||||
}
|
||||
else if (status == 1)
|
||||
|
@ -17,13 +17,13 @@
|
||||
package org.l2jmobius.gameserver.network.serverpackets.pledgeV2;
|
||||
|
||||
import org.l2jmobius.commons.network.PacketWriter;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
|
||||
/**
|
||||
* @author Bonux (bonuxq@gmail.com)
|
||||
* @author Bonux (bonuxq@gmail.com), NasSeKa
|
||||
* @date 29.09.2019
|
||||
**/
|
||||
public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
@ -33,8 +33,8 @@ public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
|
||||
public ExPledgeMissionRewardCount(Player player)
|
||||
{
|
||||
_doneMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getRecentlyCompleted(player)).count();
|
||||
_availableMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getStatus(player) == 1).count();
|
||||
_doneMissionsCount = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
_availableMissionsCount = player.getNobleLevel() == 1 ? 18 : player.getNobleLevel() >= 2 ? 20 : 16;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,9 +34,10 @@ import org.l2jmobius.gameserver.model.DailyMissionPlayerEntry;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.events.ListenersContainer;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
* @author Sdw, NasSeKa
|
||||
*/
|
||||
public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
{
|
||||
@ -77,7 +78,7 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
return entry != null ? entry.getProgress() : 0;
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), false);
|
||||
return (entry != null) && entry.getRecentlyCompleted();
|
||||
@ -114,7 +115,17 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
|
||||
giveRewards(player);
|
||||
|
||||
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), true);
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
if (!_holder.isOneTime())
|
||||
{
|
||||
int doneDailyMissions = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
player.getVariables().set(PlayerVariables.DAILY_MISSION_COUNT, doneDailyMissions + 1);
|
||||
entry.setStatus(DailyMissionStatus.NOT_AVAILABLE);
|
||||
entry.setProgress(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
entry.setStatus(DailyMissionStatus.COMPLETED);
|
||||
}
|
||||
entry.setLastCompleted(Chronos.currentTimeMillis());
|
||||
entry.setRecentlyCompleted(true);
|
||||
storePlayerEntry(entry);
|
||||
|
@ -29,9 +29,7 @@ import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
|
||||
import org.l2jmobius.gameserver.model.DailyMissionDataHolder;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.stat.PlayerStat;
|
||||
@ -84,6 +82,7 @@ public class DailyTaskManager
|
||||
clanLeaderApply();
|
||||
resetVitalityWeekly();
|
||||
resetClanContribution();
|
||||
resetDailyMissionRewards();
|
||||
resetTimedHuntingZonesWeekly();
|
||||
resetThroneOfHeroes();
|
||||
}
|
||||
@ -97,7 +96,6 @@ public class DailyTaskManager
|
||||
resetRecommends();
|
||||
resetTrainingCamp();
|
||||
resetTimedHuntingZones();
|
||||
resetDailyMissionRewards();
|
||||
resetHomunculusResetPoints();
|
||||
resetAttendanceRewards();
|
||||
}
|
||||
@ -251,12 +249,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -282,13 +280,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -308,11 +306,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
@ -320,7 +318,26 @@ public class DailyTaskManager
|
||||
|
||||
private void resetDailyMissionRewards()
|
||||
{
|
||||
DailyMissionData.getInstance().getDailyMissionData().forEach(DailyMissionDataHolder::reset);
|
||||
// Update data for offline players.
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var=?"))
|
||||
{
|
||||
ps.setString(1, PlayerVariables.DAILY_MISSION_COUNT);
|
||||
ps.executeUpdate();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Clan Mission Rewards: ", e);
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.DAILY_MISSION_COUNT);
|
||||
player.getVariables().storeMe();
|
||||
}
|
||||
|
||||
LOGGER.info("Clan Mission Rewards has been resetted.");
|
||||
}
|
||||
|
||||
private void resetClanContribution()
|
||||
@ -416,12 +433,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Special Hunting Zones has been resetted.");
|
||||
@ -450,12 +467,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Weekly Special Hunting Zones has been resetted.");
|
||||
|
@ -136,7 +136,7 @@ public class DailyMissionDataHolder
|
||||
}
|
||||
|
||||
// Show only if its repeatable, recently completed or incompleted that has met the checks above.
|
||||
return (!_isOneTime || getRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
return (!_isOneTime || isRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId()));
|
||||
}
|
||||
|
||||
public void requestReward(Player player)
|
||||
@ -157,9 +157,9 @@ public class DailyMissionDataHolder
|
||||
return _handler != null ? _handler.getProgress(player) : DailyMissionStatus.NOT_AVAILABLE.getClientId();
|
||||
}
|
||||
|
||||
public boolean getRecentlyCompleted(Player player)
|
||||
public boolean isRecentlyCompleted(Player player)
|
||||
{
|
||||
return (_handler != null) && _handler.getRecentlyCompleted(player);
|
||||
return (_handler != null) && _handler.isRecentlyCompleted(player);
|
||||
}
|
||||
|
||||
public boolean isLevelUpMission()
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String DAILY_MISSION_COUNT = "DAILY_MISSION_COUNT";
|
||||
public static final String CEREMONY_OF_CHAOS_SCORE = "CEREMONY_OF_CHAOS_SCORE";
|
||||
public static final String CEREMONY_OF_CHAOS_MARKS = "CEREMONY_OF_CHAOS_MARKS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
@ -111,7 +105,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -154,7 +148,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -181,85 +175,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ public class ExPledgeMissionInfo implements IClientOutgoingPacket
|
||||
}
|
||||
else
|
||||
{
|
||||
status = reward.getRecentlyCompleted(_player) ? 0 : 3;
|
||||
status = reward.isRecentlyCompleted(_player) ? 0 : 3;
|
||||
}
|
||||
}
|
||||
else if (status == 1)
|
||||
|
@ -17,13 +17,13 @@
|
||||
package org.l2jmobius.gameserver.network.serverpackets.pledgeV2;
|
||||
|
||||
import org.l2jmobius.commons.network.PacketWriter;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
|
||||
/**
|
||||
* @author Bonux (bonuxq@gmail.com)
|
||||
* @author Bonux (bonuxq@gmail.com), NasSeKa
|
||||
* @date 29.09.2019
|
||||
**/
|
||||
public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
@ -33,8 +33,8 @@ public class ExPledgeMissionRewardCount implements IClientOutgoingPacket
|
||||
|
||||
public ExPledgeMissionRewardCount(Player player)
|
||||
{
|
||||
_doneMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getRecentlyCompleted(player)).count();
|
||||
_availableMissionsCount = (int) DailyMissionData.getInstance().getDailyMissionData(player).stream().filter(d -> d.getStatus(player) == 1).count();
|
||||
_doneMissionsCount = player.getVariables().getInt(PlayerVariables.DAILY_MISSION_COUNT, 0);
|
||||
_availableMissionsCount = player.getNobleLevel() == 1 ? 18 : player.getNobleLevel() >= 2 ? 20 : 16;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -25,8 +25,6 @@ import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -66,7 +64,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -109,7 +107,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -136,14 +134,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
}
|
||||
|
@ -25,8 +25,6 @@ import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -66,7 +64,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -109,7 +107,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -136,14 +134,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
}
|
||||
|
@ -25,8 +25,6 @@ import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -66,7 +64,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -109,7 +107,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -136,14 +134,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
}
|
||||
|
@ -25,8 +25,6 @@ import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -66,7 +64,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -109,7 +107,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -136,14 +134,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
}
|
||||
|
@ -252,12 +252,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -283,13 +283,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -309,11 +309,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
public static final String ABILITY_POINTS_DUAL_CLASS = "ABILITY_POINTS_DUAL_CLASS";
|
||||
public static final String ABILITY_POINTS_USED_MAIN_CLASS = "ABILITY_POINTS_USED";
|
||||
@ -91,7 +84,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -134,7 +127,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -161,85 +154,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -252,12 +252,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -283,13 +283,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -309,11 +309,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
public static final String ABILITY_POINTS_DUAL_CLASS = "ABILITY_POINTS_DUAL_CLASS";
|
||||
public static final String ABILITY_POINTS_USED_MAIN_CLASS = "ABILITY_POINTS_USED";
|
||||
@ -91,7 +84,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -134,7 +127,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -161,85 +154,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -252,12 +252,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -283,13 +283,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -309,11 +309,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
public static final String ABILITY_POINTS_DUAL_CLASS = "ABILITY_POINTS_DUAL_CLASS";
|
||||
public static final String ABILITY_POINTS_USED_MAIN_CLASS = "ABILITY_POINTS_USED";
|
||||
@ -91,7 +84,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -134,7 +127,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -161,85 +154,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -252,12 +252,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -283,13 +283,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -309,11 +309,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
public static final String ABILITY_POINTS_DUAL_CLASS = "ABILITY_POINTS_DUAL_CLASS";
|
||||
public static final String ABILITY_POINTS_USED_MAIN_CLASS = "ABILITY_POINTS_USED";
|
||||
@ -91,7 +84,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -134,7 +127,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -161,85 +154,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -252,12 +252,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -283,13 +283,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -309,11 +309,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
public static final String ABILITY_POINTS_DUAL_CLASS = "ABILITY_POINTS_DUAL_CLASS";
|
||||
public static final String ABILITY_POINTS_USED_MAIN_CLASS = "ABILITY_POINTS_USED";
|
||||
@ -91,7 +84,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -134,7 +127,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -161,85 +154,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -256,12 +256,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -287,13 +287,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -313,11 +313,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
@ -369,12 +369,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Special Hunting Zones has been resetted.");
|
||||
@ -403,12 +403,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Weekly Special Hunting Zones has been resetted.");
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
public static final String ABILITY_POINTS_DUAL_CLASS = "ABILITY_POINTS_DUAL_CLASS";
|
||||
public static final String ABILITY_POINTS_USED_MAIN_CLASS = "ABILITY_POINTS_USED";
|
||||
@ -95,7 +88,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -138,7 +131,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -165,85 +158,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -249,12 +249,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -280,13 +280,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -306,11 +306,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
public static final String ABILITY_POINTS_DUAL_CLASS = "ABILITY_POINTS_DUAL_CLASS";
|
||||
public static final String ABILITY_POINTS_USED_MAIN_CLASS = "ABILITY_POINTS_USED";
|
||||
@ -91,7 +84,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -134,7 +127,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -161,85 +154,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -256,12 +256,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -287,13 +287,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -313,11 +313,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
@ -369,12 +369,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Special Hunting Zones has been resetted.");
|
||||
@ -403,12 +403,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Weekly Special Hunting Zones has been resetted.");
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
public static final String ABILITY_POINTS_DUAL_CLASS = "ABILITY_POINTS_DUAL_CLASS";
|
||||
public static final String ABILITY_POINTS_USED_MAIN_CLASS = "ABILITY_POINTS_USED";
|
||||
@ -110,7 +103,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -153,7 +146,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -180,85 +173,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -263,10 +263,10 @@ public class DailyTaskManager
|
||||
ps.setInt(1, 4);
|
||||
ps.execute();
|
||||
}
|
||||
World.getInstance().getPlayers().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setClanDonationPoints(3);
|
||||
});
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@ -296,12 +296,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -327,13 +327,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -353,11 +353,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
@ -409,12 +409,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Special Hunting Zones has been resetted.");
|
||||
@ -443,12 +443,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Weekly Special Hunting Zones has been resetted.");
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
public static final String ABILITY_POINTS_DUAL_CLASS = "ABILITY_POINTS_DUAL_CLASS";
|
||||
public static final String ABILITY_POINTS_USED_MAIN_CLASS = "ABILITY_POINTS_USED";
|
||||
@ -111,7 +104,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -154,7 +147,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -181,85 +174,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -263,10 +263,10 @@ public class DailyTaskManager
|
||||
ps.setInt(1, 4);
|
||||
ps.execute();
|
||||
}
|
||||
World.getInstance().getPlayers().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setClanDonationPoints(3);
|
||||
});
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@ -296,12 +296,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setWorldChatUsed(0);
|
||||
player.sendPacket(new ExWorldChatCnt(player));
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Daily world chat points has been resetted.");
|
||||
}
|
||||
@ -327,13 +327,13 @@ public class DailyTaskManager
|
||||
LOGGER.log(Level.SEVERE, "Could not reset Recommendations System: ", e);
|
||||
}
|
||||
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.setRecomLeft(0);
|
||||
player.setRecomHave(player.getRecomHave() - 20);
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.broadcastUserInfo();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void resetTrainingCamp()
|
||||
@ -353,11 +353,11 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.resetTraingCampDuration();
|
||||
player.getAccountVariables().storeMe();
|
||||
});
|
||||
}
|
||||
|
||||
LOGGER.info("Training Camp daily time has been resetted.");
|
||||
}
|
||||
@ -409,12 +409,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Special Hunting Zones has been resetted.");
|
||||
@ -443,12 +443,12 @@ public class DailyTaskManager
|
||||
}
|
||||
|
||||
// Update data for online players.
|
||||
World.getInstance().getPlayers().stream().forEach(player ->
|
||||
for (Player player : World.getInstance().getPlayers())
|
||||
{
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_ENTRY + holder.getZoneId());
|
||||
player.getVariables().remove(PlayerVariables.HUNTING_ZONE_TIME + holder.getZoneId());
|
||||
player.getVariables().storeMe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info("Weekly Special Hunting Zones has been resetted.");
|
||||
|
@ -20,17 +20,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -51,7 +45,6 @@ public class PlayerVariables extends AbstractVariables
|
||||
public static final String VITALITY_ITEMS_USED_VARIABLE_NAME = "VITALITY_ITEMS_USED";
|
||||
public static final String ATTENDANCE_DATE = "ATTENDANCE_DATE";
|
||||
public static final String ATTENDANCE_INDEX = "ATTENDANCE_INDEX";
|
||||
private static final String DAILY_MISSION_REWARDS = "DAILY_MISSION_REWARDS";
|
||||
public static final String ABILITY_POINTS_MAIN_CLASS = "ABILITY_POINTS";
|
||||
public static final String ABILITY_POINTS_DUAL_CLASS = "ABILITY_POINTS_DUAL_CLASS";
|
||||
public static final String ABILITY_POINTS_USED_MAIN_CLASS = "ABILITY_POINTS_USED";
|
||||
@ -111,7 +104,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -154,7 +147,7 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@ -181,85 +174,9 @@ public class PlayerVariables extends AbstractVariables
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
|
||||
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _objectId, e);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Player getPlayer()
|
||||
{
|
||||
return World.getInstance().getPlayer(_objectId);
|
||||
}
|
||||
|
||||
public void addDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = Integer.toString(rewardId);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + rewardId;
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public void removeDailyMissionReward(int rewardId)
|
||||
{
|
||||
String result = "";
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "," + s;
|
||||
}
|
||||
}
|
||||
set(DAILY_MISSION_REWARDS, result);
|
||||
}
|
||||
|
||||
public boolean hasDailyMissionReward(int rewardId)
|
||||
{
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
for (String s : data.split(","))
|
||||
{
|
||||
if (s.equals(Integer.toString(rewardId)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Integer> getDailyMissionRewards()
|
||||
{
|
||||
List<Integer> rewards = null;
|
||||
final String data = getString(DAILY_MISSION_REWARDS, "");
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
for (String s : getString(DAILY_MISSION_REWARDS, "").split(","))
|
||||
{
|
||||
if (Util.isDigit(s))
|
||||
{
|
||||
final int rewardId = Integer.parseInt(s);
|
||||
if (rewards == null)
|
||||
{
|
||||
rewards = new ArrayList<>();
|
||||
}
|
||||
rewards.add(rewardId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rewards != null ? rewards : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user