コード例 #1
0
ファイル: MsgSessionInfo.cs プロジェクト: rafffel/acplugins
 public MsgSessionInfo(ACSProtocol.MessageType overridingNewSessionFlag)
     : base(ACSProtocol.MessageType.ACSP_NEW_SESSION)
 {
     if (overridingNewSessionFlag != ACSProtocol.MessageType.ACSP_NEW_SESSION)
     {
         throw new Exception("MsgSessionInfo's type may only be overriden by ACSP_NEW_SESSION");
     }
 }
コード例 #2
0
ファイル: AcMessageParser.cs プロジェクト: tankyx/actools
        private static PluginMessage CreateInstance(ACSProtocol.MessageType msgType)
        {
            switch (msgType)
            {
            case ACSProtocol.MessageType.ACSP_VERSION:
                return(new MsgVersionInfo());

            case ACSProtocol.MessageType.ACSP_SESSION_INFO:
                return(new MsgSessionInfo());

            case ACSProtocol.MessageType.ACSP_NEW_SESSION:
                return(new MsgSessionInfo(ACSProtocol.MessageType.ACSP_NEW_SESSION));

            case ACSProtocol.MessageType.ACSP_NEW_CONNECTION:
                return(new MsgNewConnection());

            case ACSProtocol.MessageType.ACSP_CONNECTION_CLOSED:
                return(new MsgConnectionClosed());

            case ACSProtocol.MessageType.ACSP_CAR_UPDATE:
                return(new MsgCarUpdate());

            case ACSProtocol.MessageType.ACSP_CAR_INFO:
                return(new MsgCarInfo());

            case ACSProtocol.MessageType.ACSP_LAP_COMPLETED:
                return(new MsgLapCompleted());

            case ACSProtocol.MessageType.ACSP_END_SESSION:
                return(new MsgSessionEnded());

            case ACSProtocol.MessageType.ACSP_CLIENT_EVENT:
                return(new MsgClientEvent());

            case ACSProtocol.MessageType.ACSP_REALTIMEPOS_INTERVAL:
                return(new RequestRealtimeInfo());

            case ACSProtocol.MessageType.ACSP_GET_CAR_INFO:
                return(new RequestCarInfo());

            case ACSProtocol.MessageType.ACSP_SEND_CHAT:
                return(new RequestSendChat());

            case ACSProtocol.MessageType.ACSP_BROADCAST_CHAT:
                return(new RequestBroadcastChat());

            case ACSProtocol.MessageType.ACSP_ADMIN_COMMAND:
                return(new RequestAdminCommand());

            case ACSProtocol.MessageType.ACSP_NEXT_SESSION:
                return(new RequestNextSession());

            case ACSProtocol.MessageType.ACSP_RESTART_SESSION:
                return(new RequestRestartSession());

            case ACSProtocol.MessageType.ACSP_CHAT:
                return(new MsgChat());

            case ACSProtocol.MessageType.ACSP_GET_SESSION_INFO:
                return(new RequestSessionInfo());

            case ACSProtocol.MessageType.ACSP_CLIENT_LOADED:
                return(new MsgClientLoaded());

            case ACSProtocol.MessageType.ACSP_SET_SESSION_INFO:
                return(new RequestSetSession());

            case ACSProtocol.MessageType.ACSP_ERROR:
                return(new MsgError());

            case ACSProtocol.MessageType.ACSP_KICK_USER:
                return(new RequestKickUser());

            case ACSProtocol.MessageType.ERROR_BYTE:
                throw new Exception("CreateInstance: MessageType is not set or wrong (ERROR_BYTE=0)");

            case ACSProtocol.MessageType.ACSP_CE_COLLISION_WITH_CAR:
            case ACSProtocol.MessageType.ACSP_CE_COLLISION_WITH_ENV:
                throw new Exception("CreateInstance: MessageType " + msgType
                                    + " is not meant to be used as MessageType, but as Subtype to ACSP_CLIENT_EVENT");

            default:
                throw new Exception("MessageType " + msgType + " is not known or implemented");
            }
        }
コード例 #3
0
ファイル: PluginMessage.cs プロジェクト: tankyx/actools
 public PluginMessage(ACSProtocol.MessageType type)
 {
     Type = type;
 }