Class KeyDestroyingDoor

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

public class KeyDestroyingDoor extends LockedDoor
A KeyDestroyingDoor works just like a normal locked door, except that it destroys the key item when used. By using the requiredAmount parameter, it can also be programmed to consume more than one key item each time. Note that the item needn't be a real key; one could, for instance, also create a door that costs 5 pieces of gold to use. If you add such a door to the world, don't forget to add a sign or an NPC which tells the player how the door works.
Author:
daniel/kymara
  • Field Details

    • 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

    • KeyDestroyingDoor

      public KeyDestroyingDoor(String key, String clazz)
      Creates a new KeyDestroying door which destroys 1 key when the player uses it.
      Parameters:
      key - The name of the item that is required to use the door
      clazz - The class. Responsible for how this door looks like.
    • KeyDestroyingDoor

      public KeyDestroyingDoor(String key, String clazz, int requiredAmount)
      Creates a new KeyDestroying door.
      Parameters:
      key - The name of the item that is required to use the door
      clazz - The class. Responsible for how this door looks like.
      requiredAmount - The number of key items that are destroyed while passing through the door
  • Method Details

    • onUsed

      public boolean onUsed(RPEntity user)
      Description copied from class: Door
      Teleport (if the door is now open).
      Specified by:
      onUsed in interface UseListener
      Overrides:
      onUsed in class Door
      Parameters:
      user - that wants to pass.
      Returns:
      true if passed , false otherwise.
    • 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
    • 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.