All Implemented Interfaces:
UseListener, Killer, Cloneable, Iterable<String>, Serializable

public class KeyedPortal extends Portal
A keyed portal is a special kind of portal which requires a key to pass it. If the player carries the key with him, he can use the portal just like a normal portal.
  • Field Details

    • key

      protected String key
      The key item needed.
    • quantity

      protected int quantity
      The minimum number of items.
    • instantAction

      protected boolean instantAction
      Immediate execution of action when player says password.
    • listeningRadius

      protected int listeningRadius
      Radius at which portal will "listen" for speaking players.
    • passwordAcceptedMessage

      protected String passwordAcceptedMessage
      Optional message to give when correct password used.
    • passwordRejectedMessage

      protected String passwordRejectedMessage
      Optional message to give when incorrect password used.
    • portalID

      protected int portalID
      ID for the portal
    • portalIDCounter

      protected static int portalIDCounter
    • rejectedMessage

      protected String rejectedMessage
      The message to give when rejected.
    • requiredPassword

      protected String requiredPassword
      Optional password to use portal.
    • rejectedAction

      protected ChatAction rejectedAction
      Optional action to take when access is rejected.
    • forceStop

      protected boolean forceStop
      Override continuous movement setting.
  • Constructor Details

    • KeyedPortal

      public KeyedPortal(String key)
      Creates a new keyed portal.
      Parameters:
      key - The name of the required key.
    • KeyedPortal

      public KeyedPortal(String key, int quantity)
      Creates a new keyed portal.
      Parameters:
      key - The name of the required key.
      quantity - The key quantity required.
    • KeyedPortal

      public KeyedPortal(String key, int quantity, String rejectMessage)
      Creates a new keyed portal.
      Parameters:
      key - The name of the required key.
      quantity - The key quantity required.
      rejectMessage - The message given when rejected.
  • Method Details

    • isAllowed

      protected boolean isAllowed(RPEntity user)
      Determine if this portal can be used.
      Parameters:
      user - The user to be checked.
      Returns:
      true if the user can use the portal.
    • getPasswordAcceptedMessage

      public String getPasswordAcceptedMessage()
      Returns:
      Message when password is accepted.
    • getPasswordRejectedMessage

      public String getPasswordRejectedMessage()
      Returns:
      Messager when password is rejected.
    • getListeningRadius

      public int getListeningRadius()
      Returns:
      Radius at which portal detects player speech.
    • getRejectedMessage

      public String getRejectedMessage()
      Gets the message to send when player is denied access to portal.
      Returns:
      Rejected message
    • getRequiredPassword

      public String getRequiredPassword()
      Gets the password required to use the portal.
      Returns:
      Required password
    • hasInstanceAction

      public boolean hasInstanceAction()
      Checks if the portal executes an action immediately after password is said.
      Returns:
      instantAction
    • playerIsPortalUnlocked

      public boolean playerIsPortalUnlocked(Player player, Portal portal)
    • logic

      public void logic()
      Overrides:
      logic in class Portal
    • onUsed

      public boolean onUsed(RPEntity user)
      Use the portal, if allowed.
      Specified by:
      onUsed in interface UseListener
      Overrides:
      onUsed in class Portal
      Parameters:
      user - that wants to pass.
      Returns:
      true if passed , false otherwise.
    • rejected

      protected void rejected(RPEntity user)
      Called when the user is rejected. This sends a rejection message to the user if set.
      Parameters:
      user - The rejected user.
    • sendMessage

      protected void sendMessage(RPEntity user, String text)
      Wrapper to send a message to a user, without getting lost.
      Parameters:
      user - The user to send to.
      text - The message to send.
    • setInstantAction

      public void setInstantAction(boolean instant)
      Parameters:
      instant - Use portal automatically.
    • setPasswordAcceptedMessage

      public void setPasswordAcceptedMessage(String message)
      Set the password accepted message.
      Parameters:
      message - Optional message to be given when correct password used.
    • setPasswordRejectedMessage

      public void setPasswordRejectedMessage(String message)
      Set the password rejected message.
      Parameters:
      message - Optional message to be given when incorrect password used.
    • setListeningRadius

      public void setListeningRadius(int radius)
      Sets the radius at which the portal will "hear" speaking players.
      Parameters:
      radius - Distance at wich portal listens for players speaking.
    • setRejectedMessage

      public void setRejectedMessage(String message)
      Set the rejection message.
      Parameters:
      message - The message to give when rejected.
    • setRequiredPassword

      public void setRequiredPassword(String password)
      Parameters:
      password -
    • setRejectedAction

      public void setRejectedAction(ChatAction rejectedAction)
      Initiates an action to take on rejection.
      Parameters:
      rejectedAction - ChatAction to execute.
    • setForceStop

      public void setForceStop(boolean forceStop)
      Sets flag to override continuous movement & force entity to stop.
      Parameters:
      forceStop - If true, entity is forced to stop movement.