Ejemplo n.º 1
0
        private void processMessage(PlayerCharacter pc, IncommingMessage msg)
        {
            pc.UpdateHeartBeat();

            try
            {
                switch (msg.MessageType)
                {
                    case (IncommingMessageType.SEND_OPENING_SCREEN):
                        handleSendOpeningScreen(pc, msg);
                        break;
                    case (IncommingMessageType.SEND_VERSION):
                        handleSendVersion(pc, msg);
                        break;
                    case (IncommingMessageType.LOG_IN):
                        handleLogIn(pc, msg);
                        break;
                    case (IncommingMessageType.HEART_BEAT):
                        pc.UpdateHeartBeat();
                        break;
                    case (IncommingMessageType.CREATE_CHAR):
                        handleCreateChar(pc, msg);
                        break;
                    case(IncommingMessageType.MOVE_TO):
                        handleMoveTo(pc, msg);
                        break;
                    case(IncommingMessageType.SEND_PM):
                        handlePM(pc, msg);
                        break;
                    case(IncommingMessageType.SIT_DOWN):
                        handleSitDown(pc, msg);
                        break;
                    case(IncommingMessageType.TURN_LEFT):
                        handleTurnLeft(pc, msg);
                        break;
                    case (IncommingMessageType.TURN_RIGHT):
                        handleTurnRight(pc, msg);
                        break;
                    case (IncommingMessageType.RAW_TEXT):
                        handleRawText(pc, msg);
                        break;
                    case(IncommingMessageType.USE_MAP_OBJECT):
                        handleUseMapObject(pc, msg);
                        break;
                    case(IncommingMessageType.LOOK_AT_INVENTORY_ITEM):
                        handleLookAtInventoryItem(pc, msg);
                        break;
                    case(IncommingMessageType.DROP_ITEM):
                        handleDropItem(pc, msg);
                        break;
                    case(IncommingMessageType.MOVE_INVENTORY_ITEM):
                        handleMoveInventoryItem(pc, msg);
                        break;
                    case(IncommingMessageType.HARVEST):
                        handleHarvest(pc, msg);
                        break;
                    case(IncommingMessageType.TOUCH_PLAYER):
                        handleTouchPlayer(pc, msg);
                        break;
                    case (IncommingMessageType.RESPOND_TO_NPC):
                        handleRespondToNPC(pc, msg);
                        break;
                    case(IncommingMessageType.ATTACK_SOMEONE):
                        handleAttackSomeone(pc, msg);
                        break;
                    default:
                        Logger.LogWarning(LogSource.World,
                            string.Format("Message {0} - no action taken", msg.ToString()), null);
                        break;
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(LogSource.World,
                    string.Format("Failed to process message {0}", msg.ToString()), ex);
            }
        }