Пример #1
0
 public static bool OnWhitelist(string ip, TPulse tPulse)
 {
     if (!tPulse.Config.EnableWhitelist)
     {
         return(true);
     }
     CreateIfNot(WhitelistPath, "127.0.0.1");
     using (var tr = new StreamReader(WhitelistPath))
     {
         string whitelist = tr.ReadToEnd();
         ip = Utils.GetRealIP(ip);
         bool contains = whitelist.Contains(ip);
         if (!contains)
         {
             foreach (var line in whitelist.Split(Environment.NewLine.ToCharArray()))
             {
                 if (string.IsNullOrWhiteSpace(line))
                 {
                     continue;
                 }
                 contains = Utils.GetIPv4Address(line).Equals(ip);
                 if (contains)
                 {
                     return(true);
                 }
             }
             return(false);
         }
         return(true);
     }
 }
Пример #2
0
        public RegionManager(IDbConnection db, TPulse tPulse)
        {
            this.tPulse = tPulse;
            database    = db;
            var table = new SqlTable("Regions",
                                     new SqlColumn("X1", MySqlDbType.Int32),
                                     new SqlColumn("Y1", MySqlDbType.Int32),
                                     new SqlColumn("width", MySqlDbType.Int32),
                                     new SqlColumn("height", MySqlDbType.Int32),
                                     new SqlColumn("RegionName", MySqlDbType.VarChar, 50)
            {
                Primary = true
            },
                                     new SqlColumn("WorldID", MySqlDbType.Text),
                                     new SqlColumn("UserIds", MySqlDbType.Text),
                                     new SqlColumn("Protected", MySqlDbType.Int32),
                                     new SqlColumn("Groups", MySqlDbType.Text),
                                     new SqlColumn("Owner", MySqlDbType.VarChar, 50),
                                     new SqlColumn("Z", MySqlDbType.Int32)
            {
                DefaultValue = "0"
            }
                                     );
            var creator = new SqlTableCreator(db,
                                              db.GetSqlType() == SqlType.Sqlite
                                                                ? (IQueryBuilder) new SqliteQueryCreator()
                                                                : new MysqlQueryCreator());

            creator.EnsureExists(table);

            ReloadAllRegions();
        }
Пример #3
0
        public UserManager(IDbConnection db, TPulse tPulse)
        {
            this.tPulse = tPulse;

            database = db;

            var table = new SqlTable("Users",
                                     new SqlColumn("ID", MySqlDbType.Int32)
            {
                Primary = true, AutoIncrement = true
            },
                                     new SqlColumn("Username", MySqlDbType.VarChar, 32)
            {
                Unique = true
            },
                                     new SqlColumn("Password", MySqlDbType.VarChar, 128),
                                     new SqlColumn("Usergroup", MySqlDbType.Text),
                                     new SqlColumn("IP", MySqlDbType.VarChar, 16)
                                     );
            var creator = new SqlTableCreator(db,
                                              db.GetSqlType() == SqlType.Sqlite
                                                                ? (IQueryBuilder) new SqliteQueryCreator()
                                                                : new MysqlQueryCreator());

            creator.EnsureExists(table);
        }
Пример #4
0
        public override void Initialize()
        {
            tPulse = (TPulse)PlugInHandler.GetPluginByType(typeof(TPulse));

            //Loading Friends DB
            if (File.Exists(FriendsDB.DefaultFile))
            {
                FriendsList = FriendsDB.Load(FriendsDB.DefaultFile);
            }
            else
            {
                FriendsList.Save(FriendsDB.DefaultFile);
            }


            //Adding commands

            tPulse.Commands.ChatCommands.Add(new Command("", FriendCommand, "friend"));
            tPulse.Commands.ChatCommands.Add(new Command("", MessageCommand, "fmsg"));
            tPulse.Commands.ChatCommands.Add(new Command("", MessageAllCommand, "fall"));
            //Commands.ChatCommands.Add(new Command("", MessageCommand, "sendcoord"));
            tPulse.Commands.OnPlayerLogin += new PlayerLoginHandler(PlayerLogin);
            //Hooks.WorldHooks.SaveWorld += new Hooks.WorldHooks.SaveWorldD(WorldHooks_SaveWorld);
            tPulse.OnWorldSaved += new WorldSavedHandler(OnWorldSaved);
        }
Пример #5
0
        public override void Initialize()
        {
            //Get TPulse instance

            tPulse = (TPulse)PlugInHandler.GetPluginByType(typeof(TPulse));


            //Commands
            //  /join : to join a channel
            //  /channel : super-command
            //      add : add channel (need group < admin)
            //      del : delete a channel (need group < admin)
            //      list : listing
            //  /cmsg : send a message in the channel
            //can be null be aware !

            tPulse.Commands.ChatCommands.Add(new Command("", JoinCommand, "join"));
            tPulse.Commands.ChatCommands.Add(new Command("", LeaveCommand, "leave"));
            tPulse.Commands.ChatCommands.Add(new Command("", ChannelCommand, "channel"));
            tPulse.Commands.ChatCommands.Add(new Command("", ChannelMessage, "cmsg"));

            DefaultChannel = Manager.DefaultChannel;

            Channels.AddRange(Manager.ChatChannels);

            //Connection hooks

            tPulse.OnPlayerJoin  += new PlayerConnectionHandler(PlayerJoinServer);
            tPulse.OnPlayerLeave += new PlayerConnectionHandler(PlayerLeaveServer);

            //World Saved Hooks

            tPulse.OnWorldSaved += new WorldSavedHandler(OnWorldSaved);
        }
Пример #6
0
        static Permissions()
        {
            //getting the instance of TPulse

            tPulse = (TPulse)PlugInHandler.GetPluginByType(typeof(TPulse));

            foreach (var field in typeof(Permissions).GetFields())
            {
                field.SetValue(null, field.Name);
            }

            //Backwards compatability.
            restapi = "api";
        }
Пример #7
0
        public static void SetupConfig(TPulse tPulse)
        {
            if (!Directory.Exists(TPulse.SavePath))
            {
                Directory.CreateDirectory(TPulse.SavePath);
            }

            CreateIfNot(RulesPath, "Respect the admins!\nDon't use TNT!");
            CreateIfNot(MotdPath,
                        "This server is running TPulse for Terraria.\n Type /help for a list of commands.\n%255,000,000%Current map: %map%\nCurrent players: %players%");
            CreateIfNot(WhitelistPath);
            if (File.Exists(ConfigPath))
            {
                tPulse.Config = ConfigFile.Read(ConfigPath);
                // Add all the missing config properties in the json file
            }
            tPulse.Config.Write(ConfigPath);
        }
Пример #8
0
        public override void Initialize()
        {
            tPulse  = (TPulse)PlugInHandler.GetPluginByType(typeof(TPulse));
            Setting = ArenaSetting.Load(ArenaSettingFile);
            //todo

            //commands
            tPulse.Commands.ChatCommands.Add(new Command("", SetPrepare, "asetprepare"));
            tPulse.Commands.ChatCommands.Add(new Command("", SetTeamStart, "asetstart"));
            tPulse.Commands.ChatCommands.Add(new Command("", PreparePlayers, "aprepare"));
            tPulse.Commands.ChatCommands.Add(new Command("", AssignPlayerTeam, "aassign"));
            tPulse.Commands.ChatCommands.Add(new Command("", ResetTeams, "areset"));
            tPulse.Commands.ChatCommands.Add(new Command("", SetArenaHall, "asethall"));
            tPulse.Commands.ChatCommands.Add(new Command("", SetAterMatch, "asetroom"));

            Hooks.GameHooks.Update += new Action(GameHooks_Update);

            //Team Color
            //Console.WriteLine(Main.teamColor.Length);
            Main.teamColor[1] = Color.Blue;
            Main.teamColor[2] = Color.Pink;
        }
Пример #9
0
        public GroupManager(IDbConnection db, TPulse tPulse)
        {
            this.tPulse = tPulse;
            database    = db;

            var table = new SqlTable("GroupList",
                                     new SqlColumn("GroupName", MySqlDbType.VarChar, 32)
            {
                Primary = true
            },
                                     new SqlColumn("Parent", MySqlDbType.VarChar, 32),
                                     new SqlColumn("Commands", MySqlDbType.Text),
                                     new SqlColumn("ChatColor", MySqlDbType.Text),
                                     new SqlColumn("Prefix", MySqlDbType.Text),
                                     new SqlColumn("Suffix", MySqlDbType.Text)
                                     );
            var creator = new SqlTableCreator(db,
                                              db.GetSqlType() == SqlType.Sqlite
                                                                ? (IQueryBuilder) new SqliteQueryCreator()
                                                                : new MysqlQueryCreator());

            creator.EnsureExists(table);

            // Load Permissions from the DB
            LoadPermisions();
            //need to change those permissions for the groups
            //set some preset,
            // Add default groups if they don't exist
            AddDefaultGroup("guest", "", "canbuild,canregister,canlogin,canpartychat,cantalkinthird");
            AddDefaultGroup("default", "guest", "warp,canchangepassword");
            AddDefaultGroup("newadmin", "default", "kick,editspawn,reservedslot");
            AddDefaultGroup("admin", "newadmin",
                            "ban,unban,whitelist,causeevents,spawnboss,spawnmob,managewarp,time,tp,pvpfun,kill,logs,immunetokick,tphere");
            AddDefaultGroup("trustedadmin", "admin", "maintenance,cfg,butcher,item,heal,immunetoban,usebanneditem,manageusers");
            AddDefaultGroup("vip", "default", "reservedslot");
        }
Пример #10
0
 public RestManager(Rest rest, TPulse tPulse)
 {
     Rest   = rest;
     TPulse = tPulse;
 }
Пример #11
0
 public override void Initialize()
 {
     tPulse = (TPulse)PlugInHandler.GetPluginByType(typeof(TPulse));
     //chat commands to add
 }
Пример #12
0
 public ServerHandler(TPulse tPulse)
 {
     this.tPulse = tPulse;
 }
Пример #13
0
 public ServerHandler(TPulse tPulse)
 {
     this.tPulse = tPulse;
 }
Пример #14
0
        public UserManager(IDbConnection db, TPulse tPulse)
        {
            this.tPulse = tPulse;

            database = db;

            var table = new SqlTable("Users",
                                     new SqlColumn("ID", MySqlDbType.Int32) {Primary = true, AutoIncrement = true},
                                     new SqlColumn("Username", MySqlDbType.VarChar, 32) {Unique = true},
                                     new SqlColumn("Password", MySqlDbType.VarChar, 128),
                                     new SqlColumn("Usergroup", MySqlDbType.Text),
                                     new SqlColumn("IP", MySqlDbType.VarChar, 16)
                );
            var creator = new SqlTableCreator(db,
                                              db.GetSqlType() == SqlType.Sqlite
                                              	? (IQueryBuilder) new SqliteQueryCreator()
                                              	: new MysqlQueryCreator());
            creator.EnsureExists(table);
        }
Пример #15
0
 public PlayerHandler(TPulse tPulse)
 {
     this.tPulse = tPulse;
 }
Пример #16
0
 public override void Initialize()
 {
     tPulse = (TPulse)PlugInHandler.GetPluginByType(typeof(TPulse));
     //chat commands to add
 }
Пример #17
0
        public RegionManager(IDbConnection db, TPulse tPulse)
        {
            this.tPulse = tPulse;
            database = db;
            var table = new SqlTable("Regions",
                                     new SqlColumn("X1", MySqlDbType.Int32),
                                     new SqlColumn("Y1", MySqlDbType.Int32),
                                     new SqlColumn("width", MySqlDbType.Int32),
                                     new SqlColumn("height", MySqlDbType.Int32),
                                     new SqlColumn("RegionName", MySqlDbType.VarChar, 50) {Primary = true},
                                     new SqlColumn("WorldID", MySqlDbType.Text),
                                     new SqlColumn("UserIds", MySqlDbType.Text),
                                     new SqlColumn("Protected", MySqlDbType.Int32),
                                     new SqlColumn("Groups", MySqlDbType.Text),
                                     new SqlColumn("Owner", MySqlDbType.VarChar, 50),
                                     new SqlColumn("Z", MySqlDbType.Int32){ DefaultValue = "0" }
                );
            var creator = new SqlTableCreator(db,
                                              db.GetSqlType() == SqlType.Sqlite
                                              	? (IQueryBuilder) new SqliteQueryCreator()
                                              	: new MysqlQueryCreator());
            creator.EnsureExists(table);

            ReloadAllRegions();
        }
Пример #18
0
 public PlayerHandler(TPulse tPulse)
 {
     this.tPulse = tPulse;
 }