コード例 #1
0
ファイル: queryQueue.cs プロジェクト: elevatorguy/TDSM_mysql
        public queryQueue()
        {
            string pluginFolder = Statics.PluginPath + Path.DirectorySeparatorChar + "mysql";
            MysqlPlugin.CreateDirectory (pluginFolder);

            properties = new PropertiesFile (pluginFolder + Path.DirectorySeparatorChar + "mysql.properties");
            properties.Load ();
            var dummy2 = mysqlserver;
            var dummy3 = mysqldatabase;
            var dummy4 = mysqluser;
            var dummy5 = mysqlpassword;
            properties.Save ();
            queue = new Queue<string> (1000);
            dbcon = new MySqlConnection (connectionString);
        }
コード例 #2
0
ファイル: MutePlugin.cs プロジェクト: elevatorguy/TDSM_Mute
        protected override void Initialized(object state)
        {
            string pluginFolder = Statics.PluginPath + Path.DirectorySeparatorChar + "Mute";
            CreateDirectory(pluginFolder);

            properties = new PropertiesFile(pluginFolder + Path.DirectorySeparatorChar + "mute.properties");
            initPropFile();

            AddCommand("mute")
                .WithDescription("Mute a player from chat.")
                .WithAccessLevel(AccessLevel.PLAYER)
                .WithHelpText("The effect lasts five minutes.")
                .WithHelpText("Regular Players can mute if "+timemuted+" people vote.")
                .Calls(this.MuteCommand);

            AddCommand("unmute")
                .WithDescription("Lets a player chat again")
                .WithHelpText("For unmuting permanent mutes")
                .Calls(this.UnMuteCommand);
        }
コード例 #3
0
ファイル: IRCage.cs プロジェクト: AWRyder/IRCage
        public override void Load()
        {
            base.Name = "IRCage";
            base.Description = "IRC integration for TDSM";
            base.Author = "AWRyder";
            base.Version = "0.6";
            base.TDSMBuild = 29;
            this.isEnabled = true;

            string ppfolder = Statics.PluginPath + Path.DirectorySeparatorChar + "IRCage";
            string ppfile = ppfolder + Path.DirectorySeparatorChar + "ircage.pfile";

            if (!Directory.Exists(ppfolder))
                 Directory.CreateDirectory(ppfolder);

            if (!File.Exists(ppfile))
                File.Create(ppfile).Close();

            pfile = new PropertiesFile(ppfile);

            Program.tConsole.WriteLine(base.Name + " has been enabled.");
        }
コード例 #4
0
ファイル: CropCircles.cs プロジェクト: AWRyder/CropCircles
        public override void Load()
        {
            base.Name = "CropCircles";
            base.Description = "Terrain pattern recognition for TDSM.";
            base.Author = "AWRyder";
            base.Version = "0.1";
            base.TDSMBuild = 31;
            this.isEnabled = true;

            Netplay.tcpListener.Server.ReceiveAsync(new SocketAsyncEventArgs() );

            registeredPatterns = new LinkedList<RegisteredPattern>();
            patterns = new LinkedList<Pattern>();

            string ppfolder = Statics.PluginPath + Path.DirectorySeparatorChar + "CropCircles";
            string ppfile = ppfolder + Path.DirectorySeparatorChar + "cropCircles.pfile";

            if (!Directory.Exists(ppfolder))
                 Directory.CreateDirectory(ppfolder);

            if (!File.Exists(ppfile))
                File.Create(ppfile).Close();

            pfile = new PropertiesFile(ppfile);

            int[][] spawnPtrn = new int[3][];
            for (int i = 0; i < spawnPtrn.Length; i++)
            {
                spawnPtrn[i] = new int[2];
            }
            spawnPtrn[0][0] = spawnPtrn[1][0] = spawnPtrn[2][0] = spawnPtrn[0][1] = spawnPtrn[2][1] = 45;
            spawnPtrn[1][1] = -1;

            patterns.AddLast(new Pattern("Spawn Teleport",3, 2, spawnPtrn));

            Program.tConsole.WriteLine(base.Name + " has been enabled.");
        }
コード例 #5
0
ファイル: Regions.cs プロジェクト: zealic/TDSM
        protected override void Initialized(object state)
        {
            if (!Directory.Exists(RegionsFolder))
                Directory.CreateDirectory(RegionsFolder);

            rProperties = new Properties(RegionsFolder + Path.DirectorySeparatorChar + "regions.properties");
            rProperties.Load();

            rProperties.AddHeaderLine("Use 'rectify=false' to ignore world alterations from");
            rProperties.AddHeaderLine("players who are blocked; Possibly saving bandwidth.");

            rProperties.pushData();
            rProperties.Save(false);

            if (rProperties.RectifyChanges)
                WorldAlter = HookResult.RECTIFY;

            SelectorItem = rProperties.SelectionToolID;
            #region set up mysql properties

            string pluginFolder = Statics.PluginPath + Path.DirectorySeparatorChar + "mysql";
            if (!Directory.Exists(pluginFolder))
            {
                Directory.CreateDirectory(pluginFolder);
            }

            mysql = new PropertiesFile(pluginFolder + Path.DirectorySeparatorChar + "mysql.properties");
            mysql.Load();
            var dummy1 = mysqlenabled;
            var dummy2 = mysqlserver;
            var dummy3 = mysqldatabase;
            var dummy4 = mysqluser;
            var dummy5 = mysqlpassword;
            var dummy6 = imported;
            mysql.Save(false);

            #endregion

            #region check if mysql table exists
            if (mysqlenabled)
            {
                try
                {
                    checkTable(connectionString, "terraria_regions");
                }
                catch (MySqlException e)
                {
                    if (e.Number == 1042)
                    {
                        ProgramLog.Error.Log("[Regions] Could not connect to mysql server. Falling back to using regions files");
                        mysql.setValue("mysql-enabled", "False");
                        mysql.Save();
                    }
                    else
                    {
                        ProgramLog.Error.Log("[Regions] MYSQL ERROR CODE: " + e.Number);
                        ProgramLog.Error.Log(e.StackTrace);
                    }
                }
            }
            #endregion

            regionManager = new RegionManager(DataFolder);
            selection = new Selection();

            commands = new Commands();
            commands.regionManager = regionManager;
            commands.RegionsPlugin = this;
            commands.selection = selection;

            commands.Node_Create        = Node.FromPath("region.create");
            commands.Node_Here          = Node.FromPath("region.here");
            commands.Node_List          = Node.FromPath("region.list");
            commands.Node_Npcres        = Node.FromPath("region.npcres");
            commands.Node_Opres         = Node.FromPath("region.opres");
            commands.Node_Projectile    = Node.FromPath("region.projectile");
            commands.Node_ProtectAll    = Node.FromPath("region.protectall");
            commands.Node_Select        = Node.FromPath("region.select");
            commands.Node_User          = Node.FromPath("region.user");

            AddCommand("region")
                .WithAccessLevel(AccessLevel.OP)
                .WithHelpText("Usage:    region [select, create, user, list, npcres, opres]")
                .WithDescription("Region Management.")
                .WithPermissionNode("regions")
                .Calls(commands.Region);

            AddCommand("regions")
                .WithAccessLevel(AccessLevel.OP)
                .WithHelpText("Usage:    regions [select, create, user, list, npcres, opres]")
                .WithDescription("Region Management.")
                .WithPermissionNode("regions") //Need another method to split the commands up.
                .Calls(commands.Region);

            ChestBreak      = AddAndCreateNode("region.chestbreak");
            ChestOpen       = AddAndCreateNode("region.chestopen");
            DoorChange      = AddAndCreateNode("region.doorchange");
            LiquidFlow      = AddAndCreateNode("region.liquidflow");
            ProjectileUse   = AddAndCreateNode("region.projectileuse");
            SignEdit        = AddAndCreateNode("region.signedit");
            TileBreak       = AddAndCreateNode("region.tilebreak");
            TilePlace       = AddAndCreateNode("region.tileplace");
        }
コード例 #6
0
        public static void Start(string dbPath)
        {
            LoginDatabase = new PropertiesFile (dbPath);
            LoginDatabase.Load ();

            if (LoginDatabase.Count == 0)
            {
                var bytes = new byte [8];
                (new Random ((int) DateTime.Now.Ticks)).NextBytes (bytes);

                string password = String.Format ("{0:x2}{1:x2}-{2:x2}{3:x2}-{4:x2}{5:x2}-{6:x2}{7:x2}",
                    bytes[0], bytes[1], bytes[2], bytes[3], bytes[4], bytes[5], bytes[6], bytes[7]);
                string login = "******";
                ProgramLog.Admin.Log ("The rcon login database was empty, a new user \"{1}\" has been created with password: {0}", password, login);

                LoginDatabase.setValue (login, Hash (login, password));
            }

            LoginDatabase.Save ();

            var bind = Program.properties.RConBindAddress;
            var split = bind.Split(':');
            IPAddress addr;
            ushort port;

            if (split.Length != 2 || !IPAddress.TryParse (split[0], out addr) || !ushort.TryParse (split[1], out port) || port < 1)
            {
                ProgramLog.Error.Log ("{0} is not a valid bind address, remote console disabled.", bind);
                return;
            }

            listener = new TcpListener (addr, port);

            try
            {
                listener.Start();
            }
            catch (Exception)
            {
                ProgramLog.Error.Log ("Failed to bind to address {0}, remote console disabled.", bind);
                //ProgramLog.Log (exception, "Failed to bind to address 127.0.0.1:" + 7776);
                return;
            }

            thread = new ProgramThread ("RCon", RConLoop);
            thread.Start ();
        }
コード例 #7
0
ファイル: MysqlPlugin.cs プロジェクト: elevatorguy/TDSM_mysql
        protected override void Initialized(object state)
        {
            string pluginFolder = Statics.PluginPath + Path.DirectorySeparatorChar + "mysql";
            CreateDirectory (pluginFolder);

            properties = new PropertiesFile (pluginFolder + Path.DirectorySeparatorChar + "mysql.properties");
            properties.Load ();
            var dummy1 = mysqlenabled;
            var dummy2 = mysqlserver;
            var dummy3 = mysqldatabase;
            var dummy4 = mysqluser;
            var dummy5 = mysqlpassword;
            var dummy8 = logtiles;
            var dummy9 = logplayers;
            var dummy10 = logliquid;
            var dummy11 = logplants;
            properties.Save ();
            if (mysqlenabled) {
                try
                {
                    checkTable("terraria");
                    checkTable("terraria_tiles");
                    checkTable("terraria_iplog");
                    if (!logtiles)
                    {
                        ProgramLog.Error.Log("[Mysql] logtiles is disabled. Edit mysql.properties to enable");
                    }
                }
                catch (MySqlException e)
                {
                    if (e.Number == 1042)
                    {
                        ProgramLog.Error.Log("[Mysql] Could not connect to mysql server. Setting mysql-enabled to false.");
                        properties.setValue("mysql-enabled", "False");
                        properties.Save();
                    }
                    else
                    {
                        ProgramLog.Error.Log("[Mysql] MYSQL ERROR CODE: " + e.Number);
                        ProgramLog.Error.Log(e.StackTrace);
                    }
                }
            } else {
                ProgramLog.Error.Log ("[Mysql] connection not enabled. Please edit mysql.properties");
            }

            AddCommand ("mysql")
                .WithDescription ("MySQL settings")
                .WithAccessLevel (AccessLevel.OP)
                .WithHelpText ("To reload settings from mysql.properties:")
                .WithHelpText ("mysql -L")
                .Calls (this.OptionsCommand);

            AddCommand ("blockinfo")
                .WithDescription ("retrieves block history of blocks you touch")
                .WithAccessLevel (AccessLevel.OP)
                .WithHelpText ("each time you use the command it toggles true/false")
                .Calls (this.LocationCommand);

            AddCommand ("lastseen")
                .WithDescription ("find when someone was on last")
                .WithAccessLevel (AccessLevel.PLAYER) //everyone can use this command
                .WithHelpText ("To use:")
                .WithHelpText ("lastseen \"playername\"")
                .Calls (this.LastSeenCommand);

            //TODO: fix THIS
            //AddCommand ("rollback")
            //	.WithDescription ("revert the world's changes in the specified amount of minutes")
            //   .WithAccessLevel(AccessLevel.OP)
            //	.WithHelpText (" eg. /rollback 5 ")
            //	.Calls (this.RollbackCommand);

            // these two are not released in this version

            //AddCommand ("undo")
            //	.WithDescription ("undo a players actions")
            //	.WithHelpText (" eg. /undo \"crazy griefer\" ")
            //	.Calls (this.UndoCommand);

            //AddCommand ("redo")
            //	.WithDescription ("redoes a players actions")
            //	.WithHelpText (" eg. /redo \"builders name\" ")
            //	.Calls (this.RedoCommand);
        }
コード例 #8
0
        protected override void Initialized(object state)
        {
            string pluginFolder = Statics.PluginPath + Path.DirectorySeparatorChar + "android";

            if (!Directory.Exists(pluginFolder))
            {
                Directory.CreateDirectory(pluginFolder);
            }

            properties = new PropertiesFile(pluginFolder + Path.DirectorySeparatorChar + "android.properties");
            properties.Load();
            var dummy = username;
            var dummy2 = password;
            var dummy3 = port;
            properties.Save();

            instance = this;
            base.Initialized(state);
        }
コード例 #9
0
        protected override void Initialized(object state)
        {
            string pluginFolder = Statics.PluginPath + Path.DirectorySeparatorChar + "Announce";
            if (!Directory.Exists(pluginFolder))
                Directory.CreateDirectory(pluginFolder);

            properties = new PropertiesFile(pluginFolder + Path.DirectorySeparatorChar + "announce.properties");
            properties.Load();
            properties.Save(false);

            AddCommand("aa")
                .WithDescription("Add announcement")
                .WithAccessLevel(AccessLevel.OP)
                .WithHelpText("adds announcements to the file")
                .WithHelpText("set a custom color with \"|R|G|B\" at the end (0-255)")
                .Calls(this.AnnounceCommand);
        }
コード例 #10
0
        protected override void Initialized(object state)
        {
            string pluginFolder = Statics.PluginPath + Path.DirectorySeparatorChar + "webchat";
            CreateDirectory(pluginFolder);

            properties = new PropertiesFile (pluginFolder + Path.DirectorySeparatorChar + "mysql.properties");
            properties.Load();
            var dummy1 = mysqlenabled;
            var dummy2 = mysqlserver;
            var dummy3 = mysqldatabase;
            var dummy4 = mysqluser;
            var dummy5 = mysqlpassword;
            var dummy9 = mysqlserver2;
            var dummy10 = mysqldatabase2;
            var dummy11 = mysqluser2;
            var dummy12 = mysqlpassword2;
            var dummy6 = pcpinprefix;
            var dummy7 = web2chat;
            var dummy8 = addhours;
            properties.Save();

            if (mysqlenabled)
            {
                checkTable(mysqlserver2, mysqldatabase2, mysqluser2, mysqlpassword2, pcpinprefix+"user");
                checkTable(mysqlserver2, mysqldatabase2, mysqluser2, mysqlpassword2, "terraria_chatqueue");
            }
            else
            {
            ProgramLog.Log("[webchat] mysql connection not enabled. Please edit mysql.properties");
            }

            AddCommand ("webchat")
                .WithDescription ("WebChat Configuration")
                .WithHelpText ("To reload settings from mysql.properties:")
                .WithHelpText ("webchat -L")
                .Calls (this.OptionsCommand);
        }
コード例 #11
0
ファイル: MapPlugin.cs プロジェクト: Enerdy/TDSM_map
        protected override void Initialized(object state)
        {
            string pluginFolder = Statics.PluginPath + Path.DirectorySeparatorChar + "map";
            CreateDirectory (pluginFolder);

            properties = new PropertiesFile (pluginFolder + Path.DirectorySeparatorChar + "map.properties");
            properties.Load ();
            var dummy = mapoutputpath;
            var dummy2 = colorscheme;
            var dummy3 = autosavepath;
            var dummy4 = autosaveinterval;
            var dummy5 = autosavetimestamp;
            var dummy6 = autosavehighlight;
            var dummy7 = autosavehightlightID;
            var dummy8 = autosaveenabled;
            var dummy9 = autosavename;
            properties.Save ();

            if(colorscheme=="MoreTerra" || colorscheme=="Terrafirma"){
                isEnabled = true;
            }
            else{
                ProgramLog.Error.Log ("<map> ERROR: colorscheme must be either 'MoreTerra' or 'Terrafirma'");
                ProgramLog.Error.Log ("<map> ERROR: map command will not work until you change it");
                isEnabled = false;
            }

            AddCommand ("map")
                .WithDescription ("map options")
                .WithAccessLevel(AccessLevel.OP)
                .WithHelpText ("map help")
                .WithHelpText ("map -t")
                .WithHelpText ("map -n outputname.png")
                .WithHelpText ("map -L")
                .WithHelpText ("map [-s] -p /path/to/output")
                .WithHelpText ("map [-s] -p \"C:\\path\\to\\output\"")
                .WithHelpText ("map [-s] -c MoreTerra")
                .WithHelpText ("map [-s] -c Terrafirma")
                .WithHelpText ("map -h \"name or ID of item to highlight\"")
                .Calls (this.MapCommand);
        }