case 4: // Join a Cabal - SevenSigns 4 [0]1 x
int newSeal = Integer.parseInt(command.substring(15));
int oldCabal = SevenSigns.getInstance().getPlayerCabal(player);
if (oldCabal != SevenSigns.CABAL_NULL) {
player.sendMessage("You are already a member of the " + SevenSigns.getCabalName(cabal) + ".");
return;
}
if (!player.hasCompletedFirstClassTransfer() && !player.hasCompletedSecondClassTransfer())
{
player.sendMessage("You must have already completed your first class transfer.");
break;
}
else if (player.hasCompletedSecondClassTransfer())
{
if (Config.ALT_GAME_REQUIRE_CASTLE_DAWN)
{
if (getPlayerAllyHasCastle(player)) {
if (cabal == SevenSigns.CABAL_DUSK) {
player.sendMessage("You must not be a member of a castle-owning clan to join the Revolutionaries of Dusk.");
return;
}
}
else
{
/*
* If the player is trying to join the Lords of Dawn, check if they are
* carrying a Lord's certificate.
*
* If not then try to take the required amount of adena instead.
*/
if (cabal == SevenSigns.CABAL_DAWN)
{
boolean allowJoinDawn = false;
if (player.destroyItemByItemId("SevenSigns", SevenSigns.CERTIFICATE_OF_APPROVAL_ID, 1, this, false))
{
sm = new SystemMessage(SystemMessage.DISSAPEARED_ITEM);
sm.addNumber(1);
sm.addItemName(SevenSigns.CERTIFICATE_OF_APPROVAL_ID);
player.sendPacket(sm);
allowJoinDawn = true;
}
else if (player.reduceAdena("Sign", SevenSigns.ADENA_JOIN_DAWN_COST, this, true))
{
sm = new SystemMessage(SystemMessage.DISSAPEARED_ADENA);
sm.addNumber(SevenSigns.ADENA_JOIN_DAWN_COST);
player.sendPacket(sm);
allowJoinDawn = true;
}
else return;
if (!allowJoinDawn) {
player.sendMessage("You must be a member of a castle-owning clan, have a Certificate of Lord's Approval, or pay 50000 adena to join the Lords of Dawn.");
return;
}
}
}
}
}
else
{
player.sendMessage("Sorry you cannot join " + SevenSigns.getCabalName(cabal) + " at the moment.");
break;
}
SevenSigns.getInstance().setPlayerInfo(player, cabal, newSeal);
if (cabal == SevenSigns.CABAL_DAWN)
player.sendPacket(new SystemMessage(1273)); // Joined Dawn
else
player.sendPacket(new SystemMessage(1274)); // Joined Dusk
// Show a confirmation message to the user, indicating which seal they chose.
switch (newSeal) {
case SevenSigns.SEAL_AVARICE:
player.sendPacket(new SystemMessage(1275));
break;
case SevenSigns.SEAL_GNOSIS:
player.sendPacket(new SystemMessage(1276));
break;
case SevenSigns.SEAL_STRIFE:
player.sendPacket(new SystemMessage(1277));
break;
}
showChatWindow(player, 4, SevenSigns.getCabalShortName(cabal), false);
break;