Ejemplo n.º 1
0
        public void OnChat(ServerChatEventArgs e)
        {
            var Start = DateTime.Now;
            var msg   = e.Buffer;
            var ply   = e.Who;
            var tsplr = TShock.Players[e.Who];
            var text  = e.Text;

            if (e.Handled)
            {
                return;
            }

            if (text.StartsWith("/grow"))
            {
                if (!tsplr.Group.HasPermission(Permissions.grow))
                {
                    return;
                }
                var I = Houses.Count;

                for (int i = 0; i < I; i++)
                {
                    if (!HTools.OwnsHouse(tsplr.User, Houses[i]) && Houses[i].HouseArea.Intersects(new Rectangle(tsplr.TileX, tsplr.TileY, 1, 1)))
                    {
                        e.Handled = true;
                        tsplr.SendErrorMessage("You can't build here!");
                        return;
                    }
                }
                return;
            }

            if (HConfig.HouseChatEnabled)
            {
                if (text[0] == '/')
                {
                    return;
                }

                var I = HousingDistricts.Houses.Count;
                for (int i = 0; i < I; i++)
                {
                    if (Timeout(Start))
                    {
                        return;
                    }
                    House house;
                    try { house = HousingDistricts.Houses[i]; }
                    catch { continue; }
                    if (house.ChatEnabled == 1 && house.HouseArea.Intersects(new Rectangle(tsplr.TileX, tsplr.TileY, 1, 1)))
                    {
                        HTools.BroadcastToHouse(house, text, tsplr.Name);
                        e.Handled = true;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public void OnChat(messageBuffer msg, int ply, string text, HandledEventArgs e)
        {
            if (text[0] == '/')
            {
                return;
            }

            var tsplr = TShock.Players[msg.whoAmI];

            foreach (House house in HousingDistricts.Houses)
            {
                if (house.HouseArea.Intersects(new Rectangle(tsplr.TileX, tsplr.TileY, 1, 1)) && house.WorldID == Main.worldID.ToString())
                {
                    HTools.BroadcastToHouse(house.ID, text, tsplr.Name);
                    e.Handled = true;
                }
            }
        }