Updated clan privileges to match latest client.

Contributed by CostyKiller.
This commit is contained in:
MobiusDevelopment
2022-05-11 10:06:51 +00:00
parent ea80c84027
commit 8d30fcb7d0
105 changed files with 413 additions and 309 deletions

View File

@@ -68,7 +68,7 @@ public class Nottingale extends AbstractNpcAI
{
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;
}

View File

@@ -19,7 +19,9 @@ package ai.areas.Rune.Roiental;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.actor.Npc;
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.network.SystemMessageId;
import ai.AbstractNpcAI;
@@ -57,14 +59,22 @@ public class Roiental extends AbstractNpcAI
{
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";
}
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
{
htmltext = "Roiental-AlreadyDone.html";
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
}
else
{
htmltext = "Roiental-01a.html";
@@ -76,14 +86,22 @@ public class Roiental extends AbstractNpcAI
{
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";
}
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
{
htmltext = "Roiental-AlreadyDone.html";
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
}
else
{
htmltext = "Roiental-01b.html";
@@ -95,14 +113,22 @@ public class Roiental extends AbstractNpcAI
{
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";
}
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
{
htmltext = "Roiental-AlreadyDone.html";
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
}
else
{
htmltext = "Roiental-01c.html";

View File

@@ -151,7 +151,7 @@ public class CastleChamberlain extends AbstractNpcAI
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 String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
@@ -461,7 +461,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -484,7 +484,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -511,7 +511,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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 level = Integer.parseInt(st.nextToken());
@@ -528,7 +528,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -579,7 +579,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -608,7 +608,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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 int level = Integer.parseInt(st.nextToken());
@@ -626,7 +626,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -688,7 +688,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -702,7 +702,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -716,7 +716,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -730,7 +730,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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;
if ((amount > 0) && (amount < Inventory.MAX_ADENA))
@@ -755,7 +755,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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;
if (amount <= castle.getTreasury())
@@ -832,7 +832,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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";
}
@@ -848,7 +848,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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";
}
@@ -869,12 +869,12 @@ public class CastleChamberlain extends AbstractNpcAI
}
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;
}
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");
funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
@@ -890,7 +890,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
@@ -935,7 +935,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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 level = Integer.parseInt(st.nextToken());
@@ -1081,7 +1081,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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);
}

View File

@@ -340,7 +340,7 @@ public class CastleCourtMagician extends AbstractNpcAI
}
case "squadSkill":
{
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
RequestAcquireSkill.showSubUnitSkillList(player);
}

View File

@@ -136,7 +136,7 @@ public class CastleDoorManager extends AbstractNpcAI
@Override
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)

View File

@@ -74,7 +74,7 @@ public class ClanHallDoorManager extends AbstractNpcAI
}
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");
clanHall.openCloseDoors(open);

View File

@@ -134,7 +134,7 @@ public class ClanHallManager extends AbstractNpcAI
}
case "manageDoors":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
if (player.hasClanPrivilege(ClanPrivilege.CH_ENTRY_EXIT_RIGHTS))
{
if (st.hasMoreTokens())
{
@@ -175,7 +175,7 @@ public class ClanHallManager extends AbstractNpcAI
}
case "useFunctions":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_OTHER_RIGHTS))
if (player.hasClanPrivilege(ClanPrivilege.CH_USE_FUNCTIONS))
{
if (!st.hasMoreTokens())
{
@@ -303,7 +303,7 @@ public class ClanHallManager extends AbstractNpcAI
}
case "manageFunctions":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_SET_FUNCTIONS))
if (player.hasClanPrivilege(ClanPrivilege.CH_SETTTINGS))
{
if (!st.hasMoreTokens())
{

View File

@@ -111,7 +111,7 @@ public class ClanTrader extends AbstractNpcAI
String htmltext = null;
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
{

View File

@@ -100,7 +100,7 @@ public class FortressSiegeManager extends AbstractNpcAI
html.replace("%clanName%", fortress.getOwnerClan().getName());
return html.getHtml();
}
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
{
htmltext = "FortressSiegeManager-10.html";
}
@@ -169,7 +169,7 @@ public class FortressSiegeManager extends AbstractNpcAI
html.replace("%clanName%", fortress.getOwnerClan().getName());
return html.getHtml();
}
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
{
htmltext = "FortressSiegeManager-10.html";
}

View File

@@ -254,7 +254,7 @@ public class SupportUnitCaptain extends AbstractNpcAI
}
case "squadSkill":
{
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
RequestAcquireSkill.showSubUnitSkillList(player);
}

View File

@@ -80,7 +80,7 @@ public class ClanWarehouse implements IBypassHandler
{
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);
return true;

View File

@@ -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);
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);
return null;

View File

@@ -185,7 +185,7 @@ public class FortManager extends Merchant
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
// control
{
if (player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
if (player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
{
if (!val.isEmpty())
{
@@ -230,7 +230,7 @@ public class FortManager extends Merchant
else if (actualCommand.equalsIgnoreCase("manage_vault"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
if (player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
{
if (val.equalsIgnoreCase("deposit"))
{
@@ -320,7 +320,7 @@ public class FortManager extends Merchant
}
else if (actualCommand.equalsIgnoreCase("manage"))
{
if (player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
if (player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
{
if (val.equalsIgnoreCase("recovery"))
{
@@ -995,7 +995,7 @@ public class FortManager extends Merchant
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.setActiveWarehouse(player.getClan().getWarehouse());

View File

@@ -2040,7 +2040,7 @@ public class Clan implements IIdentifiable, INamable
{
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);
return false;

View File

@@ -25,35 +25,35 @@ public enum ClanPrivilege
{
/** dummy entry */
DUMMY,
/** Privilege to join clan */
CL_JOIN_CLAN,
/** Privilege to give a title */
CL_GIVE_TITLE,
/** Privilege to view warehouse content */
CL_VIEW_WAREHOUSE,
/** Privilege to manage clan ranks */
/** System Privileges */
CL_INVITE,
CL_MANAGE_TITLES,
CL_WAREHOUSE_SEARCH,
CL_MANAGE_RANKS,
CL_PLEDGE_WAR,
CL_CLAN_WAR,
CL_DISMISS,
/** Privilege to register clan crest */
CL_REGISTER_CREST,
CL_APPRENTICE,
CL_TROOPS_FAME,
CL_SUMMON_AIRSHIP,
/** Privilege to open a door */
CH_OPEN_DOOR,
CH_OTHER_RIGHTS,
CL_EDIT_CREST,
CL_USE_FUNCTIONS,
CL_SETTINGS,
CL_THRONE_OF_HEROES,
/** Clan Hall Privileges */
CH_ENTRY_EXIT_RIGHTS,
CH_USE_FUNCTIONS,
CH_AUCTION,
CH_DISMISS,
CH_SET_FUNCTIONS,
CS_OPEN_DOOR,
CS_MANOR_ADMIN,
CS_MANAGE_SIEGE,
CH_SETTTINGS,
/** Castle/Fortress Privileges */
CS_ENTRY_EXIT_RIGHTS,
CS_SIEGE_WAR,
CS_USE_FUNCTIONS,
CS_SETTINGS,
CS_DISMISS,
CS_TAXES,
CS_MANAGE_TAXES,
CS_MERCENARIES,
CS_SET_FUNCTIONS;
CS_MANOR_ADMIN;
public int getBitmask()
{

View File

@@ -183,7 +183,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
}
case SUBPLEDGE:
{
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
return;
}

View File

@@ -113,7 +113,7 @@ public class RequestAcquireSkillInfo implements IClientIncomingPacket
}
case SUBPLEDGE:
{
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
return;
}

View File

@@ -75,7 +75,7 @@ public class RequestExSetPledgeCrestLarge implements IClientIncomingPacket
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);
return;

View File

@@ -55,7 +55,7 @@ public class RequestGiveNickName implements IClientIncomingPacket
else
{
// 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);
return;

View File

@@ -52,7 +52,7 @@ public class RequestJoinSiege implements IClientIncomingPacket
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);
return;

View File

@@ -65,7 +65,7 @@ public class RequestPledgePower implements IClientIncomingPacket
// Clan war, right to dismiss, set functions
// Auction, manage taxes, attack/defend registration, mercenary management
// => 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);
}

View File

@@ -54,7 +54,7 @@ public class RequestPledgeSetAcademyMaster implements IClientIncomingPacket
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);
return;

View File

@@ -80,7 +80,7 @@ public class RequestSetPledgeCrest implements IClientIncomingPacket
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);
return;

View File

@@ -63,7 +63,7 @@ public class RequestStartPledgeWar implements IClientIncomingPacket
player.sendPacket(ActionFailed.STATIC_PACKET);
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(ActionFailed.STATIC_PACKET);

View File

@@ -68,7 +68,7 @@ public class RequestStopPledgeWar implements IClientIncomingPacket
}
// 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);
return;

View File

@@ -72,7 +72,7 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket
player.sendPacket(ActionFailed.STATIC_PACKET);
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(ActionFailed.STATIC_PACKET);

View File

@@ -103,7 +103,7 @@ public class SendWareHouseWithDrawList implements IClientIncomingPacket
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;
}

View File

@@ -68,7 +68,7 @@ public class Nottingale extends AbstractNpcAI
{
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;
}

View File

@@ -19,7 +19,9 @@ package ai.areas.Rune.Roiental;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.actor.Npc;
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.network.SystemMessageId;
import ai.AbstractNpcAI;
@@ -57,14 +59,22 @@ public class Roiental extends AbstractNpcAI
{
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";
}
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
{
htmltext = "Roiental-AlreadyDone.html";
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
}
else
{
htmltext = "Roiental-01a.html";
@@ -76,14 +86,22 @@ public class Roiental extends AbstractNpcAI
{
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";
}
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
{
htmltext = "Roiental-AlreadyDone.html";
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
}
else
{
htmltext = "Roiental-01b.html";
@@ -95,14 +113,22 @@ public class Roiental extends AbstractNpcAI
{
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";
}
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
{
htmltext = "Roiental-AlreadyDone.html";
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
}
else
{
htmltext = "Roiental-01c.html";

View File

@@ -151,7 +151,7 @@ public class CastleChamberlain extends AbstractNpcAI
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 String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
@@ -461,7 +461,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -484,7 +484,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -511,7 +511,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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 level = Integer.parseInt(st.nextToken());
@@ -528,7 +528,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -579,7 +579,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -608,7 +608,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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 int level = Integer.parseInt(st.nextToken());
@@ -626,7 +626,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -688,7 +688,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -702,7 +702,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -716,7 +716,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -730,7 +730,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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;
if ((amount > 0) && (amount < Inventory.MAX_ADENA))
@@ -755,7 +755,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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;
if (amount <= castle.getTreasury())
@@ -832,7 +832,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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";
}
@@ -848,7 +848,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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";
}
@@ -869,12 +869,12 @@ public class CastleChamberlain extends AbstractNpcAI
}
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;
}
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");
funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
@@ -890,7 +890,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
@@ -935,7 +935,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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 level = Integer.parseInt(st.nextToken());
@@ -1081,7 +1081,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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);
}

View File

@@ -340,7 +340,7 @@ public class CastleCourtMagician extends AbstractNpcAI
}
case "squadSkill":
{
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
RequestAcquireSkill.showSubUnitSkillList(player);
}

View File

@@ -136,7 +136,7 @@ public class CastleDoorManager extends AbstractNpcAI
@Override
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)

View File

@@ -74,7 +74,7 @@ public class ClanHallDoorManager extends AbstractNpcAI
}
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");
clanHall.openCloseDoors(open);

View File

@@ -134,7 +134,7 @@ public class ClanHallManager extends AbstractNpcAI
}
case "manageDoors":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
if (player.hasClanPrivilege(ClanPrivilege.CH_ENTRY_EXIT_RIGHTS))
{
if (st.hasMoreTokens())
{
@@ -175,7 +175,7 @@ public class ClanHallManager extends AbstractNpcAI
}
case "useFunctions":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_OTHER_RIGHTS))
if (player.hasClanPrivilege(ClanPrivilege.CH_USE_FUNCTIONS))
{
if (!st.hasMoreTokens())
{
@@ -303,7 +303,7 @@ public class ClanHallManager extends AbstractNpcAI
}
case "manageFunctions":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_SET_FUNCTIONS))
if (player.hasClanPrivilege(ClanPrivilege.CH_SETTTINGS))
{
if (!st.hasMoreTokens())
{

View File

@@ -100,7 +100,7 @@ public class FortressSiegeManager extends AbstractNpcAI
html.replace("%clanName%", fortress.getOwnerClan().getName());
return html.getHtml();
}
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
{
htmltext = "FortressSiegeManager-10.html";
}
@@ -169,7 +169,7 @@ public class FortressSiegeManager extends AbstractNpcAI
html.replace("%clanName%", fortress.getOwnerClan().getName());
return html.getHtml();
}
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
{
htmltext = "FortressSiegeManager-10.html";
}

View File

@@ -254,7 +254,7 @@ public class SupportUnitCaptain extends AbstractNpcAI
}
case "squadSkill":
{
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
RequestAcquireSkill.showSubUnitSkillList(player);
}

View File

@@ -80,7 +80,7 @@ public class ClanWarehouse implements IBypassHandler
{
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);
return true;

View File

@@ -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);
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);
return null;

View File

@@ -185,7 +185,7 @@ public class FortManager extends Merchant
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
// control
{
if (player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
if (player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
{
if (!val.isEmpty())
{
@@ -230,7 +230,7 @@ public class FortManager extends Merchant
else if (actualCommand.equalsIgnoreCase("manage_vault"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
if (player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
{
if (val.equalsIgnoreCase("deposit"))
{
@@ -320,7 +320,7 @@ public class FortManager extends Merchant
}
else if (actualCommand.equalsIgnoreCase("manage"))
{
if (player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
if (player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
{
if (val.equalsIgnoreCase("recovery"))
{
@@ -995,7 +995,7 @@ public class FortManager extends Merchant
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.setActiveWarehouse(player.getClan().getWarehouse());

View File

@@ -2040,7 +2040,7 @@ public class Clan implements IIdentifiable, INamable
{
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);
return false;

View File

@@ -25,35 +25,35 @@ public enum ClanPrivilege
{
/** dummy entry */
DUMMY,
/** Privilege to join clan */
CL_JOIN_CLAN,
/** Privilege to give a title */
CL_GIVE_TITLE,
/** Privilege to view warehouse content */
CL_VIEW_WAREHOUSE,
/** Privilege to manage clan ranks */
/** System Privileges */
CL_INVITE,
CL_MANAGE_TITLES,
CL_WAREHOUSE_SEARCH,
CL_MANAGE_RANKS,
CL_PLEDGE_WAR,
CL_CLAN_WAR,
CL_DISMISS,
/** Privilege to register clan crest */
CL_REGISTER_CREST,
CL_APPRENTICE,
CL_TROOPS_FAME,
CL_SUMMON_AIRSHIP,
/** Privilege to open a door */
CH_OPEN_DOOR,
CH_OTHER_RIGHTS,
CL_EDIT_CREST,
CL_USE_FUNCTIONS,
CL_SETTINGS,
CL_THRONE_OF_HEROES,
/** Clan Hall Privileges */
CH_ENTRY_EXIT_RIGHTS,
CH_USE_FUNCTIONS,
CH_AUCTION,
CH_DISMISS,
CH_SET_FUNCTIONS,
CS_OPEN_DOOR,
CS_MANOR_ADMIN,
CS_MANAGE_SIEGE,
CH_SETTTINGS,
/** Castle/Fortress Privileges */
CS_ENTRY_EXIT_RIGHTS,
CS_SIEGE_WAR,
CS_USE_FUNCTIONS,
CS_SETTINGS,
CS_DISMISS,
CS_TAXES,
CS_MANAGE_TAXES,
CS_MERCENARIES,
CS_SET_FUNCTIONS;
CS_MANOR_ADMIN;
public int getBitmask()
{

View File

@@ -183,7 +183,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
}
case SUBPLEDGE:
{
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
return;
}

View File

@@ -113,7 +113,7 @@ public class RequestAcquireSkillInfo implements IClientIncomingPacket
}
case SUBPLEDGE:
{
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
return;
}

View File

@@ -75,7 +75,7 @@ public class RequestExSetPledgeCrestLarge implements IClientIncomingPacket
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);
return;

View File

@@ -55,7 +55,7 @@ public class RequestGiveNickName implements IClientIncomingPacket
else
{
// 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);
return;

View File

@@ -52,7 +52,7 @@ public class RequestJoinSiege implements IClientIncomingPacket
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);
return;

View File

@@ -65,7 +65,7 @@ public class RequestPledgePower implements IClientIncomingPacket
// Clan war, right to dismiss, set functions
// Auction, manage taxes, attack/defend registration, mercenary management
// => 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);
}

View File

@@ -54,7 +54,7 @@ public class RequestPledgeSetAcademyMaster implements IClientIncomingPacket
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);
return;

View File

@@ -80,7 +80,7 @@ public class RequestSetPledgeCrest implements IClientIncomingPacket
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);
return;

View File

@@ -63,7 +63,7 @@ public class RequestStartPledgeWar implements IClientIncomingPacket
player.sendPacket(ActionFailed.STATIC_PACKET);
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(ActionFailed.STATIC_PACKET);

View File

@@ -68,7 +68,7 @@ public class RequestStopPledgeWar implements IClientIncomingPacket
}
// 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);
return;

View File

@@ -72,7 +72,7 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket
player.sendPacket(ActionFailed.STATIC_PACKET);
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(ActionFailed.STATIC_PACKET);

View File

@@ -103,7 +103,7 @@ public class SendWareHouseWithDrawList implements IClientIncomingPacket
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;
}

View File

@@ -68,7 +68,7 @@ public class Nottingale extends AbstractNpcAI
{
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;
}

View File

@@ -19,7 +19,9 @@ package ai.areas.Rune.Roiental;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.actor.Npc;
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.network.SystemMessageId;
import ai.AbstractNpcAI;
@@ -57,14 +59,22 @@ public class Roiental extends AbstractNpcAI
{
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";
}
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
{
htmltext = "Roiental-AlreadyDone.html";
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
}
else
{
htmltext = "Roiental-01a.html";
@@ -76,14 +86,22 @@ public class Roiental extends AbstractNpcAI
{
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";
}
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
{
htmltext = "Roiental-AlreadyDone.html";
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
}
else
{
htmltext = "Roiental-01b.html";
@@ -95,14 +113,22 @@ public class Roiental extends AbstractNpcAI
{
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";
}
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
{
htmltext = "Roiental-AlreadyDone.html";
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
}
else
{
htmltext = "Roiental-01c.html";

View File

@@ -151,7 +151,7 @@ public class CastleChamberlain extends AbstractNpcAI
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 String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
@@ -461,7 +461,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -484,7 +484,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -511,7 +511,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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 level = Integer.parseInt(st.nextToken());
@@ -528,7 +528,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -579,7 +579,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -608,7 +608,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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 int level = Integer.parseInt(st.nextToken());
@@ -626,7 +626,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -688,7 +688,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -702,7 +702,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -716,7 +716,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -730,7 +730,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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;
if ((amount > 0) && (amount < Inventory.MAX_ADENA))
@@ -755,7 +755,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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;
if (amount <= castle.getTreasury())
@@ -832,7 +832,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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";
}
@@ -848,7 +848,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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";
}
@@ -869,12 +869,12 @@ public class CastleChamberlain extends AbstractNpcAI
}
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;
}
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");
funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
@@ -890,7 +890,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
@@ -935,7 +935,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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 level = Integer.parseInt(st.nextToken());
@@ -1081,7 +1081,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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);
}

View File

@@ -340,7 +340,7 @@ public class CastleCourtMagician extends AbstractNpcAI
}
case "squadSkill":
{
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
RequestAcquireSkill.showSubUnitSkillList(player);
}

View File

@@ -136,7 +136,7 @@ public class CastleDoorManager extends AbstractNpcAI
@Override
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)

View File

@@ -74,7 +74,7 @@ public class ClanHallDoorManager extends AbstractNpcAI
}
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");
clanHall.openCloseDoors(open);

View File

@@ -134,7 +134,7 @@ public class ClanHallManager extends AbstractNpcAI
}
case "manageDoors":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
if (player.hasClanPrivilege(ClanPrivilege.CH_ENTRY_EXIT_RIGHTS))
{
if (st.hasMoreTokens())
{
@@ -175,7 +175,7 @@ public class ClanHallManager extends AbstractNpcAI
}
case "useFunctions":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_OTHER_RIGHTS))
if (player.hasClanPrivilege(ClanPrivilege.CH_USE_FUNCTIONS))
{
if (!st.hasMoreTokens())
{
@@ -303,7 +303,7 @@ public class ClanHallManager extends AbstractNpcAI
}
case "manageFunctions":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_SET_FUNCTIONS))
if (player.hasClanPrivilege(ClanPrivilege.CH_SETTTINGS))
{
if (!st.hasMoreTokens())
{

View File

@@ -100,7 +100,7 @@ public class FortressSiegeManager extends AbstractNpcAI
html.replace("%clanName%", fortress.getOwnerClan().getName());
return html.getHtml();
}
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
{
htmltext = "FortressSiegeManager-10.html";
}
@@ -169,7 +169,7 @@ public class FortressSiegeManager extends AbstractNpcAI
html.replace("%clanName%", fortress.getOwnerClan().getName());
return html.getHtml();
}
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
{
htmltext = "FortressSiegeManager-10.html";
}

View File

@@ -254,7 +254,7 @@ public class SupportUnitCaptain extends AbstractNpcAI
}
case "squadSkill":
{
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
RequestAcquireSkill.showSubUnitSkillList(player);
}

View File

@@ -80,7 +80,7 @@ public class ClanWarehouse implements IBypassHandler
{
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);
return true;

View File

@@ -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);
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);
return null;

View File

@@ -185,7 +185,7 @@ public class FortManager extends Merchant
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
// control
{
if (player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
if (player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
{
if (!val.isEmpty())
{
@@ -230,7 +230,7 @@ public class FortManager extends Merchant
else if (actualCommand.equalsIgnoreCase("manage_vault"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
if (player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
{
if (val.equalsIgnoreCase("deposit"))
{
@@ -320,7 +320,7 @@ public class FortManager extends Merchant
}
else if (actualCommand.equalsIgnoreCase("manage"))
{
if (player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
if (player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
{
if (val.equalsIgnoreCase("recovery"))
{
@@ -995,7 +995,7 @@ public class FortManager extends Merchant
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.setActiveWarehouse(player.getClan().getWarehouse());

View File

@@ -2040,7 +2040,7 @@ public class Clan implements IIdentifiable, INamable
{
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);
return false;

View File

@@ -25,35 +25,35 @@ public enum ClanPrivilege
{
/** dummy entry */
DUMMY,
/** Privilege to join clan */
CL_JOIN_CLAN,
/** Privilege to give a title */
CL_GIVE_TITLE,
/** Privilege to view warehouse content */
CL_VIEW_WAREHOUSE,
/** Privilege to manage clan ranks */
/** System Privileges */
CL_INVITE,
CL_MANAGE_TITLES,
CL_WAREHOUSE_SEARCH,
CL_MANAGE_RANKS,
CL_PLEDGE_WAR,
CL_CLAN_WAR,
CL_DISMISS,
/** Privilege to register clan crest */
CL_REGISTER_CREST,
CL_APPRENTICE,
CL_TROOPS_FAME,
CL_SUMMON_AIRSHIP,
/** Privilege to open a door */
CH_OPEN_DOOR,
CH_OTHER_RIGHTS,
CL_EDIT_CREST,
CL_USE_FUNCTIONS,
CL_SETTINGS,
CL_THRONE_OF_HEROES,
/** Clan Hall Privileges */
CH_ENTRY_EXIT_RIGHTS,
CH_USE_FUNCTIONS,
CH_AUCTION,
CH_DISMISS,
CH_SET_FUNCTIONS,
CS_OPEN_DOOR,
CS_MANOR_ADMIN,
CS_MANAGE_SIEGE,
CH_SETTTINGS,
/** Castle/Fortress Privileges */
CS_ENTRY_EXIT_RIGHTS,
CS_SIEGE_WAR,
CS_USE_FUNCTIONS,
CS_SETTINGS,
CS_DISMISS,
CS_TAXES,
CS_MANAGE_TAXES,
CS_MERCENARIES,
CS_SET_FUNCTIONS;
CS_MANOR_ADMIN;
public int getBitmask()
{

View File

@@ -183,7 +183,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
}
case SUBPLEDGE:
{
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
return;
}

View File

@@ -113,7 +113,7 @@ public class RequestAcquireSkillInfo implements IClientIncomingPacket
}
case SUBPLEDGE:
{
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
return;
}

View File

@@ -75,7 +75,7 @@ public class RequestExSetPledgeCrestLarge implements IClientIncomingPacket
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);
return;

View File

@@ -55,7 +55,7 @@ public class RequestGiveNickName implements IClientIncomingPacket
else
{
// 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);
return;

View File

@@ -52,7 +52,7 @@ public class RequestJoinSiege implements IClientIncomingPacket
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);
return;

View File

@@ -65,7 +65,7 @@ public class RequestPledgePower implements IClientIncomingPacket
// Clan war, right to dismiss, set functions
// Auction, manage taxes, attack/defend registration, mercenary management
// => 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);
}

View File

@@ -54,7 +54,7 @@ public class RequestPledgeSetAcademyMaster implements IClientIncomingPacket
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);
return;

View File

@@ -80,7 +80,7 @@ public class RequestSetPledgeCrest implements IClientIncomingPacket
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);
return;

View File

@@ -63,7 +63,7 @@ public class RequestStartPledgeWar implements IClientIncomingPacket
player.sendPacket(ActionFailed.STATIC_PACKET);
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(ActionFailed.STATIC_PACKET);

View File

@@ -69,7 +69,7 @@ public class RequestStopPledgeWar implements IClientIncomingPacket
}
// 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);
return;

View File

@@ -72,7 +72,7 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket
player.sendPacket(ActionFailed.STATIC_PACKET);
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(ActionFailed.STATIC_PACKET);

View File

@@ -103,7 +103,7 @@ public class SendWareHouseWithDrawList implements IClientIncomingPacket
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;
}

View File

@@ -68,7 +68,7 @@ public class Nottingale extends AbstractNpcAI
{
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;
}

View File

@@ -19,7 +19,9 @@ package ai.areas.Rune.Roiental;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.actor.Npc;
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.network.SystemMessageId;
import ai.AbstractNpcAI;
@@ -57,14 +59,22 @@ public class Roiental extends AbstractNpcAI
{
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";
}
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
{
htmltext = "Roiental-AlreadyDone.html";
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
}
else
{
htmltext = "Roiental-01a.html";
@@ -76,14 +86,22 @@ public class Roiental extends AbstractNpcAI
{
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";
}
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
{
htmltext = "Roiental-AlreadyDone.html";
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
}
else
{
htmltext = "Roiental-01b.html";
@@ -95,14 +113,22 @@ public class Roiental extends AbstractNpcAI
{
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";
}
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
else if (player.getClan().getVariables().hasVariable("TOH_DONE"))
{
htmltext = "Roiental-AlreadyDone.html";
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_THRONE_OF_HEROES))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
}
else
{
htmltext = "Roiental-01c.html";

View File

@@ -151,7 +151,7 @@ public class CastleChamberlain extends AbstractNpcAI
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 String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
@@ -461,7 +461,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -484,7 +484,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -511,7 +511,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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 level = Integer.parseInt(st.nextToken());
@@ -528,7 +528,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -579,7 +579,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -608,7 +608,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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 int level = Integer.parseInt(st.nextToken());
@@ -626,7 +626,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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())
{
@@ -688,7 +688,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -702,7 +702,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -716,7 +716,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -730,7 +730,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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;
if ((amount > 0) && (amount < Inventory.MAX_ADENA))
@@ -755,7 +755,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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;
if (amount <= castle.getTreasury())
@@ -832,7 +832,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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";
}
@@ -848,7 +848,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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";
}
@@ -869,12 +869,12 @@ public class CastleChamberlain extends AbstractNpcAI
}
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;
}
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");
funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
@@ -890,7 +890,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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");
funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
@@ -935,7 +935,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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 level = Integer.parseInt(st.nextToken());
@@ -1081,7 +1081,7 @@ public class CastleChamberlain extends AbstractNpcAI
}
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);
}

View File

@@ -340,7 +340,7 @@ public class CastleCourtMagician extends AbstractNpcAI
}
case "squadSkill":
{
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
RequestAcquireSkill.showSubUnitSkillList(player);
}

View File

@@ -136,7 +136,7 @@ public class CastleDoorManager extends AbstractNpcAI
@Override
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)

View File

@@ -74,7 +74,7 @@ public class ClanHallDoorManager extends AbstractNpcAI
}
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");
clanHall.openCloseDoors(open);

View File

@@ -134,7 +134,7 @@ public class ClanHallManager extends AbstractNpcAI
}
case "manageDoors":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
if (player.hasClanPrivilege(ClanPrivilege.CH_ENTRY_EXIT_RIGHTS))
{
if (st.hasMoreTokens())
{
@@ -175,7 +175,7 @@ public class ClanHallManager extends AbstractNpcAI
}
case "useFunctions":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_OTHER_RIGHTS))
if (player.hasClanPrivilege(ClanPrivilege.CH_USE_FUNCTIONS))
{
if (!st.hasMoreTokens())
{
@@ -303,7 +303,7 @@ public class ClanHallManager extends AbstractNpcAI
}
case "manageFunctions":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_SET_FUNCTIONS))
if (player.hasClanPrivilege(ClanPrivilege.CH_SETTTINGS))
{
if (!st.hasMoreTokens())
{

View File

@@ -100,7 +100,7 @@ public class FortressSiegeManager extends AbstractNpcAI
html.replace("%clanName%", fortress.getOwnerClan().getName());
return html.getHtml();
}
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
{
htmltext = "FortressSiegeManager-10.html";
}
@@ -169,7 +169,7 @@ public class FortressSiegeManager extends AbstractNpcAI
html.replace("%clanName%", fortress.getOwnerClan().getName());
return html.getHtml();
}
else if (!player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
else if (!player.hasClanPrivilege(ClanPrivilege.CS_SIEGE_WAR))
{
htmltext = "FortressSiegeManager-10.html";
}

View File

@@ -254,7 +254,7 @@ public class SupportUnitCaptain extends AbstractNpcAI
}
case "squadSkill":
{
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
RequestAcquireSkill.showSubUnitSkillList(player);
}

View File

@@ -80,7 +80,7 @@ public class ClanWarehouse implements IBypassHandler
{
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);
return true;

View File

@@ -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);
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);
return null;

View File

@@ -185,7 +185,7 @@ public class FortManager extends Merchant
else if (actualCommand.equalsIgnoreCase("operate_door")) // door
// control
{
if (player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
if (player.hasClanPrivilege(ClanPrivilege.CS_ENTRY_EXIT_RIGHTS))
{
if (!val.isEmpty())
{
@@ -230,7 +230,7 @@ public class FortManager extends Merchant
else if (actualCommand.equalsIgnoreCase("manage_vault"))
{
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
if (player.hasClanPrivilege(ClanPrivilege.CL_WAREHOUSE_SEARCH))
{
if (val.equalsIgnoreCase("deposit"))
{
@@ -320,7 +320,7 @@ public class FortManager extends Merchant
}
else if (actualCommand.equalsIgnoreCase("manage"))
{
if (player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
if (player.hasClanPrivilege(ClanPrivilege.CS_SETTINGS))
{
if (val.equalsIgnoreCase("recovery"))
{
@@ -995,7 +995,7 @@ public class FortManager extends Merchant
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.setActiveWarehouse(player.getClan().getWarehouse());

View File

@@ -2040,7 +2040,7 @@ public class Clan implements IIdentifiable, INamable
{
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);
return false;

View File

@@ -25,35 +25,35 @@ public enum ClanPrivilege
{
/** dummy entry */
DUMMY,
/** Privilege to join clan */
CL_JOIN_CLAN,
/** Privilege to give a title */
CL_GIVE_TITLE,
/** Privilege to view warehouse content */
CL_VIEW_WAREHOUSE,
/** Privilege to manage clan ranks */
/** System Privileges */
CL_INVITE,
CL_MANAGE_TITLES,
CL_WAREHOUSE_SEARCH,
CL_MANAGE_RANKS,
CL_PLEDGE_WAR,
CL_CLAN_WAR,
CL_DISMISS,
/** Privilege to register clan crest */
CL_REGISTER_CREST,
CL_APPRENTICE,
CL_TROOPS_FAME,
CL_SUMMON_AIRSHIP,
/** Privilege to open a door */
CH_OPEN_DOOR,
CH_OTHER_RIGHTS,
CL_EDIT_CREST,
CL_USE_FUNCTIONS,
CL_SETTINGS,
CL_THRONE_OF_HEROES,
/** Clan Hall Privileges */
CH_ENTRY_EXIT_RIGHTS,
CH_USE_FUNCTIONS,
CH_AUCTION,
CH_DISMISS,
CH_SET_FUNCTIONS,
CS_OPEN_DOOR,
CS_MANOR_ADMIN,
CS_MANAGE_SIEGE,
CH_SETTTINGS,
/** Castle/Fortress Privileges */
CS_ENTRY_EXIT_RIGHTS,
CS_SIEGE_WAR,
CS_USE_FUNCTIONS,
CS_SETTINGS,
CS_DISMISS,
CS_TAXES,
CS_MANAGE_TAXES,
CS_MERCENARIES,
CS_SET_FUNCTIONS;
CS_MANOR_ADMIN;
public int getBitmask()
{

View File

@@ -183,7 +183,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
}
case SUBPLEDGE:
{
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
return;
}

View File

@@ -113,7 +113,7 @@ public class RequestAcquireSkillInfo implements IClientIncomingPacket
}
case SUBPLEDGE:
{
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
if (!player.isClanLeader() || !player.hasClanPrivilege(ClanPrivilege.CL_SETTINGS))
{
return;
}

View File

@@ -75,7 +75,7 @@ public class RequestExSetPledgeCrestLarge implements IClientIncomingPacket
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);
return;

View File

@@ -55,7 +55,7 @@ public class RequestGiveNickName implements IClientIncomingPacket
else
{
// 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);
return;

View File

@@ -52,7 +52,7 @@ public class RequestJoinSiege implements IClientIncomingPacket
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);
return;

View File

@@ -65,7 +65,7 @@ public class RequestPledgePower implements IClientIncomingPacket
// Clan war, right to dismiss, set functions
// Auction, manage taxes, attack/defend registration, mercenary management
// => 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);
}

View File

@@ -54,7 +54,7 @@ public class RequestPledgeSetAcademyMaster implements IClientIncomingPacket
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);
return;

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