internal void RPCSendConsoleMessage(string message, NetworkMessageInfo info) { if (string.IsNullOrEmpty(message)) { return; } if (message.Length > 1 && message[0] == '/') { string command = GadgetConsole.ParseArgs(message.Substring(1))[0]; if (GadgetConsole.IsCommandExecuteBlacklisted(command)) { GadgetConsole.Print($"{GadgetNetwork.GetNameByNetworkPlayer(info.sender) ?? GadgetCoreAPI.GetPlayerName()} attempted to force you to execute the blacklisted command: {message}", null, GadgetConsole.MessageSeverity.WARN); return; } } bool isOperator = GadgetConsole.IsOperator(GadgetCoreAPI.GetPlayerName()); if (isOperator) { if (message.Length > 1 && message[0] == '/') { GadgetConsole.Print($"{GadgetNetwork.GetNameByNetworkPlayer(info.sender) ?? GadgetCoreAPI.GetPlayerName()} forced you to execute the command: {message}"); } else { GadgetConsole.Print($"{GadgetNetwork.GetNameByNetworkPlayer(info.sender) ?? GadgetCoreAPI.GetPlayerName()} forced you to say: {message}"); } } GadgetConsole.SendConsoleMessage(message, GadgetCoreAPI.GetPlayerName(), isOperator, true); }
/// <summary> /// Lists all NetworkViews, their IDs, and their names in the console. /// </summary> public static void ListNetworkViews() { foreach (NetworkView view in UnityEngine.Object.FindObjectsOfType <NetworkView>().OrderBy(x => x.viewID.ToString())) { GadgetConsole.Print($"NetworkView ID: ({view.viewID}), Name: ({view.name})", "ListNetworkViews"); } }
internal void RPCSetOp(string name, bool op) { if (op) { if (!GadgetConsole.operators.Contains(name)) { GadgetConsole.operators.Add(name); if (name == GadgetCoreAPI.GetPlayerName()) { GadgetConsole.Print("You are now an operator!", null, GadgetConsole.MessageSeverity.INFO); } } } else { if (GadgetConsole.operators.Contains(name)) { GadgetConsole.operators.Remove(name); if (name == GadgetCoreAPI.GetPlayerName()) { GadgetConsole.Print("You are no longer an operator!", null, GadgetConsole.MessageSeverity.WARN); } } } }
internal void RPCBroadcastConsoleMessage(int index, string text, string sender, int severity, float sendTime) { int messageIndex = GadgetConsole.Print(text, sender, (GadgetConsole.MessageSeverity)severity); GadgetConsole.GetMessage(messageIndex).SendTime = sendTime; broadcastMessageIndices[index] = messageIndex; }
public static void Prefix(GameScript __instance, NetworkPlayer pl) { string name = GadgetNetwork.GetNameByNetworkPlayer(pl); if (!string.IsNullOrEmpty(name)) { GadgetConsole.Print($"{name} has left the game."); } }
/// <summary> /// Logs an error as a line of text into the log file. /// </summary> public void LogError(object text, bool includeConsole = true) { if (includeConsole) { GadgetConsole.Print(text?.ToString() ?? "null", LoggerName, GadgetConsole.MessageSeverity.ERROR); } foreach (string line in (text?.ToString() ?? "null").Replace('\r', '\n').Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries)) { streamWriter.WriteLine("[" + DateTime.Now + "]" + (!string.IsNullOrEmpty(LoggerName) ? "[" + LoggerName + "]" : "") + "[Error] " + line); } }
/// <summary> /// Logs a line of text to both the in-game console, as well as the log file. /// </summary> public void LogConsole(object text, GadgetConsole.MessageSeverity severity = GadgetConsole.MessageSeverity.INFO) { switch (severity) { case GadgetConsole.MessageSeverity.WARN: LogWarning(text); break; case GadgetConsole.MessageSeverity.ERROR: LogError(text); break; default: GadgetConsole.Print(text?.ToString() ?? "null", LoggerName, severity); Log(text); break; } }
internal void RPCBroadcastConsoleMessage(string text, string sender, int severity, float sendTime) { GadgetConsole.GetMessage(GadgetConsole.Print(text, sender, (GadgetConsole.MessageSeverity)severity)).SendTime = sendTime; }
public static void Prefix(PlayerScript __instance, ref string n) { PlayerScript existingPlayer = null; bool isSelf = n == Menuu.curName; if (isSelf) { existingPlayer = GadgetCoreAPI.GetPlayerByName(n); if (existingPlayer != null && existingPlayer != __instance) { existingPlayer.GetComponent <NetworkView>().RPC("SetName", RPCMode.AllBuffered, new object[] { n + "-1" }); foreach (KeyValuePair <string, PlayerScript> entry in GadgetCoreAPI.playersByName.Where(x => x.Value == existingPlayer).ToList()) { GadgetCoreAPI.playersByName.Remove(entry.Key); GadgetNetwork.NetworkPlayersByName.Remove(entry.Key); GadgetNetwork.NamesByNetworkPlayer.Remove(entry.Value.GetComponent <NetworkView>().owner); } if (InstanceTracker.PlayerScript == __instance) { GadgetCoreAPI.playerName = n + "-1"; } GadgetCoreAPI.playersByName[n + "-1"] = existingPlayer; GadgetNetwork.NetworkPlayersByName[n + "-1"] = existingPlayer.GetComponent <NetworkView>().owner; GadgetNetwork.NamesByNetworkPlayer[existingPlayer.GetComponent <NetworkView>().owner] = n + "-1"; } } else { bool wasOp = false; foreach (KeyValuePair <string, PlayerScript> entry in GadgetCoreAPI.playersByName.Where(x => x.Value == __instance).ToList()) { if (GadgetConsole.operators.Contains(entry.Key)) { GadgetConsole.operators.Remove(entry.Key); wasOp = true; } } if (wasOp) { GadgetConsole.operators.Add(n); } } if (existingPlayer == null) { existingPlayer = GadgetCoreAPI.GetPlayerByName(n + "-1"); } if (existingPlayer != null && existingPlayer != __instance) { int num = 2; while (GadgetCoreAPI.GetPlayerByName(n + "-" + num) != null) { num++; } n = n + "-" + num; } else { existingPlayer = __instance; } foreach (KeyValuePair <string, PlayerScript> entry in GadgetCoreAPI.playersByName.Where(x => x.Value == __instance).ToList()) { GadgetCoreAPI.playersByName.Remove(entry.Key); GadgetNetwork.NetworkPlayersByName.Remove(entry.Key); GadgetNetwork.NamesByNetworkPlayer.Remove(entry.Value.GetComponent <NetworkView>().owner); } if (InstanceTracker.PlayerScript == __instance) { GadgetCoreAPI.playerName = n; } GadgetCoreAPI.playersByName[n] = __instance; GadgetNetwork.NetworkPlayersByName[n] = existingPlayer.GetComponent <NetworkView>().owner; GadgetNetwork.NamesByNetworkPlayer[existingPlayer.GetComponent <NetworkView>().owner] = n; if (__instance.GetComponent <NetworkView>().owner == RPCHooks.Singleton.GetComponent <NetworkView>().owner) { GadgetNetwork.ServerPlayerName = n; } if (!isSelf) { GadgetConsole.Print($"{n} has joined the game."); } }