Version 1.5APIs subject to change!

multiverse.mars.plugins
Class MarsLoginPlugin

java.lang.Object
  extended by multiverse.server.engine.EnginePlugin
      extended by multiverse.server.worldmgr.LoginPlugin
          extended by multiverse.mars.plugins.MarsLoginPlugin
All Implemented Interfaces:
MessageCallback, StatusMapCallback, multiverse.server.network.TcpAcceptCallback

public class MarsLoginPlugin
extends LoginPlugin

Mars LoginPlugin implementation. Reads and stores characters using the Engine database.


Nested Class Summary
 
Nested classes/interfaces inherited from class multiverse.server.worldmgr.LoginPlugin
LoginPlugin.CharacterCreateMessage, LoginPlugin.CharacterCreateResponseMessage, LoginPlugin.CharacterDeleteMessage, LoginPlugin.CharacterDeleteResponseMessage, LoginPlugin.CharacterRequestMessage, LoginPlugin.CharacterResponseMessage
 
Nested classes/interfaces inherited from class multiverse.server.engine.EnginePlugin
EnginePlugin.DeleteHook, EnginePlugin.DeleteSubObjHook, EnginePlugin.GenerateSubObjectHook, EnginePlugin.GetPropertyMessage, EnginePlugin.LoadHook, EnginePlugin.LoadSubObjHook, EnginePlugin.PluginActivateHook, EnginePlugin.PluginStateMessage, EnginePlugin.SaveHook, EnginePlugin.SaveSubObjHook, EnginePlugin.SetPropertyMessage, EnginePlugin.SubObjData, EnginePlugin.TransferFilter, EnginePlugin.TransferObjectMessage, EnginePlugin.UnloadHook, EnginePlugin.UnloadSubObjHook
 
Field Summary
protected static java.util.Map<Namespace,java.util.Set<java.lang.String>> characterProps
           
 
Fields inherited from class multiverse.server.worldmgr.LoginPlugin
LOGIN_IDLE_TIMEOUT, MSGCODE_CHARACTER_CREATE, MSGCODE_CHARACTER_CREATE_RESPONSE, MSGCODE_CHARACTER_DELETE, MSGCODE_CHARACTER_DELETE_RESPONSE, MSGCODE_CHARACTER_REQUEST, MSGCODE_CHARACTER_RESPONSE, SecureToken
 
Fields inherited from class multiverse.server.engine.EnginePlugin
deleteSubObjectSubscription, dumpAllThreadSubscription, dumpAllThreadSubscriptionLock, loadSubObjectSubscription, lock, MSG_TYPE_DUMP_ALL_THREAD_STACKS, MSG_TYPE_GET_PROPERTY, MSG_TYPE_PLUGIN_STATE, MSG_TYPE_SET_PROPERTY, MSG_TYPE_SET_PROPERTY_NONBLOCK, MSG_TYPE_TRANSFER_OBJECT, pluginStateSubscription, propertySubscription, saveSubObjectSubscription, selectionFilter, selectionSubscription, setSubObjectPersistenceSubscription, subObjectSubscription, unloadSubObjectSubscription
 
Fields inherited from interface multiverse.msgsys.MessageCallback
NO_FLAGS, RESPONSE_EXPECTED
 
Constructor Summary
MarsLoginPlugin()
           
 
Method Summary
protected  LoginPlugin.CharacterCreateResponseMessage handleCharacterCreateMessage(LoginPlugin.CharacterCreateMessage message, java.nio.channels.SocketChannel clientSocket, multiverse.server.network.MVByteBuffer authorizedToken)
          Create a character.
protected  LoginPlugin.CharacterDeleteResponseMessage handleCharacterDeleteMessage(LoginPlugin.CharacterDeleteMessage message, java.nio.channels.SocketChannel clientSocket, multiverse.server.network.MVByteBuffer authorizedToken)
          Delete a character.
protected  LoginPlugin.CharacterResponseMessage handleCharacterRequestMessage(LoginPlugin.CharacterRequestMessage message, java.nio.channels.SocketChannel clientSocket)
          Return character list.
static void registerCharacterProperty(Namespace namespace, java.lang.String propName)
           
protected  void setCharacterProperties(java.util.Map<java.lang.String,java.io.Serializable> props, Entity entity)
           
 
Methods inherited from class multiverse.server.worldmgr.LoginPlugin
dbConnect, getCharacterGenerator, getTCPPort, onActivate, onTcpAccept, setTCPPort
 
Methods inherited from class multiverse.server.engine.EnginePlugin
activate, createMBeanInstance, createSubscription, getHookManager, getMessageHandler, getName, getObjectLockManager, getObjectProperties, getObjectProperties, getObjectProperty, getPercentCPULoad, getPluginInfo, getPluginNamespaces, getPluginState, getPluginStatus, getPluginType, getPropertyImpl, getStatusMap, handleMessage, handleMessageImpl, logDepsOutstanding, processKeysAndValues, registerActivateHook, registerDeleteHook, registerLoadHook, registerPluginNamespace, registerPluginNamespaces, registerPluginNamespaces, registerPluginNamespaces, registerSaveHook, registerTransferHook, registerUnloadHook, sendSubObjectResponse, sendSubObjectResponse, sendSubObjectResponse, setMessageHandler, setName, setObjectProperties, setObjectProperties, setObjectPropertiesNoResponse, setObjectPropertiesNoResponse, setObjectProperty, setObjectPropertyNoResponse, setPercentCPULoad, setPluginInfo, setPluginType, setPropertyImpl, transferObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

characterProps

protected static java.util.Map<Namespace,java.util.Set<java.lang.String>> characterProps
Constructor Detail

MarsLoginPlugin

public MarsLoginPlugin()
Method Detail

handleCharacterRequestMessage

protected LoginPlugin.CharacterResponseMessage handleCharacterRequestMessage(LoginPlugin.CharacterRequestMessage message,
                                                                             java.nio.channels.SocketChannel clientSocket)
Return character list. For each character, the following properties are returned:
  • Long characterId: character oid
  • String characterName
  • String displayContext: the character's display context. The DisplayContext is serialized into a string format understood by the client's default login script.
  • This implementation does not truly authorize the auth token. The auth token should contain a 32-bit integer which is taken as the account id. (bitwise negated if SecureToken is true).

    The returned world token is a fixed place holder.

    Overrides:
    handleCharacterRequestMessage in class LoginPlugin
    Parameters:
    message - Character request message.
    clientSocket - Socket to the client.

    handleCharacterDeleteMessage

    protected LoginPlugin.CharacterDeleteResponseMessage handleCharacterDeleteMessage(LoginPlugin.CharacterDeleteMessage message,
                                                                                      java.nio.channels.SocketChannel clientSocket,
                                                                                      multiverse.server.network.MVByteBuffer authorizedToken)
    Delete a character. On success, the returned properties is the supplied properties plus new properties:
  • Boolean status: TRUE
  • whatever the character factory adds to the properties
  • On an internal failure, the returned properties contain only:

  • Boolean status: FALSE
  • String errorMessage
  • Overrides:
    handleCharacterDeleteMessage in class LoginPlugin
    Parameters:
    message - Character delete message.
    clientSocket - Socket to the client.
    authorizedToken - Proxy authorization token.

    handleCharacterCreateMessage

    protected LoginPlugin.CharacterCreateResponseMessage handleCharacterCreateMessage(LoginPlugin.CharacterCreateMessage message,
                                                                                      java.nio.channels.SocketChannel clientSocket,
                                                                                      multiverse.server.network.MVByteBuffer authorizedToken)
    Create a character. The character properties are passed to the global character generator. On success, the returned properties is the supplied properties plus new properties:
  • Boolean status: TRUE
  • Long characterId: new character's oid
  • whatever the character factory adds to the properties
  • If the properties contains "errorMessage" after calling the character factory, the character is not saved, and the properties are returned to the client.

    On an internal failure, the returned properties contain only:

  • Boolean status: FALSE
  • String errorMessage
  • Overrides:
    handleCharacterCreateMessage in class LoginPlugin
    Parameters:
    message - Character create message.
    clientSocket - Socket to the client.
    authorizedToken - Proxy authorization token.

    setCharacterProperties

    protected void setCharacterProperties(java.util.Map<java.lang.String,java.io.Serializable> props,
                                          Entity entity)

    registerCharacterProperty

    public static void registerCharacterProperty(Namespace namespace,
                                                 java.lang.String propName)


    Copyright © 2008 The Multiverse Network, Inc.