Esempio n. 1
0
        private static bool OnSignHit(int x, int y, string text, int who)
        {
            if (!text.ToLower().StartsWith(config.DefineSignCommands.ToLower()))
            {
                return(false);
            }

            var tPly = TShock.Players[who];
            var sign = ScSigns.Check(x, y, text, tPly);
            var sPly = ScPlayers[who];

            if (tPly == null || sPly == null)
            {
                return(false);
            }

            var canBreak = ScUtils.CanBreak(tPly, sign);

            if (sPly.DestroyMode && canBreak)
            {
                return(false);
            }

            if (config.ShowDestroyMessage && canBreak && sPly.AlertDestroyCooldown == 0)
            {
                tPly.SendInfoMessage("To destroy this sign, Type \"/destsign\".");
                sPly.AlertDestroyCooldown = 5;
            }

            sign.ExecuteCommands(sPly);

            return(true);
        }
Esempio n. 2
0
        private static bool OnSignNew(int x, int y, string text, int who)
        {
            if (!text.ToLower().StartsWith(config.DefineSignCommands.ToLower()))
            {
                return(false);
            }

            var tPly  = TShock.Players[who];
            var point = new Point(x, y);
            var sign  = new ScSign(text, tPly, point);

            if (tPly == null)
            {
                return(false);
            }

            if (sign.noEdit || !tPly.Group.HasPermission("sc.edit*")) // && -> ||
            {
                return(true);
            }

            if (ScUtils.CanCreate(tPly, sign))
            {
                ScSigns.AddItem(point, sign);
                return(false);
            }

            tPly.SendErrorMessage("You do not have permission to create that sign command.");
            return(true);
        }
Esempio n. 3
0
        private static bool OnSignKill(int x, int y, string text, int who)
        {
            if (!text.ToLower().StartsWith(config.DefineSignCommands.ToLower()))
            {
                return(false);
            }

            var sPly = ScPlayers[who];
            var sign = ScSigns.Check(x, y, text, sPly.TsPlayer);

            if (sPly == null)
            {
                return(false);
            }

            if (sPly.DestroyMode && ScUtils.CanBreak(sPly.TsPlayer, sign))
            {
                sPly.DestroyMode = false;
                //Cooldown removal
                return(false);
            }
            sign.ExecuteCommands(sPly);
            return(true);
        }