Beispiel #1
0
 public PlayerData(TPPlayer player)
 {
     for (int i = 0; i < NetItem.maxNetInventory; i++)
     {
         this.inventory[i] = new NetItem();
     }
     this.inventory[0].netID = -15;
     this.inventory[0].stack = 1;
     if (player.TPlayer.inventory[0] != null && player.TPlayer.inventory[0].netID == -15)
     {
         this.inventory[0].prefix = player.TPlayer.inventory[0].prefix;
     }
     this.inventory[1].netID = -13;
     this.inventory[1].stack = 1;
     if (player.TPlayer.inventory[1] != null && player.TPlayer.inventory[1].netID == -13)
     {
         this.inventory[1].prefix = player.TPlayer.inventory[1].prefix;
     }
     this.inventory[2].netID = -16;
     this.inventory[2].stack = 1;
     if (player.TPlayer.inventory[2] != null && player.TPlayer.inventory[2].netID == -16)
     {
         this.inventory[2].prefix = player.TPlayer.inventory[2].prefix;
     }
 }
Beispiel #2
0
 public void Leave(TPPlayer player)
 {
     if(Players.Contains(player))
     {
         Players.Remove(player);
         BroadcastMessage(String.Format("{0} has left", player.Name));
     }
 }
Beispiel #3
0
 public void Join(TPPlayer player)
 {
     if (!Players.Contains(player))
     {
         BroadcastMessage(String.Format("{0} has join", player.Name));
         Players.Add(player);
     }
 }
Beispiel #4
0
        public void CopyInventory(TPPlayer player)
        {
            this.maxHealth = player.TPlayer.statLifeMax;
            Item[] inventory = player.TPlayer.inventory;
            Item[] armor     = player.TPlayer.armor;
            for (int i = 0; i < NetItem.maxNetInventory; i++)
            {
                if (i < 49)
                {
                    if (player.TPlayer.inventory[i] != null)
                    {
                        this.inventory[i].netID = inventory[i].netID;
                    }
                    else
                    {
                        this.inventory[i].netID = 0;
                    }

                    if (this.inventory[i].netID != 0)
                    {
                        this.inventory[i].stack  = inventory[i].stack;
                        this.inventory[i].prefix = inventory[i].prefix;
                    }
                    else
                    {
                        this.inventory[i].stack  = 0;
                        this.inventory[i].prefix = 0;
                    }
                }
                else
                {
                    if (player.TPlayer.armor[i - 48] != null)
                    {
                        this.inventory[i].netID = armor[i - 48].netID;
                    }
                    else
                    {
                        this.inventory[i].netID = 0;
                    }

                    if (this.inventory[i].netID != 0)
                    {
                        this.inventory[i].stack  = armor[i - 48].stack;
                        this.inventory[i].prefix = armor[i - 48].prefix;
                    }
                    else
                    {
                        this.inventory[i].stack  = 0;
                        this.inventory[i].prefix = 0;
                    }
                }
            }
        }
Beispiel #5
0
        private object PlayerKickV2(RestVerbs verbs, IParameterCollection parameters)
        {
            var ret = PlayerFind(parameters);

            if (ret is RestObject)
            {
                return(ret);
            }

            TPPlayer player = (TPPlayer)ret;

            TPulse.PlayerHandle.ForceKick(player, null == parameters["reason"] ? "Kicked via web" : parameters["reason"], false, true);
            return(RestResponse("Player " + player.Name + " was kicked"));
        }
Beispiel #6
0
        private object PlayerBanV2(RestVerbs verbs, IParameterCollection parameters)
        {
            var ret = PlayerFind(parameters);

            if (ret is RestObject)
            {
                return(ret);
            }

            TPPlayer player = (TPPlayer)ret;
            var      reason = null == parameters["reason"] ? "Banned via web" : parameters["reason"];

            TPulse.Bans.AddBan(player.IP, player.Name, reason);
            TPulse.PlayerHandle.ForceKick(player, reason, false, true);
            return(RestResponse("Player " + player.Name + " was banned"));
        }
Beispiel #7
0
        private object PlayerKill(RestVerbs verbs, IParameterCollection parameters)
        {
            var ret = PlayerFind(parameters);

            if (ret is RestObject)
            {
                return(ret);
            }

            TPPlayer player = (TPPlayer)ret;

            player.DamagePlayer(999999);
            var from = string.IsNullOrWhiteSpace(parameters["from"]) ? "Server Admin" : parameters["from"];

            player.SendMessage(string.Format("{0} just killed you!", from));
            return(RestResponse("Player " + player.Name + " was killed"));
        }
Beispiel #8
0
        private object PlayerSetMute(IParameterCollection parameters, bool mute)
        {
            var ret = PlayerFind(parameters);

            if (ret is RestObject)
            {
                return(ret);
            }

            TPPlayer player = (TPPlayer)ret;

            player.mute = mute;
            var verb = mute ? "muted" : "unmuted";

            player.SendMessage("You have been remotely " + verb);
            return(RestResponse("Player " + player.Name + " was " + verb));
        }
Beispiel #9
0
        public bool Run(string msg, TPPlayer ply, List <string> parms)
        {
            if (!ply.Group.HasPermission(Permission))
            {
                return(false);
            }

            try
            {
                command(new CommandArgs(msg, ply, parms));
            }
            catch (Exception e)
            {
                ply.SendErrorMessage("Command failed, check logs for more details.");
                Log.Error(e.ToString());
            }

            return(true);
        }
Beispiel #10
0
        private Dictionary <string, object> PlayerFilter(TPPlayer tsPlayer, IParameterCollection parameters)
        {
            var player = new Dictionary <string, object>
            {
                { "nickname", tsPlayer.Name },
                { "username", null == tsPlayer.UserAccountName ? "" : tsPlayer.UserAccountName },
                { "ip", tsPlayer.IP },
                { "group", tsPlayer.Group.Name },
                { "active", tsPlayer.Active },
                { "state", tsPlayer.State },
                { "team", tsPlayer.Team },
            };

            foreach (IParameter filter in parameters)
            {
                if (player.ContainsKey(filter.Name) && !player[filter.Name].Equals(filter.Value))
                {
                    return(null);
                }
            }
            return(player);
        }
Beispiel #11
0
        private object PlayerReadV2(RestVerbs verbs, IParameterCollection parameters)
        {
            var ret = PlayerFind(parameters);

            if (ret is RestObject)
            {
                return(ret);
            }

            TPPlayer player      = (TPPlayer)ret;
            var      activeItems = player.TPlayer.inventory.Where(p => p.active).ToList();

            return(new RestObject()
            {
                { "nickname", player.Name },
                { "username", null == player.UserAccountName ? "" : player.UserAccountName },
                { "ip", player.IP },
                { "group", player.Group.Name },
                { "position", player.TileX + "," + player.TileY },
                { "inventory", string.Join(", ", activeItems.Select(p => (p.name + ":" + p.stack))) },
                { "buffs", string.Join(", ", player.TPlayer.buffType) }
            });
        }
Beispiel #12
0
        public static void ShowFileToUser(TPPlayer player, string file, string players)
        {
            string foo = "";

            using (var tr = new StreamReader(Path.Combine(TPulse.SavePath, file)))
            {
                while ((foo = tr.ReadLine()) != null)
                {
                    foo = foo.Replace("%map%", Main.worldName);
                    foo = foo.Replace("%players%", players);
                    //foo = SanitizeString(foo);
                    if (foo.Substring(0, 1) == "%" && foo.Substring(12, 1) == "%")                     //Look for a beginning color code.
                    {
                        string possibleColor = foo.Substring(0, 13);
                        foo = foo.Remove(0, 13);
                        float[] pC = { 0, 0, 0 };
                        possibleColor = possibleColor.Replace("%", "");
                        string[] pCc = possibleColor.Split(',');
                        if (pCc.Length == 3)
                        {
                            try
                            {
                                player.SendMessage(foo, (byte)Convert.ToInt32(pCc[0]), (byte)Convert.ToInt32(pCc[1]),
                                                   (byte)Convert.ToInt32(pCc[2]));
                                continue;
                            }
                            catch (Exception e)
                            {
                                Log.Error(e.ToString());
                            }
                        }
                    }
                    player.SendMessage(foo);
                }
            }
        }
Beispiel #13
0
        public bool CheckTilePermission( TPPlayer player, int tileX, int tileY, byte tileType, byte actionType )
        {
            if (!player.Group.HasPermission(Permissions.canbuild))
            {
                if (Config.AllowIce && actionType != 1)
                {

                    foreach (Point p in player.IceTiles)
                    {
                        if (p.X == tileX && p.Y == tileY && (Main.tile[p.X, p.Y].type == 0 || Main.tile[p.X, p.Y].type == 127))
                        {
                            player.IceTiles.Remove(p);
                            return false;
                        }
                    }

                    if (((DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) - player.BPm) > 2000){
                        player.SendMessage("You do not have permission to build!", Color.Red);
                        player.BPm=DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
                    }

                    return true;
                }

                if (Config.AllowIce && actionType == 1 && tileType == 127)
                {
                    player.IceTiles.Add(new Point(tileX, tileY));
                    return false;
                }

                if (((DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) - player.BPm) > 2000){
                    player.SendMessage("You do not have permission to build!", Color.Red);
                    player.BPm=DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
                }

                return true;

            }

            if (!player.Group.HasPermission(Permissions.editspawn) && !Regions.CanBuild(tileX, tileY, player) &&
                Regions.InArea(tileX, tileY))
            {
                if (((DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) - player.RPm) > 2000)
                {
                    player.SendMessage("This region is protected from changes.", Color.Red);
                    player.RPm = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;

                }
                return true;
            }

            if (Config.DisableBuild)
            {
                if (!player.Group.HasPermission(Permissions.editspawn))
                {
             		    if (((DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) - player.WPm) > 2000){
                        player.SendMessage("The world is protected from changes.", Color.Red);
            player.WPm=DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;

            }
                    return true;
                }
            }
            if (Config.SpawnProtection)
            {
                if (!player.Group.HasPermission(Permissions.editspawn))
                {
                    var flag = CheckSpawn(tileX, tileY);
                    if (flag)
                    {
                    if (((DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) - player.SPm) > 2000){
                        player.SendMessage("Spawn is protected from changes.", Color.Red);
                        player.SPm=DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
                        }
                    return true;
                    }
                }
            }
            return false;
        }
Beispiel #14
0
 public bool CheckRangePermission(TPPlayer player, int x, int y, int range = 32)
 {
     if (Config.RangeChecks && ((Math.Abs(player.TileX - x) > range) || (Math.Abs(player.TileY - y) > range)))
     {
         return true;
     }
     return false;
 }
Beispiel #15
0
        public bool HandleCommand(TPPlayer player, string text)
        {
            string cmdText = text.Remove(0, 1);

            var args = ParseParameters(cmdText);
            if (args.Count < 1)
                return false;

            string cmdName = args[0].ToLower();
            args.RemoveAt(0);

            IEnumerable<Command> cmds = ChatCommands.Where(c => c.HasAlias(cmdName));

            if (cmds.Count() == 0)
            {
                if (player.AwaitingResponse.ContainsKey(cmdName))
                {
                    Action<CommandArgs> call = player.AwaitingResponse[cmdName];
                    player.AwaitingResponse.Remove(cmdName);
                    call(new CommandArgs(cmdText, player, args));
                    return true;
                }
                player.SendErrorMessage("Invalid command entered. Type /help for a list of valid commands.");
                return true;
            }
            foreach (Command cmd in cmds)
            {
                if (!cmd.CanRun(player))
                {
                    tPulse.SendLogs(string.Format("{0} tried to execute /{1}.", player.Name, cmdText), Color.Red, tPulse);
                    player.SendErrorMessage("You do not have access to that command.");
                }
                else if (!cmd.AllowServer && !player.RealPlayer)
                {
                    player.SendErrorMessage("You must use this command in-game.");
                }
                else
                {
                    if (cmd.DoLog)
                        tPulse.SendLogs(string.Format("{0} executed: /{1}.", player.Name, cmdText), Color.Red, tPulse);
                    cmd.Run(cmdText, player, args);
                }
            }
            return true;
        }
Beispiel #16
0
        public void CopyInventory(TPPlayer player)
        {
            this.maxHealth = player.TPlayer.statLifeMax;
            Item[] inventory = player.TPlayer.inventory;
            Item[] armor = player.TPlayer.armor;
            for (int i = 0; i < NetItem.maxNetInventory; i++)
            {
                if (i < 49)
                {
                    if (player.TPlayer.inventory[i] != null)
                    {
                        this.inventory[i].netID = inventory[i].netID;
                    }
                    else
                    {
                        this.inventory[i].netID = 0;
                    }

                    if (this.inventory[i].netID != 0)
                    {
                        this.inventory[i].stack = inventory[i].stack;
                        this.inventory[i].prefix = inventory[i].prefix;
                    }
                    else
                    {
                        this.inventory[i].stack = 0;
                        this.inventory[i].prefix = 0;
                    }
                }
                else
                {
                    if (player.TPlayer.armor[i - 48] != null)
                    {
                        this.inventory[i].netID = armor[i - 48].netID;
                    }
                    else
                    {
                        this.inventory[i].netID = 0;
                    }

                    if (this.inventory[i].netID != 0)
                    {
                        this.inventory[i].stack = armor[i - 48].stack;
                        this.inventory[i].prefix = armor[i - 48].prefix;
                    }
                    else
                    {
                        this.inventory[i].stack = 0;
                        this.inventory[i].prefix = 0;
                    }
                }
            }
        }
Beispiel #17
0
 public GetDataHandlerArgs(TPPlayer player, MemoryStream data)
 {
     Player = player;
     Data = data;
 }
Beispiel #18
0
 public bool ContainsPlayer(TPPlayer player)
 {
     return Players.Contains(player);
 }
Beispiel #19
0
 public bool CanRun(TPPlayer ply)
 {
     return(ply.Group.HasPermission(Permission));
 }
Beispiel #20
0
 public bool IsInTeam(TPPlayer player)
 {
     return (Team1.Contains(player) || Team2.Contains(player));
 }
Beispiel #21
0
 private void onPlayerJoin(TPPlayer player)
 {
     if (_onPlayerJoin != null)
         _onPlayerJoin.Invoke(new PlayerConnectionEventArgs(player, PlayerConnectionAction.Join));
 }
Beispiel #22
0
        private void OnConnect(int ply, HandledEventArgs handler)
        {
            var player = new TPPlayer(ply);
            if (Config.EnableDNSHostResolution)
            {
                player.Group = Users.GetGroupForIPExpensive(player.IP);
            }
            else
            {
                player.Group = Users.GetGroupForIP(player.IP);
            }

            if (ActivePlayers() + 1 > Config.MaxSlots + 20)
            {
                PlayerHandle.ForceKick(player, Config.ServerFullNoReservedReason, true, false);
                handler.Handled = true;
                return;
            }

            var ipban = Bans.GetBanByIp(player.IP);
            Ban ban = null;
            if (ipban != null && Config.EnableIPBans)
                ban = ipban;

            if (ban != null)
            {
                PlayerHandle.ForceKick(player, string.Format("You are banned: {0}", ban.Reason), true, false);
                handler.Handled = true;
                return;
            }

            if (!FileTools.OnWhitelist(player.IP, this))
            {
                PlayerHandle.ForceKick(player, Config.WhitelistKickReason, true, false);
                handler.Handled = true;
                return;
            }

            if (Geo != null)
            {
                var code = Geo.TryGetCountryCode(IPAddress.Parse(player.IP));
                player.Country = code == null ? "N/A" : GeoIPCountry.GetCountryNameByCode(code);
                if (code == "A1")
                {
                    if (Config.KickProxyUsers)
                    {
                        PlayerHandle.ForceKick(player, "Proxies are not allowed.", true, false);
                        handler.Handled = true;
                        return;
                    }
                }
            }
            Players[ply] = player;
        }
Beispiel #23
0
        public void Send(TPPlayer from, string message)
        {
            if (Players.Contains(from))
            {
                String fmessage = String.Format("{0}: {1}", from.Name, message);

                foreach (TPPlayer player in Players)
                {
                    player.SendMessage(fmessage, TextColor);
                }

                ChannelLog.Write(fmessage);
            }
        }
Beispiel #24
0
        public bool CheckTilePermission(TPPlayer player, int tileX, int tileY)
        {
            if (!player.Group.HasPermission(Permissions.canbuild))
            {

            if (((DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) - player.BPm) > 2000){
                    player.SendMessage("You do not have permission to build!", Color.Red);
                    player.BPm=DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
                    }
                return true;
            }

            if (!player.Group.HasPermission(Permissions.editspawn) && !Regions.CanBuild(tileX, tileY, player) &&
                    Regions.InArea(tileX, tileY))
            {

                if (((DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) - player.RPm) > 2000)
                {
                    player.SendMessage("This region is protected from changes.", Color.Red);
                    player.RPm = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
                }
                return true;
            }

            if (Config.DisableBuild)
            {
                if (!player.Group.HasPermission(Permissions.editspawn))
                {
                if (((DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) - player.WPm) > 2000){
                        player.SendMessage("The world is protected from changes.", Color.Red);
                        player.WPm=DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
                        }
                    return true;
                }
            }
            if (Config.SpawnProtection)
            {
                if (!player.Group.HasPermission(Permissions.editspawn))
                {
                    var flag = CheckSpawn(tileX, tileY);
                    if (flag)
                    {
                    if (((DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) - player.SPm) > 1000){
                        player.SendMessage("Spawn is protected from changes.", Color.Red);
                        player.SPm=DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;

                        }

                        return true;
                    }
                }
            }
            return false;
        }
Beispiel #25
0
        public TPulse(Main game)
            : base(game)
        {
            Config = new ConfigFile();
            Order = 0;
            Players = new TPPlayer[Main.maxPlayers];

            PlugInHandler.AddPlugIn(this);

            Commands = new Commands(this);
            ServerHandle = new ServerHandler(this);
            PlayerHandle = new PlayerHandler(this);
        }
Beispiel #26
0
 private Dictionary<string, object> PlayerFilter(TPPlayer tsPlayer, IParameterCollection parameters)
 {
     var player = new Dictionary<string, object>
         {
             {"nickname", tsPlayer.Name},
             {"username", null == tsPlayer.UserAccountName ? "" : tsPlayer.UserAccountName},
             {"ip", tsPlayer.IP},
             {"group", tsPlayer.Group.Name},
             {"active", tsPlayer.Active},
             {"state", tsPlayer.State},
             {"team", tsPlayer.Team},
         };
     foreach (IParameter filter in parameters)
     {
         if (player.ContainsKey(filter.Name) && !player[filter.Name].Equals(filter.Value))
             return null;
     }
     return player;
 }
Beispiel #27
0
 private void onPlayerLeave(TPPlayer player)
 {
     if (_onPlayerLeave != null)
         _onPlayerLeave.Invoke(new PlayerConnectionEventArgs(player, PlayerConnectionAction.Leave));
 }
Beispiel #28
0
        private static bool OnTileEdit(TPPlayer ply, int x, int y, byte type, byte editType, bool fail)
        {
            if (TileEdit == null)
                return false;

            var args = new TileEditEventArgs
            {
                Player = ply,
                X = x,
                Y = y,
                Type = type,
                EditType = editType,
                Fail = fail
            };
            TileEdit.Invoke(null, args);
            return args.Handled;
        }
Beispiel #29
0
 public PlayerLoginEventArgs(TPPlayer player)
 {
     Player = player;
 }
Beispiel #30
0
        public static bool CheckInventory(TPPlayer player)
        {
            PlayerData playerData = player.PlayerData;
            bool check = true;

            if (player.TPlayer.statLifeMax > playerData.maxHealth)
            {
                player.SendMessage("Error: Your max health exceeded (" + playerData.maxHealth + ") which is stored on server.",
                                   Color.Cyan);
                check = false;
            }

            Item[] inventory = player.TPlayer.inventory;
            Item[] armor = player.TPlayer.armor;
            for (int i = 0; i < NetItem.maxNetInventory; i++)
            {
                if (i < 49)
                {
                    Item item = new Item();
                    Item serverItem = new Item();
                    if (inventory[i] != null && inventory[i].netID != 0)
                    {
                        if (playerData.inventory[i].netID != inventory[i].netID)
                        {
                            item.netDefaults(inventory[i].netID);
                            item.Prefix(inventory[i].prefix);
                            item.AffixName();
                            player.SendMessage(player.IgnoreActionsForInventory = "Your item (" + item.name + ") needs to be deleted.",
                                               Color.Cyan);
                            check = false;
                        }
                        else if (playerData.inventory[i].prefix != inventory[i].prefix)
                        {
                            item.netDefaults(inventory[i].netID);
                            item.Prefix(inventory[i].prefix);
                            item.AffixName();
                            player.SendMessage(player.IgnoreActionsForInventory = "Your item (" + item.name + ") needs to be deleted.",
                                               Color.Cyan);
                            check = false;
                        }
                        else if (inventory[i].stack > playerData.inventory[i].stack)
                        {
                            item.netDefaults(inventory[i].netID);
                            item.Prefix(inventory[i].prefix);
                            item.AffixName();
                            player.SendMessage(
                                player.IgnoreActionsForInventory =
                                "Your item (" + item.name + ") (" + inventory[i].stack + ") needs to have its stack size decreased to (" +
                                playerData.inventory[i].stack + ").", Color.Cyan);
                            check = false;
                        }
                    }
                }
                else
                {
                    Item item = new Item();
                    Item serverItem = new Item();
                    if (armor[i - 48] != null && armor[i - 48].netID != 0)
                    {
                        if (playerData.inventory[i].netID != armor[i - 48].netID)
                        {
                            item.netDefaults(armor[i - 48].netID);
                            item.Prefix(armor[i - 48].prefix);
                            item.AffixName();
                            player.SendMessage(player.IgnoreActionsForInventory = "Your armor (" + item.name + ") needs to be deleted.",
                                               Color.Cyan);
                            check = false;
                        }
                        else if (playerData.inventory[i].prefix != armor[i - 48].prefix)
                        {
                            item.netDefaults(armor[i - 48].netID);
                            item.Prefix(armor[i - 48].prefix);
                            item.AffixName();
                            player.SendMessage(player.IgnoreActionsForInventory = "Your armor (" + item.name + ") needs to be deleted.",
                                               Color.Cyan);
                            check = false;
                        }
                        else if (armor[i - 48].stack > playerData.inventory[i].stack)
                        {
                            item.netDefaults(armor[i - 48].netID);
                            item.Prefix(armor[i - 48].prefix);
                            item.AffixName();
                            player.SendMessage(
                                player.IgnoreActionsForInventory =
                                "Your armor (" + item.name + ") (" + inventory[i].stack + ") needs to have its stack size decreased to (" +
                                playerData.inventory[i].stack + ").", Color.Cyan);
                            check = false;
                        }
                    }
                }
            }

            return check;
        }
Beispiel #31
0
 public static bool HackedHealth(TPPlayer player)
 {
     return (player.TPlayer.statManaMax > 400) ||
            (player.TPlayer.statMana > 400) ||
            (player.TPlayer.statLifeMax > 400) ||
            (player.TPlayer.statLife > 400);
 }
Beispiel #32
0
        public static bool HackedInventory(TPPlayer player)
        {
            bool check = false;

            Item[] inventory = player.TPlayer.inventory;
            Item[] armor = player.TPlayer.armor;
            for (int i = 0; i < NetItem.maxNetInventory; i++)
            {
                if (i < 49)
                {
                    Item item = new Item();
                    if (inventory[i] != null && inventory[i].netID != 0)
                    {
                        item.netDefaults(inventory[i].netID);
                        item.Prefix(inventory[i].prefix);
                        item.AffixName();
                        if (inventory[i].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.name, inventory[i].stack),
                                Color.Cyan);
                        }
                    }
                }
                else
                {
                    Item item = new Item();
                    if (armor[i - 48] != null && armor[i - 48].netID != 0)
                    {
                        item.netDefaults(armor[i - 48].netID);
                        item.Prefix(armor[i - 48].prefix);
                        item.AffixName();
                        if (armor[i - 48].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove armor {0} ({1}) and then rejoin", item.name, armor[i - 48].stack),
                                Color.Cyan);
                        }
                    }
                }
            }

            return check;
        }
Beispiel #33
0
 public CommandArgs(string message, TPPlayer ply, List <string> args)
 {
     Message    = message;
     Player     = ply;
     Parameters = args;
 }
Beispiel #34
0
 public bool Ban(TPPlayer player, string reason, string adminUserName)
 {
     return Ban(player, reason, false, adminUserName);
 }
Beispiel #35
0
 public CommandArgs(string message, TPPlayer ply, List<string> args)
 {
     Message = message;
     Player = ply;
     Parameters = args;
 }
Beispiel #36
0
 public bool Ban(TPPlayer player, string reason, bool force = false, string adminUserName = null)
 {
     if (!player.ConnectionAlive)
         return true;
     if (force || !player.Group.HasPermission(Permissions.immunetoban))
     {
         string ip = player.IP;
         string playerName = player.Name;
         Bans.AddBan(ip, playerName, reason);
         player.Disconnect(string.Format("Banned: {0}", reason));
         Log.ConsoleInfo(string.Format("Banned {0} for : {1}", playerName, reason));
         string verb = force ? "force " : "";
         if (string.IsNullOrWhiteSpace(adminUserName))
             Utils.Broadcast(string.Format("{0} was {1}banned for {2}", playerName, verb, reason.ToLower()));
         else
             Utils.Broadcast(string.Format("{0} {1}banned {2} for {3}", adminUserName, verb, playerName, reason.ToLower()));
         return true;
     }
     return false;
 }
Beispiel #37
0
 public static bool HandlerGetData(PacketTypes type, TPPlayer player, MemoryStream data)
 {
     GetDataHandlerDelegate handler;
     if (GetDataHandlerDelegates.TryGetValue(type, out handler))
     {
         try
         {
             return handler(new GetDataHandlerArgs(player, data));
         }
         catch (Exception ex)
         {
             Log.Error(ex.ToString());
         }
     }
     return false;
 }
Beispiel #38
0
 public bool CheckIgnores(TPPlayer player)
 {
     bool check = false;
     if (Config.PvPMode == "always" && !player.TPlayer.hostile)
         check = true;
     if (player.IgnoreActionsForInventory != "none")
         check = true;
     if (player.IgnoreActionsForCheating != "none")
         check = true;
     if (player.IgnoreActionsForDisabledArmor != "none")
         check = true;
     if (player.IgnoreActionsForClearingTrashCan)
         check = true;
     if (!player.IsLoggedIn && Config.RequireLogin)
         check = true;
     return check;
 }
Beispiel #39
0
 public PlayerData(TPPlayer player)
 {
     for (int i = 0; i < NetItem.maxNetInventory; i++)
     {
         this.inventory[i] = new NetItem();
     }
     this.inventory[0].netID = -15;
     this.inventory[0].stack = 1;
     if (player.TPlayer.inventory[0] != null && player.TPlayer.inventory[0].netID == -15)
         this.inventory[0].prefix = player.TPlayer.inventory[0].prefix;
     this.inventory[1].netID = -13;
     this.inventory[1].stack = 1;
     if (player.TPlayer.inventory[1] != null && player.TPlayer.inventory[1].netID == -13)
         this.inventory[1].prefix = player.TPlayer.inventory[1].prefix;
     this.inventory[2].netID = -16;
     this.inventory[2].stack = 1;
     if (player.TPlayer.inventory[2] != null && player.TPlayer.inventory[2].netID == -16)
         this.inventory[2].prefix = player.TPlayer.inventory[2].prefix;
 }
Beispiel #40
0
        public bool CheckProjectilePermission(TPPlayer player, int index, int type)
        {
            if (type == 43)
            {
                return true;
            }

            if (type == 17 && !player.Group.HasPermission(Permissions.usebanneditem) && Itembans.ItemIsBanned("Dirt Rod", player))
                //Dirt Rod Projectile
            {
                return true;
            }

            if ((type == 42 || type == 65 || type == 68) && !player.Group.HasPermission(Permissions.usebanneditem) &&
                Itembans.ItemIsBanned("Sandgun", player)) //Sandgun Projectiles
            {
                return true;
            }

            Projectile proj = new Projectile();
            proj.SetDefaults(type);

            if (!player.Group.HasPermission(Permissions.usebanneditem) && Itembans.ItemIsBanned(proj.name, player))
            {
                return true;
            }

            if (Main.projHostile[type])
            {
                //player.SendMessage( proj.name, Color.Yellow);
                return true;
            }

            return false;
        }
Beispiel #41
0
 public PlayerLoginEventArgs(TPPlayer player)
 {
     Player = player;
 }
Beispiel #42
0
 private void SendHelp(TPPlayer player)
 {
     player.SendMessage("Friends: /friend cmd [args]", TextColor);
     player.SendMessage("Friends: Available commands", TextColor);
     player.SendMessage("Friends: add, del, list, help", TextColor);
 }