Schumix.ExtraAddon.Commands.NameList.NewThread C# (CSharp) Метод

NewThread() публичный Метод

public NewThread ( string Name ) : void
Name string
Результат void
        public void NewThread(string Name)
        {
            Task.Factory.StartNew(() =>
            {
                var sSendMessage = sIrcBase.Networks[_servername].sSendMessage;
                Thread.Sleep(5*60*1000);

                if(!IsChannelList(Name))
                {
                    sSendMessage.SendCMPrivmsg(Name.ToLower(), sLManager.GetWarningText("NoRegisteredNotesUserAccess"), _servername);
                    RandomVhost(Name);
                }
            });
        }

Usage Example

Пример #1
0
        public void HandleNotes(IRCMessage sIRCMessage)
        {
            var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage;

            if (sIRCMessage.Info.Length >= 6 && sIRCMessage.Info[4].ToLower() == "user" && sIRCMessage.Info[5].ToLower() == "register")
            {
            }
            else
            {
                if (!Warning(sIRCMessage))
                {
                    return;
                }
            }

            if (sIRCMessage.Info.Length < 5)
            {
                sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoValue", sIRCMessage.Channel, sIRCMessage.ServerName));
                return;
            }

            if (sIRCMessage.Info[4].ToLower() == "info")
            {
                if (!IsUser(sIRCMessage.Nick, sIRCMessage.Host))
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoDataNoCommand", sIRCMessage.Channel, sIRCMessage.ServerName));
                    return;
                }

                var db = SchumixBase.DManager.Query("SELECT Code FROM notes WHERE Name = '{0}' And ServerName = '{1}'", sIRCMessage.Nick.ToLower(), sIRCMessage.ServerName);
                if (!db.IsNull())
                {
                    string codes = string.Empty;

                    foreach (DataRow row in db.Rows)
                    {
                        string code = row["Code"].ToString();
                        codes += ", " + code;
                    }

                    if (codes.IsNullOrEmpty())
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetCommandText("notes/info", sIRCMessage.Channel, sIRCMessage.ServerName), sLConsole.Other("Nothing"));
                    }
                    else
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetCommandText("notes/info", sIRCMessage.Channel, sIRCMessage.ServerName), codes.Remove(0, 2, ", "));
                    }
                }
                else
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("FaultyQuery", sIRCMessage.Channel, sIRCMessage.ServerName));
                }
            }
            else if (sIRCMessage.Info[4].ToLower() == "user")
            {
                if (sIRCMessage.Info.Length < 6)
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoValue", sIRCMessage.Channel, sIRCMessage.ServerName));
                    return;
                }

                if (sIRCMessage.Info[5].ToLower() == "access")
                {
                    var text = sLManager.GetCommandTexts("notes/user/access", sIRCMessage.Channel, sIRCMessage.ServerName);
                    if (text.Length < 4)
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName)));
                        return;
                    }

                    if (sIRCMessage.Info.Length < 7)
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoPassword", sIRCMessage.Channel, sIRCMessage.ServerName));
                        return;
                    }

                    string name = sIRCMessage.Nick;
                    var    db   = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM notes_users WHERE Name = '{0}' And ServerName = '{1}'", name.ToLower(), sIRCMessage.ServerName);
                    if (!db.IsNull())
                    {
                        if (db["Password"].ToString() == sUtilities.Sha1(sIRCMessage.Info[6]))
                        {
                            SchumixBase.DManager.Update("notes_users", string.Format("Vhost = '{0}'", sIRCMessage.Host), string.Format("Name = '{0}' And ServerName = '{1}'", name.ToLower(), sIRCMessage.ServerName));
                            sSendMessage.SendChatMessage(sIRCMessage, text[0]);
                        }
                        else
                        {
                            sSendMessage.SendChatMessage(sIRCMessage, text[1]);
                        }
                    }

                    if (!sNameList.IsChannelList(name))
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, text[2]);
                        sSendMessage.SendChatMessage(sIRCMessage, text[3]);
                        sNameList.NewThread(name);
                    }
                }
                else if (sIRCMessage.Info[5].ToLower() == "newpassword")
                {
                    var text = sLManager.GetCommandTexts("notes/user/newpassword", sIRCMessage.Channel, sIRCMessage.ServerName);
                    if (text.Length < 2)
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName)));
                        return;
                    }

                    if (sIRCMessage.Info.Length < 7)
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoOldPassword", sIRCMessage.Channel, sIRCMessage.ServerName));
                        return;
                    }

                    if (sIRCMessage.Info.Length < 8)
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoNewPassword", sIRCMessage.Channel, sIRCMessage.ServerName));
                        return;
                    }

                    string name = sIRCMessage.Nick;
                    var    db   = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM notes_users WHERE Name = '{0}' And ServerName = '{1}'", name.ToLower(), _servername);
                    if (!db.IsNull())
                    {
                        if (db["Password"].ToString() == sUtilities.Sha1(sIRCMessage.Info[6]))
                        {
                            SchumixBase.DManager.Update("notes_users", string.Format("Password = '******'", sUtilities.Sha1(sIRCMessage.Info[7])), string.Format("Name = '{0}' And ServerName = '{1}'", name.ToLower(), sIRCMessage.ServerName));
                            sSendMessage.SendChatMessage(sIRCMessage, text[0], sIRCMessage.Info[7]);
                        }
                        else
                        {
                            sSendMessage.SendChatMessage(sIRCMessage, text[1]);
                        }
                    }
                }
                else if (sIRCMessage.Info[5].ToLower() == "register")
                {
                    var text = sLManager.GetCommandTexts("notes/user/register", sIRCMessage.Channel, sIRCMessage.ServerName);
                    if (text.Length < 2)
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName)));
                        return;
                    }

                    if (sIRCMessage.Info.Length < 7)
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoPassword", sIRCMessage.Channel, sIRCMessage.ServerName));
                        return;
                    }

                    string name = sIRCMessage.Nick;
                    var    db   = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM notes_users WHERE Name = '{0}' And ServerName = '{1}'", name.ToLower(), sIRCMessage.ServerName);
                    if (!db.IsNull())
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, text[0]);
                        return;
                    }

                    string pass = sIRCMessage.Info[6];
                    SchumixBase.DManager.Insert("`notes_users`(ServerId, ServerName, Name, Password, Vhost)", sIRCMessage.ServerId, sIRCMessage.ServerName, name.ToLower(), sUtilities.Sha1(pass), sIRCMessage.Host);
                    sSendMessage.SendChatMessage(sIRCMessage, text[1]);
                }
                else if (sIRCMessage.Info[5].ToLower() == "remove")
                {
                    var text = sLManager.GetCommandTexts("notes/user/remove", sIRCMessage.Channel, sIRCMessage.ServerName);
                    if (text.Length < 5)
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName)));
                        return;
                    }

                    if (sIRCMessage.Info.Length < 7)
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, text[0]);
                        return;
                    }

                    string name = sIRCMessage.Nick;
                    var    db   = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM notes_users WHERE Name = '{0}' And ServerName = '{1}'", name.ToLower(), sIRCMessage.ServerName);
                    if (db.IsNull())
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, text[1]);
                        return;
                    }

                    db = SchumixBase.DManager.QueryFirstRow("SELECT Password FROM notes_users WHERE Name = '{0}' And ServerName = '{1}'", name.ToLower(), sIRCMessage.ServerName);
                    if (!db.IsNull())
                    {
                        if (db["Password"].ToString() != sUtilities.Sha1(sIRCMessage.Info[6]))
                        {
                            sSendMessage.SendChatMessage(sIRCMessage, text[2]);
                            sSendMessage.SendChatMessage(sIRCMessage, text[3]);
                            return;
                        }
                    }

                    SchumixBase.DManager.Delete("notes_users", string.Format("Name = '{0}' And ServerName = '{1}'", name.ToLower(), sIRCMessage.ServerName));
                    SchumixBase.DManager.Delete("notes", string.Format("Name = '{0}' And ServerName = '{1}'", name.ToLower(), sIRCMessage.ServerName));
                    sSendMessage.SendChatMessage(sIRCMessage, text[4]);
                }
            }
            else if (sIRCMessage.Info[4].ToLower() == "code")
            {
                if (!IsUser(sIRCMessage.Nick, sIRCMessage.Host))
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoDataNoCommand", sIRCMessage.Channel, sIRCMessage.ServerName));
                    return;
                }

                if (sIRCMessage.Info.Length < 6)
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoCode", sIRCMessage.Channel, sIRCMessage.ServerName));
                    return;
                }

                if (sIRCMessage.Info[5].ToLower() == "remove")
                {
                    var text = sLManager.GetCommandTexts("notes/code/remove", sIRCMessage.Channel, sIRCMessage.ServerName);
                    if (text.Length < 2)
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName)));
                        return;
                    }

                    if (sIRCMessage.Info.Length < 7)
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoCode", sIRCMessage.Channel, sIRCMessage.ServerName));
                        return;
                    }

                    var db = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM notes WHERE Code = '{0}' AND Name = '{1}' And ServerName = '{2}'", sUtilities.SqlEscape(sIRCMessage.Info[6].ToLower()), sIRCMessage.Nick.ToLower(), sIRCMessage.ServerName);
                    if (db.IsNull())
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, text[0]);
                        return;
                    }

                    SchumixBase.DManager.Delete("notes", string.Format("Code = '{0}' AND Name = '{1}' And ServerName = '{2}'", sUtilities.SqlEscape(sIRCMessage.Info[6].ToLower()), sIRCMessage.Nick.ToLower(), sIRCMessage.ServerName));
                    sSendMessage.SendChatMessage(sIRCMessage, text[1]);
                }
                else
                {
                    var db = SchumixBase.DManager.QueryFirstRow("SELECT Note FROM notes WHERE Code = '{0}' AND Name = '{1}' And ServerName = '{2}'", sUtilities.SqlEscape(sIRCMessage.Info[5].ToLower()), sIRCMessage.Nick.ToLower(), sIRCMessage.ServerName);
                    if (!db.IsNull())
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetCommandText("notes/code", sIRCMessage.Channel, sIRCMessage.ServerName), db["Note"].ToString());
                    }
                    else
                    {
                        sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("FaultyQuery", sIRCMessage.Channel, sIRCMessage.ServerName));
                    }
                }
            }
            else
            {
                var text = sLManager.GetCommandTexts("notes", sIRCMessage.Channel, sIRCMessage.ServerName);
                if (text.Length < 3)
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName)));
                    return;
                }

                if (!IsUser(sIRCMessage.Nick, sIRCMessage.Host))
                {
                    sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoDataNoCommand", sIRCMessage.Channel, sIRCMessage.ServerName));
                    return;
                }

                if (sIRCMessage.Info.Length < 6)
                {
                    sSendMessage.SendChatMessage(sIRCMessage, text[0]);
                    return;
                }

                string code = sIRCMessage.Info[4];
                var    db   = SchumixBase.DManager.QueryFirstRow("SELECT 1 FROM notes WHERE Code = '{0}' AND Name = '{1}' And ServerName = '{2}'", sUtilities.SqlEscape(code.ToLower()), sIRCMessage.Nick.ToLower(), sIRCMessage.ServerName);
                if (!db.IsNull())
                {
                    sSendMessage.SendChatMessage(sIRCMessage, text[1]);
                    return;
                }

                SchumixBase.DManager.Insert("`notes`(ServerId, ServerName, Code, Name, Note)", sIRCMessage.ServerId, sIRCMessage.ServerName, sUtilities.SqlEscape(code.ToLower()), sIRCMessage.Nick.ToLower(), sUtilities.SqlEscape(sIRCMessage.Info.SplitToString(5, SchumixBase.Space)));
                sSendMessage.SendChatMessage(sIRCMessage, text[2], code);
            }
        }