Skip to content

Commit

Permalink
Allow providing reasons for IP bans
Browse files Browse the repository at this point in the history
  • Loading branch information
UnknownShadow200 committed Nov 22, 2022
1 parent b50525e commit 1b9ef7c
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 10 deletions.
6 changes: 4 additions & 2 deletions MCGalaxy/CorePlugin/ConnectingHandler.cs
Expand Up @@ -89,8 +89,10 @@ internal static class ConnectingHandler {
}

static bool CheckBanned(Player p) {
if (Server.bannedIP.Contains(p.ip)) {
p.Kick(null, Server.Config.DefaultBanMessage, true);
string ipban = Server.bannedIP.Get(p.ip);
if (ipban != null) {
ipban = ipban.Length > 0 ? ipban : Server.Config.DefaultBanMessage;
p.Kick(null, ipban, true);
return false;
}
if (p.Rank != LevelPermission.Banned) return true;
Expand Down
8 changes: 5 additions & 3 deletions MCGalaxy/CorePlugin/ModActionHandler.cs
Expand Up @@ -164,14 +164,16 @@ internal static class ModActionHandler {

static void DoBanIP(ModAction e) {
LogIPAction(e, "&8IP banned");
Logger.Log(LogType.UserActivity, "IP-BANNED: {0} by {1}.", e.Target, e.Actor.name);
Server.bannedIP.Add(e.Target);
Logger.Log(LogType.UserActivity, "IP-BANNED: {0} by {1}.{2}",
e.Target, e.Actor.name, e.ReasonSuffixed);
Server.bannedIP.Update(e.Target, e.Reason);
Server.bannedIP.Save();
}

static void DoUnbanIP(ModAction e) {
LogIPAction(e, "&8IP unbanned");
Logger.Log(LogType.UserActivity, "IP-UNBANNED: {0} by {1}.", e.Target, e.Actor.name);
Logger.Log(LogType.UserActivity, "IP-UNBANNED: {0} by {1}.",
e.Target, e.Actor.name);
Server.bannedIP.Remove(e.Target);
Server.bannedIP.Save();
}
Expand Down
15 changes: 15 additions & 0 deletions MCGalaxy/Player/List/PlayerExtList.cs
Expand Up @@ -74,6 +74,7 @@ public class PlayerExtList {

/// <summary> Retrieves the data associated with the given name. </summary>
/// <remarks> Returns null if there is no data associated. </remarks>
[Obsolete("Use Get() instead")]
public string FindData(string name) {
lock (locker) {
int idx = names.CaselessIndexOf(name);
Expand All @@ -84,6 +85,20 @@ public class PlayerExtList {
return idx == -1 ? null : line.Substring(idx + 1);
}
}

/// <summary> Retrieves the data associated with the given name </summary>
/// <remarks> Returns "" if the data associated with the given name is missing </remarks>
/// <remarks> Returns null if the given name was not found at all </remarks>
public string Get(string name) {
lock (locker) {
int idx = names.CaselessIndexOf(name);
if (idx == -1) return null;

string line = lines[idx];
idx = line.IndexOf(Separator);
return idx == -1 ? "" : line.Substring(idx + 1);
}
}


[Obsolete("Use Update instead")]
Expand Down
4 changes: 2 additions & 2 deletions MCGalaxy/Server/Server.Fields.cs
Expand Up @@ -56,10 +56,10 @@ public sealed partial class Server {
//Other
public static bool SetupFinished, CLIMode;

public static PlayerList bannedIP, whiteList, invalidIds;
public static PlayerList whiteList, invalidIds;
public static PlayerList ignored, hidden, agreed, vip, noEmotes, lockdown;
public static PlayerExtList models, skins, reach, rotations, modelScales;
public static PlayerExtList frozen, muted, tempBans, tempRanks;
public static PlayerExtList bannedIP, frozen, muted, tempBans, tempRanks;

public static readonly List<string> Devs = new List<string>() { "Hetal", "UclCommander" };
public static readonly List<string> Opstats = new List<string>() { "ban", "tempban", "xban", "banip", "kick", "warn", "mute", "freeze", "setrank" };
Expand Down
6 changes: 3 additions & 3 deletions MCGalaxy/Server/Server.Init.cs
Expand Up @@ -67,7 +67,6 @@ public sealed partial class Server {
invalidIds = PlayerList.Load("extra/invalidids.txt");
Player.Console.DatabaseID = NameConverter.InvalidNameID("(console)");

bannedIP = PlayerList.Load("ranks/banned-ip.txt");
hidden = PlayerList.Load("ranks/hidden.txt");
vip = PlayerList.Load("text/vip.txt");
noEmotes = PlayerList.Load("text/emotelist.txt");
Expand All @@ -79,8 +78,9 @@ public sealed partial class Server {
rotations = PlayerExtList.Load("extra/rotations.txt");
modelScales = PlayerExtList.Load("extra/modelscales.txt");

muted = PlayerExtList.Load("ranks/muted.txt");
frozen = PlayerExtList.Load("ranks/frozen.txt");
bannedIP = PlayerExtList.Load("ranks/banned-ip.txt");
muted = PlayerExtList.Load("ranks/muted.txt");
frozen = PlayerExtList.Load("ranks/frozen.txt");
tempRanks = PlayerExtList.Load(Paths.TempRanksFile);
tempBans = PlayerExtList.Load(Paths.TempBansFile);
whiteList = PlayerList.Load("ranks/whitelist.txt");
Expand Down

0 comments on commit 1b9ef7c

Please sign in to comment.