Fixed max clan mission count, also DailyTaskManager and PlayerVariables cleanup.

Thanks to nasseka.
This commit is contained in:
MobiusDevelopment
2021-11-18 13:02:32 +00:00
parent f2085e07fc
commit df9fb73a40
74 changed files with 545 additions and 2036 deletions

View File

@ -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.");
}

View File

@ -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();
}
}