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)
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)
override IReadOnlyList< Client > ConnectedClients
void SendDirectChatMessage(string txt, Client recipient, ChatMessageType messageType=ChatMessageType.Server)