Advertisement
Guest User

Untitled

a guest
Apr 21st, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 3.45 KB | None | 0 0
  1. package com.akfu.world
  2.  
  3. import akka.actor.Actor
  4. import akka.actor.ActorLogging
  5. import com.akfu.world.manager.AuthenticationManager
  6. import com.akfu.common.network.protocol.message.serverToClient.ClientAuthenticationResultsMessage
  7. import com.akfu.common.network.protocol.message.serverToClient.AuthenticationResultEnum
  8. import com.akfu.world.network.protocol.frame.AuthenticationFrame
  9. import com.akfu.common.network.RemoveFrame
  10. import com.akfu.common.network.protocol.message.world.clientToServer.CharacterCreationMessage
  11. import com.akfu.common.network.protocol.message.world.clientToServer.CharacterCreationMessage
  12. import com.akfu.world.manager.CharacterManager
  13. import com.akfu.common.concurrent.AtomicWorker
  14. import com.akfu.common.concurrent.WorkerTask
  15.  
  16. final case class WorldConnected(client: WorldClient) extends WorkerTask
  17. final case class WorldDisconnected(client: WorldClient) extends WorkerTask
  18. final case class Authenticate(client: WorldClient, token: String) extends WorkerTask
  19. final case class AddToken(token: String) extends WorkerTask
  20. final case class GameTokenRequest(client: WorldClient) extends WorkerTask
  21. final case class CreateCharacter(client: WorldClient, message: CharacterCreationMessage) extends WorkerTask
  22. final case class SelectCharacter(client: WorldClient, characterId: Long) extends WorkerTask
  23.  
  24. final class WorldWorker extends AtomicWorker {  
  25.  
  26.   override def receive = {
  27.     case WorldConnected(client) =>                         connected(client)
  28.     case WorldDisconnected(client) =>                      disconnected(client)
  29.     case Authenticate(client, token) =>                    authenticate(client, token)
  30.     case AddToken(token) =>                                addToken(token)
  31.     case GameTokenRequest(client) =>                       gameTokenRequest(client)
  32.     case CreateCharacter(client, message) =>               characterCreation(client, message)
  33.     case SelectCharacter(client, characterId) =>           characterSelection(client, characterId)  
  34.     case unhandled: Any => super.receive(unhandled)
  35.   }    
  36.  
  37.   def connected(client: WorldClient) {
  38.     log info "world client connected"
  39.   }
  40.  
  41.   def disconnected(client: WorldClient) {
  42.     log info "world client disconnected"
  43.     if(client.getAccount != null) {
  44.       // TODO: set offline n shits
  45.       if(client.getCharacter != null) {
  46.         client getCharacter() save()
  47.       }
  48.     }
  49.   }  
  50.  
  51.   def authenticate(client: WorldClient, token: String) {
  52.     AuthenticationManager login(client, token)
  53.   }
  54.  
  55.   def addToken(token: String) {
  56.     log info "auth token received"
  57.     AuthenticationManager addToken token
  58.   }
  59.  
  60.   def gameTokenRequest(client: WorldClient) {
  61.     log info "game token requested"
  62.     AuthenticationManager generateGameToken client
  63.   }
  64.  
  65.   def characterSelection(client: WorldClient, characterId: Long) {
  66.     log info s"character selection request : $characterId"
  67.     CharacterManager selectCharacter(client, characterId)  
  68.   }
  69.  
  70.   def characterCreation(client: WorldClient, message: CharacterCreationMessage) {
  71.     log info "character creation request"
  72.     CharacterManager createCharacter(client,
  73.         message.characterId,
  74.         message.sex,
  75.         message.skinColorIndex,
  76.         message.hairColorIndex,
  77.         message.pupilColorIndex,
  78.         message.skinColorFactor,
  79.         message.hairColorFactor,
  80.         message.clothIndex,
  81.         message.faceIndex,
  82.         message.breed,
  83.         message.name)
  84.   }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement