Fix War Points bug
This commit is contained in:
parent
0d372cefaa
commit
5b30cfb67e
@ -30,6 +30,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import mineplex.game.clans.core.repository.tokens.ClanWarToken;
|
||||
import mineplex.game.clans.core.war.ClanWarData;
|
||||
import org.jooq.DSLContext;
|
||||
|
||||
import static mineplex.database.Tables.*;
|
||||
@ -369,18 +370,20 @@ public class ClanRepository extends RepositoryBase
|
||||
while (resultSet.next())
|
||||
{
|
||||
ClanWarToken warToken = new ClanWarToken();
|
||||
warToken.ClanA = resultSet.getString(1);
|
||||
warToken.ClanB = resultSet.getString(2);
|
||||
warToken.Score = resultSet.getInt(3);
|
||||
warToken.Created = resultSet.getTimestamp(4);
|
||||
String clanA = resultSet.getString(1);
|
||||
String clanB = resultSet.getString(2);
|
||||
int score = resultSet.getInt(3);
|
||||
Timestamp created = resultSet.getTimestamp(4);
|
||||
// warToken.Ended = resultSet.getTimestamp(5);
|
||||
warToken.Updated = resultSet.getTimestamp(6);
|
||||
Timestamp updated = resultSet.getTimestamp(6);
|
||||
ClanWarData warData = new ClanWarData(clanA, clanB, score, created, updated, 0);
|
||||
warToken.WarData = warData;
|
||||
|
||||
if (clans.containsKey(warToken.ClanA) && clans.containsKey(warToken.ClanB))
|
||||
if (clans.containsKey(warToken.WarData.getClanA()) && clans.containsKey(warToken.WarData.getClanB()))
|
||||
{
|
||||
System.out.println("Loaded War Token: " + warToken.ClanA);
|
||||
clans.get(warToken.ClanA).WarsOut.add(warToken);
|
||||
clans.get(warToken.ClanB).WarsIn.add(warToken);
|
||||
System.out.println("Loaded War Token: " + warToken.WarData.getClanA());
|
||||
clans.get(warToken.WarData.getClanA()).WarsOut.add(warToken);
|
||||
clans.get(warToken.WarData.getClanB()).WarsIn.add(warToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,12 +1,8 @@
|
||||
package mineplex.game.clans.core.repository.tokens;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import mineplex.game.clans.core.war.ClanWarData;
|
||||
|
||||
public class ClanWarToken
|
||||
{
|
||||
public String ClanA;
|
||||
public String ClanB;
|
||||
public int Score;
|
||||
public Timestamp Created;
|
||||
public Timestamp Updated;
|
||||
public ClanWarData WarData;
|
||||
}
|
||||
|
@ -0,0 +1,89 @@
|
||||
package mineplex.game.clans.core.war;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
|
||||
public class ClanWarData
|
||||
{
|
||||
private String _clanA;
|
||||
private String _clanB;
|
||||
private volatile int _clanAPoints;
|
||||
private Timestamp _timeFormed;
|
||||
private Timestamp _lastUpdated;
|
||||
private long _cooldown;
|
||||
|
||||
public ClanWarData(String clanA, String clanB, int clanAPoints, Timestamp timeFormed, Timestamp lastUpdated, long cooldown)
|
||||
{
|
||||
_clanA = clanA;
|
||||
_clanB = clanB;
|
||||
_clanAPoints = clanAPoints;
|
||||
_timeFormed = timeFormed;
|
||||
_lastUpdated = lastUpdated;
|
||||
_cooldown = cooldown;
|
||||
}
|
||||
|
||||
public String getClanA()
|
||||
{
|
||||
return _clanA;
|
||||
}
|
||||
|
||||
public String getClanB()
|
||||
{
|
||||
return _clanB;
|
||||
}
|
||||
|
||||
public int getPoints(String clan)
|
||||
{
|
||||
if (_clanA.equals(clan))
|
||||
return getPoints();
|
||||
else if (_clanB.equals(clan))
|
||||
return -getPoints();
|
||||
|
||||
throw new RuntimeException("ClanWarData::getPoints Invalid Clan for War. ClanA: " + _clanA + ", ClanB: " + _clanB + ", Lookup Clan: " + clan);
|
||||
}
|
||||
|
||||
public int getPoints()
|
||||
{
|
||||
System.out.println("ClanWarData::getPoints Value: " + _clanAPoints + " Hash: " + hashCode());
|
||||
|
||||
return _clanAPoints;
|
||||
}
|
||||
|
||||
public Timestamp getTimeFormed()
|
||||
{
|
||||
return _timeFormed;
|
||||
}
|
||||
|
||||
public Timestamp getLastUpdated()
|
||||
{
|
||||
return _lastUpdated;
|
||||
}
|
||||
|
||||
public void setLastUpdated(Timestamp lastUpdated)
|
||||
{
|
||||
_lastUpdated = lastUpdated;
|
||||
}
|
||||
|
||||
public long getCooldown()
|
||||
{
|
||||
return _cooldown;
|
||||
}
|
||||
|
||||
public void setCooldown(long cooldown)
|
||||
{
|
||||
_cooldown = cooldown;
|
||||
}
|
||||
|
||||
public boolean isOnCooldown()
|
||||
{
|
||||
return _cooldown >= System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public void increment(String clan)
|
||||
{
|
||||
if (_clanA.equals(clan))
|
||||
_clanAPoints++;
|
||||
else if (_clanB.equals(clan))
|
||||
_clanAPoints--;
|
||||
else throw new RuntimeException("ClanWarData::increment Invalid Clan for War. ClanA: " + _clanA + ", ClanB: " + _clanB + ", Lookup Clan: " + clan);
|
||||
}
|
||||
}
|
@ -23,7 +23,7 @@ import mineplex.core.common.util.UtilTime;
|
||||
import mineplex.core.common.util.UtilTime.TimeUnit;
|
||||
import mineplex.core.common.util.UtilWorld;
|
||||
import mineplex.game.clans.clans.ClansUtility.ClanRelation;
|
||||
import mineplex.game.clans.clans.war.ClanWarData;
|
||||
import mineplex.game.clans.core.war.ClanWarData;
|
||||
import mineplex.game.clans.core.repository.tokens.ClanAllianceToken;
|
||||
import mineplex.game.clans.core.repository.tokens.ClanMemberToken;
|
||||
import mineplex.game.clans.core.repository.tokens.ClanTerritoryToken;
|
||||
@ -131,16 +131,16 @@ public class ClanInfo
|
||||
|
||||
for (ClanWarToken warToken : token.WarsIn)
|
||||
{
|
||||
ClanWarData war = new ClanWarData(warToken);
|
||||
System.out.println("Adding war in for " + getName() + " against " + war.getClanA());
|
||||
_warIn.put(war.getClanA(), war);
|
||||
ClanWarData warData = warToken.WarData;
|
||||
System.out.println("Adding war in for " + getName() + " against " + warData.getClanA());
|
||||
_warIn.put(warData.getClanA(), warData);
|
||||
}
|
||||
|
||||
for (ClanWarToken warToken : token.WarsOut)
|
||||
{
|
||||
ClanWarData war = new ClanWarData(warToken);
|
||||
System.out.println("Adding war out for " + getName() + " against " + war.getClanB());
|
||||
_warOut.put(war.getClanB(), war);
|
||||
ClanWarData warData = warToken.WarData;
|
||||
System.out.println("Adding war out for " + getName() + " against " + warData.getClanB());
|
||||
_warOut.put(warData.getClanB(), warData);
|
||||
}
|
||||
}
|
||||
|
||||
@ -558,7 +558,7 @@ public class ClanInfo
|
||||
ClanWarData data = getWarData(against);
|
||||
if (data != null)
|
||||
{
|
||||
warPoints = data.getPoints(this);
|
||||
warPoints = data.getPoints(getName());
|
||||
}
|
||||
|
||||
return warPoints;
|
||||
|
@ -19,7 +19,7 @@ import mineplex.game.clans.clans.event.ClanCreatedEvent;
|
||||
import mineplex.game.clans.clans.event.ClanDeleteEvent;
|
||||
import mineplex.game.clans.clans.scoreboard.ClansScoreboardManager;
|
||||
import mineplex.game.clans.clans.tntGenerator.TntGenerator;
|
||||
import mineplex.game.clans.clans.war.ClanWarData;
|
||||
import mineplex.game.clans.core.war.ClanWarData;
|
||||
import mineplex.game.clans.core.repository.ClanRepository;
|
||||
import mineplex.game.clans.core.repository.ClanTerritory;
|
||||
import mineplex.game.clans.core.repository.tokens.ClanToken;
|
||||
|
@ -1,123 +0,0 @@
|
||||
package mineplex.game.clans.clans.war;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
|
||||
import mineplex.game.clans.clans.ClanInfo;
|
||||
import mineplex.game.clans.core.repository.tokens.ClanWarToken;
|
||||
|
||||
public class ClanWarData
|
||||
{
|
||||
private String _clanA;
|
||||
private String _clanB;
|
||||
private volatile int _clanAPoints;
|
||||
private Timestamp _timeFormed;
|
||||
private Timestamp _lastUpdated;
|
||||
private long _cooldown;
|
||||
|
||||
public ClanWarData(String clanA, String clanB, int clanAPoints, Timestamp timeFormed, Timestamp lastUpdated, long cooldown)
|
||||
{
|
||||
_clanA = clanA;
|
||||
_clanB = clanB;
|
||||
_clanAPoints = clanAPoints;
|
||||
_timeFormed = timeFormed;
|
||||
_lastUpdated = lastUpdated;
|
||||
_cooldown = cooldown;
|
||||
}
|
||||
|
||||
public ClanWarData(ClanWarToken token)
|
||||
{
|
||||
this(token.ClanA, token.ClanB, token.Score, token.Created, token.Updated, 0L);
|
||||
}
|
||||
|
||||
public String getClanA()
|
||||
{
|
||||
return _clanA;
|
||||
}
|
||||
|
||||
public String getClanB()
|
||||
{
|
||||
return _clanB;
|
||||
}
|
||||
|
||||
public int getPoints(ClanInfo clan)
|
||||
{
|
||||
if (_clanA.equals(clan.getName()))
|
||||
return _clanAPoints;
|
||||
else if (_clanB.equals(clan.getName()))
|
||||
return -_clanAPoints;
|
||||
|
||||
throw new RuntimeException("ClanWarData::getPoints Invalid Clan for War. ClanA: " + _clanA + ", ClanB: " + _clanB + ", Lookup Clan: " + clan.getName());
|
||||
}
|
||||
|
||||
public int getPoints()
|
||||
{
|
||||
return _clanAPoints;
|
||||
}
|
||||
|
||||
public Timestamp getTimeFormed()
|
||||
{
|
||||
return _timeFormed;
|
||||
}
|
||||
|
||||
public Timestamp getLastUpdated()
|
||||
{
|
||||
return _lastUpdated;
|
||||
}
|
||||
|
||||
public void setLastUpdated(Timestamp lastUpdated)
|
||||
{
|
||||
_lastUpdated = lastUpdated;
|
||||
}
|
||||
|
||||
public long getCooldown()
|
||||
{
|
||||
return _cooldown;
|
||||
}
|
||||
|
||||
public void setCooldown(long cooldown)
|
||||
{
|
||||
_cooldown = cooldown;
|
||||
}
|
||||
|
||||
public boolean isOnCooldown()
|
||||
{
|
||||
return _cooldown >= System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public void increment(ClanInfo clan)
|
||||
{
|
||||
if (_clanA.equals(clan.getName()))
|
||||
_clanAPoints++;
|
||||
else if (_clanB.equals(clan.getName()))
|
||||
_clanAPoints--;
|
||||
else throw new RuntimeException("ClanWarData::increment Invalid Clan for War. ClanA: " + _clanA + ", ClanB: " + _clanB + ", Lookup Clan: " + clan.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o)
|
||||
{
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
ClanWarData that = (ClanWarData) o;
|
||||
|
||||
if (_clanAPoints != that._clanAPoints) return false;
|
||||
if (_cooldown != that._cooldown) return false;
|
||||
if (!_clanA.equals(that._clanA)) return false;
|
||||
if (!_clanB.equals(that._clanB)) return false;
|
||||
if (!_timeFormed.equals(that._timeFormed)) return false;
|
||||
return _lastUpdated.equals(that._lastUpdated);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
int result = _clanA.hashCode();
|
||||
result = 31 * result + _clanB.hashCode();
|
||||
result = 31 * result + _clanAPoints;
|
||||
result = 31 * result + _timeFormed.hashCode();
|
||||
result = 31 * result + _lastUpdated.hashCode();
|
||||
result = 31 * result + (int) (_cooldown ^ (_cooldown >>> 32));
|
||||
return result;
|
||||
}
|
||||
}
|
@ -1,5 +1,7 @@
|
||||
package mineplex.game.clans.clans.war;
|
||||
|
||||
import mineplex.game.clans.core.war.ClanWarData;
|
||||
|
||||
public class WarInvasion
|
||||
{
|
||||
private static final long INVADE_LENGTH = 60000L * 30; // 30 Minutes
|
||||
|
@ -23,9 +23,9 @@ import mineplex.game.clans.clans.ClansManager;
|
||||
import mineplex.game.clans.clans.ClansUtility;
|
||||
import mineplex.game.clans.clans.event.ClansPlayerDeathEvent;
|
||||
import mineplex.game.clans.clans.war.command.WarPointsCommand;
|
||||
import mineplex.game.clans.clans.war.event.WarEndEvent;
|
||||
import mineplex.game.clans.clans.war.event.WarInvasionEndEvent;
|
||||
import mineplex.game.clans.clans.war.event.WarInvasionStartEvent;
|
||||
import mineplex.game.clans.core.war.ClanWarData;
|
||||
|
||||
public class WarManager extends MiniPlugin
|
||||
{
|
||||
@ -124,7 +124,7 @@ public class WarManager extends MiniPlugin
|
||||
ClansUtility.ClanRelation rel = _clansManager.getClanUtility().rel(clan, killerClan);
|
||||
_clansManager.middleTextClan(killerClan, "", C.cGreen + "+1 WP against " + rel.getColor(false) + clan.getName());
|
||||
_clansManager.middleTextClan(clan, "", C.cGreen + "-1 WP against " + rel.getColor(false) + killerClan.getName());
|
||||
war.increment(killerClan);
|
||||
war.increment(killerClan.getName());
|
||||
// todo: check war complete
|
||||
}
|
||||
else
|
||||
|
@ -9,7 +9,7 @@ import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilTime;
|
||||
import mineplex.game.clans.clans.ClanInfo;
|
||||
import mineplex.game.clans.clans.ClansManager;
|
||||
import mineplex.game.clans.clans.war.ClanWarData;
|
||||
import mineplex.game.clans.core.war.ClanWarData;
|
||||
import mineplex.game.clans.clans.war.WarManager;
|
||||
|
||||
public class WarPointsCommand extends CommandBase<WarManager>
|
||||
@ -49,7 +49,7 @@ public class WarPointsCommand extends CommandBase<WarManager>
|
||||
{
|
||||
System.out.println("Initiator: " + war.getClanA());
|
||||
System.out.println("Other Clan: " + war.getClanB());
|
||||
System.out.println("Score: " + war.getPoints(clan));
|
||||
System.out.println("Score: " + war.getPoints(clan.getName()));
|
||||
UtilPlayer.message(caller, F.main("War", "War Status with " + searchName));
|
||||
UtilPlayer.message(caller, F.main("War", "Initiated by: " + (war.getClanA().equals(clan.getName()) ? selfName : searchName)));
|
||||
UtilPlayer.message(caller, F.main("War", "War Points: " + clan.getFormattedWarPoints(search)));
|
||||
|
@ -3,7 +3,7 @@ package mineplex.game.clans.clans.war.event;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import mineplex.game.clans.clans.war.ClanWarData;
|
||||
import mineplex.game.clans.core.war.ClanWarData;
|
||||
|
||||
public class WarEndEvent extends Event
|
||||
{
|
||||
|
@ -3,7 +3,7 @@ package mineplex.game.clans.clans.war.event;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import mineplex.game.clans.clans.war.ClanWarData;
|
||||
import mineplex.game.clans.core.war.ClanWarData;
|
||||
|
||||
public class WarStartEvent extends Event
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user