public static void ban(Arg arg) { BasePlayer player = ArgEx.GetPlayer(arg, 0); if (!player || player.net == null || player.net.connection == null) { arg.ReplyWith("Player not found"); return; } ServerUsers.User user = ServerUsers.Get(player.userID); if (user != null && user.group == ServerUsers.UserGroup.Banned) { arg.ReplyWith($"User {player.userID} is already banned"); return; } string @string = arg.GetString(1, "No Reason Given"); long expiry; string durationSuffix; if (TryGetBanExpiry(arg, 2, out expiry, out durationSuffix)) { ServerUsers.Set(player.userID, ServerUsers.UserGroup.Banned, player.displayName, @string, expiry); string text = ""; if (player.IsConnected && player.net.connection.ownerid != 0L && player.net.connection.ownerid != player.net.connection.userid) { text += $" and also banned ownerid {player.net.connection.ownerid}"; ServerUsers.Set(player.net.connection.ownerid, ServerUsers.UserGroup.Banned, player.displayName, arg.GetString(1, $"Family share owner of {player.net.connection.userid}"), -1L); } ServerUsers.Save(); arg.ReplyWith($"Kickbanned User{durationSuffix}: {player.userID} - {player.displayName}{text}"); Chat.Broadcast("Kickbanning " + player.displayName + durationSuffix + " (" + @string + ")", "SERVER", "#eee", 0uL); Network.Net.sv.Kick(player.net.connection, "Banned" + durationSuffix + ": " + @string); } }
public static void ban(ConsoleSystem.Arg arg) { BasePlayer player = arg.GetPlayer(0); if (!player || player.net == null || player.net.connection == null) { arg.ReplyWith("Player not found"); return; } ServerUsers.User user = ServerUsers.Get(player.userID); if (user != null && user.@group == ServerUsers.UserGroup.Banned) { arg.ReplyWith(string.Concat("User ", player.userID, " is already banned")); return; } string str = arg.GetString(1, "No Reason Given"); ServerUsers.Set(player.userID, ServerUsers.UserGroup.Banned, player.displayName, str); string str1 = ""; if (player.IsConnected && player.net.connection.ownerid != player.net.connection.userid) { str1 = string.Concat(str1, " and also banned ownerid ", player.net.connection.ownerid); ServerUsers.Set(player.net.connection.ownerid, ServerUsers.UserGroup.Banned, player.displayName, arg.GetString(1, string.Concat("Family share owner of ", player.net.connection.userid))); } ServerUsers.Save(); arg.ReplyWith(string.Concat(new object[] { "Kickbanned User: "******" - ", player.displayName, str1 })); Chat.Broadcast(string.Concat(new string[] { "Kickbanning ", player.displayName, " (", str, ")" }), "SERVER", "#eee", (ulong)0); Network.Net.sv.Kick(player.net.connection, string.Concat("Banned: ", str)); }
//Not really a hook but sorta as we are copy paste overwriting it void OverwriteBanCommand(ConsoleSystem.Arg arg) { BasePlayer player = ArgEx.GetPlayer(arg, 0); if (!(bool)player || player.net == null || player.net.connection == null) { arg.ReplyWith("Player not found"); } else { ServerUsers.User user = ServerUsers.Get(player.userID); if (user != null && user.group == ServerUsers.UserGroup.Banned) { arg.ReplyWith("User " + player.userID + " is already banned"); } else { string @string = arg.GetString(1, "No Reason Given"); ServerUsers.Set(player.userID, ServerUsers.UserGroup.Banned, player.displayName, @string); string text = string.Empty; if (player.IsConnected && player.net.connection.ownerid != player.net.connection.userid) { text = text + " and also banned ownerid " + player.net.connection.ownerid; ServerUsers.Set(player.net.connection.ownerid, ServerUsers.UserGroup.Banned, player.displayName, arg.GetString(1, "Family share owner of " + player.net.connection.userid)); } //We don't actually have to save, because we save on user group changed //OnServerSaveUsers(); //ServerUsers.Save(); arg.ReplyWith("Kickbanned User: "******" - " + player.displayName + text); PrintToChat("Kickbanning " + player.displayName + " (" + @string + ")", "SERVER", "#eee", 0uL); Network.Net.sv.Kick(player.net.connection, "Banned: " + @string); } } }
public static void ban(ConsoleSystem.Arg arg) { BasePlayer player = arg.GetPlayer(0); if (!Object.op_Implicit((Object)player) || player.net == null || player.net.get_connection() == null) { arg.ReplyWith("Player not found"); } else { ServerUsers.User user = ServerUsers.Get(player.userID); if (user != null && user.group == ServerUsers.UserGroup.Banned) { arg.ReplyWith("User " + (object)player.userID + " is already banned"); } else { string notes = arg.GetString(1, "No Reason Given"); ServerUsers.Set(player.userID, ServerUsers.UserGroup.Banned, player.displayName, notes); string str = ""; if (player.IsConnected && player.net.get_connection().ownerid != player.net.get_connection().userid) { str = str + " and also banned ownerid " + (object)(ulong)player.net.get_connection().ownerid; ServerUsers.Set((ulong)player.net.get_connection().ownerid, ServerUsers.UserGroup.Banned, player.displayName, arg.GetString(1, "Family share owner of " + (object)(ulong)player.net.get_connection().userid)); } ServerUsers.Save(); arg.ReplyWith("Kickbanned User: "******" - " + player.displayName + str); Chat.Broadcast("Kickbanning " + player.displayName + " (" + notes + ")", "SERVER", "#eee", 0UL); ((Server)Net.sv).Kick(player.net.get_connection(), "Banned: " + notes); } } }
public static ServerUsers.User Get(ulong uid) { ServerUsers.User user = (ServerUsers.User)null; if (ServerUsers.users.TryGetValue(uid, out user)) { return(user); } return((ServerUsers.User)null); }
public static bool Is(ulong uid, ServerUsers.UserGroup group) { ServerUsers.User user = ServerUsers.Get(uid); if (user == null) { return(false); } return(user.group == group); }
public static void Set(ulong uid, ServerUsers.UserGroup group, string username, string notes) { ServerUsers.Remove(uid); ServerUsers.User user = new ServerUsers.User() { steamid = uid, group = group, username = username, notes = notes }; Interface.CallHook("IOnServerUsersSet", (object)uid, (object)group, (object)username, (object)notes); ServerUsers.users.Add(uid, user); }
public void OnNewConnection(Connection connection) { connection.connected = false; if (connection.token == null || connection.token.Length < 32) { Reject(connection, "Invalid Token"); return; } if (connection.userid == 0L) { Reject(connection, "Invalid SteamID"); return; } if (connection.protocol != 2306) { if (!DeveloperList.Contains(connection.userid)) { Reject(connection, "Incompatible Version"); return; } DebugEx.Log("Not kicking " + connection.userid + " for incompatible protocol (is a developer)"); } if (ServerUsers.Is(connection.userid, ServerUsers.UserGroup.Banned)) { ServerUsers.User user = ServerUsers.Get(connection.userid); string text = user?.notes ?? "no reason given"; string text2 = ((user != null && user.expiry > 0) ? (" for " + (user.expiry - Epoch.Current).FormatSecondsLong()) : ""); Reject(connection, "You are banned from this server" + text2 + " (" + text + ")"); return; } if (ServerUsers.Is(connection.userid, ServerUsers.UserGroup.Moderator)) { DebugEx.Log(connection.ToString() + " has auth level 1"); connection.authLevel = 1u; } if (ServerUsers.Is(connection.userid, ServerUsers.UserGroup.Owner)) { DebugEx.Log(connection.ToString() + " has auth level 2"); connection.authLevel = 2u; } if (DeveloperList.Contains(connection.userid)) { DebugEx.Log(connection.ToString() + " is a developer"); connection.authLevel = 3u; } if (Interface.CallHook("IOnUserApprove", connection) == null) { m_AuthConnection.Add(connection); StartCoroutine(AuthorisationRoutine(connection)); } }
private bool CanJumpQueue(Connection connection) { object obj = Interface.CallHook("CanBypassQueue", (object)connection); if (obj is bool) { return((bool)obj); } if (DeveloperList.Contains((ulong)connection.userid)) { return(true); } ServerUsers.User user = ServerUsers.Get((ulong)connection.userid); return(user != null && user.group == ServerUsers.UserGroup.Moderator || user != null && user.group == ServerUsers.UserGroup.Owner); }
public static void unban(ConsoleSystem.Arg arg) { ulong num = arg.GetUInt64(0, (ulong)0); if (num < 70000000000000000L) { arg.ReplyWith(string.Concat("This doesn't appear to be a 64bit steamid: ", num)); return; } ServerUsers.User user = ServerUsers.Get(num); if (user == null || user.@group != ServerUsers.UserGroup.Banned) { arg.ReplyWith(string.Concat("User ", num, " isn't banned")); return; } ServerUsers.Remove(num); arg.ReplyWith(string.Concat("Unbanned User: ", num)); }
public static void removeowner(Arg arg) { ulong uInt = arg.GetUInt64(0, 0uL); if (uInt < 70000000000000000L) { arg.ReplyWith("This doesn't appear to be a 64bit steamid: " + uInt); return; } ServerUsers.User user = ServerUsers.Get(uInt); if (user == null || user.group != ServerUsers.UserGroup.Owner) { arg.ReplyWith("User " + uInt + " isn't an owner"); return; } ServerUsers.Remove(uInt); arg.ReplyWith("Removed Owner: " + uInt); }
public static void unban(Arg arg) { ulong uInt = arg.GetUInt64(0, 0uL); if (uInt < 70000000000000000L) { arg.ReplyWith($"This doesn't appear to be a 64bit steamid: {uInt}"); return; } ServerUsers.User user = ServerUsers.Get(uInt); if (user == null || user.group != ServerUsers.UserGroup.Banned) { arg.ReplyWith($"User {uInt} isn't banned"); return; } ServerUsers.Remove(uInt); arg.ReplyWith("Unbanned User: " + uInt); }
public static void ownerid(Arg arg) { ulong uInt = arg.GetUInt64(0, 0uL); string @string = arg.GetString(1, "unnamed"); string string2 = arg.GetString(2, "no reason"); if (uInt < 70000000000000000L) { arg.ReplyWith("This doesn't appear to be a 64bit steamid: " + uInt); return; } ServerUsers.User user = ServerUsers.Get(uInt); if (user != null && user.group == ServerUsers.UserGroup.Owner) { arg.ReplyWith("User " + uInt + " is already an Owner"); return; } ServerUsers.Set(uInt, ServerUsers.UserGroup.Owner, @string, string2, -1L); arg.ReplyWith("Added owner " + @string + ", steamid " + uInt); }
public static void banid(ConsoleSystem.Arg arg) { ulong num = arg.GetUInt64(0, (ulong)0); string str = arg.GetString(1, "unnamed"); string str1 = arg.GetString(2, "no reason"); if (num < 70000000000000000L) { arg.ReplyWith(string.Concat("This doesn't appear to be a 64bit steamid: ", num)); return; } ServerUsers.User user = ServerUsers.Get(num); if (user != null && user.@group == ServerUsers.UserGroup.Banned) { arg.ReplyWith(string.Concat("User ", num, " is already banned")); return; } ServerUsers.Set(num, ServerUsers.UserGroup.Banned, str, str1); arg.ReplyWith(string.Concat(new object[] { "Banned User: "******" - ", str })); }
public static void banid(Arg arg) { ulong uInt = arg.GetUInt64(0, 0uL); string text = arg.GetString(1, "unnamed"); string @string = arg.GetString(2, "no reason"); if (uInt < 70000000000000000L) { arg.ReplyWith("This doesn't appear to be a 64bit steamid: " + uInt); return; } ServerUsers.User user = ServerUsers.Get(uInt); if (user != null && user.group == ServerUsers.UserGroup.Banned) { arg.ReplyWith("User " + uInt + " is already banned"); } else { long expiry; string durationSuffix; if (!TryGetBanExpiry(arg, 3, out expiry, out durationSuffix)) { return; } string text2 = ""; BasePlayer basePlayer = BasePlayer.FindByID(uInt); if (basePlayer != null && basePlayer.IsConnected) { text = basePlayer.displayName; if (basePlayer.IsConnected && basePlayer.net.connection.ownerid != 0L && basePlayer.net.connection.ownerid != basePlayer.net.connection.userid) { text2 += $" and also banned ownerid {basePlayer.net.connection.ownerid}"; ServerUsers.Set(basePlayer.net.connection.ownerid, ServerUsers.UserGroup.Banned, basePlayer.displayName, arg.GetString(1, $"Family share owner of {basePlayer.net.connection.userid}"), expiry); } Chat.Broadcast("Kickbanning " + basePlayer.displayName + durationSuffix + " (" + @string + ")", "SERVER", "#eee", 0uL); Network.Net.sv.Kick(basePlayer.net.connection, "Banned" + durationSuffix + ": " + @string); } ServerUsers.Set(uInt, ServerUsers.UserGroup.Banned, text, @string, expiry); arg.ReplyWith($"Banned User{durationSuffix}: {uInt} - \"{text}\" for \"{@string}\"{text2}"); } }
public static void unban(ConsoleSystem.Arg arg) { ulong uint64 = arg.GetUInt64(0, 0UL); if (uint64 < 70000000000000000UL) { arg.ReplyWith("This doesn't appear to be a 64bit steamid: " + (object)uint64); } else { ServerUsers.User user = ServerUsers.Get(uint64); if (user == null || user.group != ServerUsers.UserGroup.Banned) { arg.ReplyWith("User " + (object)uint64 + " isn't banned"); } else { ServerUsers.Remove(uint64); arg.ReplyWith("Unbanned User: " + (object)uint64); } } }
public static void banid(ConsoleSystem.Arg arg) { ulong uint64 = arg.GetUInt64(0, 0UL); string username = arg.GetString(1, "unnamed"); string notes = arg.GetString(2, "no reason"); if (uint64 < 70000000000000000UL) { arg.ReplyWith("This doesn't appear to be a 64bit steamid: " + (object)uint64); } else { ServerUsers.User user = ServerUsers.Get(uint64); if (user != null && user.group == ServerUsers.UserGroup.Banned) { arg.ReplyWith("User " + (object)uint64 + " is already banned"); } else { ServerUsers.Set(uint64, ServerUsers.UserGroup.Banned, username, notes); arg.ReplyWith("Banned User: "******" - " + username); } } }
private bool UsernameValid(ServerUsers.User user) { return(UsernameValid(user.steamid, user.username)); }
public PlayerBan(ServerUsers.User user) { SteamID = user.steamid; Username = user.username; Reason = user.notes; }