Repository navigation
Expand file tree
/
Copy pathCommandQKick.cs
More file actions
103 lines (92 loc) · 3.42 KB
/
Copy pathCommandQKick.cs
File metadata and controls
103 lines (92 loc) · 3.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
using System;
using System.Collections.Generic;
using Rocket.API;
using Rocket.Core.Logging;
using Rocket.Unturned.Chat;
using Rocket.Unturned.Commands;
using Rocket.Unturned.Player;
using Rocket.API.Extensions;
namespace QBan
{
public class CommandQKick : IRocketCommand
{
public AllowedCaller AllowedCaller
{
get { return AllowedCaller.Both; }
}
public string Help
{
get { return "Kicks a player."; }
}
public string Syntax
{
get { return "<\"playername\"|SteamID64> <\"Reason\">"; }
}
public string Name
{
get { return "kick"; }
}
public List<string> Aliases
{
get { return new List<string>(); }
}
public List<string> Permissions
{
get { return new List<string>() { "qban.kick" }; }
}
public void Execute(IRocketPlayer caller, string[] command)
{
if(command.Length == 0)
{
UnturnedChat.Say(caller, this.Syntax + " - " + this.Help);
return;
}
UnturnedPlayer target = command.GetUnturnedPlayerParameter(0);
if(command.Length > 2)
{
UnturnedChat.Say(caller, "Error: Too many arguments in command.");
return;
}
// Fail on invalid steam id or missing playername.
if (command[0].Trim() == String.Empty || command[0].Trim() == "0")
{
UnturnedChat.Say(caller, "Error: Invalid player name in kick command.");
return;
}
string commandReason = command.GetStringParameter(1) != null ? command.GetStringParameter(1) : "";
// Fail if there is no reason when it has been set as mandetory.
if (commandReason.Trim() == String.Empty && QBan.Instance.Configuration.Instance.ReasonManditory)
{
UnturnedChat.Say(caller, "Error: Reason is mandatory on kick command.");
return;
}
// see if we can kick them.
try
{
string reason = "You've been kicked.";
if (command.Length == 2)
{
reason = commandReason.Trim();
}
target.Kick(reason);
if (!(caller is ConsolePlayer))
{
if (caller != target)
{
UnturnedChat.Say(caller, String.Format("You've kicked player {0}[{1}]({2}).", target.CharacterName, target.SteamName, target.CSteamID));
}
UnturnedPlayer unturnedCaller = (UnturnedPlayer)caller;
Logger.Log(String.Format("Player {0}[{1}]({2}) has been kicked by admin {3}[{4}]({5}). Reason: {6}", target.CharacterName, target.SteamName, target.CSteamID, unturnedCaller.CharacterName, unturnedCaller.SteamName, unturnedCaller.CSteamID, reason));
}
else
{
Logger.Log(String.Format("Player {0}[{1}]({2}), has been kicked by Console. Reason: {3}", target.CharacterName, target.SteamName, target.CSteamID, reason));
}
}
catch
{
UnturnedChat.Say(caller, String.Format("Player {0} not found.", command[0]));
}
}
}
}