Advertisement
Klapek

Untitled

Apr 21st, 2020
2,784
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.33 KB | None | 0 0
  1. case "oban":
  2.                         {
  3.                             ev.Allow = false;
  4.  
  5.                             if (args.Length < 5)
  6.                             {
  7.                                 if (ServerExecutingCommand) Plugin.Info("USAGE: oban [UserID/IP] [TimeInMinutes or 0 for perm] [m/h/d/y] [Reason]");
  8.                                 else ev.Sender.RAMessage("USAGE: oban [UserID/IP] [TimeInMinutes or 0 for perm] [Reason]");
  9.                                 return;
  10.                             }
  11.                             string IssuingPlayer = "";
  12.                             if (ServerExecutingCommand) IssuingPlayer = "SERVER";
  13.                             else IssuingPlayer = Plugin.GetPlayer(ev.Sender.SenderId).name;
  14.                             string bannedUserID = args[1];
  15.                             int min;
  16.                             switch(args[3])
  17.                             {
  18.                                 case "m":
  19.                                 {
  20.                                     min = (int.TryParse(args[2], out int x)) ? x : 0;
  21.                                     break;
  22.                                 }
  23.                                 case "h":
  24.                                 {
  25.                                     min = (int.TryParse(args[2], out int x)) ? x*60 : 0;
  26.                                     break;
  27.                                 }
  28.                                 case "d":
  29.                                 {
  30.                                     min = (int.TryParse(args[2], out int x)) ? x * 60 * 24 : 0;
  31.                                     break;
  32.                                 }
  33.                                 case "y":
  34.                                 {
  35.                                     min = (int.TryParse(args[2], out int x)) ? x * 60 * 24 * 365 : 0;
  36.                                     break;
  37.                                 }
  38.                             }
  39.                             //int minutes = (int.TryParse(args[2], out int x)) ? x : 0;
  40.                             bool ipban = false;
  41.                            
  42.                             if (args[1].Contains("."))
  43.                             {
  44.                                 if (args[1].Split('.').Length != 4 && args[1].Substring(args[1].Length - 1) != ".")
  45.                                 {
  46.                                     if (ServerExecutingCommand) Plugin.Info("Invalid IP Address");
  47.                                     else ev.Sender.RAMessage("Invalid IP Address");
  48.                                     return;
  49.                                 }
  50.                                 ipban = true;
  51.  
  52.  
  53.                             }
  54.                             else if (args[1].Trim().Length < 17 || args[1].Trim().Length > 18)
  55.                             {
  56.                                 if (ServerExecutingCommand) Plugin.Info("Invalid UserID");
  57.                                 else ev.Sender.RAMessage("Invalid UserID");
  58.                                 return;
  59.                             }
  60.  
  61.                             bool discord = false;
  62.                             string UserIDOrIP = "";
  63.                             if (!ipban)
  64.                             {
  65.                                 discord = (args[1].Trim().Length > 17);
  66.                                 UserIDOrIP = args[1] + (discord ? "@discord" : "@steam");
  67.                             }
  68.                             else
  69.                             {
  70.                                 UserIDOrIP = args[1];
  71.                             }
  72.                             long banExpiryTime = TimeBehaviour.GetBanExpieryTime(26297438);
  73.                             if (args[2] != "0") banExpiryTime = TimeBehaviour.GetBanExpieryTime(Convert.ToUInt32(args[2]));
  74.                             BanDetails banDetails = new BanDetails();
  75.                             banDetails.Id = UserIDOrIP;
  76.                             banDetails.IssuanceTime = TimeBehaviour.CurrentTimestamp();
  77.                             banDetails.Expires = banExpiryTime;
  78.                             banDetails.Issuer = ev.Sender.Nickname;
  79.                             banDetails.OriginalName = "OfflinePlayer" + RandomGenerator.GetInt32(1, 9999);
  80.  
  81.                             string reason = "";
  82.                             IEnumerable<string> reasons = args.Where(s => s != args[0] && s != args[1] && s != args[2] && s != args[3]);
  83.                             foreach (string st in reasons)
  84.                                 reason += st;
  85.  
  86.                             banDetails.Reason = reason;
  87.  
  88.                             if (ipban) BanHandler.IssueBan(banDetails, BanHandler.BanType.IP);
  89.                             else BanHandler.IssueBan(banDetails, BanHandler.BanType.UserId);
  90.  
  91.                             if (ServerExecutingCommand) Plugin.Info("Banned");
  92.                             else ev.Sender.RAMessage("Banned");
  93.                             return;
  94.                         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement