Reduced queries for storing clan values.

This commit is contained in:
MobiusDevelopment
2021-12-17 22:11:27 +00:00
parent b25618c95c
commit c044fc0319
431 changed files with 969 additions and 1505 deletions
@@ -75,7 +75,7 @@ public class Ballista extends AbstractNpcAI
{ {
if (npc.getFort().getSiege().isInProgress() && (caster.getClan() != null) && (caster.getClan().getLevel() >= MIN_CLAN_LV)) if (npc.getFort().getSiege().isInProgress() && (caster.getClan() != null) && (caster.getClan().getLevel() >= MIN_CLAN_LV))
{ {
caster.getClan().addReputationScore(Config.BALLISTA_POINTS, true); caster.getClan().addReputationScore(Config.BALLISTA_POINTS);
caster.sendPacket(SystemMessageId.THE_BALLISTA_HAS_BEEN_SUCCESSFULLY_DESTROYED_THE_CLAN_REPUTATION_WILL_BE_INCREASED); caster.sendPacket(SystemMessageId.THE_BALLISTA_HAS_BEEN_SUCCESSFULLY_DESTROYED_THE_CLAN_REPUTATION_WILL_BE_INCREASED);
} }
npc.doDie(caster); npc.doDie(caster);
@@ -57,7 +57,7 @@ public class ClanTrader extends AbstractNpcAI
if (getQuestItemsCount(player, itemId) >= itemCount) if (getQuestItemsCount(player, itemId) >= itemCount)
{ {
takeItems(player, itemId, itemCount); takeItems(player, itemId, itemCount);
player.getClan().addReputationScore(count, true); player.getClan().addReputationScore(count);
final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_CLAN_HAS_ADDED_S1_POINT_S_TO_ITS_CLAN_REPUTATION); final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_CLAN_HAS_ADDED_S1_POINT_S_TO_ITS_CLAN_REPUTATION);
sm.addInt(count); sm.addInt(count);
@@ -94,7 +94,7 @@ public class FameManager extends AbstractNpcAI
if ((player.getFame() >= REPUTATION_COST) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL)) if ((player.getFame() >= REPUTATION_COST) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL))
{ {
player.setFame(player.getFame() - REPUTATION_COST); player.setFame(player.getFame() - REPUTATION_COST);
player.getClan().addReputationScore(50, true); player.getClan().addReputationScore(50);
player.sendPacket(new UserInfo(player)); player.sendPacket(new UserInfo(player));
player.sendPacket(SystemMessageId.YOU_HAVE_ACQUIRED_50_CLAN_REPUTATION); player.sendPacket(SystemMessageId.YOU_HAVE_ACQUIRED_50_CLAN_REPUTATION);
htmltext = npc.getId() + "-04.html"; htmltext = npc.getId() + "-04.html";
@@ -187,7 +187,7 @@ public class AdminPledge implements IAdminCommandHandler
try try
{ {
final int points = Integer.parseInt(param); final int points = Integer.parseInt(param);
clan.addReputationScore(points, true); clan.addReputationScore(points);
BuilderUtil.sendSysMessage(activeChar, "You " + (points > 0 ? "add " : "remove ") + Math.abs(points) + " points " + (points > 0 ? "to " : "from ") + clan.getName() + "'s reputation. Their current score is " + clan.getReputationScore()); BuilderUtil.sendSysMessage(activeChar, "You " + (points > 0 ? "add " : "remove ") + Math.abs(points) + " points " + (points > 0 ? "to " : "from ") + clan.getName() + "'s reputation. Their current score is " + clan.getReputationScore());
} }
catch (Exception e) catch (Exception e)
@@ -52,7 +52,7 @@ public class GiveClanReputation extends AbstractEffect
return; return;
} }
effector.getActingPlayer().getClan().addReputationScore(_reputation, true); effector.getActingPlayer().getClan().addReputationScore(_reputation);
for (ClanMember member : effector.getActingPlayer().getClan().getMembers()) for (ClanMember member : effector.getActingPlayer().getClan().getMembers())
{ {
@@ -183,7 +183,7 @@ public class Q00245_ComeToMe extends Quest
{ {
if (player.isAcademyMember()) if (player.isAcademyMember())
{ {
player.getClan().addReputationScore(500, true); player.getClan().addReputationScore(500);
} }
addExpAndSp(player, 2_018_733, 484); addExpAndSp(player, 2_018_733, 484);
giveItems(player, MENTOR_RING, 1); giveItems(player, MENTOR_RING, 1);
@@ -198,7 +198,7 @@ public class Q00508_AClansReputation extends Quest
playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1); playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1);
takeItems(player, REWARD_POINTS.get(raid).get(1), -1); takeItems(player, REWARD_POINTS.get(raid).get(1), -1);
final int rep = REWARD_POINTS.get(raid).get(2); final int rep = REWARD_POINTS.get(raid).get(2);
clan.addReputationScore(rep, true); clan.addReputationScore(rep);
player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep)); player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep));
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
} }
@@ -180,7 +180,7 @@ public class Q00509_AClansFame extends Quest
playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1); playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1);
takeItems(player, REWARD_POINTS.get(raid).get(1), -1); takeItems(player, REWARD_POINTS.get(raid).get(1), -1);
final int rep = REWARD_POINTS.get(raid).get(2); final int rep = REWARD_POINTS.get(raid).get(2);
clan.addReputationScore(rep, true); clan.addReputationScore(rep);
player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep)); player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep));
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
} }
@@ -141,7 +141,7 @@ public class Q00510_AClansPrestige extends Quest
final int reward = (count < 10) ? (30 * count) : (59 + (30 * count)); final int reward = (count < 10) ? (30 * count) : (59 + (30 * count));
playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1); playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1);
takeItems(player, TYRANNOSAURUS_CLAW, -1); takeItems(player, TYRANNOSAURUS_CLAW, -1);
clan.addReputationScore(reward, true); clan.addReputationScore(reward);
player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(reward)); player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(reward));
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
htmltext = "31331-7.html"; htmltext = "31331-7.html";
@@ -473,7 +473,8 @@ public class ClanTable
{ {
for (Clan clan : _clans.values()) for (Clan clan : _clans.values())
{ {
clan.updateInDB(); clan.updateClanInDB();
clan.getVariables().storeMe();
for (ClanWar war : clan.getWarList().values()) for (ClanWar war : clan.getWarList().values())
{ {
storeClanWars(war); storeClanWars(war);
@@ -2407,15 +2407,15 @@ public class Player extends Playable
{ {
if (_lvlJoinedAcademy <= 16) if (_lvlJoinedAcademy <= 16)
{ {
_clan.addReputationScore(Config.JOIN_ACADEMY_MAX_REP_SCORE, true); _clan.addReputationScore(Config.JOIN_ACADEMY_MAX_REP_SCORE);
} }
else if (_lvlJoinedAcademy >= 39) else if (_lvlJoinedAcademy >= 39)
{ {
_clan.addReputationScore(Config.JOIN_ACADEMY_MIN_REP_SCORE, true); _clan.addReputationScore(Config.JOIN_ACADEMY_MIN_REP_SCORE);
} }
else else
{ {
_clan.addReputationScore((Config.JOIN_ACADEMY_MAX_REP_SCORE - ((_lvlJoinedAcademy - 16) * 20)), true); _clan.addReputationScore((Config.JOIN_ACADEMY_MAX_REP_SCORE - ((_lvlJoinedAcademy - 16) * 20)));
} }
setLvlJoinedAcademy(0); setLvlJoinedAcademy(0);
// oust pledge member from the academy, cuz he has finished his 2nd class transfer // oust pledge member from the academy, cuz he has finished his 2nd class transfer
@@ -6752,7 +6752,7 @@ public class Player extends Playable
final Clan clan = player.getClan(); final Clan clan = player.getClan();
if (clan != null) if (clan != null)
{ {
clan.addReputationScore(150000, true); clan.addReputationScore(150000);
} }
} }
player.setTrueHero(true); player.setTrueHero(true);
@@ -945,28 +945,6 @@ public class Clan implements IIdentifiable, INamable
} }
} }
public void updateInDB()
{
// Update reputation
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps = con.prepareStatement("UPDATE clan_data SET reputation_score=? WHERE clan_id=?"))
{
ps.setInt(1, _reputationScore);
ps.setInt(2, _clanId);
ps.execute();
}
catch (Exception e)
{
LOGGER.log(Level.WARNING, "Exception on updateClanScoreInDb(): " + e.getMessage(), e);
}
// Update variables at database
if (_vars != null)
{
_vars.storeMe();
}
}
/** /**
* Updates in database clan information: * Updates in database clan information:
* <ul> * <ul>
@@ -1108,7 +1086,7 @@ public class Clan implements IIdentifiable, INamable
setCrestLargeId(clanData.getInt("crest_large_id")); setCrestLargeId(clanData.getInt("crest_large_id"));
setAllyCrestId(clanData.getInt("ally_crest_id")); setAllyCrestId(clanData.getInt("ally_crest_id"));
setReputationScore(clanData.getInt("reputation_score"), false); setReputationScore(clanData.getInt("reputation_score"));
setAuctionBiddedAt(clanData.getInt("auction_bid_at"), false); setAuctionBiddedAt(clanData.getInt("auction_bid_at"), false);
setNewLeaderId(clanData.getInt("new_leader_id"), false); setNewLeaderId(clanData.getInt("new_leader_id"), false);
@@ -1897,11 +1875,11 @@ public class Clan implements IIdentifiable, INamable
// Order of Knights 10000 points per each // Order of Knights 10000 points per each
if (pledgeType < SUBUNIT_KNIGHT1) if (pledgeType < SUBUNIT_KNIGHT1)
{ {
setReputationScore(_reputationScore - Config.ROYAL_GUARD_COST, true); setReputationScore(_reputationScore - Config.ROYAL_GUARD_COST);
} }
else else
{ {
setReputationScore(_reputationScore - Config.KNIGHT_UNIT_COST, true); setReputationScore(_reputationScore - Config.KNIGHT_UNIT_COST);
// TODO: clan lvl9 or more can reinforce knights cheaper if first knight unit already created, use Config.KNIGHT_REINFORCE_COST // TODO: clan lvl9 or more can reinforce knights cheaper if first knight unit already created, use Config.KNIGHT_REINFORCE_COST
} }
} }
@@ -2101,17 +2079,17 @@ public class Clan implements IIdentifiable, INamable
return id; return id;
} }
public synchronized void addReputationScore(int value, boolean save) public synchronized void addReputationScore(int value)
{ {
setReputationScore(_reputationScore + value, save); setReputationScore(_reputationScore + value);
} }
public synchronized void takeReputationScore(int value, boolean save) public synchronized void takeReputationScore(int value)
{ {
setReputationScore(_reputationScore - value, save); setReputationScore(_reputationScore - value);
} }
private void setReputationScore(int value, boolean save) private void setReputationScore(int value)
{ {
if ((_reputationScore >= 0) && (value < 0)) if ((_reputationScore >= 0) && (value < 0))
{ {
@@ -2145,11 +2123,8 @@ public class Clan implements IIdentifiable, INamable
{ {
_reputationScore = -100000000; _reputationScore = -100000000;
} }
broadcastToOnlineMembers(new PledgeShowInfoUpdate(this)); broadcastToOnlineMembers(new PledgeShowInfoUpdate(this));
if (save)
{
updateInDB();
}
} }
public int getReputationScore() public int getReputationScore()
@@ -2603,7 +2578,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 6 // Upgrade to 6
if ((_reputationScore >= Config.CLAN_LEVEL_6_COST) && (_members.size() >= Config.CLAN_LEVEL_6_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_6_COST) && (_members.size() >= Config.CLAN_LEVEL_6_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_6_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_6_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_6_COST); cr.addInt(Config.CLAN_LEVEL_6_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2616,7 +2591,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 7 // Upgrade to 7
if ((_reputationScore >= Config.CLAN_LEVEL_7_COST) && (_members.size() >= Config.CLAN_LEVEL_7_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_7_COST) && (_members.size() >= Config.CLAN_LEVEL_7_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_7_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_7_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_7_COST); cr.addInt(Config.CLAN_LEVEL_7_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2629,7 +2604,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 8 // Upgrade to 8
if ((_reputationScore >= Config.CLAN_LEVEL_8_COST) && (_members.size() >= Config.CLAN_LEVEL_8_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_8_COST) && (_members.size() >= Config.CLAN_LEVEL_8_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_8_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_8_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_8_COST); cr.addInt(Config.CLAN_LEVEL_8_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2645,7 +2620,7 @@ public class Clan implements IIdentifiable, INamable
// itemId 9910 == Blood Oath // itemId 9910 == Blood Oath
if (player.destroyItemByItemId("ClanLvl", 9910, 150, player.getTarget(), false)) if (player.destroyItemByItemId("ClanLvl", 9910, 150, player.getTarget(), false))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_9_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_9_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_9_COST); cr.addInt(Config.CLAN_LEVEL_9_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2666,7 +2641,7 @@ public class Clan implements IIdentifiable, INamable
// itemId 9911 == Blood Alliance // itemId 9911 == Blood Alliance
if (player.destroyItemByItemId("ClanLvl", 9911, 5, player.getTarget(), false)) if (player.destroyItemByItemId("ClanLvl", 9911, 5, player.getTarget(), false))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_10_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_10_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_10_COST); cr.addInt(Config.CLAN_LEVEL_10_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2684,7 +2659,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 11 // Upgrade to 11
if ((_reputationScore >= Config.CLAN_LEVEL_11_COST) && (_members.size() >= Config.CLAN_LEVEL_11_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_11_COST) && (_members.size() >= Config.CLAN_LEVEL_11_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_11_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_11_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_11_COST); cr.addInt(Config.CLAN_LEVEL_11_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -110,8 +110,8 @@ public class ClanWar
// however, when the other side reputation score is 0 or below, your clan cannot acquire any reputation points from them. // however, when the other side reputation score is 0 or below, your clan cannot acquire any reputation points from them.
if (victimClan.getReputationScore() > 0) if (victimClan.getReputationScore() > 0)
{ {
victimClan.takeReputationScore(Config.REPUTATION_SCORE_PER_KILL, false); victimClan.takeReputationScore(Config.REPUTATION_SCORE_PER_KILL);
killerClan.addReputationScore(Config.REPUTATION_SCORE_PER_KILL, false); killerClan.addReputationScore(Config.REPUTATION_SCORE_PER_KILL);
} }
// System Message notification to clan members // System Message notification to clan members
@@ -167,7 +167,7 @@ public class ClanWar
final Clan winnerClan = cancelor.getId() == _attackerClanId ? ClanTable.getInstance().getClan(_attackedClanId) : ClanTable.getInstance().getClan(_attackerClanId); final Clan winnerClan = cancelor.getId() == _attackerClanId ? ClanTable.getInstance().getClan(_attackedClanId) : ClanTable.getInstance().getClan(_attackerClanId);
// Reduce reputation. // Reduce reputation.
cancelor.takeReputationScore(5000, true); cancelor.takeReputationScore(5000);
player.sendPacket(new SurrenderPledgeWar(cancelor.getName(), player.getName())); player.sendPacket(new SurrenderPledgeWar(cancelor.getName(), player.getName()));
SystemMessage sm = new SystemMessage(SystemMessageId.THE_WAR_ENDED_BY_YOUR_DEFEAT_DECLARATION_WITH_THE_S1_CLAN); SystemMessage sm = new SystemMessage(SystemMessageId.THE_WAR_ENDED_BY_YOUR_DEFEAT_DECLARATION_WITH_THE_S1_CLAN);
sm.addString(winnerClan.getName()); sm.addString(winnerClan.getName());
@@ -906,7 +906,7 @@ public class Hero
final Clan clan = player.getClan(); final Clan clan = player.getClan();
if ((clan != null) && (clan.getLevel() >= 5)) if ((clan != null) && (clan.getLevel() >= 5))
{ {
clan.addReputationScore(Config.HERO_POINTS, true); clan.addReputationScore(Config.HERO_POINTS);
final SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_MEMBER_C1_WAS_NAMED_A_HERO_S2_POINTS_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION); final SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_MEMBER_C1_WAS_NAMED_A_HERO_S2_POINTS_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION);
sm.addString(CharNameTable.getInstance().getNameById(player.getObjectId())); sm.addString(CharNameTable.getInstance().getNameById(player.getObjectId()));
sm.addInt(Config.HERO_POINTS); sm.addInt(Config.HERO_POINTS);
@@ -1014,16 +1014,16 @@ public class Castle extends AbstractResidence
if (_formerOwner != ClanTable.getInstance().getClan(getOwnerId())) if (_formerOwner != ClanTable.getInstance().getClan(getOwnerId()))
{ {
final int maxreward = Math.max(0, _formerOwner.getReputationScore()); final int maxreward = Math.max(0, _formerOwner.getReputationScore());
_formerOwner.takeReputationScore(Config.LOOSE_CASTLE_POINTS, true); _formerOwner.takeReputationScore(Config.LOOSE_CASTLE_POINTS);
final Clan owner = ClanTable.getInstance().getClan(getOwnerId()); final Clan owner = ClanTable.getInstance().getClan(getOwnerId());
if (owner != null) if (owner != null)
{ {
owner.addReputationScore(Math.min(Config.TAKE_CASTLE_POINTS, maxreward), true); owner.addReputationScore(Math.min(Config.TAKE_CASTLE_POINTS, maxreward));
} }
} }
else else
{ {
_formerOwner.addReputationScore(Config.CASTLE_DEFENDED_POINTS, true); _formerOwner.addReputationScore(Config.CASTLE_DEFENDED_POINTS);
} }
} }
else else
@@ -1031,7 +1031,7 @@ public class Castle extends AbstractResidence
final Clan owner = ClanTable.getInstance().getClan(getOwnerId()); final Clan owner = ClanTable.getInstance().getClan(getOwnerId());
if (owner != null) if (owner != null)
{ {
owner.addReputationScore(Config.TAKE_CASTLE_POINTS, true); owner.addReputationScore(Config.TAKE_CASTLE_POINTS);
} }
} }
} }
@@ -939,11 +939,11 @@ public class Fort extends AbstractResidence
{ {
if (removePoints) if (removePoints)
{ {
owner.takeReputationScore(Config.LOOSE_FORT_POINTS, true); owner.takeReputationScore(Config.LOOSE_FORT_POINTS);
} }
else else
{ {
owner.addReputationScore(Config.TAKE_FORT_POINTS, true); owner.addReputationScore(Config.TAKE_FORT_POINTS);
} }
} }
} }
@@ -391,7 +391,7 @@ public class SkillCaster implements Runnable
player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW); player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW);
return false; return false;
} }
clan.takeReputationScore(_skill.getClanRepConsume(), true); clan.takeReputationScore(_skill.getClanRepConsume());
final SystemMessage msg = new SystemMessage(SystemMessageId.S1_CLAN_REPUTATION_HAS_BEEN_CONSUMED); final SystemMessage msg = new SystemMessage(SystemMessageId.S1_CLAN_REPUTATION_HAS_BEEN_CONSUMED);
msg.addInt(_skill.getClanRepConsume()); msg.addInt(_skill.getClanRepConsume());
@@ -312,7 +312,7 @@ public class MultiSellChoose implements IClientIncomingPacket
{ {
if (clan != null) if (clan != null)
{ {
clan.takeReputationScore((int) totalCount, true); clan.takeReputationScore((int) totalCount);
final SystemMessage smsg = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage smsg = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
smsg.addLong(totalCount); smsg.addLong(totalCount);
player.sendPacket(smsg); player.sendPacket(smsg);
@@ -432,7 +432,7 @@ public class MultiSellChoose implements IClientIncomingPacket
{ {
if (clan != null) if (clan != null)
{ {
clan.addReputationScore((int) totalCount, true); clan.addReputationScore((int) totalCount);
} }
break; break;
} }
@@ -212,7 +212,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
} }
} }
clan.takeReputationScore(repCost, true); clan.takeReputationScore(repCost);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(repCost); cr.addInt(repCost);
@@ -275,7 +275,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
if (repCost > 0) if (repCost > 0)
{ {
clan.takeReputationScore(repCost, true); clan.takeReputationScore(repCost);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(repCost); cr.addInt(repCost);
player.sendPacket(cr); player.sendPacket(cr);
@@ -88,7 +88,7 @@ public class RequestStopPledgeWar implements IClientIncomingPacket
} }
// Reduce reputation. // Reduce reputation.
playerClan.takeReputationScore(5000, true); playerClan.takeReputationScore(5000);
ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId()); ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId());
for (Player member : playerClan.getOnlineMembers(0)) for (Player member : playerClan.getOnlineMembers(0))
{ {
@@ -75,7 +75,7 @@ public class Ballista extends AbstractNpcAI
{ {
if (npc.getFort().getSiege().isInProgress() && (caster.getClan() != null) && (caster.getClan().getLevel() >= MIN_CLAN_LV)) if (npc.getFort().getSiege().isInProgress() && (caster.getClan() != null) && (caster.getClan().getLevel() >= MIN_CLAN_LV))
{ {
caster.getClan().addReputationScore(Config.BALLISTA_POINTS, true); caster.getClan().addReputationScore(Config.BALLISTA_POINTS);
caster.sendPacket(SystemMessageId.THE_BALLISTA_HAS_BEEN_SUCCESSFULLY_DESTROYED_THE_CLAN_REPUTATION_WILL_BE_INCREASED); caster.sendPacket(SystemMessageId.THE_BALLISTA_HAS_BEEN_SUCCESSFULLY_DESTROYED_THE_CLAN_REPUTATION_WILL_BE_INCREASED);
} }
npc.doDie(caster); npc.doDie(caster);
@@ -57,7 +57,7 @@ public class ClanTrader extends AbstractNpcAI
if (getQuestItemsCount(player, itemId) >= itemCount) if (getQuestItemsCount(player, itemId) >= itemCount)
{ {
takeItems(player, itemId, itemCount); takeItems(player, itemId, itemCount);
player.getClan().addReputationScore(count, true); player.getClan().addReputationScore(count);
final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_CLAN_HAS_ADDED_S1_POINT_S_TO_ITS_CLAN_REPUTATION); final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_CLAN_HAS_ADDED_S1_POINT_S_TO_ITS_CLAN_REPUTATION);
sm.addInt(count); sm.addInt(count);
@@ -94,7 +94,7 @@ public class FameManager extends AbstractNpcAI
if ((player.getFame() >= REPUTATION_COST) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL)) if ((player.getFame() >= REPUTATION_COST) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL))
{ {
player.setFame(player.getFame() - REPUTATION_COST); player.setFame(player.getFame() - REPUTATION_COST);
player.getClan().addReputationScore(50, true); player.getClan().addReputationScore(50);
player.sendPacket(new UserInfo(player)); player.sendPacket(new UserInfo(player));
player.sendPacket(SystemMessageId.YOU_HAVE_ACQUIRED_50_CLAN_REPUTATION); player.sendPacket(SystemMessageId.YOU_HAVE_ACQUIRED_50_CLAN_REPUTATION);
htmltext = npc.getId() + "-04.html"; htmltext = npc.getId() + "-04.html";
@@ -187,7 +187,7 @@ public class AdminPledge implements IAdminCommandHandler
try try
{ {
final int points = Integer.parseInt(param); final int points = Integer.parseInt(param);
clan.addReputationScore(points, true); clan.addReputationScore(points);
BuilderUtil.sendSysMessage(activeChar, "You " + (points > 0 ? "add " : "remove ") + Math.abs(points) + " points " + (points > 0 ? "to " : "from ") + clan.getName() + "'s reputation. Their current score is " + clan.getReputationScore()); BuilderUtil.sendSysMessage(activeChar, "You " + (points > 0 ? "add " : "remove ") + Math.abs(points) + " points " + (points > 0 ? "to " : "from ") + clan.getName() + "'s reputation. Their current score is " + clan.getReputationScore());
} }
catch (Exception e) catch (Exception e)
@@ -52,7 +52,7 @@ public class GiveClanReputation extends AbstractEffect
return; return;
} }
effector.getActingPlayer().getClan().addReputationScore(_reputation, true); effector.getActingPlayer().getClan().addReputationScore(_reputation);
for (ClanMember member : effector.getActingPlayer().getClan().getMembers()) for (ClanMember member : effector.getActingPlayer().getClan().getMembers())
{ {
@@ -183,7 +183,7 @@ public class Q00245_ComeToMe extends Quest
{ {
if (player.isAcademyMember()) if (player.isAcademyMember())
{ {
player.getClan().addReputationScore(500, true); player.getClan().addReputationScore(500);
} }
addExpAndSp(player, 2_018_733, 484); addExpAndSp(player, 2_018_733, 484);
giveItems(player, MENTOR_RING, 1); giveItems(player, MENTOR_RING, 1);
@@ -198,7 +198,7 @@ public class Q00508_AClansReputation extends Quest
playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1); playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1);
takeItems(player, REWARD_POINTS.get(raid).get(1), -1); takeItems(player, REWARD_POINTS.get(raid).get(1), -1);
final int rep = REWARD_POINTS.get(raid).get(2); final int rep = REWARD_POINTS.get(raid).get(2);
clan.addReputationScore(rep, true); clan.addReputationScore(rep);
player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep)); player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep));
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
} }
@@ -180,7 +180,7 @@ public class Q00509_AClansFame extends Quest
playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1); playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1);
takeItems(player, REWARD_POINTS.get(raid).get(1), -1); takeItems(player, REWARD_POINTS.get(raid).get(1), -1);
final int rep = REWARD_POINTS.get(raid).get(2); final int rep = REWARD_POINTS.get(raid).get(2);
clan.addReputationScore(rep, true); clan.addReputationScore(rep);
player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep)); player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep));
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
} }
@@ -141,7 +141,7 @@ public class Q00510_AClansPrestige extends Quest
final int reward = (count < 10) ? (30 * count) : (59 + (30 * count)); final int reward = (count < 10) ? (30 * count) : (59 + (30 * count));
playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1); playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1);
takeItems(player, TYRANNOSAURUS_CLAW, -1); takeItems(player, TYRANNOSAURUS_CLAW, -1);
clan.addReputationScore(reward, true); clan.addReputationScore(reward);
player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(reward)); player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(reward));
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
htmltext = "31331-7.html"; htmltext = "31331-7.html";
@@ -473,7 +473,8 @@ public class ClanTable
{ {
for (Clan clan : _clans.values()) for (Clan clan : _clans.values())
{ {
clan.updateInDB(); clan.updateClanInDB();
clan.getVariables().storeMe();
for (ClanWar war : clan.getWarList().values()) for (ClanWar war : clan.getWarList().values())
{ {
storeClanWars(war); storeClanWars(war);
@@ -2409,15 +2409,15 @@ public class Player extends Playable
{ {
if (_lvlJoinedAcademy <= 16) if (_lvlJoinedAcademy <= 16)
{ {
_clan.addReputationScore(Config.JOIN_ACADEMY_MAX_REP_SCORE, true); _clan.addReputationScore(Config.JOIN_ACADEMY_MAX_REP_SCORE);
} }
else if (_lvlJoinedAcademy >= 39) else if (_lvlJoinedAcademy >= 39)
{ {
_clan.addReputationScore(Config.JOIN_ACADEMY_MIN_REP_SCORE, true); _clan.addReputationScore(Config.JOIN_ACADEMY_MIN_REP_SCORE);
} }
else else
{ {
_clan.addReputationScore((Config.JOIN_ACADEMY_MAX_REP_SCORE - ((_lvlJoinedAcademy - 16) * 20)), true); _clan.addReputationScore((Config.JOIN_ACADEMY_MAX_REP_SCORE - ((_lvlJoinedAcademy - 16) * 20)));
} }
setLvlJoinedAcademy(0); setLvlJoinedAcademy(0);
// oust pledge member from the academy, cuz he has finished his 2nd class transfer // oust pledge member from the academy, cuz he has finished his 2nd class transfer
@@ -6755,7 +6755,7 @@ public class Player extends Playable
final Clan clan = player.getClan(); final Clan clan = player.getClan();
if (clan != null) if (clan != null)
{ {
clan.addReputationScore(150000, true); clan.addReputationScore(150000);
} }
} }
player.setTrueHero(true); player.setTrueHero(true);
@@ -946,28 +946,6 @@ public class Clan implements IIdentifiable, INamable
} }
} }
public void updateInDB()
{
// Update reputation
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps = con.prepareStatement("UPDATE clan_data SET reputation_score=? WHERE clan_id=?"))
{
ps.setInt(1, _reputationScore);
ps.setInt(2, _clanId);
ps.execute();
}
catch (Exception e)
{
LOGGER.log(Level.WARNING, "Exception on updateClanScoreInDb(): " + e.getMessage(), e);
}
// Update variables at database
if (_vars != null)
{
_vars.storeMe();
}
}
/** /**
* Updates in database clan information: * Updates in database clan information:
* <ul> * <ul>
@@ -1109,7 +1087,7 @@ public class Clan implements IIdentifiable, INamable
setCrestLargeId(clanData.getInt("crest_large_id")); setCrestLargeId(clanData.getInt("crest_large_id"));
setAllyCrestId(clanData.getInt("ally_crest_id")); setAllyCrestId(clanData.getInt("ally_crest_id"));
setReputationScore(clanData.getInt("reputation_score"), false); setReputationScore(clanData.getInt("reputation_score"));
setAuctionBiddedAt(clanData.getInt("auction_bid_at"), false); setAuctionBiddedAt(clanData.getInt("auction_bid_at"), false);
setNewLeaderId(clanData.getInt("new_leader_id"), false); setNewLeaderId(clanData.getInt("new_leader_id"), false);
@@ -1898,11 +1876,11 @@ public class Clan implements IIdentifiable, INamable
// Order of Knights 10000 points per each // Order of Knights 10000 points per each
if (pledgeType < SUBUNIT_KNIGHT1) if (pledgeType < SUBUNIT_KNIGHT1)
{ {
setReputationScore(_reputationScore - Config.ROYAL_GUARD_COST, true); setReputationScore(_reputationScore - Config.ROYAL_GUARD_COST);
} }
else else
{ {
setReputationScore(_reputationScore - Config.KNIGHT_UNIT_COST, true); setReputationScore(_reputationScore - Config.KNIGHT_UNIT_COST);
// TODO: clan lvl9 or more can reinforce knights cheaper if first knight unit already created, use Config.KNIGHT_REINFORCE_COST // TODO: clan lvl9 or more can reinforce knights cheaper if first knight unit already created, use Config.KNIGHT_REINFORCE_COST
} }
} }
@@ -2102,17 +2080,17 @@ public class Clan implements IIdentifiable, INamable
return id; return id;
} }
public synchronized void addReputationScore(int value, boolean save) public synchronized void addReputationScore(int value)
{ {
setReputationScore(_reputationScore + value, save); setReputationScore(_reputationScore + value);
} }
public synchronized void takeReputationScore(int value, boolean save) public synchronized void takeReputationScore(int value)
{ {
setReputationScore(_reputationScore - value, save); setReputationScore(_reputationScore - value);
} }
private void setReputationScore(int value, boolean save) private void setReputationScore(int value)
{ {
if ((_reputationScore >= 0) && (value < 0)) if ((_reputationScore >= 0) && (value < 0))
{ {
@@ -2146,11 +2124,8 @@ public class Clan implements IIdentifiable, INamable
{ {
_reputationScore = -100000000; _reputationScore = -100000000;
} }
broadcastToOnlineMembers(new PledgeShowInfoUpdate(this)); broadcastToOnlineMembers(new PledgeShowInfoUpdate(this));
if (save)
{
updateInDB();
}
} }
public int getReputationScore() public int getReputationScore()
@@ -2604,7 +2579,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 6 // Upgrade to 6
if ((_reputationScore >= Config.CLAN_LEVEL_6_COST) && (_members.size() >= Config.CLAN_LEVEL_6_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_6_COST) && (_members.size() >= Config.CLAN_LEVEL_6_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_6_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_6_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_6_COST); cr.addInt(Config.CLAN_LEVEL_6_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2617,7 +2592,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 7 // Upgrade to 7
if ((_reputationScore >= Config.CLAN_LEVEL_7_COST) && (_members.size() >= Config.CLAN_LEVEL_7_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_7_COST) && (_members.size() >= Config.CLAN_LEVEL_7_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_7_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_7_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_7_COST); cr.addInt(Config.CLAN_LEVEL_7_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2630,7 +2605,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 8 // Upgrade to 8
if ((_reputationScore >= Config.CLAN_LEVEL_8_COST) && (_members.size() >= Config.CLAN_LEVEL_8_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_8_COST) && (_members.size() >= Config.CLAN_LEVEL_8_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_8_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_8_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_8_COST); cr.addInt(Config.CLAN_LEVEL_8_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2646,7 +2621,7 @@ public class Clan implements IIdentifiable, INamable
// itemId 9910 == Blood Oath // itemId 9910 == Blood Oath
if (player.destroyItemByItemId("ClanLvl", 9910, 150, player.getTarget(), false)) if (player.destroyItemByItemId("ClanLvl", 9910, 150, player.getTarget(), false))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_9_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_9_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_9_COST); cr.addInt(Config.CLAN_LEVEL_9_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2667,7 +2642,7 @@ public class Clan implements IIdentifiable, INamable
// itemId 9911 == Blood Alliance // itemId 9911 == Blood Alliance
if (player.destroyItemByItemId("ClanLvl", 9911, 5, player.getTarget(), false)) if (player.destroyItemByItemId("ClanLvl", 9911, 5, player.getTarget(), false))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_10_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_10_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_10_COST); cr.addInt(Config.CLAN_LEVEL_10_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2685,7 +2660,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 11 // Upgrade to 11
if ((_reputationScore >= Config.CLAN_LEVEL_11_COST) && (_members.size() >= Config.CLAN_LEVEL_11_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_11_COST) && (_members.size() >= Config.CLAN_LEVEL_11_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_11_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_11_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_11_COST); cr.addInt(Config.CLAN_LEVEL_11_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -110,8 +110,8 @@ public class ClanWar
// however, when the other side reputation score is 0 or below, your clan cannot acquire any reputation points from them. // however, when the other side reputation score is 0 or below, your clan cannot acquire any reputation points from them.
if (victimClan.getReputationScore() > 0) if (victimClan.getReputationScore() > 0)
{ {
victimClan.takeReputationScore(Config.REPUTATION_SCORE_PER_KILL, false); victimClan.takeReputationScore(Config.REPUTATION_SCORE_PER_KILL);
killerClan.addReputationScore(Config.REPUTATION_SCORE_PER_KILL, false); killerClan.addReputationScore(Config.REPUTATION_SCORE_PER_KILL);
} }
// System Message notification to clan members // System Message notification to clan members
@@ -167,7 +167,7 @@ public class ClanWar
final Clan winnerClan = cancelor.getId() == _attackerClanId ? ClanTable.getInstance().getClan(_attackedClanId) : ClanTable.getInstance().getClan(_attackerClanId); final Clan winnerClan = cancelor.getId() == _attackerClanId ? ClanTable.getInstance().getClan(_attackedClanId) : ClanTable.getInstance().getClan(_attackerClanId);
// Reduce reputation. // Reduce reputation.
cancelor.takeReputationScore(5000, true); cancelor.takeReputationScore(5000);
player.sendPacket(new SurrenderPledgeWar(cancelor.getName(), player.getName())); player.sendPacket(new SurrenderPledgeWar(cancelor.getName(), player.getName()));
SystemMessage sm = new SystemMessage(SystemMessageId.THE_WAR_ENDED_BY_YOUR_DEFEAT_DECLARATION_WITH_THE_S1_CLAN); SystemMessage sm = new SystemMessage(SystemMessageId.THE_WAR_ENDED_BY_YOUR_DEFEAT_DECLARATION_WITH_THE_S1_CLAN);
sm.addString(winnerClan.getName()); sm.addString(winnerClan.getName());
@@ -906,7 +906,7 @@ public class Hero
final Clan clan = player.getClan(); final Clan clan = player.getClan();
if ((clan != null) && (clan.getLevel() >= 5)) if ((clan != null) && (clan.getLevel() >= 5))
{ {
clan.addReputationScore(Config.HERO_POINTS, true); clan.addReputationScore(Config.HERO_POINTS);
final SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_MEMBER_C1_WAS_NAMED_A_HERO_S2_POINTS_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION); final SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_MEMBER_C1_WAS_NAMED_A_HERO_S2_POINTS_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION);
sm.addString(CharNameTable.getInstance().getNameById(player.getObjectId())); sm.addString(CharNameTable.getInstance().getNameById(player.getObjectId()));
sm.addInt(Config.HERO_POINTS); sm.addInt(Config.HERO_POINTS);
@@ -1014,16 +1014,16 @@ public class Castle extends AbstractResidence
if (_formerOwner != ClanTable.getInstance().getClan(getOwnerId())) if (_formerOwner != ClanTable.getInstance().getClan(getOwnerId()))
{ {
final int maxreward = Math.max(0, _formerOwner.getReputationScore()); final int maxreward = Math.max(0, _formerOwner.getReputationScore());
_formerOwner.takeReputationScore(Config.LOOSE_CASTLE_POINTS, true); _formerOwner.takeReputationScore(Config.LOOSE_CASTLE_POINTS);
final Clan owner = ClanTable.getInstance().getClan(getOwnerId()); final Clan owner = ClanTable.getInstance().getClan(getOwnerId());
if (owner != null) if (owner != null)
{ {
owner.addReputationScore(Math.min(Config.TAKE_CASTLE_POINTS, maxreward), true); owner.addReputationScore(Math.min(Config.TAKE_CASTLE_POINTS, maxreward));
} }
} }
else else
{ {
_formerOwner.addReputationScore(Config.CASTLE_DEFENDED_POINTS, true); _formerOwner.addReputationScore(Config.CASTLE_DEFENDED_POINTS);
} }
} }
else else
@@ -1031,7 +1031,7 @@ public class Castle extends AbstractResidence
final Clan owner = ClanTable.getInstance().getClan(getOwnerId()); final Clan owner = ClanTable.getInstance().getClan(getOwnerId());
if (owner != null) if (owner != null)
{ {
owner.addReputationScore(Config.TAKE_CASTLE_POINTS, true); owner.addReputationScore(Config.TAKE_CASTLE_POINTS);
} }
} }
} }
@@ -939,11 +939,11 @@ public class Fort extends AbstractResidence
{ {
if (removePoints) if (removePoints)
{ {
owner.takeReputationScore(Config.LOOSE_FORT_POINTS, true); owner.takeReputationScore(Config.LOOSE_FORT_POINTS);
} }
else else
{ {
owner.addReputationScore(Config.TAKE_FORT_POINTS, true); owner.addReputationScore(Config.TAKE_FORT_POINTS);
} }
} }
} }
@@ -391,7 +391,7 @@ public class SkillCaster implements Runnable
player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW); player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW);
return false; return false;
} }
clan.takeReputationScore(_skill.getClanRepConsume(), true); clan.takeReputationScore(_skill.getClanRepConsume());
final SystemMessage msg = new SystemMessage(SystemMessageId.S1_CLAN_REPUTATION_HAS_BEEN_CONSUMED); final SystemMessage msg = new SystemMessage(SystemMessageId.S1_CLAN_REPUTATION_HAS_BEEN_CONSUMED);
msg.addInt(_skill.getClanRepConsume()); msg.addInt(_skill.getClanRepConsume());
@@ -340,7 +340,7 @@ public class MultiSellChoose implements IClientIncomingPacket
{ {
if (clan != null) if (clan != null)
{ {
clan.takeReputationScore((int) totalCount, true); clan.takeReputationScore((int) totalCount);
final SystemMessage smsg = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage smsg = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
smsg.addLong(totalCount); smsg.addLong(totalCount);
player.sendPacket(smsg); player.sendPacket(smsg);
@@ -460,7 +460,7 @@ public class MultiSellChoose implements IClientIncomingPacket
{ {
if (clan != null) if (clan != null)
{ {
clan.addReputationScore((int) totalCount, true); clan.addReputationScore((int) totalCount);
} }
break; break;
} }
@@ -212,7 +212,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
} }
} }
clan.takeReputationScore(repCost, true); clan.takeReputationScore(repCost);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(repCost); cr.addInt(repCost);
@@ -275,7 +275,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
if (repCost > 0) if (repCost > 0)
{ {
clan.takeReputationScore(repCost, true); clan.takeReputationScore(repCost);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(repCost); cr.addInt(repCost);
player.sendPacket(cr); player.sendPacket(cr);
@@ -88,7 +88,7 @@ public class RequestStopPledgeWar implements IClientIncomingPacket
} }
// Reduce reputation. // Reduce reputation.
playerClan.takeReputationScore(5000, true); playerClan.takeReputationScore(5000);
ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId()); ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId());
for (Player member : playerClan.getOnlineMembers(0)) for (Player member : playerClan.getOnlineMembers(0))
{ {
@@ -75,7 +75,7 @@ public class Ballista extends AbstractNpcAI
{ {
if (npc.getFort().getSiege().isInProgress() && (caster.getClan() != null) && (caster.getClan().getLevel() >= MIN_CLAN_LV)) if (npc.getFort().getSiege().isInProgress() && (caster.getClan() != null) && (caster.getClan().getLevel() >= MIN_CLAN_LV))
{ {
caster.getClan().addReputationScore(Config.BALLISTA_POINTS, true); caster.getClan().addReputationScore(Config.BALLISTA_POINTS);
caster.sendPacket(SystemMessageId.THE_BALLISTA_HAS_BEEN_SUCCESSFULLY_DESTROYED_THE_CLAN_REPUTATION_WILL_BE_INCREASED); caster.sendPacket(SystemMessageId.THE_BALLISTA_HAS_BEEN_SUCCESSFULLY_DESTROYED_THE_CLAN_REPUTATION_WILL_BE_INCREASED);
} }
npc.doDie(caster); npc.doDie(caster);
@@ -57,7 +57,7 @@ public class ClanTrader extends AbstractNpcAI
if (getQuestItemsCount(player, itemId) >= itemCount) if (getQuestItemsCount(player, itemId) >= itemCount)
{ {
takeItems(player, itemId, itemCount); takeItems(player, itemId, itemCount);
player.getClan().addReputationScore(count, true); player.getClan().addReputationScore(count);
final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_CLAN_HAS_ADDED_S1_POINT_S_TO_ITS_CLAN_REPUTATION); final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_CLAN_HAS_ADDED_S1_POINT_S_TO_ITS_CLAN_REPUTATION);
sm.addInt(count); sm.addInt(count);
@@ -94,7 +94,7 @@ public class FameManager extends AbstractNpcAI
if ((player.getFame() >= REPUTATION_COST) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL)) if ((player.getFame() >= REPUTATION_COST) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL))
{ {
player.setFame(player.getFame() - REPUTATION_COST); player.setFame(player.getFame() - REPUTATION_COST);
player.getClan().addReputationScore(50, true); player.getClan().addReputationScore(50);
player.sendPacket(new UserInfo(player)); player.sendPacket(new UserInfo(player));
player.sendPacket(SystemMessageId.YOU_HAVE_ACQUIRED_50_CLAN_REPUTATION); player.sendPacket(SystemMessageId.YOU_HAVE_ACQUIRED_50_CLAN_REPUTATION);
htmltext = npc.getId() + "-04.html"; htmltext = npc.getId() + "-04.html";
@@ -187,7 +187,7 @@ public class AdminPledge implements IAdminCommandHandler
try try
{ {
final int points = Integer.parseInt(param); final int points = Integer.parseInt(param);
clan.addReputationScore(points, true); clan.addReputationScore(points);
BuilderUtil.sendSysMessage(activeChar, "You " + (points > 0 ? "add " : "remove ") + Math.abs(points) + " points " + (points > 0 ? "to " : "from ") + clan.getName() + "'s reputation. Their current score is " + clan.getReputationScore()); BuilderUtil.sendSysMessage(activeChar, "You " + (points > 0 ? "add " : "remove ") + Math.abs(points) + " points " + (points > 0 ? "to " : "from ") + clan.getName() + "'s reputation. Their current score is " + clan.getReputationScore());
} }
catch (Exception e) catch (Exception e)
@@ -52,7 +52,7 @@ public class GiveClanReputation extends AbstractEffect
return; return;
} }
effector.getActingPlayer().getClan().addReputationScore(_reputation, true); effector.getActingPlayer().getClan().addReputationScore(_reputation);
for (ClanMember member : effector.getActingPlayer().getClan().getMembers()) for (ClanMember member : effector.getActingPlayer().getClan().getMembers())
{ {
@@ -183,7 +183,7 @@ public class Q00245_ComeToMe extends Quest
{ {
if (player.isAcademyMember()) if (player.isAcademyMember())
{ {
player.getClan().addReputationScore(500, true); player.getClan().addReputationScore(500);
} }
addExpAndSp(player, 2_018_733, 484); addExpAndSp(player, 2_018_733, 484);
giveItems(player, MENTOR_RING, 1); giveItems(player, MENTOR_RING, 1);
@@ -198,7 +198,7 @@ public class Q00508_AClansReputation extends Quest
playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1); playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1);
takeItems(player, REWARD_POINTS.get(raid).get(1), -1); takeItems(player, REWARD_POINTS.get(raid).get(1), -1);
final int rep = REWARD_POINTS.get(raid).get(2); final int rep = REWARD_POINTS.get(raid).get(2);
clan.addReputationScore(rep, true); clan.addReputationScore(rep);
player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep)); player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep));
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
} }
@@ -180,7 +180,7 @@ public class Q00509_AClansFame extends Quest
playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1); playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1);
takeItems(player, REWARD_POINTS.get(raid).get(1), -1); takeItems(player, REWARD_POINTS.get(raid).get(1), -1);
final int rep = REWARD_POINTS.get(raid).get(2); final int rep = REWARD_POINTS.get(raid).get(2);
clan.addReputationScore(rep, true); clan.addReputationScore(rep);
player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep)); player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep));
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
} }
@@ -141,7 +141,7 @@ public class Q00510_AClansPrestige extends Quest
final int reward = (count < 10) ? (30 * count) : (59 + (30 * count)); final int reward = (count < 10) ? (30 * count) : (59 + (30 * count));
playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1); playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1);
takeItems(player, TYRANNOSAURUS_CLAW, -1); takeItems(player, TYRANNOSAURUS_CLAW, -1);
clan.addReputationScore(reward, true); clan.addReputationScore(reward);
player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(reward)); player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(reward));
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
htmltext = "31331-7.html"; htmltext = "31331-7.html";
@@ -477,7 +477,8 @@ public class ClanTable
{ {
for (Clan clan : _clans.values()) for (Clan clan : _clans.values())
{ {
clan.updateInDB(); clan.updateClanInDB();
clan.getVariables().storeMe();
for (ClanWar war : clan.getWarList().values()) for (ClanWar war : clan.getWarList().values())
{ {
storeClanWars(war); storeClanWars(war);
@@ -2411,15 +2411,15 @@ public class Player extends Playable
{ {
if (_lvlJoinedAcademy <= 16) if (_lvlJoinedAcademy <= 16)
{ {
_clan.addReputationScore(Config.JOIN_ACADEMY_MAX_REP_SCORE, true); _clan.addReputationScore(Config.JOIN_ACADEMY_MAX_REP_SCORE);
} }
else if (_lvlJoinedAcademy >= 39) else if (_lvlJoinedAcademy >= 39)
{ {
_clan.addReputationScore(Config.JOIN_ACADEMY_MIN_REP_SCORE, true); _clan.addReputationScore(Config.JOIN_ACADEMY_MIN_REP_SCORE);
} }
else else
{ {
_clan.addReputationScore((Config.JOIN_ACADEMY_MAX_REP_SCORE - ((_lvlJoinedAcademy - 16) * 20)), true); _clan.addReputationScore((Config.JOIN_ACADEMY_MAX_REP_SCORE - ((_lvlJoinedAcademy - 16) * 20)));
} }
setLvlJoinedAcademy(0); setLvlJoinedAcademy(0);
// oust pledge member from the academy, cuz he has finished his 2nd class transfer // oust pledge member from the academy, cuz he has finished his 2nd class transfer
@@ -6757,7 +6757,7 @@ public class Player extends Playable
final Clan clan = player.getClan(); final Clan clan = player.getClan();
if (clan != null) if (clan != null)
{ {
clan.addReputationScore(150000, true); clan.addReputationScore(150000);
} }
} }
player.setTrueHero(true); player.setTrueHero(true);
@@ -946,28 +946,6 @@ public class Clan implements IIdentifiable, INamable
} }
} }
public void updateInDB()
{
// Update reputation
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps = con.prepareStatement("UPDATE clan_data SET reputation_score=? WHERE clan_id=?"))
{
ps.setInt(1, _reputationScore);
ps.setInt(2, _clanId);
ps.execute();
}
catch (Exception e)
{
LOGGER.log(Level.WARNING, "Exception on updateClanScoreInDb(): " + e.getMessage(), e);
}
// Update variables at database
if (_vars != null)
{
_vars.storeMe();
}
}
/** /**
* Updates in database clan information: * Updates in database clan information:
* <ul> * <ul>
@@ -1109,7 +1087,7 @@ public class Clan implements IIdentifiable, INamable
setCrestLargeId(clanData.getInt("crest_large_id")); setCrestLargeId(clanData.getInt("crest_large_id"));
setAllyCrestId(clanData.getInt("ally_crest_id")); setAllyCrestId(clanData.getInt("ally_crest_id"));
setReputationScore(clanData.getInt("reputation_score"), false); setReputationScore(clanData.getInt("reputation_score"));
setAuctionBiddedAt(clanData.getInt("auction_bid_at"), false); setAuctionBiddedAt(clanData.getInt("auction_bid_at"), false);
setNewLeaderId(clanData.getInt("new_leader_id"), false); setNewLeaderId(clanData.getInt("new_leader_id"), false);
@@ -1898,11 +1876,11 @@ public class Clan implements IIdentifiable, INamable
// Order of Knights 10000 points per each // Order of Knights 10000 points per each
if (pledgeType < SUBUNIT_KNIGHT1) if (pledgeType < SUBUNIT_KNIGHT1)
{ {
setReputationScore(_reputationScore - Config.ROYAL_GUARD_COST, true); setReputationScore(_reputationScore - Config.ROYAL_GUARD_COST);
} }
else else
{ {
setReputationScore(_reputationScore - Config.KNIGHT_UNIT_COST, true); setReputationScore(_reputationScore - Config.KNIGHT_UNIT_COST);
// TODO: clan lvl9 or more can reinforce knights cheaper if first knight unit already created, use Config.KNIGHT_REINFORCE_COST // TODO: clan lvl9 or more can reinforce knights cheaper if first knight unit already created, use Config.KNIGHT_REINFORCE_COST
} }
} }
@@ -2102,17 +2080,17 @@ public class Clan implements IIdentifiable, INamable
return id; return id;
} }
public synchronized void addReputationScore(int value, boolean save) public synchronized void addReputationScore(int value)
{ {
setReputationScore(_reputationScore + value, save); setReputationScore(_reputationScore + value);
} }
public synchronized void takeReputationScore(int value, boolean save) public synchronized void takeReputationScore(int value)
{ {
setReputationScore(_reputationScore - value, save); setReputationScore(_reputationScore - value);
} }
private void setReputationScore(int value, boolean save) private void setReputationScore(int value)
{ {
if ((_reputationScore >= 0) && (value < 0)) if ((_reputationScore >= 0) && (value < 0))
{ {
@@ -2146,11 +2124,8 @@ public class Clan implements IIdentifiable, INamable
{ {
_reputationScore = -100000000; _reputationScore = -100000000;
} }
broadcastToOnlineMembers(new PledgeShowInfoUpdate(this)); broadcastToOnlineMembers(new PledgeShowInfoUpdate(this));
if (save)
{
updateInDB();
}
} }
public int getReputationScore() public int getReputationScore()
@@ -2604,7 +2579,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 6 // Upgrade to 6
if ((_reputationScore >= Config.CLAN_LEVEL_6_COST) && (_members.size() >= Config.CLAN_LEVEL_6_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_6_COST) && (_members.size() >= Config.CLAN_LEVEL_6_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_6_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_6_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_6_COST); cr.addInt(Config.CLAN_LEVEL_6_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2617,7 +2592,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 7 // Upgrade to 7
if ((_reputationScore >= Config.CLAN_LEVEL_7_COST) && (_members.size() >= Config.CLAN_LEVEL_7_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_7_COST) && (_members.size() >= Config.CLAN_LEVEL_7_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_7_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_7_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_7_COST); cr.addInt(Config.CLAN_LEVEL_7_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2630,7 +2605,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 8 // Upgrade to 8
if ((_reputationScore >= Config.CLAN_LEVEL_8_COST) && (_members.size() >= Config.CLAN_LEVEL_8_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_8_COST) && (_members.size() >= Config.CLAN_LEVEL_8_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_8_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_8_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_8_COST); cr.addInt(Config.CLAN_LEVEL_8_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2646,7 +2621,7 @@ public class Clan implements IIdentifiable, INamable
// itemId 9910 == Blood Oath // itemId 9910 == Blood Oath
if (player.destroyItemByItemId("ClanLvl", 9910, 150, player.getTarget(), false)) if (player.destroyItemByItemId("ClanLvl", 9910, 150, player.getTarget(), false))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_9_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_9_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_9_COST); cr.addInt(Config.CLAN_LEVEL_9_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2667,7 +2642,7 @@ public class Clan implements IIdentifiable, INamable
// itemId 9911 == Blood Alliance // itemId 9911 == Blood Alliance
if (player.destroyItemByItemId("ClanLvl", 9911, 5, player.getTarget(), false)) if (player.destroyItemByItemId("ClanLvl", 9911, 5, player.getTarget(), false))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_10_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_10_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_10_COST); cr.addInt(Config.CLAN_LEVEL_10_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2685,7 +2660,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 11 // Upgrade to 11
if ((_reputationScore >= Config.CLAN_LEVEL_11_COST) && (_members.size() >= Config.CLAN_LEVEL_11_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_11_COST) && (_members.size() >= Config.CLAN_LEVEL_11_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_11_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_11_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_11_COST); cr.addInt(Config.CLAN_LEVEL_11_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -110,8 +110,8 @@ public class ClanWar
// however, when the other side reputation score is 0 or below, your clan cannot acquire any reputation points from them. // however, when the other side reputation score is 0 or below, your clan cannot acquire any reputation points from them.
if (victimClan.getReputationScore() > 0) if (victimClan.getReputationScore() > 0)
{ {
victimClan.takeReputationScore(Config.REPUTATION_SCORE_PER_KILL, false); victimClan.takeReputationScore(Config.REPUTATION_SCORE_PER_KILL);
killerClan.addReputationScore(Config.REPUTATION_SCORE_PER_KILL, false); killerClan.addReputationScore(Config.REPUTATION_SCORE_PER_KILL);
} }
// System Message notification to clan members // System Message notification to clan members
@@ -167,7 +167,7 @@ public class ClanWar
final Clan winnerClan = cancelor.getId() == _attackerClanId ? ClanTable.getInstance().getClan(_attackedClanId) : ClanTable.getInstance().getClan(_attackerClanId); final Clan winnerClan = cancelor.getId() == _attackerClanId ? ClanTable.getInstance().getClan(_attackedClanId) : ClanTable.getInstance().getClan(_attackerClanId);
// Reduce reputation. // Reduce reputation.
cancelor.takeReputationScore(5000, true); cancelor.takeReputationScore(5000);
player.sendPacket(new SurrenderPledgeWar(cancelor.getName(), player.getName())); player.sendPacket(new SurrenderPledgeWar(cancelor.getName(), player.getName()));
SystemMessage sm = new SystemMessage(SystemMessageId.THE_WAR_ENDED_BY_YOUR_DEFEAT_DECLARATION_WITH_THE_S1_CLAN); SystemMessage sm = new SystemMessage(SystemMessageId.THE_WAR_ENDED_BY_YOUR_DEFEAT_DECLARATION_WITH_THE_S1_CLAN);
sm.addString(winnerClan.getName()); sm.addString(winnerClan.getName());
@@ -906,7 +906,7 @@ public class Hero
final Clan clan = player.getClan(); final Clan clan = player.getClan();
if ((clan != null) && (clan.getLevel() >= 5)) if ((clan != null) && (clan.getLevel() >= 5))
{ {
clan.addReputationScore(Config.HERO_POINTS, true); clan.addReputationScore(Config.HERO_POINTS);
final SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_MEMBER_C1_WAS_NAMED_A_HERO_S2_POINTS_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION); final SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_MEMBER_C1_WAS_NAMED_A_HERO_S2_POINTS_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION);
sm.addString(CharNameTable.getInstance().getNameById(player.getObjectId())); sm.addString(CharNameTable.getInstance().getNameById(player.getObjectId()));
sm.addInt(Config.HERO_POINTS); sm.addInt(Config.HERO_POINTS);
@@ -1014,16 +1014,16 @@ public class Castle extends AbstractResidence
if (_formerOwner != ClanTable.getInstance().getClan(getOwnerId())) if (_formerOwner != ClanTable.getInstance().getClan(getOwnerId()))
{ {
final int maxreward = Math.max(0, _formerOwner.getReputationScore()); final int maxreward = Math.max(0, _formerOwner.getReputationScore());
_formerOwner.takeReputationScore(Config.LOOSE_CASTLE_POINTS, true); _formerOwner.takeReputationScore(Config.LOOSE_CASTLE_POINTS);
final Clan owner = ClanTable.getInstance().getClan(getOwnerId()); final Clan owner = ClanTable.getInstance().getClan(getOwnerId());
if (owner != null) if (owner != null)
{ {
owner.addReputationScore(Math.min(Config.TAKE_CASTLE_POINTS, maxreward), true); owner.addReputationScore(Math.min(Config.TAKE_CASTLE_POINTS, maxreward));
} }
} }
else else
{ {
_formerOwner.addReputationScore(Config.CASTLE_DEFENDED_POINTS, true); _formerOwner.addReputationScore(Config.CASTLE_DEFENDED_POINTS);
} }
} }
else else
@@ -1031,7 +1031,7 @@ public class Castle extends AbstractResidence
final Clan owner = ClanTable.getInstance().getClan(getOwnerId()); final Clan owner = ClanTable.getInstance().getClan(getOwnerId());
if (owner != null) if (owner != null)
{ {
owner.addReputationScore(Config.TAKE_CASTLE_POINTS, true); owner.addReputationScore(Config.TAKE_CASTLE_POINTS);
} }
} }
} }
@@ -939,11 +939,11 @@ public class Fort extends AbstractResidence
{ {
if (removePoints) if (removePoints)
{ {
owner.takeReputationScore(Config.LOOSE_FORT_POINTS, true); owner.takeReputationScore(Config.LOOSE_FORT_POINTS);
} }
else else
{ {
owner.addReputationScore(Config.TAKE_FORT_POINTS, true); owner.addReputationScore(Config.TAKE_FORT_POINTS);
} }
} }
} }
@@ -391,7 +391,7 @@ public class SkillCaster implements Runnable
player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW); player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW);
return false; return false;
} }
clan.takeReputationScore(_skill.getClanRepConsume(), true); clan.takeReputationScore(_skill.getClanRepConsume());
final SystemMessage msg = new SystemMessage(SystemMessageId.S1_CLAN_REPUTATION_HAS_BEEN_CONSUMED); final SystemMessage msg = new SystemMessage(SystemMessageId.S1_CLAN_REPUTATION_HAS_BEEN_CONSUMED);
msg.addInt(_skill.getClanRepConsume()); msg.addInt(_skill.getClanRepConsume());
@@ -340,7 +340,7 @@ public class MultiSellChoose implements IClientIncomingPacket
{ {
if (clan != null) if (clan != null)
{ {
clan.takeReputationScore((int) totalCount, true); clan.takeReputationScore((int) totalCount);
final SystemMessage smsg = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage smsg = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
smsg.addLong(totalCount); smsg.addLong(totalCount);
player.sendPacket(smsg); player.sendPacket(smsg);
@@ -460,7 +460,7 @@ public class MultiSellChoose implements IClientIncomingPacket
{ {
if (clan != null) if (clan != null)
{ {
clan.addReputationScore((int) totalCount, true); clan.addReputationScore((int) totalCount);
} }
break; break;
} }
@@ -212,7 +212,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
} }
} }
clan.takeReputationScore(repCost, true); clan.takeReputationScore(repCost);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(repCost); cr.addInt(repCost);
@@ -275,7 +275,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
if (repCost > 0) if (repCost > 0)
{ {
clan.takeReputationScore(repCost, true); clan.takeReputationScore(repCost);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(repCost); cr.addInt(repCost);
player.sendPacket(cr); player.sendPacket(cr);
@@ -88,7 +88,7 @@ public class RequestStopPledgeWar implements IClientIncomingPacket
} }
// Reduce reputation. // Reduce reputation.
playerClan.takeReputationScore(5000, true); playerClan.takeReputationScore(5000);
ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId()); ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId());
for (Player member : playerClan.getOnlineMembers(0)) for (Player member : playerClan.getOnlineMembers(0))
{ {
@@ -75,7 +75,7 @@ public class Ballista extends AbstractNpcAI
{ {
if (npc.getFort().getSiege().isInProgress() && (caster.getClan() != null) && (caster.getClan().getLevel() >= MIN_CLAN_LV)) if (npc.getFort().getSiege().isInProgress() && (caster.getClan() != null) && (caster.getClan().getLevel() >= MIN_CLAN_LV))
{ {
caster.getClan().addReputationScore(Config.BALLISTA_POINTS, true); caster.getClan().addReputationScore(Config.BALLISTA_POINTS);
caster.sendPacket(SystemMessageId.THE_BALLISTA_HAS_BEEN_SUCCESSFULLY_DESTROYED_THE_CLAN_REPUTATION_WILL_BE_INCREASED); caster.sendPacket(SystemMessageId.THE_BALLISTA_HAS_BEEN_SUCCESSFULLY_DESTROYED_THE_CLAN_REPUTATION_WILL_BE_INCREASED);
} }
npc.doDie(caster); npc.doDie(caster);
@@ -57,7 +57,7 @@ public class ClanTrader extends AbstractNpcAI
if (getQuestItemsCount(player, itemId) >= itemCount) if (getQuestItemsCount(player, itemId) >= itemCount)
{ {
takeItems(player, itemId, itemCount); takeItems(player, itemId, itemCount);
player.getClan().addReputationScore(count, true); player.getClan().addReputationScore(count);
final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_CLAN_HAS_ADDED_S1_POINT_S_TO_ITS_CLAN_REPUTATION); final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_CLAN_HAS_ADDED_S1_POINT_S_TO_ITS_CLAN_REPUTATION);
sm.addInt(count); sm.addInt(count);
@@ -94,7 +94,7 @@ public class FameManager extends AbstractNpcAI
if ((player.getFame() >= REPUTATION_COST) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL)) if ((player.getFame() >= REPUTATION_COST) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL))
{ {
player.setFame(player.getFame() - REPUTATION_COST); player.setFame(player.getFame() - REPUTATION_COST);
player.getClan().addReputationScore(50, true); player.getClan().addReputationScore(50);
player.sendPacket(new UserInfo(player)); player.sendPacket(new UserInfo(player));
player.sendPacket(SystemMessageId.YOU_HAVE_ACQUIRED_50_CLAN_REPUTATION); player.sendPacket(SystemMessageId.YOU_HAVE_ACQUIRED_50_CLAN_REPUTATION);
htmltext = npc.getId() + "-04.html"; htmltext = npc.getId() + "-04.html";
@@ -187,7 +187,7 @@ public class AdminPledge implements IAdminCommandHandler
try try
{ {
final int points = Integer.parseInt(param); final int points = Integer.parseInt(param);
clan.addReputationScore(points, true); clan.addReputationScore(points);
BuilderUtil.sendSysMessage(activeChar, "You " + (points > 0 ? "add " : "remove ") + Math.abs(points) + " points " + (points > 0 ? "to " : "from ") + clan.getName() + "'s reputation. Their current score is " + clan.getReputationScore()); BuilderUtil.sendSysMessage(activeChar, "You " + (points > 0 ? "add " : "remove ") + Math.abs(points) + " points " + (points > 0 ? "to " : "from ") + clan.getName() + "'s reputation. Their current score is " + clan.getReputationScore());
} }
catch (Exception e) catch (Exception e)
@@ -52,7 +52,7 @@ public class GiveClanReputation extends AbstractEffect
return; return;
} }
effector.getActingPlayer().getClan().addReputationScore(_reputation, true); effector.getActingPlayer().getClan().addReputationScore(_reputation);
for (ClanMember member : effector.getActingPlayer().getClan().getMembers()) for (ClanMember member : effector.getActingPlayer().getClan().getMembers())
{ {
@@ -183,7 +183,7 @@ public class Q00245_ComeToMe extends Quest
{ {
if (player.isAcademyMember()) if (player.isAcademyMember())
{ {
player.getClan().addReputationScore(500, true); player.getClan().addReputationScore(500);
} }
addExpAndSp(player, 2_018_733, 484); addExpAndSp(player, 2_018_733, 484);
giveItems(player, MENTOR_RING, 1); giveItems(player, MENTOR_RING, 1);
@@ -198,7 +198,7 @@ public class Q00508_AClansReputation extends Quest
playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1); playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1);
takeItems(player, REWARD_POINTS.get(raid).get(1), -1); takeItems(player, REWARD_POINTS.get(raid).get(1), -1);
final int rep = REWARD_POINTS.get(raid).get(2); final int rep = REWARD_POINTS.get(raid).get(2);
clan.addReputationScore(rep, true); clan.addReputationScore(rep);
player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep)); player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep));
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
} }
@@ -180,7 +180,7 @@ public class Q00509_AClansFame extends Quest
playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1); playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1);
takeItems(player, REWARD_POINTS.get(raid).get(1), -1); takeItems(player, REWARD_POINTS.get(raid).get(1), -1);
final int rep = REWARD_POINTS.get(raid).get(2); final int rep = REWARD_POINTS.get(raid).get(2);
clan.addReputationScore(rep, true); clan.addReputationScore(rep);
player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep)); player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(rep));
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
} }
@@ -141,7 +141,7 @@ public class Q00510_AClansPrestige extends Quest
final int reward = (count < 10) ? (30 * count) : (59 + (30 * count)); final int reward = (count < 10) ? (30 * count) : (59 + (30 * count));
playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1); playSound(player, QuestSound.ITEMSOUND_QUEST_FANFARE_1);
takeItems(player, TYRANNOSAURUS_CLAW, -1); takeItems(player, TYRANNOSAURUS_CLAW, -1);
clan.addReputationScore(reward, true); clan.addReputationScore(reward);
player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(reward)); player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_COMPLETED_A_CLAN_QUEST_S1_POINT_S_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION).addInt(reward));
clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
htmltext = "31331-7.html"; htmltext = "31331-7.html";
@@ -477,7 +477,8 @@ public class ClanTable
{ {
for (Clan clan : _clans.values()) for (Clan clan : _clans.values())
{ {
clan.updateInDB(); clan.updateClanInDB();
clan.getVariables().storeMe();
for (ClanWar war : clan.getWarList().values()) for (ClanWar war : clan.getWarList().values())
{ {
storeClanWars(war); storeClanWars(war);
@@ -2419,15 +2419,15 @@ public class Player extends Playable
{ {
if (_lvlJoinedAcademy <= 16) if (_lvlJoinedAcademy <= 16)
{ {
_clan.addReputationScore(Config.JOIN_ACADEMY_MAX_REP_SCORE, true); _clan.addReputationScore(Config.JOIN_ACADEMY_MAX_REP_SCORE);
} }
else if (_lvlJoinedAcademy >= 39) else if (_lvlJoinedAcademy >= 39)
{ {
_clan.addReputationScore(Config.JOIN_ACADEMY_MIN_REP_SCORE, true); _clan.addReputationScore(Config.JOIN_ACADEMY_MIN_REP_SCORE);
} }
else else
{ {
_clan.addReputationScore((Config.JOIN_ACADEMY_MAX_REP_SCORE - ((_lvlJoinedAcademy - 16) * 20)), true); _clan.addReputationScore((Config.JOIN_ACADEMY_MAX_REP_SCORE - ((_lvlJoinedAcademy - 16) * 20)));
} }
setLvlJoinedAcademy(0); setLvlJoinedAcademy(0);
// oust pledge member from the academy, cuz he has finished his 2nd class transfer // oust pledge member from the academy, cuz he has finished his 2nd class transfer
@@ -6752,7 +6752,7 @@ public class Player extends Playable
final Clan clan = player.getClan(); final Clan clan = player.getClan();
if (clan != null) if (clan != null)
{ {
clan.addReputationScore(150000, true); clan.addReputationScore(150000);
} }
} }
player.setTrueHero(true); player.setTrueHero(true);
@@ -946,28 +946,6 @@ public class Clan implements IIdentifiable, INamable
} }
} }
public void updateInDB()
{
// Update reputation
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps = con.prepareStatement("UPDATE clan_data SET reputation_score=? WHERE clan_id=?"))
{
ps.setInt(1, _reputationScore);
ps.setInt(2, _clanId);
ps.execute();
}
catch (Exception e)
{
LOGGER.log(Level.WARNING, "Exception on updateClanScoreInDb(): " + e.getMessage(), e);
}
// Update variables at database
if (_vars != null)
{
_vars.storeMe();
}
}
/** /**
* Updates in database clan information: * Updates in database clan information:
* <ul> * <ul>
@@ -1109,7 +1087,7 @@ public class Clan implements IIdentifiable, INamable
setCrestLargeId(clanData.getInt("crest_large_id")); setCrestLargeId(clanData.getInt("crest_large_id"));
setAllyCrestId(clanData.getInt("ally_crest_id")); setAllyCrestId(clanData.getInt("ally_crest_id"));
setReputationScore(clanData.getInt("reputation_score"), false); setReputationScore(clanData.getInt("reputation_score"));
setAuctionBiddedAt(clanData.getInt("auction_bid_at"), false); setAuctionBiddedAt(clanData.getInt("auction_bid_at"), false);
setNewLeaderId(clanData.getInt("new_leader_id"), false); setNewLeaderId(clanData.getInt("new_leader_id"), false);
@@ -1898,11 +1876,11 @@ public class Clan implements IIdentifiable, INamable
// Order of Knights 10000 points per each // Order of Knights 10000 points per each
if (pledgeType < SUBUNIT_KNIGHT1) if (pledgeType < SUBUNIT_KNIGHT1)
{ {
setReputationScore(_reputationScore - Config.ROYAL_GUARD_COST, true); setReputationScore(_reputationScore - Config.ROYAL_GUARD_COST);
} }
else else
{ {
setReputationScore(_reputationScore - Config.KNIGHT_UNIT_COST, true); setReputationScore(_reputationScore - Config.KNIGHT_UNIT_COST);
// TODO: clan lvl9 or more can reinforce knights cheaper if first knight unit already created, use Config.KNIGHT_REINFORCE_COST // TODO: clan lvl9 or more can reinforce knights cheaper if first knight unit already created, use Config.KNIGHT_REINFORCE_COST
} }
} }
@@ -2102,17 +2080,17 @@ public class Clan implements IIdentifiable, INamable
return id; return id;
} }
public synchronized void addReputationScore(int value, boolean save) public synchronized void addReputationScore(int value)
{ {
setReputationScore(_reputationScore + value, save); setReputationScore(_reputationScore + value);
} }
public synchronized void takeReputationScore(int value, boolean save) public synchronized void takeReputationScore(int value)
{ {
setReputationScore(_reputationScore - value, save); setReputationScore(_reputationScore - value);
} }
private void setReputationScore(int value, boolean save) private void setReputationScore(int value)
{ {
if ((_reputationScore >= 0) && (value < 0)) if ((_reputationScore >= 0) && (value < 0))
{ {
@@ -2146,11 +2124,8 @@ public class Clan implements IIdentifiable, INamable
{ {
_reputationScore = -100000000; _reputationScore = -100000000;
} }
broadcastToOnlineMembers(new PledgeShowInfoUpdate(this)); broadcastToOnlineMembers(new PledgeShowInfoUpdate(this));
if (save)
{
updateInDB();
}
} }
public int getReputationScore() public int getReputationScore()
@@ -2604,7 +2579,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 6 // Upgrade to 6
if ((_reputationScore >= Config.CLAN_LEVEL_6_COST) && (_members.size() >= Config.CLAN_LEVEL_6_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_6_COST) && (_members.size() >= Config.CLAN_LEVEL_6_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_6_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_6_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_6_COST); cr.addInt(Config.CLAN_LEVEL_6_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2617,7 +2592,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 7 // Upgrade to 7
if ((_reputationScore >= Config.CLAN_LEVEL_7_COST) && (_members.size() >= Config.CLAN_LEVEL_7_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_7_COST) && (_members.size() >= Config.CLAN_LEVEL_7_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_7_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_7_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_7_COST); cr.addInt(Config.CLAN_LEVEL_7_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2630,7 +2605,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 8 // Upgrade to 8
if ((_reputationScore >= Config.CLAN_LEVEL_8_COST) && (_members.size() >= Config.CLAN_LEVEL_8_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_8_COST) && (_members.size() >= Config.CLAN_LEVEL_8_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_8_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_8_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_8_COST); cr.addInt(Config.CLAN_LEVEL_8_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2646,7 +2621,7 @@ public class Clan implements IIdentifiable, INamable
// itemId 9910 == Blood Oath // itemId 9910 == Blood Oath
if (player.destroyItemByItemId("ClanLvl", 9910, 150, player.getTarget(), false)) if (player.destroyItemByItemId("ClanLvl", 9910, 150, player.getTarget(), false))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_9_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_9_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_9_COST); cr.addInt(Config.CLAN_LEVEL_9_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2667,7 +2642,7 @@ public class Clan implements IIdentifiable, INamable
// itemId 9911 == Blood Alliance // itemId 9911 == Blood Alliance
if (player.destroyItemByItemId("ClanLvl", 9911, 5, player.getTarget(), false)) if (player.destroyItemByItemId("ClanLvl", 9911, 5, player.getTarget(), false))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_10_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_10_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_10_COST); cr.addInt(Config.CLAN_LEVEL_10_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -2685,7 +2660,7 @@ public class Clan implements IIdentifiable, INamable
// Upgrade to 11 // Upgrade to 11
if ((_reputationScore >= Config.CLAN_LEVEL_11_COST) && (_members.size() >= Config.CLAN_LEVEL_11_REQUIREMENT)) if ((_reputationScore >= Config.CLAN_LEVEL_11_COST) && (_members.size() >= Config.CLAN_LEVEL_11_REQUIREMENT))
{ {
setReputationScore(_reputationScore - Config.CLAN_LEVEL_11_COST, true); setReputationScore(_reputationScore - Config.CLAN_LEVEL_11_COST);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(Config.CLAN_LEVEL_11_COST); cr.addInt(Config.CLAN_LEVEL_11_COST);
player.sendPacket(cr); player.sendPacket(cr);
@@ -110,8 +110,8 @@ public class ClanWar
// however, when the other side reputation score is 0 or below, your clan cannot acquire any reputation points from them. // however, when the other side reputation score is 0 or below, your clan cannot acquire any reputation points from them.
if (victimClan.getReputationScore() > 0) if (victimClan.getReputationScore() > 0)
{ {
victimClan.takeReputationScore(Config.REPUTATION_SCORE_PER_KILL, false); victimClan.takeReputationScore(Config.REPUTATION_SCORE_PER_KILL);
killerClan.addReputationScore(Config.REPUTATION_SCORE_PER_KILL, false); killerClan.addReputationScore(Config.REPUTATION_SCORE_PER_KILL);
} }
// System Message notification to clan members // System Message notification to clan members
@@ -167,7 +167,7 @@ public class ClanWar
final Clan winnerClan = cancelor.getId() == _attackerClanId ? ClanTable.getInstance().getClan(_attackedClanId) : ClanTable.getInstance().getClan(_attackerClanId); final Clan winnerClan = cancelor.getId() == _attackerClanId ? ClanTable.getInstance().getClan(_attackedClanId) : ClanTable.getInstance().getClan(_attackerClanId);
// Reduce reputation. // Reduce reputation.
cancelor.takeReputationScore(5000, true); cancelor.takeReputationScore(5000);
player.sendPacket(new SurrenderPledgeWar(cancelor.getName(), player.getName())); player.sendPacket(new SurrenderPledgeWar(cancelor.getName(), player.getName()));
SystemMessage sm = new SystemMessage(SystemMessageId.THE_WAR_ENDED_BY_YOUR_DEFEAT_DECLARATION_WITH_THE_S1_CLAN); SystemMessage sm = new SystemMessage(SystemMessageId.THE_WAR_ENDED_BY_YOUR_DEFEAT_DECLARATION_WITH_THE_S1_CLAN);
sm.addString(winnerClan.getName()); sm.addString(winnerClan.getName());
@@ -906,7 +906,7 @@ public class Hero
final Clan clan = player.getClan(); final Clan clan = player.getClan();
if ((clan != null) && (clan.getLevel() >= 5)) if ((clan != null) && (clan.getLevel() >= 5))
{ {
clan.addReputationScore(Config.HERO_POINTS, true); clan.addReputationScore(Config.HERO_POINTS);
final SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_MEMBER_C1_WAS_NAMED_A_HERO_S2_POINTS_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION); final SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_MEMBER_C1_WAS_NAMED_A_HERO_S2_POINTS_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION);
sm.addString(CharNameTable.getInstance().getNameById(player.getObjectId())); sm.addString(CharNameTable.getInstance().getNameById(player.getObjectId()));
sm.addInt(Config.HERO_POINTS); sm.addInt(Config.HERO_POINTS);
@@ -1014,16 +1014,16 @@ public class Castle extends AbstractResidence
if (_formerOwner != ClanTable.getInstance().getClan(getOwnerId())) if (_formerOwner != ClanTable.getInstance().getClan(getOwnerId()))
{ {
final int maxreward = Math.max(0, _formerOwner.getReputationScore()); final int maxreward = Math.max(0, _formerOwner.getReputationScore());
_formerOwner.takeReputationScore(Config.LOOSE_CASTLE_POINTS, true); _formerOwner.takeReputationScore(Config.LOOSE_CASTLE_POINTS);
final Clan owner = ClanTable.getInstance().getClan(getOwnerId()); final Clan owner = ClanTable.getInstance().getClan(getOwnerId());
if (owner != null) if (owner != null)
{ {
owner.addReputationScore(Math.min(Config.TAKE_CASTLE_POINTS, maxreward), true); owner.addReputationScore(Math.min(Config.TAKE_CASTLE_POINTS, maxreward));
} }
} }
else else
{ {
_formerOwner.addReputationScore(Config.CASTLE_DEFENDED_POINTS, true); _formerOwner.addReputationScore(Config.CASTLE_DEFENDED_POINTS);
} }
} }
else else
@@ -1031,7 +1031,7 @@ public class Castle extends AbstractResidence
final Clan owner = ClanTable.getInstance().getClan(getOwnerId()); final Clan owner = ClanTable.getInstance().getClan(getOwnerId());
if (owner != null) if (owner != null)
{ {
owner.addReputationScore(Config.TAKE_CASTLE_POINTS, true); owner.addReputationScore(Config.TAKE_CASTLE_POINTS);
} }
} }
} }
@@ -939,11 +939,11 @@ public class Fort extends AbstractResidence
{ {
if (removePoints) if (removePoints)
{ {
owner.takeReputationScore(Config.LOOSE_FORT_POINTS, true); owner.takeReputationScore(Config.LOOSE_FORT_POINTS);
} }
else else
{ {
owner.addReputationScore(Config.TAKE_FORT_POINTS, true); owner.addReputationScore(Config.TAKE_FORT_POINTS);
} }
} }
} }
@@ -391,7 +391,7 @@ public class SkillCaster implements Runnable
player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW); player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW);
return false; return false;
} }
clan.takeReputationScore(_skill.getClanRepConsume(), true); clan.takeReputationScore(_skill.getClanRepConsume());
final SystemMessage msg = new SystemMessage(SystemMessageId.S1_CLAN_REPUTATION_HAS_BEEN_CONSUMED); final SystemMessage msg = new SystemMessage(SystemMessageId.S1_CLAN_REPUTATION_HAS_BEEN_CONSUMED);
msg.addInt(_skill.getClanRepConsume()); msg.addInt(_skill.getClanRepConsume());
@@ -340,7 +340,7 @@ public class MultiSellChoose implements IClientIncomingPacket
{ {
if (clan != null) if (clan != null)
{ {
clan.takeReputationScore((int) totalCount, true); clan.takeReputationScore((int) totalCount);
final SystemMessage smsg = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage smsg = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
smsg.addLong(totalCount); smsg.addLong(totalCount);
player.sendPacket(smsg); player.sendPacket(smsg);
@@ -460,7 +460,7 @@ public class MultiSellChoose implements IClientIncomingPacket
{ {
if (clan != null) if (clan != null)
{ {
clan.addReputationScore((int) totalCount, true); clan.addReputationScore((int) totalCount);
} }
break; break;
} }
@@ -212,7 +212,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
} }
} }
clan.takeReputationScore(repCost, true); clan.takeReputationScore(repCost);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(repCost); cr.addInt(repCost);
@@ -275,7 +275,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
if (repCost > 0) if (repCost > 0)
{ {
clan.takeReputationScore(repCost, true); clan.takeReputationScore(repCost);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(repCost); cr.addInt(repCost);
player.sendPacket(cr); player.sendPacket(cr);
@@ -88,7 +88,7 @@ public class RequestStopPledgeWar implements IClientIncomingPacket
} }
// Reduce reputation. // Reduce reputation.
playerClan.takeReputationScore(5000, true); playerClan.takeReputationScore(5000);
ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId()); ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId());
for (Player member : playerClan.getOnlineMembers(0)) for (Player member : playerClan.getOnlineMembers(0))
{ {
@@ -75,7 +75,7 @@ public class Ballista extends AbstractNpcAI
{ {
if (npc.getFort().getSiege().isInProgress() && (caster.getClan() != null) && (caster.getClan().getLevel() >= MIN_CLAN_LV)) if (npc.getFort().getSiege().isInProgress() && (caster.getClan() != null) && (caster.getClan().getLevel() >= MIN_CLAN_LV))
{ {
caster.getClan().addReputationScore(Config.BALLISTA_POINTS, true); caster.getClan().addReputationScore(Config.BALLISTA_POINTS);
caster.sendPacket(SystemMessageId.THE_BALLISTA_HAS_BEEN_SUCCESSFULLY_DESTROYED_THE_CLAN_REPUTATION_WILL_BE_INCREASED); caster.sendPacket(SystemMessageId.THE_BALLISTA_HAS_BEEN_SUCCESSFULLY_DESTROYED_THE_CLAN_REPUTATION_WILL_BE_INCREASED);
} }
npc.doDie(caster); npc.doDie(caster);
@@ -57,7 +57,7 @@ public class ClanTrader extends AbstractNpcAI
if (getQuestItemsCount(player, itemId) >= itemCount) if (getQuestItemsCount(player, itemId) >= itemCount)
{ {
takeItems(player, itemId, itemCount); takeItems(player, itemId, itemCount);
player.getClan().addReputationScore(count, true); player.getClan().addReputationScore(count);
final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_CLAN_HAS_ADDED_S1_POINT_S_TO_ITS_CLAN_REPUTATION); final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_CLAN_HAS_ADDED_S1_POINT_S_TO_ITS_CLAN_REPUTATION);
sm.addInt(count); sm.addInt(count);
@@ -94,7 +94,7 @@ public class FameManager extends AbstractNpcAI
if ((player.getFame() >= REPUTATION_COST) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL)) if ((player.getFame() >= REPUTATION_COST) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL))
{ {
player.setFame(player.getFame() - REPUTATION_COST); player.setFame(player.getFame() - REPUTATION_COST);
player.getClan().addReputationScore(50, true); player.getClan().addReputationScore(50);
player.sendPacket(new UserInfo(player)); player.sendPacket(new UserInfo(player));
player.sendPacket(SystemMessageId.YOU_HAVE_ACQUIRED_50_CLAN_REPUTATION); player.sendPacket(SystemMessageId.YOU_HAVE_ACQUIRED_50_CLAN_REPUTATION);
htmltext = npc.getId() + "-04.html"; htmltext = npc.getId() + "-04.html";
@@ -187,7 +187,7 @@ public class AdminPledge implements IAdminCommandHandler
try try
{ {
final int points = Integer.parseInt(param); final int points = Integer.parseInt(param);
clan.addReputationScore(points, true); clan.addReputationScore(points);
BuilderUtil.sendSysMessage(activeChar, "You " + (points > 0 ? "add " : "remove ") + Math.abs(points) + " points " + (points > 0 ? "to " : "from ") + clan.getName() + "'s reputation. Their current score is " + clan.getReputationScore()); BuilderUtil.sendSysMessage(activeChar, "You " + (points > 0 ? "add " : "remove ") + Math.abs(points) + " points " + (points > 0 ? "to " : "from ") + clan.getName() + "'s reputation. Their current score is " + clan.getReputationScore());
} }
catch (Exception e) catch (Exception e)
@@ -52,7 +52,7 @@ public class GiveClanReputation extends AbstractEffect
return; return;
} }
effector.getActingPlayer().getClan().addReputationScore(_reputation, true); effector.getActingPlayer().getClan().addReputationScore(_reputation);
for (ClanMember member : effector.getActingPlayer().getClan().getMembers()) for (ClanMember member : effector.getActingPlayer().getClan().getMembers())
{ {
@@ -477,7 +477,8 @@ public class ClanTable
{ {
for (Clan clan : _clans.values()) for (Clan clan : _clans.values())
{ {
clan.updateInDB(); clan.updateClanInDB();
clan.getVariables().storeMe();
for (ClanWar war : clan.getWarList().values()) for (ClanWar war : clan.getWarList().values())
{ {
storeClanWars(war); storeClanWars(war);
@@ -141,7 +141,7 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer
{ {
if (reward.getId() == SpecialItemType.CLAN_REPUTATION.getClientId()) if (reward.getId() == SpecialItemType.CLAN_REPUTATION.getClientId())
{ {
player.getClan().addReputationScore((int) reward.getCount(), true); player.getClan().addReputationScore((int) reward.getCount());
} }
else if (reward.getId() == SpecialItemType.FAME.getClientId()) else if (reward.getId() == SpecialItemType.FAME.getClientId())
{ {
@@ -2448,15 +2448,15 @@ public class Player extends Playable
{ {
if (_lvlJoinedAcademy <= 16) if (_lvlJoinedAcademy <= 16)
{ {
_clan.addReputationScore(Config.JOIN_ACADEMY_MAX_REP_SCORE, true); _clan.addReputationScore(Config.JOIN_ACADEMY_MAX_REP_SCORE);
} }
else if (_lvlJoinedAcademy >= 39) else if (_lvlJoinedAcademy >= 39)
{ {
_clan.addReputationScore(Config.JOIN_ACADEMY_MIN_REP_SCORE, true); _clan.addReputationScore(Config.JOIN_ACADEMY_MIN_REP_SCORE);
} }
else else
{ {
_clan.addReputationScore((Config.JOIN_ACADEMY_MAX_REP_SCORE - ((_lvlJoinedAcademy - 16) * 20)), true); _clan.addReputationScore((Config.JOIN_ACADEMY_MAX_REP_SCORE - ((_lvlJoinedAcademy - 16) * 20)));
} }
setLvlJoinedAcademy(0); setLvlJoinedAcademy(0);
// oust pledge member from the academy, cuz he has finished his 2nd class transfer // oust pledge member from the academy, cuz he has finished his 2nd class transfer
@@ -6769,7 +6769,7 @@ public class Player extends Playable
final Clan clan = player.getClan(); final Clan clan = player.getClan();
if (clan != null) if (clan != null)
{ {
clan.addReputationScore(150000, true); clan.addReputationScore(150000);
} }
} }
player.setTrueHero(true); player.setTrueHero(true);
@@ -860,28 +860,6 @@ public class Clan implements IIdentifiable, INamable
} }
} }
public void updateInDB()
{
// Update reputation
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps = con.prepareStatement("UPDATE clan_data SET reputation_score=? WHERE clan_id=?"))
{
ps.setInt(1, _reputationScore);
ps.setInt(2, _clanId);
ps.execute();
}
catch (Exception e)
{
LOGGER.log(Level.WARNING, "Exception on updateClanScoreInDb(): " + e.getMessage(), e);
}
// Update variables at database
if (_vars != null)
{
_vars.storeMe();
}
}
/** /**
* Updates in database clan information: * Updates in database clan information:
* <ul> * <ul>
@@ -1030,7 +1008,7 @@ public class Clan implements IIdentifiable, INamable
setCrestLargeId(clanData.getInt("crest_large_id")); setCrestLargeId(clanData.getInt("crest_large_id"));
setAllyCrestId(clanData.getInt("ally_crest_id")); setAllyCrestId(clanData.getInt("ally_crest_id"));
setReputationScore(clanData.getInt("reputation_score"), false); setReputationScore(clanData.getInt("reputation_score"));
setAuctionBiddedAt(clanData.getInt("auction_bid_at"), false); setAuctionBiddedAt(clanData.getInt("auction_bid_at"), false);
setNewLeaderId(clanData.getInt("new_leader_id"), false); setNewLeaderId(clanData.getInt("new_leader_id"), false);
@@ -1953,17 +1931,17 @@ public class Clan implements IIdentifiable, INamable
return id; return id;
} }
public synchronized void addReputationScore(int value, boolean save) public synchronized void addReputationScore(int value)
{ {
setReputationScore(_reputationScore + value, save); setReputationScore(_reputationScore + value);
} }
public synchronized void takeReputationScore(int value, boolean save) public synchronized void takeReputationScore(int value)
{ {
setReputationScore(_reputationScore - value, save); setReputationScore(_reputationScore - value);
} }
private void setReputationScore(int value, boolean save) private void setReputationScore(int value)
{ {
if ((_reputationScore >= 0) && (value < 0)) if ((_reputationScore >= 0) && (value < 0))
{ {
@@ -1997,11 +1975,8 @@ public class Clan implements IIdentifiable, INamable
{ {
_reputationScore = -100000000; _reputationScore = -100000000;
} }
broadcastToOnlineMembers(new PledgeShowInfoUpdate(this)); broadcastToOnlineMembers(new PledgeShowInfoUpdate(this));
if (save)
{
updateInDB();
}
} }
public int getReputationScore() public int getReputationScore()
@@ -2349,7 +2324,7 @@ public class Clan implements IIdentifiable, INamable
final int requiredReputation = ClanLevelData.getLevelRequirement(_level); final int requiredReputation = ClanLevelData.getLevelRequirement(_level);
if (requiredReputation <= _reputationScore) if (requiredReputation <= _reputationScore)
{ {
setReputationScore(_reputationScore - requiredReputation, true); setReputationScore(_reputationScore - requiredReputation);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(requiredReputation); cr.addInt(requiredReputation);
player.sendPacket(cr); player.sendPacket(cr);
@@ -110,8 +110,8 @@ public class ClanWar
// however, when the other side reputation score is 0 or below, your clan cannot acquire any reputation points from them. // however, when the other side reputation score is 0 or below, your clan cannot acquire any reputation points from them.
if (victimClan.getReputationScore() > 0) if (victimClan.getReputationScore() > 0)
{ {
victimClan.takeReputationScore(Config.REPUTATION_SCORE_PER_KILL, false); victimClan.takeReputationScore(Config.REPUTATION_SCORE_PER_KILL);
killerClan.addReputationScore(Config.REPUTATION_SCORE_PER_KILL, false); killerClan.addReputationScore(Config.REPUTATION_SCORE_PER_KILL);
} }
// System Message notification to clan members // System Message notification to clan members
@@ -167,7 +167,7 @@ public class ClanWar
final Clan winnerClan = cancelor.getId() == _attackerClanId ? ClanTable.getInstance().getClan(_attackedClanId) : ClanTable.getInstance().getClan(_attackerClanId); final Clan winnerClan = cancelor.getId() == _attackerClanId ? ClanTable.getInstance().getClan(_attackedClanId) : ClanTable.getInstance().getClan(_attackerClanId);
// Reduce reputation. // Reduce reputation.
cancelor.takeReputationScore(5000, true); cancelor.takeReputationScore(5000);
player.sendPacket(new SurrenderPledgeWar(cancelor.getName(), player.getName())); player.sendPacket(new SurrenderPledgeWar(cancelor.getName(), player.getName()));
SystemMessage sm = new SystemMessage(SystemMessageId.THE_WAR_ENDED_BY_YOUR_DEFEAT_DECLARATION_WITH_THE_S1_CLAN); SystemMessage sm = new SystemMessage(SystemMessageId.THE_WAR_ENDED_BY_YOUR_DEFEAT_DECLARATION_WITH_THE_S1_CLAN);
sm.addString(winnerClan.getName()); sm.addString(winnerClan.getName());
@@ -906,7 +906,7 @@ public class Hero
final Clan clan = player.getClan(); final Clan clan = player.getClan();
if ((clan != null) && (clan.getLevel() >= 5)) if ((clan != null) && (clan.getLevel() >= 5))
{ {
clan.addReputationScore(Config.HERO_POINTS, true); clan.addReputationScore(Config.HERO_POINTS);
final SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_MEMBER_C1_WAS_NAMED_A_HERO_S2_POINTS_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION); final SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_MEMBER_C1_WAS_NAMED_A_HERO_S2_POINTS_HAVE_BEEN_ADDED_TO_YOUR_CLAN_REPUTATION);
sm.addString(CharNameTable.getInstance().getNameById(player.getObjectId())); sm.addString(CharNameTable.getInstance().getNameById(player.getObjectId()));
sm.addInt(Config.HERO_POINTS); sm.addInt(Config.HERO_POINTS);
@@ -1014,16 +1014,16 @@ public class Castle extends AbstractResidence
if (_formerOwner != ClanTable.getInstance().getClan(getOwnerId())) if (_formerOwner != ClanTable.getInstance().getClan(getOwnerId()))
{ {
final int maxreward = Math.max(0, _formerOwner.getReputationScore()); final int maxreward = Math.max(0, _formerOwner.getReputationScore());
_formerOwner.takeReputationScore(Config.LOOSE_CASTLE_POINTS, true); _formerOwner.takeReputationScore(Config.LOOSE_CASTLE_POINTS);
final Clan owner = ClanTable.getInstance().getClan(getOwnerId()); final Clan owner = ClanTable.getInstance().getClan(getOwnerId());
if (owner != null) if (owner != null)
{ {
owner.addReputationScore(Math.min(Config.TAKE_CASTLE_POINTS, maxreward), true); owner.addReputationScore(Math.min(Config.TAKE_CASTLE_POINTS, maxreward));
} }
} }
else else
{ {
_formerOwner.addReputationScore(Config.CASTLE_DEFENDED_POINTS, true); _formerOwner.addReputationScore(Config.CASTLE_DEFENDED_POINTS);
} }
} }
else else
@@ -1031,7 +1031,7 @@ public class Castle extends AbstractResidence
final Clan owner = ClanTable.getInstance().getClan(getOwnerId()); final Clan owner = ClanTable.getInstance().getClan(getOwnerId());
if (owner != null) if (owner != null)
{ {
owner.addReputationScore(Config.TAKE_CASTLE_POINTS, true); owner.addReputationScore(Config.TAKE_CASTLE_POINTS);
} }
} }
} }
@@ -939,11 +939,11 @@ public class Fort extends AbstractResidence
{ {
if (removePoints) if (removePoints)
{ {
owner.takeReputationScore(Config.LOOSE_FORT_POINTS, true); owner.takeReputationScore(Config.LOOSE_FORT_POINTS);
} }
else else
{ {
owner.addReputationScore(Config.TAKE_FORT_POINTS, true); owner.addReputationScore(Config.TAKE_FORT_POINTS);
} }
} }
} }
@@ -391,7 +391,7 @@ public class SkillCaster implements Runnable
player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW); player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW);
return false; return false;
} }
clan.takeReputationScore(_skill.getClanRepConsume(), true); clan.takeReputationScore(_skill.getClanRepConsume());
final SystemMessage msg = new SystemMessage(SystemMessageId.S1_CLAN_REPUTATION_HAS_BEEN_CONSUMED); final SystemMessage msg = new SystemMessage(SystemMessageId.S1_CLAN_REPUTATION_HAS_BEEN_CONSUMED);
msg.addInt(_skill.getClanRepConsume()); msg.addInt(_skill.getClanRepConsume());
@@ -340,7 +340,7 @@ public class MultiSellChoose implements IClientIncomingPacket
{ {
if (clan != null) if (clan != null)
{ {
clan.takeReputationScore((int) totalCount, true); clan.takeReputationScore((int) totalCount);
final SystemMessage smsg = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage smsg = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
smsg.addLong(totalCount); smsg.addLong(totalCount);
player.sendPacket(smsg); player.sendPacket(smsg);
@@ -460,7 +460,7 @@ public class MultiSellChoose implements IClientIncomingPacket
{ {
if (clan != null) if (clan != null)
{ {
clan.addReputationScore((int) totalCount, true); clan.addReputationScore((int) totalCount);
} }
break; break;
} }
@@ -225,7 +225,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
if (repCost > 0) if (repCost > 0)
{ {
clan.takeReputationScore(repCost, true); clan.takeReputationScore(repCost);
final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION); final SystemMessage cr = new SystemMessage(SystemMessageId.S1_POINT_S_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION);
cr.addInt(repCost); cr.addInt(repCost);
player.sendPacket(cr); player.sendPacket(cr);
@@ -88,7 +88,7 @@ public class RequestStopPledgeWar implements IClientIncomingPacket
} }
// Reduce reputation. // Reduce reputation.
playerClan.takeReputationScore(5000, true); playerClan.takeReputationScore(5000);
ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId()); ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId());
for (Player member : playerClan.getOnlineMembers(0)) for (Player member : playerClan.getOnlineMembers(0))
{ {
@@ -61,7 +61,7 @@ public class RequestExPledgeMasteryReset implements IClientIncomingPacket
return; return;
} }
clan.takeReputationScore(REPUTATION_COST, true); clan.takeReputationScore(REPUTATION_COST);
clan.removeAllMasteries(); clan.removeAllMasteries();
clan.setDevelopmentPoints(0); clan.setDevelopmentPoints(0);
player.sendPacket(new ExPledgeMasteryInfo(player)); player.sendPacket(new ExPledgeMasteryInfo(player));
@@ -100,7 +100,7 @@ public class RequestExPledgeMasterySet implements IClientIncomingPacket
} }
// Learn. // Learn.
clan.takeReputationScore(mastery.getClanReputation(), true); clan.takeReputationScore(mastery.getClanReputation());
clan.addMastery(mastery.getId()); clan.addMastery(mastery.getId());
clan.setDevelopmentPoints(clan.getUsedDevelopmentPoints() + 1); clan.setDevelopmentPoints(clan.getUsedDevelopmentPoints() + 1);
for (Skill skill : mastery.getSkills()) for (Skill skill : mastery.getSkills())
@@ -111,7 +111,7 @@ public class RequestExPledgeSkillActivate implements IClientIncomingPacket
} }
// Learn. // Learn.
clan.takeReputationScore(cost, true); clan.takeReputationScore(cost);
clan.addMasterySkill(_skillId); clan.addMasterySkill(_skillId);
player.sendPacket(new ExPledgeSkillInfo(_skillId, 1, 1296000, 2)); player.sendPacket(new ExPledgeSkillInfo(_skillId, 1, 1296000, 2));
} }

Some files were not shown because too many files have changed in this diff Show More