Class KeyDestroyingDoor
java.lang.Object
marauroa.common.game.Attributes
marauroa.common.game.SlotOwner
marauroa.common.game.RPObject
games.stendhal.server.entity.Entity
games.stendhal.server.entity.mapstuff.portal.Portal
games.stendhal.server.entity.mapstuff.portal.Door
games.stendhal.server.entity.mapstuff.portal.LockedDoor
games.stendhal.server.entity.mapstuff.portal.KeyDestroyingDoor
- All Implemented Interfaces:
TurnListener
,UseListener
,Killer
,Cloneable
,Iterable<String>
,Serializable
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
-
Nested Class Summary
Nested classes/interfaces inherited from class marauroa.common.game.RPObject
RPObject.ID
-
Field Summary
Modifier and TypeFieldDescriptionprotected boolean
Override continuous movement setting.protected boolean
Immediate execution of action when player says password.protected int
Radius at which portal will "listen" for speaking players.protected String
Optional message to give when correct password used.protected String
Optional message to give when incorrect password used.protected int
ID for the portalprotected static int
protected ChatAction
Optional action to take when access is rejected.protected String
The message to give when rejected.protected String
Optional password to use portal.Fields inherited from class games.stendhal.server.entity.mapstuff.portal.LockedDoor
requiredAmount
Fields inherited from class games.stendhal.server.entity.mapstuff.portal.Portal
ATTR_FACE, ATTR_HIDDEN, ATTR_OFFSET, ATTR_USE
Fields inherited from class marauroa.common.game.RPObject
INVALID_ID
-
Constructor Summary
ConstructorDescriptionKeyDestroyingDoor(String key, String clazz)
Creates a new KeyDestroying door which destroys 1 key when the player uses it.KeyDestroyingDoor(String key, String clazz, int requiredAmount)
Creates a new KeyDestroying door. -
Method Summary
Modifier and TypeMethodDescriptionint
Gets the message to send when player is denied access to portal.Gets the password required to use the portal.boolean
Checks if the portal executes an action immediately after password is said.void
logic()
boolean
Teleport (if the door is now open).boolean
playerIsPortalUnlocked(Player player, Portal portal)
protected void
Called when the user is rejected.protected void
sendMessage(RPEntity user, String text)
Wrapper to send a message to a user, without getting lost.void
setForceStop(boolean forceStop)
Sets flag to override continuous movement & force entity to stop.void
setInstantAction(boolean instant)
void
setListeningRadius(int radius)
Sets the radius at which the portal will "hear" speaking players.void
setPasswordAcceptedMessage(String message)
Set the password accepted message.void
setPasswordRejectedMessage(String message)
Set the password rejected message.void
setRejectedAction(ChatAction rejectedAction)
Initiates an action to take on rejection.void
setRejectedMessage(String message)
Set the rejection message.void
setRequiredPassword(String password)
Methods inherited from class games.stendhal.server.entity.mapstuff.portal.LockedDoor
isAllowed
Methods inherited from class games.stendhal.server.entity.mapstuff.portal.Door
close, describe, generateRPClass, isOpen, onTurnReached, onUsedBackwards, open, update
Methods inherited from class games.stendhal.server.entity.mapstuff.portal.Portal
getDestinationReference, getDestinationZone, getFaceDirection, getIdentifier, getOffset, hasFaceDirection, hasOffset, isHidden, loaded, onPushedOntoFrom, setDestination, setFaceDirection, setFaceDirection, setHidden, setIdentifier, setIgnoreNoDestination, toString, usePortal
Methods inherited from class games.stendhal.server.entity.Entity
getAdjacentNodes, getArea, getArea, getCursor, getDescription, getDescriptionName, getEntitySlot, getHeight, getName, getOrigin, getResistance, getResistance, getTitle, getWidth, getX, getY, getZone, hasDescription, isInSight, isObstacle, nextTo, nextTo, notifyWorldAboutChanges, onAdded, onMoved, onRemoved, setCursor, setDescription, setEntityClass, setEntitySubclass, setMenu, setPosition, setResistance, setSize, setVisibility, slotIterator, slots, squaredDistance, squaredDistance, stopped
Methods inherited from class marauroa.common.game.RPObject
addEvent, addLink, addLink, addMap, addSlot, addSlot, applyDifferences, clearEvents, clearVisible, clone, containsKey, equals, events, eventsIterator, fill, get, getBaseContainer, getBoolean, getContainer, getContainerBaseOwner, getContainerOwner, getContainerSlot, getDifferences, getDouble, getFromSlots, getID, getInt, getLink, getLinkedObject, getMap, getSlot, has, hashCode, hasLink, hasMap, hasSlot, hide, isContained, isEmpty, isStorable, maps, put, put, put, put, readObject, remove, removeLink, removeMap, removeSlot, resetAddedAndDeleted, resetAddedAndDeletedMaps, resetAddedAndDeletedRPLink, resetAddedAndDeletedRPSlot, setAddedMaps, setAddedRPSlot, setContainer, setDeletedMaps, setDeletedRPSlot, setID, size, slots, slotsIterator, store, unhide, unstore, writeObject, writeObject, writeToJson
Methods inherited from class marauroa.common.game.SlotOwner
deserializeRPSlots, fill, serializeRPSlots
Methods inherited from class marauroa.common.game.Attributes
add, applyDifferences, get, getBool, getDouble, getInt, getList, getLong, getRPClass, has, instanceOf, iterator, put, put, put, put, put, readFromMap, remove, resetAddedAndDeletedAttributes, setAddedAttributes, setDeletedAttributes, setRPClass, setRPClass, toAttributeString
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
instantAction
protected boolean instantActionImmediate execution of action when player says password. -
listeningRadius
protected int listeningRadiusRadius at which portal will "listen" for speaking players. -
passwordAcceptedMessage
Optional message to give when correct password used. -
passwordRejectedMessage
Optional message to give when incorrect password used. -
portalID
protected int portalIDID for the portal -
portalIDCounter
protected static int portalIDCounter -
rejectedMessage
The message to give when rejected. -
requiredPassword
Optional password to use portal. -
rejectedAction
Optional action to take when access is rejected. -
forceStop
protected boolean forceStopOverride continuous movement setting.
-
-
Constructor Details
-
KeyDestroyingDoor
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 doorclazz
- The class. Responsible for how this door looks like.
-
KeyDestroyingDoor
Creates a new KeyDestroying door.- Parameters:
key
- The name of the item that is required to use the doorclazz
- 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
Description copied from class:Door
Teleport (if the door is now open).- Specified by:
onUsed
in interfaceUseListener
- Overrides:
onUsed
in classDoor
- Parameters:
user
- that wants to pass.- Returns:
- true if passed , false otherwise.
-
getPasswordAcceptedMessage
- Returns:
- Message when password is accepted.
-
getPasswordRejectedMessage
- Returns:
- Messager when password is rejected.
-
getListeningRadius
public int getListeningRadius()- Returns:
- Radius at which portal detects player speech.
-
getRejectedMessage
Gets the message to send when player is denied access to portal.- Returns:
- Rejected message
-
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
-
logic
public void logic() -
rejected
Called when the user is rejected. This sends a rejection message to the user if set.- Parameters:
user
- The rejected user.
-
sendMessage
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
Set the password accepted message.- Parameters:
message
- Optional message to be given when correct password used.
-
setPasswordRejectedMessage
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
Set the rejection message.- Parameters:
message
- The message to give when rejected.
-
setRequiredPassword
- Parameters:
password
-
-
setRejectedAction
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
- Iftrue
, entity is forced to stop movement.
-