3 using Microsoft.Xna.Framework;
4 using MoonSharp.Interpreter;
8 internal enum LuaCsMessageOrigin
21 private const string LogPrefix =
"SV";
22 private const int NetMaxLength = 1024;
23 private const int NetMaxMessages = 60;
27 private static bool lockLog =
false;
29 private const string LogPrefix =
"CL";
37 string errorString =
"";
40 case NetRuntimeException netRuntimeException:
41 if (netRuntimeException.DecoratedMessage ==
null)
43 errorString = netRuntimeException.ToString();
48 errorString = $
"{netRuntimeException.DecoratedMessage}: {netRuntimeException}";
51 case InterpreterException interpreterException:
52 if (interpreterException.DecoratedMessage ==
null)
54 errorString = interpreterException.ToString();
58 errorString = interpreterException.DecoratedMessage;
62 errorString = ex.StackTrace !=
null
64 : $
"{ex}\n{Environment.StackTrace}";
68 LogError(Environment.UserName +
" " + errorString, origin);
71 public static void LogError(
string message, LuaCsMessageOrigin origin)
75 message = message.Replace(Environment.UserName,
"USERNAME");
80 case LuaCsMessageOrigin.LuaCs:
81 case LuaCsMessageOrigin.Unknown:
82 LogError($
"[{LogPrefix} ERROR] {message}");
84 case LuaCsMessageOrigin.LuaMod:
85 LogError($
"[{LogPrefix} LUA ERROR] {message}");
87 case LuaCsMessageOrigin.CSharpMod:
88 LogError($
"[{LogPrefix} CS ERROR] {message}");
98 public static void LogMessage(
string message, Color? serverColor =
null, Color? clientColor =
null)
100 if (serverColor ==
null) { serverColor = Color.MediumPurple; }
101 if (clientColor ==
null) { clientColor = Color.Purple; }
104 Log(message, serverColor);
106 Log(message, clientColor);
114 DebugConsole.NewMessage(message, color);
117 void broadcastMessage(
string m)
119 foreach (var client
in GameMain.Server.ConnectedClients)
130 GameMain.Server.SendDirectChatMessage(consoleMessage, client);
138 GameMain.Server.SendDirectChatMessage(logMessage, client);
144 if (
GameMain.Server.ServerSettings.SaveServerLogs)
146 string logMessage =
"[LuaCs] " + message;
147 GameMain.Server.ServerSettings.ServerLog.WriteLine(logMessage, messageType,
false);
157 for (
int i = 0; i < message.Length; i += NetMaxLength)
159 string subStr = message.Substring(i, Math.Min(1024, message.Length - i));
161 broadcastMessage(subStr);
168 partial class LuaCsSetup
object Call(string name, params object[] args)
static void LogError(string message, LuaCsMessageOrigin origin)
static void LogError(string message)
static LuaCsExceptionHandler ExceptionHandler
static LuaCsMessageLogger MessageLogger
static void LogMessage(string message, Color? serverColor=null, Color? clientColor=null)
static bool HideUserNames
static void Log(string message, Color? color=null, ServerLog.MessageType messageType=ServerLog.MessageType.ServerMessage)
static void HandleException(Exception ex, LuaCsMessageOrigin origin)
static void PrintCsMessage(object message)
static void PrintGenericError(object message)
static void PrintLuaError(object message)
static void PrintCsError(object message)
static ChatMessage Create(string senderName, string text, ChatMessageType type, Entity sender, Client client=null, PlayerConnectionChangeType changeType=PlayerConnectionChangeType.None, Color? textColor=null)