예제 #1
0
        /// <summary>
        /// Prints a message received from a client to the console/standard output.
        /// </summary>
        /// <param name="printMessageType">The message colour/type to print.</param>
        /// <param name="asciiMessage">The character array of ASCII bytes to parse back to string. (MessageStruct.Data)</param>
        /// <param name="socket">Sends a message back to signify that the message has successfully printed.</param>
        public static void Print(PrintMessageType printMessageType, byte[] asciiMessage, ReloadedSocket socket)
        {
            // Retrieve the message to print.
            string messageToPrint = Encoding.ASCII.GetString(asciiMessage);

            // Print to screen.
            switch (printMessageType)
            {
            case PrintMessageType.PrintText:
                ConsoleFunctions.PrintMessageWithTime(messageToPrint, ConsoleFunctions.PrintMessage);
                break;


            case PrintMessageType.PrintInfo:
                ConsoleFunctions.PrintMessageWithTime(messageToPrint, ConsoleFunctions.PrintInfoMessage);
                break;


            case PrintMessageType.PrintWarning:
                ConsoleFunctions.PrintMessageWithTime(messageToPrint, ConsoleFunctions.PrintWarningMessage);
                break;


            case PrintMessageType.PrintError:
                ConsoleFunctions.PrintMessageWithTime(messageToPrint, ConsoleFunctions.PrintErrorMessage);
                break;
            }
        }
예제 #2
0
        /// <summary>
        /// Prints a message received from a client to the console/standard output.
        /// </summary>
        /// <param name="printMessageType">The message colour/type to print.</param>
        /// <param name="asciiMessage">The character array of Unicode bytes to parse back to string. (MessageStruct.Data)</param>
        public static void PrintUnicode(PrintMessageType printMessageType, byte[] asciiMessage)
        {
            // Retrieve the message to print.
            string messageToPrint = Encoding.Unicode.GetString(asciiMessage);

            PrintMessageTypeMethod(printMessageType, messageToPrint);
        }
예제 #3
0
        /// <summary>
        /// Switches on the specific message type to print and outputs it to the screen.
        /// </summary>
        /// <param name="printMessageType"></param>
        /// <param name="message"></param>
        public static void PrintMessageTypeMethod(PrintMessageType printMessageType, string message)
        {
            // Print to screen.
            switch (printMessageType)
            {
            case PrintMessageType.PrintText:    Bindings.PrintText(message);    break;

            case PrintMessageType.PrintInfo:    Bindings.PrintInfo(message);    break;

            case PrintMessageType.PrintWarning: Bindings.PrintWarning(message); break;

            case PrintMessageType.PrintError:   Bindings.PrintError(message);   break;
            }
        }
예제 #4
0
        /// <summary>
        /// Sends a message to the mod loader server to print
        /// a message to standard output with a user defined style.
        /// </summary>
        /// <param name="message">The text to print to the console.</param>
        /// <param name="printMessageType">The style of text to be printed to the screen.</param>
        public static void Print(string message, PrintMessageType printMessageType)
        {
            // Get string to print as bytes.
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);

            // Build a Server Message with text to print.
            // The style of the message is user-set.
            Message.MessageStruct clientMessage = new Message.MessageStruct((ushort)MessageTypes.MessageType.PrintText, bytesToSend);

            // Switch message type if necessary.
            switch (printMessageType)
            {
            case PrintMessageType.PrintInfo: clientMessage.MessageType = (ushort)MessageTypes.MessageType.PrintInfo; break;

            case PrintMessageType.PrintError: clientMessage.MessageType = (ushort)MessageTypes.MessageType.PrintError; break;

            case PrintMessageType.PrintWarning: clientMessage.MessageType = (ushort)MessageTypes.MessageType.PrintWarning; break;
            }

            // Send the message.
            ServerClient.ClientSocket.SendData(clientMessage, false);
        }
예제 #5
0
        /// <summary>
        /// Sends a message to the mod loader server to print
        /// a message to standard output with a user defined style.
        /// </summary>
        /// <param name="message">The text to print to the console.</param>
        /// <param name="printMessageType">The style of text to be printed to the screen.</param>
        public static void Print(string message, PrintMessageType printMessageType)
        {
            // Get string to print as bytes.
            byte[] bytesToSend = Encoding.Unicode.GetBytes(message);

            // Build a Server Message with text to print.
            // The style of the message is user-set.
            Message clientMessage = new Message((ushort)MessageTypes.MessageType.PrintTextUnicode, bytesToSend);

            // Switch message type if necessary.
            switch (printMessageType)
            {
            case PrintMessageType.PrintInfo: clientMessage.MessageType = (ushort)MessageTypes.MessageType.PrintInfoUnicode; break;

            case PrintMessageType.PrintError: clientMessage.MessageType = (ushort)MessageTypes.MessageType.PrintErrorUnicode; break;

            case PrintMessageType.PrintWarning: clientMessage.MessageType = (ushort)MessageTypes.MessageType.PrintWarningUnicode; break;
            }

            // Send the message.
            ReloadedClient.GetFirstPeer()?.Send(clientMessage.GetBytes(), SendOptions.ReliableOrdered);
        }