Updated clan privileges to match latest client.
Contributed by CostyKiller.
This commit is contained in:
@@ -68,7 +68,7 @@ public class Nottingale extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
if (player.getClan() != null)
|
if (player.getClan() != null)
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CL_SUMMON_AIRSHIP) && AirShipManager.getInstance().hasAirShipLicense(player.getClanId()) && !AirShipManager.getInstance().hasAirShip(player.getClanId()))
|
if (player.hasClanPrivilege(ClanPrivilege.CL_USE_FUNCTIONS) && AirShipManager.getInstance().hasAirShipLicense(player.getClanId()) && !AirShipManager.getInstance().hasAirShip(player.getClanId()))
|
||||||
{
|
{
|
||||||
htmltext = event;
|
htmltext = event;
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,9 @@ package ai.areas.Rune.Roiental;
|
|||||||
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
|
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
|
import org.l2jmobius.gameserver.model.clan.ClanPrivilege;
|
||||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
import ai.AbstractNpcAI;
|
import ai.AbstractNpcAI;
|
||||||
|
|
||||||
@@ -57,14 +59,22 @@ public class Roiental extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
htmltext = "Roiental-NoLevel.html";
|
htmltext = "Roiental-NoLevel.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_GB))
|
else if (player.getClan() == null)
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_BELONG_TO_ANY_CLAN);
|
||||||
|
}
|
||||||
|
else if ((player.getClan().getLevel() < CLAN_MIN_LVL_GB))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-03a.html";
|
htmltext = "Roiental-03a.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-AlreadyDone.html";
|
htmltext = "Roiental-AlreadyDone.html";
|
||||||
}
|
}
|
||||||
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-01a.html";
|
htmltext = "Roiental-01a.html";
|
||||||
@@ -76,14 +86,22 @@ public class Roiental extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
htmltext = "Roiental-NoLevel.html";
|
htmltext = "Roiental-NoLevel.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_MR))
|
else if (player.getClan() == null)
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_BELONG_TO_ANY_CLAN);
|
||||||
|
}
|
||||||
|
else if ((player.getClan().getLevel() < CLAN_MIN_LVL_MR))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-03b.html";
|
htmltext = "Roiental-03b.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-AlreadyDone.html";
|
htmltext = "Roiental-AlreadyDone.html";
|
||||||
}
|
}
|
||||||
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-01b.html";
|
htmltext = "Roiental-01b.html";
|
||||||
@@ -95,14 +113,22 @@ public class Roiental extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
htmltext = "Roiental-NoLevel.html";
|
htmltext = "Roiental-NoLevel.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_TA))
|
else if (player.getClan() == null)
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_BELONG_TO_ANY_CLAN);
|
||||||
|
}
|
||||||
|
else if ((player.getClan().getLevel() < CLAN_MIN_LVL_TA))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-03c.html";
|
htmltext = "Roiental-03c.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-AlreadyDone.html";
|
htmltext = "Roiental-AlreadyDone.html";
|
||||||
}
|
}
|
||||||
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-01c.html";
|
htmltext = "Roiental-01c.html";
|
||||||
|
@@ -151,7 +151,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
|
|
||||||
private final String funcConfirmHtml(Player player, Npc npc, Castle castle, int func, int level)
|
private final String funcConfirmHtml(Player player, Npc npc, Castle castle, int func, int level)
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html;
|
final NpcHtmlMessage html;
|
||||||
final String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
|
final String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
|
||||||
@@ -461,7 +461,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "siege_functions":
|
case "siege_functions":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (castle.getSiege().isInProgress())
|
if (castle.getSiege().isInProgress())
|
||||||
{
|
{
|
||||||
@@ -484,7 +484,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_doors":
|
case "manage_doors":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -511,7 +511,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_doors":
|
case "upgrade_doors":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final int type = Integer.parseInt(st.nextToken());
|
final int type = Integer.parseInt(st.nextToken());
|
||||||
final int level = Integer.parseInt(st.nextToken());
|
final int level = Integer.parseInt(st.nextToken());
|
||||||
@@ -528,7 +528,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_doors_confirm":
|
case "upgrade_doors_confirm":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (castle.getSiege().isInProgress())
|
if (castle.getSiege().isInProgress())
|
||||||
{
|
{
|
||||||
@@ -579,7 +579,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_trap":
|
case "manage_trap":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -608,7 +608,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_trap":
|
case "upgrade_trap":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final String trapIndex = st.nextToken();
|
final String trapIndex = st.nextToken();
|
||||||
final int level = Integer.parseInt(st.nextToken());
|
final int level = Integer.parseInt(st.nextToken());
|
||||||
@@ -626,7 +626,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_trap_confirm":
|
case "upgrade_trap_confirm":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (castle.getSiege().isInProgress())
|
if (castle.getSiege().isInProgress())
|
||||||
{
|
{
|
||||||
@@ -688,7 +688,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_vault":
|
case "manage_vault":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault.html");
|
||||||
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
||||||
@@ -702,7 +702,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_vault_deposit":
|
case "manage_vault_deposit":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_deposit.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_deposit.html");
|
||||||
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
||||||
@@ -716,7 +716,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_vault_withdraw":
|
case "manage_vault_withdraw":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_withdraw.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_withdraw.html");
|
||||||
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
||||||
@@ -730,7 +730,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "deposit":
|
case "deposit":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
||||||
if ((amount > 0) && (amount < Inventory.MAX_ADENA))
|
if ((amount > 0) && (amount < Inventory.MAX_ADENA))
|
||||||
@@ -755,7 +755,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "withdraw":
|
case "withdraw":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
||||||
if (amount <= castle.getTreasury())
|
if (amount <= castle.getTreasury())
|
||||||
@@ -832,7 +832,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "doors":
|
case "doors":
|
||||||
{
|
{
|
||||||
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
|
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
htmltext = "chamberlain-21.html";
|
htmltext = "chamberlain-21.html";
|
||||||
}
|
}
|
||||||
@@ -848,7 +848,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "operate_door":
|
case "operate_door":
|
||||||
{
|
{
|
||||||
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
|
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
htmltext = "chamberlain-21.html";
|
htmltext = "chamberlain-21.html";
|
||||||
}
|
}
|
||||||
@@ -869,12 +869,12 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "additional_functions":
|
case "additional_functions":
|
||||||
{
|
{
|
||||||
htmltext = (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS)) ? "castletdecomanage.html" : "chamberlain-21.html";
|
htmltext = (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS)) ? "castletdecomanage.html" : "chamberlain-21.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "recovery":
|
case "recovery":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AR01.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AR01.html");
|
||||||
funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
|
funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
|
||||||
@@ -890,7 +890,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "other":
|
case "other":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AE01.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AE01.html");
|
||||||
funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
|
funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
|
||||||
@@ -935,7 +935,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "set_func":
|
case "set_func":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final int func = Integer.parseInt(st.nextToken());
|
final int func = Integer.parseInt(st.nextToken());
|
||||||
final int level = Integer.parseInt(st.nextToken());
|
final int level = Integer.parseInt(st.nextToken());
|
||||||
@@ -1081,7 +1081,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "list_siege_clans":
|
case "list_siege_clans":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
castle.getSiege().listRegisterClan(player);
|
castle.getSiege().listRegisterClan(player);
|
||||||
}
|
}
|
||||||
|
@@ -340,7 +340,7 @@ public class CastleCourtMagician extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "squadSkill":
|
case "squadSkill":
|
||||||
{
|
{
|
||||||
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
RequestAcquireSkill.showSubUnitSkillList(player);
|
RequestAcquireSkill.showSubUnitSkillList(player);
|
||||||
}
|
}
|
||||||
|
@@ -136,7 +136,7 @@ public class CastleDoorManager extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public String onFirstTalk(Npc npc, Player player)
|
public String onFirstTalk(Npc npc, Player player)
|
||||||
{
|
{
|
||||||
return isOwningClan(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR) ? getHtmlName(npc) + ".html" : getHtmlName(npc) + "-no.html";
|
return isOwningClan(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS) ? getHtmlName(npc) + ".html" : getHtmlName(npc) + "-no.html";
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getHtmlName(Npc npc)
|
private String getHtmlName(Npc npc)
|
||||||
|
@@ -74,7 +74,7 @@ public class ClanHallDoorManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manageDoors":
|
case "manageDoors":
|
||||||
{
|
{
|
||||||
if (isOwningClan(player, npc) && st.hasMoreTokens() && player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
|
if (isOwningClan(player, npc) && st.hasMoreTokens() && player.hasClanPrivilege(ClanPrivilege.CH_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
final boolean open = st.nextToken().equals("1");
|
final boolean open = st.nextToken().equals("1");
|
||||||
clanHall.openCloseDoors(open);
|
clanHall.openCloseDoors(open);
|
||||||
|
@@ -134,7 +134,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manageDoors":
|
case "manageDoors":
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
|
if (player.hasClanPrivilege(ClanPrivilege.CH_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -175,7 +175,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "useFunctions":
|
case "useFunctions":
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CH_OTHER_RIGHTS))
|
if (player.hasClanPrivilege(ClanPrivilege.CH_USE_FUNCTIONS))
|
||||||
{
|
{
|
||||||
if (!st.hasMoreTokens())
|
if (!st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -303,7 +303,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manageFunctions":
|
case "manageFunctions":
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CH_SET_FUNCTIONS))
|
if (player.hasClanPrivilege(ClanPrivilege.CH_SETTTINGS))
|
||||||
{
|
{
|
||||||
if (!st.hasMoreTokens())
|
if (!st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
|
@@ -111,7 +111,7 @@ public class ClanTrader extends AbstractNpcAI
|
|||||||
String htmltext = null;
|
String htmltext = null;
|
||||||
if (player.getClanId() > 0)
|
if (player.getClanId() > 0)
|
||||||
{
|
{
|
||||||
htmltext = npc.getId() + ((player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME)) ? ".html" : "-06.html");
|
htmltext = npc.getId() + ((player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS)) ? ".html" : "-06.html");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -100,7 +100,7 @@ public class FortressSiegeManager extends AbstractNpcAI
|
|||||||
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
||||||
return html.getHtml();
|
return html.getHtml();
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
htmltext = "FortressSiegeManager-10.html";
|
htmltext = "FortressSiegeManager-10.html";
|
||||||
}
|
}
|
||||||
@@ -169,7 +169,7 @@ public class FortressSiegeManager extends AbstractNpcAI
|
|||||||
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
||||||
return html.getHtml();
|
return html.getHtml();
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
htmltext = "FortressSiegeManager-10.html";
|
htmltext = "FortressSiegeManager-10.html";
|
||||||
}
|
}
|
||||||
|
@@ -254,7 +254,7 @@ public class SupportUnitCaptain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "squadSkill":
|
case "squadSkill":
|
||||||
{
|
{
|
||||||
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
RequestAcquireSkill.showSubUnitSkillList(player);
|
RequestAcquireSkill.showSubUnitSkillList(player);
|
||||||
}
|
}
|
||||||
|
@@ -80,7 +80,7 @@ public class ClanWarehouse implements IBypassHandler
|
|||||||
{
|
{
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_THE_CLAN_WAREHOUSE);
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_THE_CLAN_WAREHOUSE);
|
||||||
return true;
|
return true;
|
||||||
|
@@ -134,7 +134,7 @@ public abstract class AirShipController extends AbstractNpcAI
|
|||||||
player.sendPacket(SystemMessageId.ANOTHER_AIRSHIP_HAS_BEEN_SUMMONED_TO_THE_WHARF_PLEASE_TRY_AGAIN_LATER);
|
player.sendPacket(SystemMessageId.ANOTHER_AIRSHIP_HAS_BEEN_SUMMONED_TO_THE_WHARF_PLEASE_TRY_AGAIN_LATER);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_SUMMON_AIRSHIP))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_USE_FUNCTIONS))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.AIRSHIP_SUMMON_LICENSE_REGISTRATION_CAN_ONLY_BE_DONE_BY_THE_CLAN_LEADER);
|
player.sendPacket(SystemMessageId.AIRSHIP_SUMMON_LICENSE_REGISTRATION_CAN_ONLY_BE_DONE_BY_THE_CLAN_LEADER);
|
||||||
return null;
|
return null;
|
||||||
|
@@ -185,7 +185,7 @@ public class FortManager extends Merchant
|
|||||||
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
|
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
|
||||||
// control
|
// control
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
|
if (player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
if (!val.isEmpty())
|
if (!val.isEmpty())
|
||||||
{
|
{
|
||||||
@@ -230,7 +230,7 @@ public class FortManager extends Merchant
|
|||||||
else if (actualCommand.equalsIgnoreCase("manage_vault"))
|
else if (actualCommand.equalsIgnoreCase("manage_vault"))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if (player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
if (val.equalsIgnoreCase("deposit"))
|
if (val.equalsIgnoreCase("deposit"))
|
||||||
{
|
{
|
||||||
@@ -320,7 +320,7 @@ public class FortManager extends Merchant
|
|||||||
}
|
}
|
||||||
else if (actualCommand.equalsIgnoreCase("manage"))
|
else if (actualCommand.equalsIgnoreCase("manage"))
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (val.equalsIgnoreCase("recovery"))
|
if (val.equalsIgnoreCase("recovery"))
|
||||||
{
|
{
|
||||||
@@ -995,7 +995,7 @@ public class FortManager extends Merchant
|
|||||||
|
|
||||||
private void showVaultWindowWithdraw(Player player)
|
private void showVaultWindowWithdraw(Player player)
|
||||||
{
|
{
|
||||||
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
player.setActiveWarehouse(player.getClan().getWarehouse());
|
player.setActiveWarehouse(player.getClan().getWarehouse());
|
||||||
|
@@ -2040,7 +2040,7 @@ public class Clan implements IIdentifiable, INamable
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_JOIN_CLAN))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_INVITE))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return false;
|
return false;
|
||||||
|
@@ -25,35 +25,35 @@ public enum ClanPrivilege
|
|||||||
{
|
{
|
||||||
/** dummy entry */
|
/** dummy entry */
|
||||||
DUMMY,
|
DUMMY,
|
||||||
/** Privilege to join clan */
|
|
||||||
CL_JOIN_CLAN,
|
/** System Privileges */
|
||||||
/** Privilege to give a title */
|
CL_INVITE,
|
||||||
CL_GIVE_TITLE,
|
CL_MANAGE_TITLES,
|
||||||
/** Privilege to view warehouse content */
|
CL_WAREHOUSE_SEARCH,
|
||||||
CL_VIEW_WAREHOUSE,
|
|
||||||
/** Privilege to manage clan ranks */
|
|
||||||
CL_MANAGE_RANKS,
|
CL_MANAGE_RANKS,
|
||||||
CL_PLEDGE_WAR,
|
CL_CLAN_WAR,
|
||||||
CL_DISMISS,
|
CL_DISMISS,
|
||||||
/** Privilege to register clan crest */
|
CL_EDIT_CREST,
|
||||||
CL_REGISTER_CREST,
|
CL_USE_FUNCTIONS,
|
||||||
CL_APPRENTICE,
|
CL_SETTINGS,
|
||||||
CL_TROOPS_FAME,
|
CL_THRONE_OF_HEROES,
|
||||||
CL_SUMMON_AIRSHIP,
|
|
||||||
/** Privilege to open a door */
|
/** Clan Hall Privileges */
|
||||||
CH_OPEN_DOOR,
|
CH_ENTRY_EXIT_RIGHTS,
|
||||||
CH_OTHER_RIGHTS,
|
CH_USE_FUNCTIONS,
|
||||||
CH_AUCTION,
|
CH_AUCTION,
|
||||||
CH_DISMISS,
|
CH_DISMISS,
|
||||||
CH_SET_FUNCTIONS,
|
CH_SETTTINGS,
|
||||||
CS_OPEN_DOOR,
|
|
||||||
CS_MANOR_ADMIN,
|
/** Castle/Fortress Privileges */
|
||||||
CS_MANAGE_SIEGE,
|
CS_ENTRY_EXIT_RIGHTS,
|
||||||
|
CS_SIEGE_WAR,
|
||||||
CS_USE_FUNCTIONS,
|
CS_USE_FUNCTIONS,
|
||||||
|
CS_SETTINGS,
|
||||||
CS_DISMISS,
|
CS_DISMISS,
|
||||||
CS_TAXES,
|
CS_MANAGE_TAXES,
|
||||||
CS_MERCENARIES,
|
CS_MERCENARIES,
|
||||||
CS_SET_FUNCTIONS;
|
CS_MANOR_ADMIN;
|
||||||
|
|
||||||
public int getBitmask()
|
public int getBitmask()
|
||||||
{
|
{
|
||||||
|
@@ -183,7 +183,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
case SUBPLEDGE:
|
case SUBPLEDGE:
|
||||||
{
|
{
|
||||||
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -113,7 +113,7 @@ public class RequestAcquireSkillInfo implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
case SUBPLEDGE:
|
case SUBPLEDGE:
|
||||||
{
|
{
|
||||||
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -75,7 +75,7 @@ public class RequestExSetPledgeCrestLarge implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_REGISTER_CREST))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_EDIT_CREST))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -55,7 +55,7 @@ public class RequestGiveNickName implements IClientIncomingPacket
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Can the player change/give a title?
|
// Can the player change/give a title?
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_GIVE_TITLE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_MANAGE_TITLES))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -52,7 +52,7 @@ public class RequestJoinSiege implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -65,7 +65,7 @@ public class RequestPledgePower implements IClientIncomingPacket
|
|||||||
// Clan war, right to dismiss, set functions
|
// Clan war, right to dismiss, set functions
|
||||||
// Auction, manage taxes, attack/defend registration, mercenary management
|
// Auction, manage taxes, attack/defend registration, mercenary management
|
||||||
// => Leaves only CP_CL_VIEW_WAREHOUSE, CP_CH_OPEN_DOOR, CP_CS_OPEN_DOOR?
|
// => Leaves only CP_CL_VIEW_WAREHOUSE, CP_CH_OPEN_DOOR, CP_CS_OPEN_DOOR?
|
||||||
_privs &= ClanPrivilege.CL_VIEW_WAREHOUSE.getBitmask() | ClanPrivilege.CH_OPEN_DOOR.getBitmask() | ClanPrivilege.CS_OPEN_DOOR.getBitmask();
|
_privs &= ClanPrivilege.CL_WAREHOUSE_SEARCH.getBitmask() | ClanPrivilege.CH_ENTRY_EXIT_RIGHTS.getBitmask() | ClanPrivilege.CS_ENTRY_EXIT_RIGHTS.getBitmask();
|
||||||
}
|
}
|
||||||
player.getClan().setRankPrivs(_rank, _privs);
|
player.getClan().setRankPrivs(_rank, _privs);
|
||||||
}
|
}
|
||||||
|
@@ -54,7 +54,7 @@ public class RequestPledgeSetAcademyMaster implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_APPRENTICE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_DISMISS))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_DISMISS_AN_APPRENTICE);
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_DISMISS_AN_APPRENTICE);
|
||||||
return;
|
return;
|
||||||
|
@@ -80,7 +80,7 @@ public class RequestSetPledgeCrest implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_REGISTER_CREST))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_EDIT_CREST))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -63,7 +63,7 @@ public class RequestStartPledgeWar implements IClientIncomingPacket
|
|||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_CLAN_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
|
@@ -68,7 +68,7 @@ public class RequestStopPledgeWar implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check if player who does the request has the correct rights to do it
|
// Check if player who does the request has the correct rights to do it
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_CLAN_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -72,7 +72,7 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket
|
|||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_CLAN_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
|
@@ -103,7 +103,7 @@ public class SendWareHouseWithDrawList implements IClientIncomingPacket
|
|||||||
|
|
||||||
if (Config.ALT_MEMBERS_CAN_WITHDRAW_FROM_CLANWH)
|
if (Config.ALT_MEMBERS_CAN_WITHDRAW_FROM_CLANWH)
|
||||||
{
|
{
|
||||||
if ((warehouse instanceof ClanWarehouse) && !player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if ((warehouse instanceof ClanWarehouse) && !player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -68,7 +68,7 @@ public class Nottingale extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
if (player.getClan() != null)
|
if (player.getClan() != null)
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CL_SUMMON_AIRSHIP) && AirShipManager.getInstance().hasAirShipLicense(player.getClanId()) && !AirShipManager.getInstance().hasAirShip(player.getClanId()))
|
if (player.hasClanPrivilege(ClanPrivilege.CL_USE_FUNCTIONS) && AirShipManager.getInstance().hasAirShipLicense(player.getClanId()) && !AirShipManager.getInstance().hasAirShip(player.getClanId()))
|
||||||
{
|
{
|
||||||
htmltext = event;
|
htmltext = event;
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,9 @@ package ai.areas.Rune.Roiental;
|
|||||||
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
|
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
|
import org.l2jmobius.gameserver.model.clan.ClanPrivilege;
|
||||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
import ai.AbstractNpcAI;
|
import ai.AbstractNpcAI;
|
||||||
|
|
||||||
@@ -57,14 +59,22 @@ public class Roiental extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
htmltext = "Roiental-NoLevel.html";
|
htmltext = "Roiental-NoLevel.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_GB))
|
else if (player.getClan() == null)
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_BELONG_TO_ANY_CLAN);
|
||||||
|
}
|
||||||
|
else if ((player.getClan().getLevel() < CLAN_MIN_LVL_GB))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-03a.html";
|
htmltext = "Roiental-03a.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-AlreadyDone.html";
|
htmltext = "Roiental-AlreadyDone.html";
|
||||||
}
|
}
|
||||||
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-01a.html";
|
htmltext = "Roiental-01a.html";
|
||||||
@@ -76,14 +86,22 @@ public class Roiental extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
htmltext = "Roiental-NoLevel.html";
|
htmltext = "Roiental-NoLevel.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_MR))
|
else if (player.getClan() == null)
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_BELONG_TO_ANY_CLAN);
|
||||||
|
}
|
||||||
|
else if ((player.getClan().getLevel() < CLAN_MIN_LVL_MR))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-03b.html";
|
htmltext = "Roiental-03b.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-AlreadyDone.html";
|
htmltext = "Roiental-AlreadyDone.html";
|
||||||
}
|
}
|
||||||
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-01b.html";
|
htmltext = "Roiental-01b.html";
|
||||||
@@ -95,14 +113,22 @@ public class Roiental extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
htmltext = "Roiental-NoLevel.html";
|
htmltext = "Roiental-NoLevel.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_TA))
|
else if (player.getClan() == null)
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_BELONG_TO_ANY_CLAN);
|
||||||
|
}
|
||||||
|
else if ((player.getClan().getLevel() < CLAN_MIN_LVL_TA))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-03c.html";
|
htmltext = "Roiental-03c.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-AlreadyDone.html";
|
htmltext = "Roiental-AlreadyDone.html";
|
||||||
}
|
}
|
||||||
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-01c.html";
|
htmltext = "Roiental-01c.html";
|
||||||
|
@@ -151,7 +151,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
|
|
||||||
private final String funcConfirmHtml(Player player, Npc npc, Castle castle, int func, int level)
|
private final String funcConfirmHtml(Player player, Npc npc, Castle castle, int func, int level)
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html;
|
final NpcHtmlMessage html;
|
||||||
final String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
|
final String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
|
||||||
@@ -461,7 +461,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "siege_functions":
|
case "siege_functions":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (castle.getSiege().isInProgress())
|
if (castle.getSiege().isInProgress())
|
||||||
{
|
{
|
||||||
@@ -484,7 +484,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_doors":
|
case "manage_doors":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -511,7 +511,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_doors":
|
case "upgrade_doors":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final int type = Integer.parseInt(st.nextToken());
|
final int type = Integer.parseInt(st.nextToken());
|
||||||
final int level = Integer.parseInt(st.nextToken());
|
final int level = Integer.parseInt(st.nextToken());
|
||||||
@@ -528,7 +528,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_doors_confirm":
|
case "upgrade_doors_confirm":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (castle.getSiege().isInProgress())
|
if (castle.getSiege().isInProgress())
|
||||||
{
|
{
|
||||||
@@ -579,7 +579,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_trap":
|
case "manage_trap":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -608,7 +608,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_trap":
|
case "upgrade_trap":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final String trapIndex = st.nextToken();
|
final String trapIndex = st.nextToken();
|
||||||
final int level = Integer.parseInt(st.nextToken());
|
final int level = Integer.parseInt(st.nextToken());
|
||||||
@@ -626,7 +626,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_trap_confirm":
|
case "upgrade_trap_confirm":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (castle.getSiege().isInProgress())
|
if (castle.getSiege().isInProgress())
|
||||||
{
|
{
|
||||||
@@ -688,7 +688,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_vault":
|
case "manage_vault":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault.html");
|
||||||
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
||||||
@@ -702,7 +702,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_vault_deposit":
|
case "manage_vault_deposit":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_deposit.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_deposit.html");
|
||||||
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
||||||
@@ -716,7 +716,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_vault_withdraw":
|
case "manage_vault_withdraw":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_withdraw.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_withdraw.html");
|
||||||
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
||||||
@@ -730,7 +730,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "deposit":
|
case "deposit":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
||||||
if ((amount > 0) && (amount < Inventory.MAX_ADENA))
|
if ((amount > 0) && (amount < Inventory.MAX_ADENA))
|
||||||
@@ -755,7 +755,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "withdraw":
|
case "withdraw":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
||||||
if (amount <= castle.getTreasury())
|
if (amount <= castle.getTreasury())
|
||||||
@@ -832,7 +832,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "doors":
|
case "doors":
|
||||||
{
|
{
|
||||||
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
|
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
htmltext = "chamberlain-21.html";
|
htmltext = "chamberlain-21.html";
|
||||||
}
|
}
|
||||||
@@ -848,7 +848,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "operate_door":
|
case "operate_door":
|
||||||
{
|
{
|
||||||
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
|
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
htmltext = "chamberlain-21.html";
|
htmltext = "chamberlain-21.html";
|
||||||
}
|
}
|
||||||
@@ -869,12 +869,12 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "additional_functions":
|
case "additional_functions":
|
||||||
{
|
{
|
||||||
htmltext = (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS)) ? "castletdecomanage.html" : "chamberlain-21.html";
|
htmltext = (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS)) ? "castletdecomanage.html" : "chamberlain-21.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "recovery":
|
case "recovery":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AR01.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AR01.html");
|
||||||
funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
|
funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
|
||||||
@@ -890,7 +890,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "other":
|
case "other":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AE01.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AE01.html");
|
||||||
funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
|
funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
|
||||||
@@ -935,7 +935,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "set_func":
|
case "set_func":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final int func = Integer.parseInt(st.nextToken());
|
final int func = Integer.parseInt(st.nextToken());
|
||||||
final int level = Integer.parseInt(st.nextToken());
|
final int level = Integer.parseInt(st.nextToken());
|
||||||
@@ -1081,7 +1081,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "list_siege_clans":
|
case "list_siege_clans":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
castle.getSiege().listRegisterClan(player);
|
castle.getSiege().listRegisterClan(player);
|
||||||
}
|
}
|
||||||
|
@@ -340,7 +340,7 @@ public class CastleCourtMagician extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "squadSkill":
|
case "squadSkill":
|
||||||
{
|
{
|
||||||
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
RequestAcquireSkill.showSubUnitSkillList(player);
|
RequestAcquireSkill.showSubUnitSkillList(player);
|
||||||
}
|
}
|
||||||
|
@@ -136,7 +136,7 @@ public class CastleDoorManager extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public String onFirstTalk(Npc npc, Player player)
|
public String onFirstTalk(Npc npc, Player player)
|
||||||
{
|
{
|
||||||
return isOwningClan(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR) ? getHtmlName(npc) + ".html" : getHtmlName(npc) + "-no.html";
|
return isOwningClan(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS) ? getHtmlName(npc) + ".html" : getHtmlName(npc) + "-no.html";
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getHtmlName(Npc npc)
|
private String getHtmlName(Npc npc)
|
||||||
|
@@ -74,7 +74,7 @@ public class ClanHallDoorManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manageDoors":
|
case "manageDoors":
|
||||||
{
|
{
|
||||||
if (isOwningClan(player, npc) && st.hasMoreTokens() && player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
|
if (isOwningClan(player, npc) && st.hasMoreTokens() && player.hasClanPrivilege(ClanPrivilege.CH_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
final boolean open = st.nextToken().equals("1");
|
final boolean open = st.nextToken().equals("1");
|
||||||
clanHall.openCloseDoors(open);
|
clanHall.openCloseDoors(open);
|
||||||
|
@@ -134,7 +134,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manageDoors":
|
case "manageDoors":
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
|
if (player.hasClanPrivilege(ClanPrivilege.CH_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -175,7 +175,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "useFunctions":
|
case "useFunctions":
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CH_OTHER_RIGHTS))
|
if (player.hasClanPrivilege(ClanPrivilege.CH_USE_FUNCTIONS))
|
||||||
{
|
{
|
||||||
if (!st.hasMoreTokens())
|
if (!st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -303,7 +303,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manageFunctions":
|
case "manageFunctions":
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CH_SET_FUNCTIONS))
|
if (player.hasClanPrivilege(ClanPrivilege.CH_SETTTINGS))
|
||||||
{
|
{
|
||||||
if (!st.hasMoreTokens())
|
if (!st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
|
@@ -100,7 +100,7 @@ public class FortressSiegeManager extends AbstractNpcAI
|
|||||||
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
||||||
return html.getHtml();
|
return html.getHtml();
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
htmltext = "FortressSiegeManager-10.html";
|
htmltext = "FortressSiegeManager-10.html";
|
||||||
}
|
}
|
||||||
@@ -169,7 +169,7 @@ public class FortressSiegeManager extends AbstractNpcAI
|
|||||||
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
||||||
return html.getHtml();
|
return html.getHtml();
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
htmltext = "FortressSiegeManager-10.html";
|
htmltext = "FortressSiegeManager-10.html";
|
||||||
}
|
}
|
||||||
|
@@ -254,7 +254,7 @@ public class SupportUnitCaptain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "squadSkill":
|
case "squadSkill":
|
||||||
{
|
{
|
||||||
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
RequestAcquireSkill.showSubUnitSkillList(player);
|
RequestAcquireSkill.showSubUnitSkillList(player);
|
||||||
}
|
}
|
||||||
|
@@ -80,7 +80,7 @@ public class ClanWarehouse implements IBypassHandler
|
|||||||
{
|
{
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_THE_CLAN_WAREHOUSE);
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_THE_CLAN_WAREHOUSE);
|
||||||
return true;
|
return true;
|
||||||
|
@@ -134,7 +134,7 @@ public abstract class AirShipController extends AbstractNpcAI
|
|||||||
player.sendPacket(SystemMessageId.ANOTHER_AIRSHIP_HAS_BEEN_SUMMONED_TO_THE_WHARF_PLEASE_TRY_AGAIN_LATER);
|
player.sendPacket(SystemMessageId.ANOTHER_AIRSHIP_HAS_BEEN_SUMMONED_TO_THE_WHARF_PLEASE_TRY_AGAIN_LATER);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_SUMMON_AIRSHIP))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_USE_FUNCTIONS))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.AIRSHIP_SUMMON_LICENSE_REGISTRATION_CAN_ONLY_BE_DONE_BY_THE_CLAN_LEADER);
|
player.sendPacket(SystemMessageId.AIRSHIP_SUMMON_LICENSE_REGISTRATION_CAN_ONLY_BE_DONE_BY_THE_CLAN_LEADER);
|
||||||
return null;
|
return null;
|
||||||
|
@@ -185,7 +185,7 @@ public class FortManager extends Merchant
|
|||||||
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
|
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
|
||||||
// control
|
// control
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
|
if (player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
if (!val.isEmpty())
|
if (!val.isEmpty())
|
||||||
{
|
{
|
||||||
@@ -230,7 +230,7 @@ public class FortManager extends Merchant
|
|||||||
else if (actualCommand.equalsIgnoreCase("manage_vault"))
|
else if (actualCommand.equalsIgnoreCase("manage_vault"))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if (player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
if (val.equalsIgnoreCase("deposit"))
|
if (val.equalsIgnoreCase("deposit"))
|
||||||
{
|
{
|
||||||
@@ -320,7 +320,7 @@ public class FortManager extends Merchant
|
|||||||
}
|
}
|
||||||
else if (actualCommand.equalsIgnoreCase("manage"))
|
else if (actualCommand.equalsIgnoreCase("manage"))
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (val.equalsIgnoreCase("recovery"))
|
if (val.equalsIgnoreCase("recovery"))
|
||||||
{
|
{
|
||||||
@@ -995,7 +995,7 @@ public class FortManager extends Merchant
|
|||||||
|
|
||||||
private void showVaultWindowWithdraw(Player player)
|
private void showVaultWindowWithdraw(Player player)
|
||||||
{
|
{
|
||||||
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
player.setActiveWarehouse(player.getClan().getWarehouse());
|
player.setActiveWarehouse(player.getClan().getWarehouse());
|
||||||
|
@@ -2040,7 +2040,7 @@ public class Clan implements IIdentifiable, INamable
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_JOIN_CLAN))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_INVITE))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return false;
|
return false;
|
||||||
|
@@ -25,35 +25,35 @@ public enum ClanPrivilege
|
|||||||
{
|
{
|
||||||
/** dummy entry */
|
/** dummy entry */
|
||||||
DUMMY,
|
DUMMY,
|
||||||
/** Privilege to join clan */
|
|
||||||
CL_JOIN_CLAN,
|
/** System Privileges */
|
||||||
/** Privilege to give a title */
|
CL_INVITE,
|
||||||
CL_GIVE_TITLE,
|
CL_MANAGE_TITLES,
|
||||||
/** Privilege to view warehouse content */
|
CL_WAREHOUSE_SEARCH,
|
||||||
CL_VIEW_WAREHOUSE,
|
|
||||||
/** Privilege to manage clan ranks */
|
|
||||||
CL_MANAGE_RANKS,
|
CL_MANAGE_RANKS,
|
||||||
CL_PLEDGE_WAR,
|
CL_CLAN_WAR,
|
||||||
CL_DISMISS,
|
CL_DISMISS,
|
||||||
/** Privilege to register clan crest */
|
CL_EDIT_CREST,
|
||||||
CL_REGISTER_CREST,
|
CL_USE_FUNCTIONS,
|
||||||
CL_APPRENTICE,
|
CL_SETTINGS,
|
||||||
CL_TROOPS_FAME,
|
CL_THRONE_OF_HEROES,
|
||||||
CL_SUMMON_AIRSHIP,
|
|
||||||
/** Privilege to open a door */
|
/** Clan Hall Privileges */
|
||||||
CH_OPEN_DOOR,
|
CH_ENTRY_EXIT_RIGHTS,
|
||||||
CH_OTHER_RIGHTS,
|
CH_USE_FUNCTIONS,
|
||||||
CH_AUCTION,
|
CH_AUCTION,
|
||||||
CH_DISMISS,
|
CH_DISMISS,
|
||||||
CH_SET_FUNCTIONS,
|
CH_SETTTINGS,
|
||||||
CS_OPEN_DOOR,
|
|
||||||
CS_MANOR_ADMIN,
|
/** Castle/Fortress Privileges */
|
||||||
CS_MANAGE_SIEGE,
|
CS_ENTRY_EXIT_RIGHTS,
|
||||||
|
CS_SIEGE_WAR,
|
||||||
CS_USE_FUNCTIONS,
|
CS_USE_FUNCTIONS,
|
||||||
|
CS_SETTINGS,
|
||||||
CS_DISMISS,
|
CS_DISMISS,
|
||||||
CS_TAXES,
|
CS_MANAGE_TAXES,
|
||||||
CS_MERCENARIES,
|
CS_MERCENARIES,
|
||||||
CS_SET_FUNCTIONS;
|
CS_MANOR_ADMIN;
|
||||||
|
|
||||||
public int getBitmask()
|
public int getBitmask()
|
||||||
{
|
{
|
||||||
|
@@ -183,7 +183,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
case SUBPLEDGE:
|
case SUBPLEDGE:
|
||||||
{
|
{
|
||||||
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -113,7 +113,7 @@ public class RequestAcquireSkillInfo implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
case SUBPLEDGE:
|
case SUBPLEDGE:
|
||||||
{
|
{
|
||||||
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -75,7 +75,7 @@ public class RequestExSetPledgeCrestLarge implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_REGISTER_CREST))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_EDIT_CREST))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -55,7 +55,7 @@ public class RequestGiveNickName implements IClientIncomingPacket
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Can the player change/give a title?
|
// Can the player change/give a title?
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_GIVE_TITLE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_MANAGE_TITLES))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -52,7 +52,7 @@ public class RequestJoinSiege implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -65,7 +65,7 @@ public class RequestPledgePower implements IClientIncomingPacket
|
|||||||
// Clan war, right to dismiss, set functions
|
// Clan war, right to dismiss, set functions
|
||||||
// Auction, manage taxes, attack/defend registration, mercenary management
|
// Auction, manage taxes, attack/defend registration, mercenary management
|
||||||
// => Leaves only CP_CL_VIEW_WAREHOUSE, CP_CH_OPEN_DOOR, CP_CS_OPEN_DOOR?
|
// => Leaves only CP_CL_VIEW_WAREHOUSE, CP_CH_OPEN_DOOR, CP_CS_OPEN_DOOR?
|
||||||
_privs &= ClanPrivilege.CL_VIEW_WAREHOUSE.getBitmask() | ClanPrivilege.CH_OPEN_DOOR.getBitmask() | ClanPrivilege.CS_OPEN_DOOR.getBitmask();
|
_privs &= ClanPrivilege.CL_WAREHOUSE_SEARCH.getBitmask() | ClanPrivilege.CH_ENTRY_EXIT_RIGHTS.getBitmask() | ClanPrivilege.CS_ENTRY_EXIT_RIGHTS.getBitmask();
|
||||||
}
|
}
|
||||||
player.getClan().setRankPrivs(_rank, _privs);
|
player.getClan().setRankPrivs(_rank, _privs);
|
||||||
}
|
}
|
||||||
|
@@ -54,7 +54,7 @@ public class RequestPledgeSetAcademyMaster implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_APPRENTICE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_DISMISS))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_DISMISS_AN_APPRENTICE);
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_DISMISS_AN_APPRENTICE);
|
||||||
return;
|
return;
|
||||||
|
@@ -80,7 +80,7 @@ public class RequestSetPledgeCrest implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_REGISTER_CREST))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_EDIT_CREST))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -63,7 +63,7 @@ public class RequestStartPledgeWar implements IClientIncomingPacket
|
|||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_CLAN_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
|
@@ -68,7 +68,7 @@ public class RequestStopPledgeWar implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check if player who does the request has the correct rights to do it
|
// Check if player who does the request has the correct rights to do it
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_CLAN_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -72,7 +72,7 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket
|
|||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_CLAN_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
|
@@ -103,7 +103,7 @@ public class SendWareHouseWithDrawList implements IClientIncomingPacket
|
|||||||
|
|
||||||
if (Config.ALT_MEMBERS_CAN_WITHDRAW_FROM_CLANWH)
|
if (Config.ALT_MEMBERS_CAN_WITHDRAW_FROM_CLANWH)
|
||||||
{
|
{
|
||||||
if ((warehouse instanceof ClanWarehouse) && !player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if ((warehouse instanceof ClanWarehouse) && !player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -68,7 +68,7 @@ public class Nottingale extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
if (player.getClan() != null)
|
if (player.getClan() != null)
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CL_SUMMON_AIRSHIP) && AirShipManager.getInstance().hasAirShipLicense(player.getClanId()) && !AirShipManager.getInstance().hasAirShip(player.getClanId()))
|
if (player.hasClanPrivilege(ClanPrivilege.CL_USE_FUNCTIONS) && AirShipManager.getInstance().hasAirShipLicense(player.getClanId()) && !AirShipManager.getInstance().hasAirShip(player.getClanId()))
|
||||||
{
|
{
|
||||||
htmltext = event;
|
htmltext = event;
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,9 @@ package ai.areas.Rune.Roiental;
|
|||||||
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
|
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
|
import org.l2jmobius.gameserver.model.clan.ClanPrivilege;
|
||||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
import ai.AbstractNpcAI;
|
import ai.AbstractNpcAI;
|
||||||
|
|
||||||
@@ -57,14 +59,22 @@ public class Roiental extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
htmltext = "Roiental-NoLevel.html";
|
htmltext = "Roiental-NoLevel.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_GB))
|
else if (player.getClan() == null)
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_BELONG_TO_ANY_CLAN);
|
||||||
|
}
|
||||||
|
else if ((player.getClan().getLevel() < CLAN_MIN_LVL_GB))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-03a.html";
|
htmltext = "Roiental-03a.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-AlreadyDone.html";
|
htmltext = "Roiental-AlreadyDone.html";
|
||||||
}
|
}
|
||||||
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-01a.html";
|
htmltext = "Roiental-01a.html";
|
||||||
@@ -76,14 +86,22 @@ public class Roiental extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
htmltext = "Roiental-NoLevel.html";
|
htmltext = "Roiental-NoLevel.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_MR))
|
else if (player.getClan() == null)
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_BELONG_TO_ANY_CLAN);
|
||||||
|
}
|
||||||
|
else if ((player.getClan().getLevel() < CLAN_MIN_LVL_MR))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-03b.html";
|
htmltext = "Roiental-03b.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-AlreadyDone.html";
|
htmltext = "Roiental-AlreadyDone.html";
|
||||||
}
|
}
|
||||||
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-01b.html";
|
htmltext = "Roiental-01b.html";
|
||||||
@@ -95,14 +113,22 @@ public class Roiental extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
htmltext = "Roiental-NoLevel.html";
|
htmltext = "Roiental-NoLevel.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_TA))
|
else if (player.getClan() == null)
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_BELONG_TO_ANY_CLAN);
|
||||||
|
}
|
||||||
|
else if ((player.getClan().getLevel() < CLAN_MIN_LVL_TA))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-03c.html";
|
htmltext = "Roiental-03c.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-AlreadyDone.html";
|
htmltext = "Roiental-AlreadyDone.html";
|
||||||
}
|
}
|
||||||
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-01c.html";
|
htmltext = "Roiental-01c.html";
|
||||||
|
@@ -151,7 +151,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
|
|
||||||
private final String funcConfirmHtml(Player player, Npc npc, Castle castle, int func, int level)
|
private final String funcConfirmHtml(Player player, Npc npc, Castle castle, int func, int level)
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html;
|
final NpcHtmlMessage html;
|
||||||
final String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
|
final String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
|
||||||
@@ -461,7 +461,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "siege_functions":
|
case "siege_functions":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (castle.getSiege().isInProgress())
|
if (castle.getSiege().isInProgress())
|
||||||
{
|
{
|
||||||
@@ -484,7 +484,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_doors":
|
case "manage_doors":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -511,7 +511,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_doors":
|
case "upgrade_doors":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final int type = Integer.parseInt(st.nextToken());
|
final int type = Integer.parseInt(st.nextToken());
|
||||||
final int level = Integer.parseInt(st.nextToken());
|
final int level = Integer.parseInt(st.nextToken());
|
||||||
@@ -528,7 +528,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_doors_confirm":
|
case "upgrade_doors_confirm":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (castle.getSiege().isInProgress())
|
if (castle.getSiege().isInProgress())
|
||||||
{
|
{
|
||||||
@@ -579,7 +579,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_trap":
|
case "manage_trap":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -608,7 +608,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_trap":
|
case "upgrade_trap":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final String trapIndex = st.nextToken();
|
final String trapIndex = st.nextToken();
|
||||||
final int level = Integer.parseInt(st.nextToken());
|
final int level = Integer.parseInt(st.nextToken());
|
||||||
@@ -626,7 +626,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_trap_confirm":
|
case "upgrade_trap_confirm":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (castle.getSiege().isInProgress())
|
if (castle.getSiege().isInProgress())
|
||||||
{
|
{
|
||||||
@@ -688,7 +688,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_vault":
|
case "manage_vault":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault.html");
|
||||||
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
||||||
@@ -702,7 +702,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_vault_deposit":
|
case "manage_vault_deposit":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_deposit.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_deposit.html");
|
||||||
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
||||||
@@ -716,7 +716,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_vault_withdraw":
|
case "manage_vault_withdraw":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_withdraw.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_withdraw.html");
|
||||||
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
||||||
@@ -730,7 +730,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "deposit":
|
case "deposit":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
||||||
if ((amount > 0) && (amount < Inventory.MAX_ADENA))
|
if ((amount > 0) && (amount < Inventory.MAX_ADENA))
|
||||||
@@ -755,7 +755,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "withdraw":
|
case "withdraw":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
||||||
if (amount <= castle.getTreasury())
|
if (amount <= castle.getTreasury())
|
||||||
@@ -832,7 +832,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "doors":
|
case "doors":
|
||||||
{
|
{
|
||||||
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
|
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
htmltext = "chamberlain-21.html";
|
htmltext = "chamberlain-21.html";
|
||||||
}
|
}
|
||||||
@@ -848,7 +848,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "operate_door":
|
case "operate_door":
|
||||||
{
|
{
|
||||||
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
|
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
htmltext = "chamberlain-21.html";
|
htmltext = "chamberlain-21.html";
|
||||||
}
|
}
|
||||||
@@ -869,12 +869,12 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "additional_functions":
|
case "additional_functions":
|
||||||
{
|
{
|
||||||
htmltext = (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS)) ? "castletdecomanage.html" : "chamberlain-21.html";
|
htmltext = (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS)) ? "castletdecomanage.html" : "chamberlain-21.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "recovery":
|
case "recovery":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AR01.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AR01.html");
|
||||||
funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
|
funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
|
||||||
@@ -890,7 +890,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "other":
|
case "other":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AE01.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AE01.html");
|
||||||
funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
|
funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
|
||||||
@@ -935,7 +935,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "set_func":
|
case "set_func":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final int func = Integer.parseInt(st.nextToken());
|
final int func = Integer.parseInt(st.nextToken());
|
||||||
final int level = Integer.parseInt(st.nextToken());
|
final int level = Integer.parseInt(st.nextToken());
|
||||||
@@ -1081,7 +1081,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "list_siege_clans":
|
case "list_siege_clans":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
castle.getSiege().listRegisterClan(player);
|
castle.getSiege().listRegisterClan(player);
|
||||||
}
|
}
|
||||||
|
@@ -340,7 +340,7 @@ public class CastleCourtMagician extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "squadSkill":
|
case "squadSkill":
|
||||||
{
|
{
|
||||||
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
RequestAcquireSkill.showSubUnitSkillList(player);
|
RequestAcquireSkill.showSubUnitSkillList(player);
|
||||||
}
|
}
|
||||||
|
@@ -136,7 +136,7 @@ public class CastleDoorManager extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public String onFirstTalk(Npc npc, Player player)
|
public String onFirstTalk(Npc npc, Player player)
|
||||||
{
|
{
|
||||||
return isOwningClan(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR) ? getHtmlName(npc) + ".html" : getHtmlName(npc) + "-no.html";
|
return isOwningClan(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS) ? getHtmlName(npc) + ".html" : getHtmlName(npc) + "-no.html";
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getHtmlName(Npc npc)
|
private String getHtmlName(Npc npc)
|
||||||
|
@@ -74,7 +74,7 @@ public class ClanHallDoorManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manageDoors":
|
case "manageDoors":
|
||||||
{
|
{
|
||||||
if (isOwningClan(player, npc) && st.hasMoreTokens() && player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
|
if (isOwningClan(player, npc) && st.hasMoreTokens() && player.hasClanPrivilege(ClanPrivilege.CH_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
final boolean open = st.nextToken().equals("1");
|
final boolean open = st.nextToken().equals("1");
|
||||||
clanHall.openCloseDoors(open);
|
clanHall.openCloseDoors(open);
|
||||||
|
@@ -134,7 +134,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manageDoors":
|
case "manageDoors":
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
|
if (player.hasClanPrivilege(ClanPrivilege.CH_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -175,7 +175,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "useFunctions":
|
case "useFunctions":
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CH_OTHER_RIGHTS))
|
if (player.hasClanPrivilege(ClanPrivilege.CH_USE_FUNCTIONS))
|
||||||
{
|
{
|
||||||
if (!st.hasMoreTokens())
|
if (!st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -303,7 +303,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manageFunctions":
|
case "manageFunctions":
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CH_SET_FUNCTIONS))
|
if (player.hasClanPrivilege(ClanPrivilege.CH_SETTTINGS))
|
||||||
{
|
{
|
||||||
if (!st.hasMoreTokens())
|
if (!st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
|
@@ -100,7 +100,7 @@ public class FortressSiegeManager extends AbstractNpcAI
|
|||||||
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
||||||
return html.getHtml();
|
return html.getHtml();
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
htmltext = "FortressSiegeManager-10.html";
|
htmltext = "FortressSiegeManager-10.html";
|
||||||
}
|
}
|
||||||
@@ -169,7 +169,7 @@ public class FortressSiegeManager extends AbstractNpcAI
|
|||||||
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
||||||
return html.getHtml();
|
return html.getHtml();
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
htmltext = "FortressSiegeManager-10.html";
|
htmltext = "FortressSiegeManager-10.html";
|
||||||
}
|
}
|
||||||
|
@@ -254,7 +254,7 @@ public class SupportUnitCaptain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "squadSkill":
|
case "squadSkill":
|
||||||
{
|
{
|
||||||
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
RequestAcquireSkill.showSubUnitSkillList(player);
|
RequestAcquireSkill.showSubUnitSkillList(player);
|
||||||
}
|
}
|
||||||
|
@@ -80,7 +80,7 @@ public class ClanWarehouse implements IBypassHandler
|
|||||||
{
|
{
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_THE_CLAN_WAREHOUSE);
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_THE_CLAN_WAREHOUSE);
|
||||||
return true;
|
return true;
|
||||||
|
@@ -134,7 +134,7 @@ public abstract class AirShipController extends AbstractNpcAI
|
|||||||
player.sendPacket(SystemMessageId.ANOTHER_AIRSHIP_HAS_BEEN_SUMMONED_TO_THE_WHARF_PLEASE_TRY_AGAIN_LATER);
|
player.sendPacket(SystemMessageId.ANOTHER_AIRSHIP_HAS_BEEN_SUMMONED_TO_THE_WHARF_PLEASE_TRY_AGAIN_LATER);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_SUMMON_AIRSHIP))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_USE_FUNCTIONS))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.AIRSHIP_SUMMON_LICENSE_REGISTRATION_CAN_ONLY_BE_DONE_BY_THE_CLAN_LEADER);
|
player.sendPacket(SystemMessageId.AIRSHIP_SUMMON_LICENSE_REGISTRATION_CAN_ONLY_BE_DONE_BY_THE_CLAN_LEADER);
|
||||||
return null;
|
return null;
|
||||||
|
@@ -185,7 +185,7 @@ public class FortManager extends Merchant
|
|||||||
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
|
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
|
||||||
// control
|
// control
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
|
if (player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
if (!val.isEmpty())
|
if (!val.isEmpty())
|
||||||
{
|
{
|
||||||
@@ -230,7 +230,7 @@ public class FortManager extends Merchant
|
|||||||
else if (actualCommand.equalsIgnoreCase("manage_vault"))
|
else if (actualCommand.equalsIgnoreCase("manage_vault"))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if (player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
if (val.equalsIgnoreCase("deposit"))
|
if (val.equalsIgnoreCase("deposit"))
|
||||||
{
|
{
|
||||||
@@ -320,7 +320,7 @@ public class FortManager extends Merchant
|
|||||||
}
|
}
|
||||||
else if (actualCommand.equalsIgnoreCase("manage"))
|
else if (actualCommand.equalsIgnoreCase("manage"))
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (val.equalsIgnoreCase("recovery"))
|
if (val.equalsIgnoreCase("recovery"))
|
||||||
{
|
{
|
||||||
@@ -995,7 +995,7 @@ public class FortManager extends Merchant
|
|||||||
|
|
||||||
private void showVaultWindowWithdraw(Player player)
|
private void showVaultWindowWithdraw(Player player)
|
||||||
{
|
{
|
||||||
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
player.setActiveWarehouse(player.getClan().getWarehouse());
|
player.setActiveWarehouse(player.getClan().getWarehouse());
|
||||||
|
@@ -2040,7 +2040,7 @@ public class Clan implements IIdentifiable, INamable
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_JOIN_CLAN))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_INVITE))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return false;
|
return false;
|
||||||
|
@@ -25,35 +25,35 @@ public enum ClanPrivilege
|
|||||||
{
|
{
|
||||||
/** dummy entry */
|
/** dummy entry */
|
||||||
DUMMY,
|
DUMMY,
|
||||||
/** Privilege to join clan */
|
|
||||||
CL_JOIN_CLAN,
|
/** System Privileges */
|
||||||
/** Privilege to give a title */
|
CL_INVITE,
|
||||||
CL_GIVE_TITLE,
|
CL_MANAGE_TITLES,
|
||||||
/** Privilege to view warehouse content */
|
CL_WAREHOUSE_SEARCH,
|
||||||
CL_VIEW_WAREHOUSE,
|
|
||||||
/** Privilege to manage clan ranks */
|
|
||||||
CL_MANAGE_RANKS,
|
CL_MANAGE_RANKS,
|
||||||
CL_PLEDGE_WAR,
|
CL_CLAN_WAR,
|
||||||
CL_DISMISS,
|
CL_DISMISS,
|
||||||
/** Privilege to register clan crest */
|
CL_EDIT_CREST,
|
||||||
CL_REGISTER_CREST,
|
CL_USE_FUNCTIONS,
|
||||||
CL_APPRENTICE,
|
CL_SETTINGS,
|
||||||
CL_TROOPS_FAME,
|
CL_THRONE_OF_HEROES,
|
||||||
CL_SUMMON_AIRSHIP,
|
|
||||||
/** Privilege to open a door */
|
/** Clan Hall Privileges */
|
||||||
CH_OPEN_DOOR,
|
CH_ENTRY_EXIT_RIGHTS,
|
||||||
CH_OTHER_RIGHTS,
|
CH_USE_FUNCTIONS,
|
||||||
CH_AUCTION,
|
CH_AUCTION,
|
||||||
CH_DISMISS,
|
CH_DISMISS,
|
||||||
CH_SET_FUNCTIONS,
|
CH_SETTTINGS,
|
||||||
CS_OPEN_DOOR,
|
|
||||||
CS_MANOR_ADMIN,
|
/** Castle/Fortress Privileges */
|
||||||
CS_MANAGE_SIEGE,
|
CS_ENTRY_EXIT_RIGHTS,
|
||||||
|
CS_SIEGE_WAR,
|
||||||
CS_USE_FUNCTIONS,
|
CS_USE_FUNCTIONS,
|
||||||
|
CS_SETTINGS,
|
||||||
CS_DISMISS,
|
CS_DISMISS,
|
||||||
CS_TAXES,
|
CS_MANAGE_TAXES,
|
||||||
CS_MERCENARIES,
|
CS_MERCENARIES,
|
||||||
CS_SET_FUNCTIONS;
|
CS_MANOR_ADMIN;
|
||||||
|
|
||||||
public int getBitmask()
|
public int getBitmask()
|
||||||
{
|
{
|
||||||
|
@@ -183,7 +183,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
case SUBPLEDGE:
|
case SUBPLEDGE:
|
||||||
{
|
{
|
||||||
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -113,7 +113,7 @@ public class RequestAcquireSkillInfo implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
case SUBPLEDGE:
|
case SUBPLEDGE:
|
||||||
{
|
{
|
||||||
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -75,7 +75,7 @@ public class RequestExSetPledgeCrestLarge implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_REGISTER_CREST))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_EDIT_CREST))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -55,7 +55,7 @@ public class RequestGiveNickName implements IClientIncomingPacket
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Can the player change/give a title?
|
// Can the player change/give a title?
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_GIVE_TITLE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_MANAGE_TITLES))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -52,7 +52,7 @@ public class RequestJoinSiege implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -65,7 +65,7 @@ public class RequestPledgePower implements IClientIncomingPacket
|
|||||||
// Clan war, right to dismiss, set functions
|
// Clan war, right to dismiss, set functions
|
||||||
// Auction, manage taxes, attack/defend registration, mercenary management
|
// Auction, manage taxes, attack/defend registration, mercenary management
|
||||||
// => Leaves only CP_CL_VIEW_WAREHOUSE, CP_CH_OPEN_DOOR, CP_CS_OPEN_DOOR?
|
// => Leaves only CP_CL_VIEW_WAREHOUSE, CP_CH_OPEN_DOOR, CP_CS_OPEN_DOOR?
|
||||||
_privs &= ClanPrivilege.CL_VIEW_WAREHOUSE.getBitmask() | ClanPrivilege.CH_OPEN_DOOR.getBitmask() | ClanPrivilege.CS_OPEN_DOOR.getBitmask();
|
_privs &= ClanPrivilege.CL_WAREHOUSE_SEARCH.getBitmask() | ClanPrivilege.CH_ENTRY_EXIT_RIGHTS.getBitmask() | ClanPrivilege.CS_ENTRY_EXIT_RIGHTS.getBitmask();
|
||||||
}
|
}
|
||||||
player.getClan().setRankPrivs(_rank, _privs);
|
player.getClan().setRankPrivs(_rank, _privs);
|
||||||
}
|
}
|
||||||
|
@@ -54,7 +54,7 @@ public class RequestPledgeSetAcademyMaster implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_APPRENTICE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_DISMISS))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_THE_RIGHT_TO_DISMISS_MENTEES);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_THE_RIGHT_TO_DISMISS_MENTEES);
|
||||||
return;
|
return;
|
||||||
|
@@ -80,7 +80,7 @@ public class RequestSetPledgeCrest implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_REGISTER_CREST))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_EDIT_CREST))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -63,7 +63,7 @@ public class RequestStartPledgeWar implements IClientIncomingPacket
|
|||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_CLAN_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
|
@@ -69,7 +69,7 @@ public class RequestStopPledgeWar implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check if player who does the request has the correct rights to do it
|
// Check if player who does the request has the correct rights to do it
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_CLAN_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -72,7 +72,7 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket
|
|||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_CLAN_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
|
@@ -103,7 +103,7 @@ public class SendWareHouseWithDrawList implements IClientIncomingPacket
|
|||||||
|
|
||||||
if (Config.ALT_MEMBERS_CAN_WITHDRAW_FROM_CLANWH)
|
if (Config.ALT_MEMBERS_CAN_WITHDRAW_FROM_CLANWH)
|
||||||
{
|
{
|
||||||
if ((warehouse instanceof ClanWarehouse) && !player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if ((warehouse instanceof ClanWarehouse) && !player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -68,7 +68,7 @@ public class Nottingale extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
if (player.getClan() != null)
|
if (player.getClan() != null)
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CL_SUMMON_AIRSHIP) && AirShipManager.getInstance().hasAirShipLicense(player.getClanId()) && !AirShipManager.getInstance().hasAirShip(player.getClanId()))
|
if (player.hasClanPrivilege(ClanPrivilege.CL_USE_FUNCTIONS) && AirShipManager.getInstance().hasAirShipLicense(player.getClanId()) && !AirShipManager.getInstance().hasAirShip(player.getClanId()))
|
||||||
{
|
{
|
||||||
htmltext = event;
|
htmltext = event;
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,9 @@ package ai.areas.Rune.Roiental;
|
|||||||
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
|
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
|
import org.l2jmobius.gameserver.model.clan.ClanPrivilege;
|
||||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
import ai.AbstractNpcAI;
|
import ai.AbstractNpcAI;
|
||||||
|
|
||||||
@@ -57,14 +59,22 @@ public class Roiental extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
htmltext = "Roiental-NoLevel.html";
|
htmltext = "Roiental-NoLevel.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_GB))
|
else if (player.getClan() == null)
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_BELONG_TO_ANY_CLAN);
|
||||||
|
}
|
||||||
|
else if ((player.getClan().getLevel() < CLAN_MIN_LVL_GB))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-03a.html";
|
htmltext = "Roiental-03a.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-AlreadyDone.html";
|
htmltext = "Roiental-AlreadyDone.html";
|
||||||
}
|
}
|
||||||
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-01a.html";
|
htmltext = "Roiental-01a.html";
|
||||||
@@ -76,14 +86,22 @@ public class Roiental extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
htmltext = "Roiental-NoLevel.html";
|
htmltext = "Roiental-NoLevel.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_MR))
|
else if (player.getClan() == null)
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_BELONG_TO_ANY_CLAN);
|
||||||
|
}
|
||||||
|
else if ((player.getClan().getLevel() < CLAN_MIN_LVL_MR))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-03b.html";
|
htmltext = "Roiental-03b.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-AlreadyDone.html";
|
htmltext = "Roiental-AlreadyDone.html";
|
||||||
}
|
}
|
||||||
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-01b.html";
|
htmltext = "Roiental-01b.html";
|
||||||
@@ -95,14 +113,22 @@ public class Roiental extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
htmltext = "Roiental-NoLevel.html";
|
htmltext = "Roiental-NoLevel.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_TA))
|
else if (player.getClan() == null)
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_BELONG_TO_ANY_CLAN);
|
||||||
|
}
|
||||||
|
else if ((player.getClan().getLevel() < CLAN_MIN_LVL_TA))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-03c.html";
|
htmltext = "Roiental-03c.html";
|
||||||
}
|
}
|
||||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-AlreadyDone.html";
|
htmltext = "Roiental-AlreadyDone.html";
|
||||||
}
|
}
|
||||||
|
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
|
||||||
|
{
|
||||||
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmltext = "Roiental-01c.html";
|
htmltext = "Roiental-01c.html";
|
||||||
|
@@ -151,7 +151,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
|
|
||||||
private final String funcConfirmHtml(Player player, Npc npc, Castle castle, int func, int level)
|
private final String funcConfirmHtml(Player player, Npc npc, Castle castle, int func, int level)
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html;
|
final NpcHtmlMessage html;
|
||||||
final String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
|
final String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
|
||||||
@@ -461,7 +461,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "siege_functions":
|
case "siege_functions":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (castle.getSiege().isInProgress())
|
if (castle.getSiege().isInProgress())
|
||||||
{
|
{
|
||||||
@@ -484,7 +484,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_doors":
|
case "manage_doors":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -511,7 +511,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_doors":
|
case "upgrade_doors":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final int type = Integer.parseInt(st.nextToken());
|
final int type = Integer.parseInt(st.nextToken());
|
||||||
final int level = Integer.parseInt(st.nextToken());
|
final int level = Integer.parseInt(st.nextToken());
|
||||||
@@ -528,7 +528,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_doors_confirm":
|
case "upgrade_doors_confirm":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (castle.getSiege().isInProgress())
|
if (castle.getSiege().isInProgress())
|
||||||
{
|
{
|
||||||
@@ -579,7 +579,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_trap":
|
case "manage_trap":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -608,7 +608,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_trap":
|
case "upgrade_trap":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final String trapIndex = st.nextToken();
|
final String trapIndex = st.nextToken();
|
||||||
final int level = Integer.parseInt(st.nextToken());
|
final int level = Integer.parseInt(st.nextToken());
|
||||||
@@ -626,7 +626,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "upgrade_trap_confirm":
|
case "upgrade_trap_confirm":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (castle.getSiege().isInProgress())
|
if (castle.getSiege().isInProgress())
|
||||||
{
|
{
|
||||||
@@ -688,7 +688,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_vault":
|
case "manage_vault":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault.html");
|
||||||
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
||||||
@@ -702,7 +702,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_vault_deposit":
|
case "manage_vault_deposit":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_deposit.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_deposit.html");
|
||||||
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
||||||
@@ -716,7 +716,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manage_vault_withdraw":
|
case "manage_vault_withdraw":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_withdraw.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault_withdraw.html");
|
||||||
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
|
||||||
@@ -730,7 +730,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "deposit":
|
case "deposit":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
||||||
if ((amount > 0) && (amount < Inventory.MAX_ADENA))
|
if ((amount > 0) && (amount < Inventory.MAX_ADENA))
|
||||||
@@ -755,7 +755,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "withdraw":
|
case "withdraw":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_TAXES))
|
||||||
{
|
{
|
||||||
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
|
||||||
if (amount <= castle.getTreasury())
|
if (amount <= castle.getTreasury())
|
||||||
@@ -832,7 +832,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "doors":
|
case "doors":
|
||||||
{
|
{
|
||||||
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
|
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
htmltext = "chamberlain-21.html";
|
htmltext = "chamberlain-21.html";
|
||||||
}
|
}
|
||||||
@@ -848,7 +848,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "operate_door":
|
case "operate_door":
|
||||||
{
|
{
|
||||||
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
|
if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
htmltext = "chamberlain-21.html";
|
htmltext = "chamberlain-21.html";
|
||||||
}
|
}
|
||||||
@@ -869,12 +869,12 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "additional_functions":
|
case "additional_functions":
|
||||||
{
|
{
|
||||||
htmltext = (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS)) ? "castletdecomanage.html" : "chamberlain-21.html";
|
htmltext = (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS)) ? "castletdecomanage.html" : "chamberlain-21.html";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "recovery":
|
case "recovery":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AR01.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AR01.html");
|
||||||
funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
|
funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
|
||||||
@@ -890,7 +890,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "other":
|
case "other":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AE01.html");
|
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AE01.html");
|
||||||
funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
|
funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
|
||||||
@@ -935,7 +935,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "set_func":
|
case "set_func":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
final int func = Integer.parseInt(st.nextToken());
|
final int func = Integer.parseInt(st.nextToken());
|
||||||
final int level = Integer.parseInt(st.nextToken());
|
final int level = Integer.parseInt(st.nextToken());
|
||||||
@@ -1081,7 +1081,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "list_siege_clans":
|
case "list_siege_clans":
|
||||||
{
|
{
|
||||||
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
castle.getSiege().listRegisterClan(player);
|
castle.getSiege().listRegisterClan(player);
|
||||||
}
|
}
|
||||||
|
@@ -340,7 +340,7 @@ public class CastleCourtMagician extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "squadSkill":
|
case "squadSkill":
|
||||||
{
|
{
|
||||||
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
RequestAcquireSkill.showSubUnitSkillList(player);
|
RequestAcquireSkill.showSubUnitSkillList(player);
|
||||||
}
|
}
|
||||||
|
@@ -136,7 +136,7 @@ public class CastleDoorManager extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public String onFirstTalk(Npc npc, Player player)
|
public String onFirstTalk(Npc npc, Player player)
|
||||||
{
|
{
|
||||||
return isOwningClan(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR) ? getHtmlName(npc) + ".html" : getHtmlName(npc) + "-no.html";
|
return isOwningClan(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS) ? getHtmlName(npc) + ".html" : getHtmlName(npc) + "-no.html";
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getHtmlName(Npc npc)
|
private String getHtmlName(Npc npc)
|
||||||
|
@@ -74,7 +74,7 @@ public class ClanHallDoorManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manageDoors":
|
case "manageDoors":
|
||||||
{
|
{
|
||||||
if (isOwningClan(player, npc) && st.hasMoreTokens() && player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
|
if (isOwningClan(player, npc) && st.hasMoreTokens() && player.hasClanPrivilege(ClanPrivilege.CH_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
final boolean open = st.nextToken().equals("1");
|
final boolean open = st.nextToken().equals("1");
|
||||||
clanHall.openCloseDoors(open);
|
clanHall.openCloseDoors(open);
|
||||||
|
@@ -134,7 +134,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manageDoors":
|
case "manageDoors":
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
|
if (player.hasClanPrivilege(ClanPrivilege.CH_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -175,7 +175,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "useFunctions":
|
case "useFunctions":
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CH_OTHER_RIGHTS))
|
if (player.hasClanPrivilege(ClanPrivilege.CH_USE_FUNCTIONS))
|
||||||
{
|
{
|
||||||
if (!st.hasMoreTokens())
|
if (!st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
@@ -303,7 +303,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "manageFunctions":
|
case "manageFunctions":
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CH_SET_FUNCTIONS))
|
if (player.hasClanPrivilege(ClanPrivilege.CH_SETTTINGS))
|
||||||
{
|
{
|
||||||
if (!st.hasMoreTokens())
|
if (!st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
|
@@ -100,7 +100,7 @@ public class FortressSiegeManager extends AbstractNpcAI
|
|||||||
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
||||||
return html.getHtml();
|
return html.getHtml();
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
htmltext = "FortressSiegeManager-10.html";
|
htmltext = "FortressSiegeManager-10.html";
|
||||||
}
|
}
|
||||||
@@ -169,7 +169,7 @@ public class FortressSiegeManager extends AbstractNpcAI
|
|||||||
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
html.replace("%clanName%", fortress.getOwnerClan().getName());
|
||||||
return html.getHtml();
|
return html.getHtml();
|
||||||
}
|
}
|
||||||
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
htmltext = "FortressSiegeManager-10.html";
|
htmltext = "FortressSiegeManager-10.html";
|
||||||
}
|
}
|
||||||
|
@@ -254,7 +254,7 @@ public class SupportUnitCaptain extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "squadSkill":
|
case "squadSkill":
|
||||||
{
|
{
|
||||||
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
RequestAcquireSkill.showSubUnitSkillList(player);
|
RequestAcquireSkill.showSubUnitSkillList(player);
|
||||||
}
|
}
|
||||||
|
@@ -80,7 +80,7 @@ public class ClanWarehouse implements IBypassHandler
|
|||||||
{
|
{
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_THE_CLAN_WAREHOUSE);
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_THE_CLAN_WAREHOUSE);
|
||||||
return true;
|
return true;
|
||||||
|
@@ -134,7 +134,7 @@ public abstract class AirShipController extends AbstractNpcAI
|
|||||||
player.sendPacket(SystemMessageId.ANOTHER_AIRSHIP_HAS_BEEN_SUMMONED_TO_THE_WHARF_PLEASE_TRY_AGAIN_LATER);
|
player.sendPacket(SystemMessageId.ANOTHER_AIRSHIP_HAS_BEEN_SUMMONED_TO_THE_WHARF_PLEASE_TRY_AGAIN_LATER);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_SUMMON_AIRSHIP))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_USE_FUNCTIONS))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.AIRSHIP_SUMMON_LICENSE_REGISTRATION_CAN_ONLY_BE_DONE_BY_THE_CLAN_LEADER);
|
player.sendPacket(SystemMessageId.AIRSHIP_SUMMON_LICENSE_REGISTRATION_CAN_ONLY_BE_DONE_BY_THE_CLAN_LEADER);
|
||||||
return null;
|
return null;
|
||||||
|
@@ -185,7 +185,7 @@ public class FortManager extends Merchant
|
|||||||
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
|
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
|
||||||
// control
|
// control
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
|
if (player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
|
||||||
{
|
{
|
||||||
if (!val.isEmpty())
|
if (!val.isEmpty())
|
||||||
{
|
{
|
||||||
@@ -230,7 +230,7 @@ public class FortManager extends Merchant
|
|||||||
else if (actualCommand.equalsIgnoreCase("manage_vault"))
|
else if (actualCommand.equalsIgnoreCase("manage_vault"))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if (player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
if (val.equalsIgnoreCase("deposit"))
|
if (val.equalsIgnoreCase("deposit"))
|
||||||
{
|
{
|
||||||
@@ -320,7 +320,7 @@ public class FortManager extends Merchant
|
|||||||
}
|
}
|
||||||
else if (actualCommand.equalsIgnoreCase("manage"))
|
else if (actualCommand.equalsIgnoreCase("manage"))
|
||||||
{
|
{
|
||||||
if (player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
|
if (player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
|
||||||
{
|
{
|
||||||
if (val.equalsIgnoreCase("recovery"))
|
if (val.equalsIgnoreCase("recovery"))
|
||||||
{
|
{
|
||||||
@@ -995,7 +995,7 @@ public class FortManager extends Merchant
|
|||||||
|
|
||||||
private void showVaultWindowWithdraw(Player player)
|
private void showVaultWindowWithdraw(Player player)
|
||||||
{
|
{
|
||||||
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
|
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
|
||||||
{
|
{
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
player.setActiveWarehouse(player.getClan().getWarehouse());
|
player.setActiveWarehouse(player.getClan().getWarehouse());
|
||||||
|
@@ -2040,7 +2040,7 @@ public class Clan implements IIdentifiable, INamable
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_JOIN_CLAN))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_INVITE))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return false;
|
return false;
|
||||||
|
@@ -25,35 +25,35 @@ public enum ClanPrivilege
|
|||||||
{
|
{
|
||||||
/** dummy entry */
|
/** dummy entry */
|
||||||
DUMMY,
|
DUMMY,
|
||||||
/** Privilege to join clan */
|
|
||||||
CL_JOIN_CLAN,
|
/** System Privileges */
|
||||||
/** Privilege to give a title */
|
CL_INVITE,
|
||||||
CL_GIVE_TITLE,
|
CL_MANAGE_TITLES,
|
||||||
/** Privilege to view warehouse content */
|
CL_WAREHOUSE_SEARCH,
|
||||||
CL_VIEW_WAREHOUSE,
|
|
||||||
/** Privilege to manage clan ranks */
|
|
||||||
CL_MANAGE_RANKS,
|
CL_MANAGE_RANKS,
|
||||||
CL_PLEDGE_WAR,
|
CL_CLAN_WAR,
|
||||||
CL_DISMISS,
|
CL_DISMISS,
|
||||||
/** Privilege to register clan crest */
|
CL_EDIT_CREST,
|
||||||
CL_REGISTER_CREST,
|
CL_USE_FUNCTIONS,
|
||||||
CL_APPRENTICE,
|
CL_SETTINGS,
|
||||||
CL_TROOPS_FAME,
|
CL_THRONE_OF_HEROES,
|
||||||
CL_SUMMON_AIRSHIP,
|
|
||||||
/** Privilege to open a door */
|
/** Clan Hall Privileges */
|
||||||
CH_OPEN_DOOR,
|
CH_ENTRY_EXIT_RIGHTS,
|
||||||
CH_OTHER_RIGHTS,
|
CH_USE_FUNCTIONS,
|
||||||
CH_AUCTION,
|
CH_AUCTION,
|
||||||
CH_DISMISS,
|
CH_DISMISS,
|
||||||
CH_SET_FUNCTIONS,
|
CH_SETTTINGS,
|
||||||
CS_OPEN_DOOR,
|
|
||||||
CS_MANOR_ADMIN,
|
/** Castle/Fortress Privileges */
|
||||||
CS_MANAGE_SIEGE,
|
CS_ENTRY_EXIT_RIGHTS,
|
||||||
|
CS_SIEGE_WAR,
|
||||||
CS_USE_FUNCTIONS,
|
CS_USE_FUNCTIONS,
|
||||||
|
CS_SETTINGS,
|
||||||
CS_DISMISS,
|
CS_DISMISS,
|
||||||
CS_TAXES,
|
CS_MANAGE_TAXES,
|
||||||
CS_MERCENARIES,
|
CS_MERCENARIES,
|
||||||
CS_SET_FUNCTIONS;
|
CS_MANOR_ADMIN;
|
||||||
|
|
||||||
public int getBitmask()
|
public int getBitmask()
|
||||||
{
|
{
|
||||||
|
@@ -183,7 +183,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
case SUBPLEDGE:
|
case SUBPLEDGE:
|
||||||
{
|
{
|
||||||
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -113,7 +113,7 @@ public class RequestAcquireSkillInfo implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
case SUBPLEDGE:
|
case SUBPLEDGE:
|
||||||
{
|
{
|
||||||
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
|
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -75,7 +75,7 @@ public class RequestExSetPledgeCrestLarge implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_REGISTER_CREST))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_EDIT_CREST))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -55,7 +55,7 @@ public class RequestGiveNickName implements IClientIncomingPacket
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Can the player change/give a title?
|
// Can the player change/give a title?
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_GIVE_TITLE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_MANAGE_TITLES))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -52,7 +52,7 @@ public class RequestJoinSiege implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
return;
|
return;
|
||||||
|
@@ -65,7 +65,7 @@ public class RequestPledgePower implements IClientIncomingPacket
|
|||||||
// Clan war, right to dismiss, set functions
|
// Clan war, right to dismiss, set functions
|
||||||
// Auction, manage taxes, attack/defend registration, mercenary management
|
// Auction, manage taxes, attack/defend registration, mercenary management
|
||||||
// => Leaves only CP_CL_VIEW_WAREHOUSE, CP_CH_OPEN_DOOR, CP_CS_OPEN_DOOR?
|
// => Leaves only CP_CL_VIEW_WAREHOUSE, CP_CH_OPEN_DOOR, CP_CS_OPEN_DOOR?
|
||||||
_privs &= ClanPrivilege.CL_VIEW_WAREHOUSE.getBitmask() | ClanPrivilege.CH_OPEN_DOOR.getBitmask() | ClanPrivilege.CS_OPEN_DOOR.getBitmask();
|
_privs &= ClanPrivilege.CL_WAREHOUSE_SEARCH.getBitmask() | ClanPrivilege.CH_ENTRY_EXIT_RIGHTS.getBitmask() | ClanPrivilege.CS_ENTRY_EXIT_RIGHTS.getBitmask();
|
||||||
}
|
}
|
||||||
player.getClan().setRankPrivs(_rank, _privs);
|
player.getClan().setRankPrivs(_rank, _privs);
|
||||||
}
|
}
|
||||||
|
@@ -54,7 +54,7 @@ public class RequestPledgeSetAcademyMaster implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_APPRENTICE))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_DISMISS))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_THE_RIGHT_TO_DISMISS_MENTEES);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_THE_RIGHT_TO_DISMISS_MENTEES);
|
||||||
return;
|
return;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user