예제 #1
0
 void OnChat(messageBuffer msg, int ply, string text, HandledEventArgs e)
 {
     if (!text.StartsWith("/"))
     {
         TSPlayer plr = TShock.Players[msg.whoAmI];
         if (EBUtils.IsPlayerMuted(plr.Name))
         {
             plr.SendMessage("You are muted!", Color.Red);
             e.Handled = true;
         }
     }
 }
예제 #2
0
        void OnChat(ServerChatEventArgs e)
        {
            string text = e.Text;

            if (!text.StartsWith(TShockAPI.Commands.Specifier) || !text.StartsWith(TShockAPI.Commands.SilentSpecifier) || text.StartsWith("/me"))
            {
                TSPlayer plr = TShock.Players[e.Who];
                if (EBUtils.IsPlayerMuted(plr.Name))
                {
                    plr.SendMessage("You are muted!", Color.Red);
                    e.Handled = true;
                }
            }
        }
예제 #3
0
 internal static void UnMute(CommandArgs args)
 {
     if (args.Parameters.Count > 0)
     {
         string          Player = args.Parameters[0];
         List <EBPlayer> plrs   = EBPlayer.GetPlayersByName(Player);
         if (plrs.Count > 1)
         {
             args.Player.SendMessage("There are 2 or more players matching to " + Player, Color.Orange);
             return;
         }
         else if (plrs.Count == 1)
         {
             foreach (EBPlayer plr in plrs)
             {
                 Player = plr.TSPlayer.Name;
             }
         }
         if (!EBUtils.IsPlayerMuted(Player))
         {
             args.Player.SendMessage("Player is not muted!", Color.Red);
             return;
         }
         int now = EBUtils.UnixTimestamp();
         if (EBConfig.UseMysql)
         {
             EBData.DBMysql.Query("UPDATE MutedPlayer SET UnmuteDate = @0 WHERE LOWER(Player) = @1 AND (UnmuteDate>@0 OR UnmuteDate = 0)", now, Player.ToLower());
         }
         else
         {
             EBData.DBSqlite.Query("UPDATE MutedPlayer SET UnmuteDate = @0 WHERE LOWER(Player) = @1 AND (UnmuteDate>@0 OR UnmuteDate = 0)", now, Player.ToLower());
         }
         if (plrs.Count > 0)
         {
             plrs[0].TSPlayer.SendMessage("You have been unmuted.", Color.Yellow);
         }
         args.Player.SendMessage(Player + " has been unmuted.", Color.Yellow);
     }
     else
     {
         args.Player.SendMessage("Extended mute:", Color.Yellow);
         args.Player.SendMessage("/xmute <player> [time] <reason>", Color.Yellow);
         args.Player.SendMessage("/xunmute <player>", Color.Yellow);
     }
 }
예제 #4
0
        internal static void DoMute(CommandArgs args)
        {
            if (args.Parameters.Count > 1)
            {
                string          Player = args.Parameters[0];
                List <EBPlayer> plrs   = EBPlayer.GetPlayersByName(Player);
                if (plrs.Count > 1)
                {
                    args.Player.SendMessage("There are 2 or more players matching to " + Player, Color.Orange);
                    return;
                }
                else if (plrs.Count == 1)
                {
                    foreach (EBPlayer plr in plrs)
                    {
                        Player = plr.TSPlayer.Name;
                    }
                }
                if (EBUtils.IsPlayerMuted(Player))
                {
                    args.Player.SendMessage("Player is already muted.", Color.Red);
                    return;
                }

                int      MuteDate  = EBUtils.UnixTimestamp();
                bool     permanent = false;
                int      UnmuteDate;
                TimeSpan t = EBUtils.ParseTimeSpan(args.Parameters[1]);
                if (t.TotalSeconds > 0)
                {
                    UnmuteDate = MuteDate + (int)t.TotalSeconds;
                }
                else
                {
                    UnmuteDate = 0;
                    permanent  = true;
                }
                string MutedBy = args.Player.Name;
                string Reason  = EBUtils.JoinArgs(args, (permanent) ? 1 : 2);
                if (String.IsNullOrEmpty(Reason))
                {
                    Reason = "No reason.";
                }

                if (EBConfig.UseMysql)
                {
                    EBData.DBMysql.Query("INSERT INTO MutedPlayer (Player, MuteDate, UnmuteDate, MutedBy, Reason) VALUES (@0, @1, @2, @3, @4)", Player, MuteDate, UnmuteDate, MutedBy, Reason);
                }
                else
                {
                    EBData.DBSqlite.Query("INSERT INTO MutedPlayer (Player, MuteDate, UnmuteDate, MutedBy, Reason) VALUES (@0, @1, @2, @3, @4)", Player, MuteDate, UnmuteDate, MutedBy, Reason);
                }
                if (plrs.Count > 0)
                {
                    plrs[0].TSPlayer.SendMessage("You have been muted: " + Reason, Color.Yellow);
                }
                args.Player.SendMessage(Player + " has been muted!.", Color.Yellow);
            }
            else
            {
                args.Player.SendMessage("Extended mute:", Color.Yellow);
                args.Player.SendMessage("/xmute <player> [time] <reason>", Color.Yellow);
                args.Player.SendMessage("/xunmute <player>", Color.Yellow);
            }
        }