private IEnumerator ServerRestartWarning(string info, int iSeconds)
    {
        if (iSeconds >= 0)
        {
            if (!string.IsNullOrEmpty(info))
            {
                ConsoleNetwork.BroadcastToAllClients("chat.add", (object)0, (object)("<color=#fff>SERVER</color> Restarting: " + info));
            }
            for (int i = iSeconds; i > 0; --i)
            {
                if (i == iSeconds || i % 60 == 0 || i < 300 && i % 30 == 0 || (i < 60 && i % 10 == 0 || i < 10))
                {
                    ConsoleNetwork.BroadcastToAllClients("chat.add", (object)0, (object)("<color=#fff>SERVER</color> Restarting in " + (object)i + " seconds!"));
                    Debug.Log((object)("Restarting in " + (object)i + " seconds"));
                }
                yield return((object)CoroutineEx.waitForSeconds(1f));
            }
            ConsoleNetwork.BroadcastToAllClients("chat.add", (object)0, (object)"<color=#fff>SERVER</color> Restarting");
            yield return((object)CoroutineEx.waitForSeconds(2f));

            foreach (BasePlayer basePlayer in BasePlayer.activePlayerList.ToArray())
            {
                basePlayer.Kick("Server Restarting");
            }
            yield return((object)CoroutineEx.waitForSeconds(1f));

            ConsoleSystem.Run(ConsoleSystem.Option.get_Server(), "quit", (object[])Array.Empty <object>());
        }
    }
Beispiel #2
0
        public static void cinematic_stop(Arg arg)
        {
            if (!arg.IsServerside)
            {
                return;
            }
            BasePlayer basePlayer = ArgEx.Player(arg);

            if (!(basePlayer == null))
            {
                string strCommand = string.Empty;
                if (basePlayer.IsAdmin || basePlayer.IsDeveloper)
                {
                    strCommand = arg.cmd.FullName + " " + arg.FullString + " " + basePlayer.UserIDString;
                }
                else if (Server.cinematic)
                {
                    strCommand = arg.cmd.FullName + " " + basePlayer.UserIDString;
                }
                if (Server.cinematic)
                {
                    ConsoleNetwork.BroadcastToAllClients(strCommand);
                }
                else if (basePlayer.IsAdmin || basePlayer.IsDeveloper)
                {
                    ConsoleNetwork.SendClientCommand(arg.Connection, strCommand);
                }
            }
        }
    private static bool LineOfSightInternal(
        Vector3 p0,
        Vector3 p1,
        int layerMask,
        float padding0,
        float padding1)
    {
        Vector3 vector3_1 = Vector3.op_Subtraction(p1, p0);
        float   magnitude = ((Vector3) ref vector3_1).get_magnitude();

        if ((double)magnitude <= (double)padding0 + (double)padding1)
        {
            return(true);
        }
        Vector3    vector3_2 = Vector3.op_Division(vector3_1, magnitude);
        Vector3    vector3_3 = Vector3.op_Multiply(vector3_2, padding0);
        Vector3    vector3_4 = Vector3.op_Multiply(vector3_2, padding1);
        RaycastHit raycastHit;

        if (!Physics.Linecast(Vector3.op_Addition(p0, vector3_3), Vector3.op_Subtraction(p1, vector3_4), ref raycastHit, layerMask, (QueryTriggerInteraction)1))
        {
            if (ConVar.Vis.lineofsight)
            {
                ConsoleNetwork.BroadcastToAllClients("ddraw.line", (object)60f, (object)Color.get_green(), (object)p0, (object)p1);
            }
            return(true);
        }
        if (ConVar.Vis.lineofsight)
        {
            ConsoleNetwork.BroadcastToAllClients("ddraw.line", (object)60f, (object)Color.get_red(), (object)p0, (object)p1);
            ConsoleNetwork.BroadcastToAllClients("ddraw.text", (object)60f, (object)Color.get_white(), (object)((RaycastHit) ref raycastHit).get_point(), (object)((Object)((RaycastHit) ref raycastHit).get_collider()).get_name());
        }
        return(false);
    }
Beispiel #4
0
        object OnUserChat(IPlayer player, string message)
        {
            object hookResult = Interface.CallHook("OnBetterChat", player, message);

            if (hookResult is string)
            {
                message = (string)hookResult;
            }
            else if (hookResult != null)
            {
                return(null);
            }

            var output = ChatGroup.FormatMessage(player, message);

            if (output == null)
            {
                return(null);
            }

#if RUST
            ConsoleNetwork.BroadcastToAllClients("chat.add", new object[] { player.Id, output.Chat });
#else
            server.Broadcast(output.Chat);
#endif

            Puts(output.Console);

            return(true);
        }
Beispiel #5
0
 public static void Init_Config()
 {
     ConsoleNetwork.Init();
     ConsoleSystem.UpdateValuesFromCommandLine();
     ConsoleSystem.Run(ConsoleSystem.Option.Server, "server.readcfg");
     ServerUsers.Load();
 }
Beispiel #6
0
    private void DebugHurt(HitInfo info)
    {
        if (!ConVar.Vis.damage)
        {
            return;
        }
        if (Vector3.op_Inequality(info.PointStart, info.PointEnd))
        {
            ConsoleNetwork.BroadcastToAllClients("ddraw.arrow", (object)60, (object)Color.get_cyan(), (object)info.PointStart, (object)info.PointEnd, (object)0.1f);
            ConsoleNetwork.BroadcastToAllClients("ddraw.sphere", (object)60, (object)Color.get_cyan(), (object)info.HitPositionWorld, (object)0.01f);
        }
        string str1 = "";

        for (int index = 0; index < info.damageTypes.types.Length; ++index)
        {
            float type = info.damageTypes.types[index];
            if ((double)type != 0.0)
            {
                str1 = str1 + " " + ((DamageType)index).ToString().PadRight(10) + type.ToString("0.00") + "\n";
            }
        }
        string str2 = "<color=lightblue>Damage:</color>".PadRight(10) + info.damageTypes.Total().ToString("0.00") + "\n<color=lightblue>Health:</color>".PadRight(10) + this.health.ToString("0.00") + " / " + ((double)this.health - (double)info.damageTypes.Total() <= 0.0 ? (object)"<color=red>" : (object)"<color=green>") + (this.health - info.damageTypes.Total()).ToString("0.00") + "</color>" + "\n<color=lightblue>HitEnt:</color>".PadRight(10) + (object)this + "\n<color=lightblue>HitBone:</color>".PadRight(10) + info.boneName + "\n<color=lightblue>Attacker:</color>".PadRight(10) + (object)info.Initiator + "\n<color=lightblue>WeaponPrefab:</color>".PadRight(10) + (object)info.WeaponPrefab + "\n<color=lightblue>Damages:</color>\n" + str1;

        ConsoleNetwork.BroadcastToAllClients("ddraw.text", (object)60, (object)Color.get_white(), (object)info.HitPositionWorld, (object)str2);
    }
Beispiel #7
0
        /// <summary>
        /// Broadcasts the specified chat message and prefix to all players
        /// </summary>
        /// <param name="message"></param>
        /// <param name="userId"></param>
        /// <param name="prefix"></param>
        /// <param name="args"></param>
        public void Broadcast(string message, string prefix, ulong userId = 0, params object[] args)
        {
            message = args.Length > 0 ? string.Format(Formatter.ToUnity(message), args) : Formatter.ToUnity(message);
            var formatted = prefix != null ? $"{prefix} {message}" : message;

            ConsoleNetwork.BroadcastToAllClients("chat.add", userId, formatted, 1.0);
        }
Beispiel #8
0
 /// <summary>
 /// Print a message to every players chat log
 /// </summary>
 /// <param name="format"></param>
 /// <param name="args"></param>
 protected void PrintToChat(string format, params object[] args)
 {
     if (BasePlayer.activePlayerList.Count >= 1)
     {
         ConsoleNetwork.BroadcastToAllClients("chat.add", 0, args.Length > 0 ? string.Format(format, args) : format, 1f);
     }
 }
 public static void Init_Config()
 {
     ConsoleNetwork.Init();
     ConsoleSystem.UpdateValuesFromCommandLine();
     ConsoleSystem.Run(ConsoleSystem.Option.get_Server(), "server.readcfg", (object[])Array.Empty <object>());
     ServerUsers.Load();
 }
 protected void PrintToConsole(string format, params object[] args)
 {
     if (BasePlayer.activePlayerList.Count >= 1)
     {
         ConsoleNetwork.BroadcastToAllClients(String.Concat("echo ", (args.Length != 0 ? String.Format(format, args) : format)), Array.Empty <object>());
     }
 }
 internal static void OnClientCommand(Message packet)
 {
     if (packet.get_read().get_unread() > Server.maxcommandpacketsize)
     {
         Debug.LogWarning((object)"Dropping client command due to size");
     }
     else
     {
         string str = packet.get_read().String();
         if (packet.connection == null || ((Connection)packet.connection).connected == null)
         {
             Debug.LogWarning((object)("Client without connection tried to run command: " + str));
         }
         else
         {
             ConsoleSystem.Option server = ConsoleSystem.Option.get_Server();
             ConsoleSystem.Option option = ((ConsoleSystem.Option) ref server).FromConnection((Connection)packet.connection);
             string strCommand           = ConsoleSystem.Run(((ConsoleSystem.Option) ref option).Quiet(), str, (object[])Array.Empty <object>());
             if (string.IsNullOrEmpty(strCommand))
             {
                 return;
             }
             ConsoleNetwork.SendClientReply((Connection)packet.connection, strCommand);
         }
     }
 }
Beispiel #12
0
    private static bool LineOfSightInternal(Vector3 p0, Vector3 p1, int layerMask, float padding0, float padding1)
    {
        RaycastHit raycastHit;
        Vector3    vector3 = p1 - p0;
        float      single  = vector3.magnitude;

        if (single <= padding0 + padding1)
        {
            return(true);
        }
        Vector3 vector31 = vector3 / single;
        Vector3 vector32 = vector31 * padding0;
        Vector3 vector33 = vector31 * padding1;

        if (!UnityEngine.Physics.Linecast(p0 + vector32, p1 - vector33, out raycastHit, layerMask, QueryTriggerInteraction.Ignore))
        {
            if (ConVar.Vis.lineofsight)
            {
                ConsoleNetwork.BroadcastToAllClients("ddraw.line", new object[] { 60f, Color.green, p0, p1 });
            }
            return(true);
        }
        if (ConVar.Vis.lineofsight)
        {
            ConsoleNetwork.BroadcastToAllClients("ddraw.line", new object[] { 60f, Color.red, p0, p1 });
            ConsoleNetwork.BroadcastToAllClients("ddraw.text", new object[] { 60f, Color.white, raycastHit.point, raycastHit.collider.name });
        }
        return(false);
    }
    private void DebugHurt(HitInfo info)
    {
        if (!ConVar.Vis.damage)
        {
            return;
        }
        if (info.PointStart != info.PointEnd)
        {
            ConsoleNetwork.BroadcastToAllClients("ddraw.arrow", 60, Color.cyan, info.PointStart, info.PointEnd, 0.1f);
            ConsoleNetwork.BroadcastToAllClients("ddraw.sphere", 60, Color.cyan, info.HitPositionWorld, 0.01f);
        }
        string text = "";

        for (int i = 0; i < info.damageTypes.types.Length; i++)
        {
            float num = info.damageTypes.types[i];
            if (num != 0f)
            {
                string[] obj = new string[5] {
                    text, " ", null, null, null
                };
                DamageType damageType = (DamageType)i;
                obj[2] = damageType.ToString().PadRight(10);
                obj[3] = num.ToString("0.00");
                obj[4] = "\n";
                text   = string.Concat(obj);
            }
        }
        string text2 = string.Concat("<color=lightblue>Damage:</color>".PadRight(10), info.damageTypes.Total().ToString("0.00"), "\n<color=lightblue>Health:</color>".PadRight(10), health.ToString("0.00"), " / ", (health - info.damageTypes.Total() <= 0f) ? "<color=red>" : "<color=green>", (health - info.damageTypes.Total()).ToString("0.00"), "</color>", "\n<color=lightblue>HitEnt:</color>".PadRight(10), this, "\n<color=lightblue>HitBone:</color>".PadRight(10), info.boneName, "\n<color=lightblue>Attacker:</color>".PadRight(10), info.Initiator, "\n<color=lightblue>WeaponPrefab:</color>".PadRight(10), info.WeaponPrefab, "\n<color=lightblue>Damages:</color>\n", text);

        ConsoleNetwork.BroadcastToAllClients("ddraw.text", 60, Color.white, info.HitPositionWorld, text2);
    }
Beispiel #14
0
 void BroadcastChat(string name, string message, ulong userId = 0, string censormessage = "")
 {
     if (string.IsNullOrEmpty(censormessage))
     {
         censormessage = message;
     }
     ConsoleNetwork.BroadcastToAllClients("chat.add", userId, string.IsNullOrEmpty(name) ? $"{censormessage}" : $"{name}: {censormessage}");
 }
Beispiel #15
0
 /// <summary>
 /// Print a message to every players console log
 /// </summary>
 /// <param name="format"></param>
 /// <param name="args"></param>
 protected void PrintToConsole(string format, params object[] args)
 {
     if (BasePlayer.activePlayerList.Count < 1)
     {
         return;
     }
     ConsoleNetwork.BroadcastToAllClients("echo " + (args.Length > 0 ? string.Format(format, args) : format));
 }
Beispiel #16
0
 private static void HandleClientUpdate(ClientStatusUpdate <EasyAntiCheat.Server.Hydra.Client> clientStatus)
 {
     using (TimeWarning.New("AntiCheatKickPlayer", 10L))
     {
         EasyAntiCheat.Server.Hydra.Client client = clientStatus.get_Client();
         Connection connection = EACServer.GetConnection(client);
         if (connection == null)
         {
             Debug.LogError((object)("EAC status update for invalid client: " + (object)((EasyAntiCheat.Server.Hydra.Client) ref client).get_ClientID()));
         }
         else
         {
             if (EACServer.ShouldIgnore(connection))
             {
                 return;
             }
             if (clientStatus.get_RequiresKick())
             {
                 string message = clientStatus.get_Message();
                 if (string.IsNullOrEmpty(message))
                 {
                     message = clientStatus.get_Status().ToString();
                 }
                 Debug.Log((object)("[EAC] Kicking " + (object)(ulong)connection.userid + " (" + message + ")"));
                 connection.authStatus = (__Null)"eac";
                 ((Network.Server)Net.sv).Kick(connection, "EAC: " + message);
                 DateTime?nullable = new DateTime?();
                 if (clientStatus.IsBanned(ref nullable))
                 {
                     connection.authStatus = (__Null)"eacbanned";
                     Interface.CallHook("OnPlayerBanned", (object)connection, (object)connection.authStatus);
                     ConsoleNetwork.BroadcastToAllClients("chat.add", (object)0, (object)("<color=#fff>SERVER</color> Kicking " + (string)connection.username + " (banned by anticheat)"));
                     if (!nullable.HasValue)
                     {
                         Entity.DeleteBy((ulong)connection.userid);
                     }
                 }
                 EACServer.easyAntiCheat.UnregisterClient(client);
                 EACServer.client2connection.Remove(client);
                 EACServer.connection2client.Remove(connection);
                 EACServer.connection2status.Remove(connection);
             }
             else if (clientStatus.get_Status() == 2)
             {
                 EACServer.OnAuthenticatedLocal(connection);
                 EACServer.easyAntiCheat.SetClientNetworkState(client, false);
             }
             else
             {
                 if (clientStatus.get_Status() != 5)
                 {
                     return;
                 }
                 EACServer.OnAuthenticatedRemote(connection);
             }
         }
     }
 }
Beispiel #17
0
 public void Broadcast(string message, string prefix, ulong userId = 0L, params object[] args)
 {
     if (!String.IsNullOrEmpty(message))
     {
         message = (args.Length != 0 ? String.Format(Formatter.ToUnity(message), args) : Formatter.ToUnity(message));
         string str = (prefix != null ? String.Concat(prefix, ": ", message) : message);
         ConsoleNetwork.BroadcastToAllClients("chat.add", new Object[] { userId, str, 1 });
     }
 }
Beispiel #18
0
        object OnPlayerChat(ConsoleSystem.Arg arg, Chat.ChatChannel chatchannel)
        {
            BasePlayer inputChatBasePlayer = arg.Connection.player as BasePlayer;
            String     playerName          = arg.Connection.username;
            String     message             = arg.GetString(0);
            String     convertMessage      = "KR".Equals(InfoUtils.GetUserMode(inputChatBasePlayer, User[inputChatBasePlayer.UserIDString])) ? StringUtils.getConvertKor(message) : message;

            // 콘솔로그
            Puts(playerName + ": " + convertMessage);

            // 욕설 변환
            convertMessage = this.getChangeForbiddenWord(convertMessage, inputChatBasePlayer, chatchannel);

            if (!isUsePlugin("BetterChat"))
            {
                if (chatchannel == Chat.ChatChannel.Team)
                {
                    List <Connection> sendUserList      = new List <Connection>();
                    RelationshipManager.PlayerTeam team = inputChatBasePlayer.Team;
                    if (null == team || team.members.Count < 1)
                    {
                        return(true);
                    }
                    foreach (ulong teamUserId in team.members)
                    {
                        Connection inUser = BasePlayer.FindByID(teamUserId).Connection;
                        if (null != inUser)
                        {
                            sendUserList.Add(inUser);
                        }
                    }
                    // 메시지 전송
                    if (sendUserList.Count > 0)
                    {
                        ConsoleNetwork.SendClientCommand(sendUserList, "chat.add2", new object[] { chatchannel, inputChatBasePlayer.UserIDString, convertMessage, "[TEAM] " + inputChatBasePlayer.displayName, "#" + InfoUtils.GetUserNameColor() });
                    }
                }
                else
                {
                    List <Connection> sendUserList = new List <Connection>();
                    foreach (BasePlayer basePlayer in BasePlayer.activePlayerList)
                    {
                        sendUserList.Add(basePlayer.Connection);
                    }
                    // 메시지 전송
                    if (sendUserList.Count > 0)
                    {
                        ConsoleNetwork.SendClientCommand(sendUserList, "chat.add2", new object[] { chatchannel, inputChatBasePlayer.UserIDString, convertMessage, inputChatBasePlayer.displayName, "#" + InfoUtils.GetUserNameColor() });
                    }
                }

                return(false);
            }

            return(null);
        }
 protected void PrintToChat(string format, params object[] args)
 {
     if (BasePlayer.activePlayerList.Count >= 1)
     {
         System.Object[] objArray = new Object[] { 0, null, null };
         objArray[1] = (args.Length != 0 ? String.Format(format, args) : format);
         objArray[2] = 1f;
         ConsoleNetwork.BroadcastToAllClients("chat.add", objArray);
     }
 }
Beispiel #20
0
    private static bool LineOfSightInternal(Vector3 p0, Vector3 p1, int layerMask, float padding0, float padding1)
    {
        if (!ValidBounds.Test(p0))
        {
            return(false);
        }
        if (!ValidBounds.Test(p1))
        {
            return(false);
        }
        Vector3 vector    = p1 - p0;
        float   magnitude = vector.magnitude;

        if (magnitude <= padding0 + padding1)
        {
            return(true);
        }
        Vector3    vector2     = vector / magnitude;
        Ray        ray         = new Ray(p0 + vector2 * padding0, vector2);
        float      maxDistance = magnitude - padding0 - padding1;
        bool       flag;
        RaycastHit hitInfo;

        if (((uint)layerMask & 0x800000u) != 0)
        {
            flag = Trace(ray, 0f, out hitInfo, maxDistance, layerMask, QueryTriggerInteraction.Ignore);
            if (ConVar.AntiHack.losradius > 0f && !flag)
            {
                flag = Trace(ray, ConVar.AntiHack.losradius, out hitInfo, maxDistance, layerMask, QueryTriggerInteraction.Ignore);
            }
        }
        else
        {
            flag = UnityEngine.Physics.Raycast(ray, out hitInfo, maxDistance, layerMask, QueryTriggerInteraction.Ignore);
            if (ConVar.AntiHack.losradius > 0f && !flag)
            {
                flag = UnityEngine.Physics.SphereCast(ray, ConVar.AntiHack.losradius, out hitInfo, maxDistance, layerMask, QueryTriggerInteraction.Ignore);
            }
        }
        if (!flag)
        {
            if (ConVar.Vis.lineofsight)
            {
                ConsoleNetwork.BroadcastToAllClients("ddraw.line", 60f, Color.green, p0, p1);
            }
            return(true);
        }
        if (ConVar.Vis.lineofsight)
        {
            ConsoleNetwork.BroadcastToAllClients("ddraw.line", 60f, Color.red, p0, p1);
            ConsoleNetwork.BroadcastToAllClients("ddraw.text", 60f, Color.white, hitInfo.point, hitInfo.collider.name);
        }
        return(false);
    }
    private void DebugHurt(HitInfo info)
    {
        if (!ConVar.Vis.damage)
        {
            return;
        }
        if (info.PointStart != info.PointEnd)
        {
            ConsoleNetwork.BroadcastToAllClients("ddraw.arrow", new object[] { 60, Color.cyan, info.PointStart, info.PointEnd, 0.1f });
            ConsoleNetwork.BroadcastToAllClients("ddraw.sphere", new object[] { 60, Color.cyan, info.HitPositionWorld, 0.01f });
        }
        string str = "";

        for (int i = 0; i < (int)info.damageTypes.types.Length; i++)
        {
            float single = info.damageTypes.types[i];
            if (single != 0f)
            {
                string[]   strArrays  = new string[] { str, " ", null, null, null };
                DamageType damageType = (DamageType)i;
                strArrays[2] = damageType.ToString().PadRight(10);
                strArrays[3] = single.ToString("0.00");
                strArrays[4] = "\n";
                str          = string.Concat(strArrays);
            }
        }
        object[] initiator = new object[18];
        initiator[0] = "<color=lightblue>Damage:</color>".PadRight(10);
        float single1 = info.damageTypes.Total();

        initiator[1]  = single1.ToString("0.00");
        initiator[2]  = "\n<color=lightblue>Health:</color>".PadRight(10);
        single1       = this.health;
        initiator[3]  = single1.ToString("0.00");
        initiator[4]  = " / ";
        initiator[5]  = (this.health - info.damageTypes.Total() <= 0f ? "<color=red>" : "<color=green>");
        single1       = this.health - info.damageTypes.Total();
        initiator[6]  = single1.ToString("0.00");
        initiator[7]  = "</color>";
        initiator[8]  = "\n<color=lightblue>HitEnt:</color>".PadRight(10);
        initiator[9]  = this;
        initiator[10] = "\n<color=lightblue>HitBone:</color>".PadRight(10);
        initiator[11] = info.boneName;
        initiator[12] = "\n<color=lightblue>Attacker:</color>".PadRight(10);
        initiator[13] = info.Initiator;
        initiator[14] = "\n<color=lightblue>WeaponPrefab:</color>".PadRight(10);
        initiator[15] = info.WeaponPrefab;
        initiator[16] = "\n<color=lightblue>Damages:</color>\n";
        initiator[17] = str;
        string str1 = string.Concat(initiator);

        ConsoleNetwork.BroadcastToAllClients("ddraw.text", new object[] { 60, Color.white, info.HitPositionWorld, str1 });
    }
 private static void HandleClientUpdate(ClientStatusUpdate <EasyAntiCheat.Server.Hydra.Client> clientStatus)
 {
     using (TimeWarning timeWarning = TimeWarning.New("AntiCheatKickPlayer", (long)10))
     {
         EasyAntiCheat.Server.Hydra.Client client = clientStatus.Client;
         Connection connection = EACServer.GetConnection(client);
         if (connection == null)
         {
             Debug.LogError(string.Concat("EAC status update for invalid client: ", client.ClientID));
         }
         else if (!EACServer.ShouldIgnore(connection))
         {
             if (clientStatus.RequiresKick)
             {
                 string message = clientStatus.Message;
                 if (string.IsNullOrEmpty(message))
                 {
                     message = clientStatus.Status.ToString();
                 }
                 Debug.Log(string.Concat(new object[] { "[EAC] Kicking ", connection.userid, " (", message, ")" }));
                 connection.authStatus = "eac";
                 Network.Net.sv.Kick(connection, string.Concat("EAC: ", message));
                 DateTime?nullable = null;
                 if (clientStatus.IsBanned(out nullable))
                 {
                     connection.authStatus = "eacbanned";
                     Interface.CallHook("OnPlayerBanned", connection, connection.authStatus);
                     ConsoleNetwork.BroadcastToAllClients("chat.add", new object[] { 0, string.Concat("<color=#fff>SERVER</color> Kicking ", connection.username, " (banned by anticheat)") });
                     if (!nullable.HasValue)
                     {
                         Entity.DeleteBy(connection.userid);
                     }
                 }
                 EACServer.easyAntiCheat.UnregisterClient(client);
                 EACServer.client2connection.Remove(client);
                 EACServer.connection2client.Remove(connection);
                 EACServer.connection2status.Remove(connection);
             }
             else if (clientStatus.Status == ClientStatus.ClientAuthenticatedLocal)
             {
                 EACServer.OnAuthenticatedLocal(connection);
                 EACServer.easyAntiCheat.SetClientNetworkState(client, false);
             }
             else if (clientStatus.Status == ClientStatus.ClientAuthenticatedRemote)
             {
                 EACServer.OnAuthenticatedRemote(connection);
             }
         }
     }
 }
Beispiel #23
0
 public static void Broadcast(this Plugin plugin, string langKey, params object[] args)
 {
     if (!RegistredPlugins.ContainsKey(plugin.Name))
     {
         Logger.Error($"'{plugin.Name}' пытается вызвать RustyLang.Broadcast, но он не содержит список сообщений");
         return;
     }
     if (!RegistredPlugins[plugin.Name].ContainsKey(langKey))
     {
         Logger.Error($"'{plugin.Name}' пытается вызвать RustyLang.Broadcast, но он не содержит указанное сообщение '{langKey}'");
         return;
     }
     ConsoleNetwork.BroadcastToAllClients("chat.add", 0, string.Format(RegistredPlugins[plugin.Name][langKey], args));
 }
Beispiel #24
0
 public static void RestartServer(string strNotice, int iSeconds)
 {
     if (Object.op_Equality((Object)SingletonComponent <ServerMgr> .Instance, (Object)null))
     {
         return;
     }
     if (((ServerMgr)SingletonComponent <ServerMgr> .Instance).restartCoroutine != null)
     {
         ConsoleNetwork.BroadcastToAllClients("chat.add", (object)0, (object)"<color=#fff>SERVER</color> Restart interrupted!");
         ((MonoBehaviour)SingletonComponent <ServerMgr> .Instance).StopCoroutine(((ServerMgr)SingletonComponent <ServerMgr> .Instance).restartCoroutine);
         ((ServerMgr)SingletonComponent <ServerMgr> .Instance).restartCoroutine = (IEnumerator)null;
     }
     ((ServerMgr)SingletonComponent <ServerMgr> .Instance).restartCoroutine = ((ServerMgr)SingletonComponent <ServerMgr> .Instance).ServerRestartWarning(strNotice, iSeconds);
     ((MonoBehaviour)SingletonComponent <ServerMgr> .Instance).StartCoroutine(((ServerMgr)SingletonComponent <ServerMgr> .Instance).restartCoroutine);
     ((ServerMgr)SingletonComponent <ServerMgr> .Instance).UpdateServerInformation();
 }
Beispiel #25
0
        void LandingCheck(BaseEntity entity)
        {
            var distance = Vector3.Distance(entity.transform.position, GetGroundPosition(entity.transform.position));

            if (distance >= 10f)
            {
                timer.Once(1f, () => LandingCheck(entity));
                return;
            }

            var pos      = entity.transform.position;
            var startPos = new Vector3(pos.x, pos.y + 5 + supplyDropArrowLength, pos.z);
            var endPos   = new Vector3(pos.x, pos.y + 5, pos.z);
            var args     = new object[] { supplyDropArrowTime, Color.white, startPos, endPos, supplyDropArrowSize };

            ConsoleNetwork.BroadcastToAllClients("ddraw.arrow", args);
        }
Beispiel #26
0
        object OnUserChat(IPlayer player, string message)
        {
            if (!IsRightToLeft(message))
            {
                return(null);
            }

            var color = player.IsAdmin ? "#aaff55" : "#55aaff";

            message = covalence.FormatText($"[{color}]{player.Name}[/#]") + ": " + RtlText(message);
#if RUST
            ConsoleNetwork.BroadcastToAllClients("chat.add", player.Id, message);
#else
            server.Broadcast(message);
#endif
            return(true);
        }
Beispiel #27
0
 public static void Broadcast(string message, string username = "******", string color = "#eee", ulong userid = 0uL)
 {
     if (Interface.CallHook("OnServerMessage", message, username, color, userid) == null)
     {
         string text = username.EscapeRichText();
         ConsoleNetwork.BroadcastToAllClients("chat.add", 2, 0, "<color=" + color + ">" + text + "</color> " + message);
         ChatEntry chatEntry = default(ChatEntry);
         chatEntry.Channel  = ChatChannel.Server;
         chatEntry.Message  = message;
         chatEntry.UserId   = userid.ToString();
         chatEntry.Username = username;
         chatEntry.Color    = color;
         chatEntry.Time     = Epoch.Current;
         ChatEntry chatEntry2 = chatEntry;
         History.Add(chatEntry2);
         RCon.Broadcast(RCon.LogType.Chat, chatEntry2);
     }
 }
        void UpdateCountdown()
        {
            startTime = startTime + step * sign;

            if (textComponent)
            {
                textComponent.text = textComponent.text.Replace("%TIME_LEFT%", startTime.ToString());
            }

            if (startTime == endTime)
            {
                if (!string.IsNullOrEmpty(command))
                {
                    ConsoleNetwork.ClientRunOnServer(command);
                }

                End();
            }
        }
Beispiel #29
0
    public static void RestartServer(string strNotice, int iSeconds)
    {
        if (SingletonComponent <ServerMgr> .Instance == null)
        {
            return;
        }
        if (SingletonComponent <ServerMgr> .Instance.restartCoroutine != null)
        {
            ConsoleNetwork.BroadcastToAllClients("chat.add", new object[] { 0, "<color=#fff>SERVER</color> Restart interrupted!" });
            SingletonComponent <ServerMgr> .Instance.StopCoroutine(SingletonComponent <ServerMgr> .Instance.restartCoroutine);

            SingletonComponent <ServerMgr> .Instance.restartCoroutine = null;
        }
        SingletonComponent <ServerMgr> .Instance.restartCoroutine = SingletonComponent <ServerMgr> .Instance.ServerRestartWarning(strNotice, iSeconds);

        SingletonComponent <ServerMgr> .Instance.StartCoroutine(SingletonComponent <ServerMgr> .Instance.restartCoroutine);

        SingletonComponent <ServerMgr> .Instance.UpdateServerInformation();
    }
Beispiel #30
0
        public static void Broadcast(string message, string username = "******", string color = "#eee", ulong userid = 0)
        {
            if (Interface.CallHook("OnServerMessage", (object)message, (object)username, (object)color, (object)userid) != null)
            {
                return;
            }
            string str = StringEx.EscapeRichText(username);

            ConsoleNetwork.BroadcastToAllClients("chat.add", (object)0, (object)("<color=" + color + ">" + str + "</color> " + message));
            Chat.ChatEntry chatEntry = new Chat.ChatEntry()
            {
                Message  = message,
                UserId   = userid,
                Username = username,
                Color    = color,
                Time     = Epoch.get_Current()
            };
            Chat.History.Add(chatEntry);
            RCon.Broadcast(RCon.LogType.Chat, (object)chatEntry);
        }