Logging now works in telnet

This commit is contained in:
2025-11-24 16:00:35 +01:00
parent f88024e3e0
commit 860891293f
4 changed files with 22 additions and 21 deletions

Binary file not shown.

View File

@@ -4,6 +4,6 @@
<DisplayName value="CHRANI-Bot-TNG" /> <DisplayName value="CHRANI-Bot-TNG" />
<Description value="Companion Mod for the CHRANI-Bot-TNG" /> <Description value="Companion Mod for the CHRANI-Bot-TNG" />
<Author value="wwevo" /> <Author value="wwevo" />
<Version value="2.0.1.0" /> <Version value="2.0.2.0" />
<Website value="https://code.notjustfor.me/wwevo/chrani-bot-tng-mod" /> <Website value="https://code.notjustfor.me/wwevo/chrani-bot-tng-mod" />
</xml> </xml>

View File

@@ -14,7 +14,7 @@ public class CHRANIBotTNG : IModApi
public void InitMod(Mod _modInstance) public void InitMod(Mod _modInstance)
{ {
Console.WriteLine("[CHRANIBotTNG] Loading"); Log.Out("[CHRANIBotTNG] Loading");
modPath = _modInstance.Path; modPath = _modInstance.Path;
@@ -28,7 +28,7 @@ public class CHRANIBotTNG : IModApi
var harmony = new Harmony("com.chranibottng.mod"); var harmony = new Harmony("com.chranibottng.mod");
harmony.PatchAll(Assembly.GetExecutingAssembly()); harmony.PatchAll(Assembly.GetExecutingAssembly());
Console.WriteLine($"[CHRANIBotTNG] Loaded - {MutedPlayers.Count} muted players, {AdminManager.GetAdminCount()} admins"); Log.Out($"[CHRANIBotTNG] Loaded - {MutedPlayers.Count} muted players, {AdminManager.GetAdminCount()} admins");
} }
} }
@@ -46,7 +46,6 @@ public static class MuteStorage
Directory.CreateDirectory(dataDir); Directory.CreateDirectory(dataDir);
} }
muteFilePath = Path.Combine(dataDir, "muted_players.json"); muteFilePath = Path.Combine(dataDir, "muted_players.json");
Console.WriteLine($"[MuteStorage] Initialized: {muteFilePath}");
} }
public static HashSet<string> LoadMutedPlayers() public static HashSet<string> LoadMutedPlayers()
@@ -59,7 +58,7 @@ public static class MuteStorage
{ {
string json = File.ReadAllText(muteFilePath); string json = File.ReadAllText(muteFilePath);
var players = ParseJsonArray(json); var players = ParseJsonArray(json);
Console.WriteLine($"[MuteStorage] Loaded {players.Count} muted players"); Log.Out($"[CHRANIBotTNG] Loaded {players.Count} muted players");
return players; return players;
} }
} }
@@ -79,7 +78,7 @@ public static class MuteStorage
{ {
string json = ToJsonArray(players); string json = ToJsonArray(players);
File.WriteAllText(muteFilePath, json); File.WriteAllText(muteFilePath, json);
Console.WriteLine($"[MuteStorage] Saved {players.Count} muted players"); Log.Out($"[CHRANIBotTNG] Saved {players.Count} muted players");
} }
catch (Exception e) catch (Exception e)
{ {
@@ -218,22 +217,23 @@ public static class AdminManager
{ {
try try
{ {
var permStr = "";
XDocument doc = XDocument.Load(serverAdminPath); XDocument doc = XDocument.Load(serverAdminPath);
adminSteamIDs = doc.Descendants("user") adminSteamIDs = doc.Descendants("user")
.Where(u => .Where(u =>
{ {
var permStr = u.Attribute("permission_level")?.Value; permStr = u.Attribute("permission_level")?.Value;
return int.TryParse(permStr, out int perm) && perm < 1000; return int.TryParse(permStr, out int perm) && perm < 1000;
}) })
.Select(u => u.Attribute("userid")?.Value) .Select(u => u.Attribute("userid")?.Value)
.Where(id => !string.IsNullOrEmpty(id)) .Where(id => !string.IsNullOrEmpty(id))
.ToHashSet(); .ToHashSet();
Console.WriteLine($"[AdminManager] Loaded {adminSteamIDs.Count} admins (permission < 1000)"); Log.Out($"[CHRANIBotTNG] Loaded {adminSteamIDs.Count} admins (permission < 1000)");
foreach (var id in adminSteamIDs) foreach (var id in adminSteamIDs)
{ {
Console.WriteLine($" Admin: {id}"); Log.Out($"[CHRANIBotTNG] Admin: {id} ({permStr})");
} }
} }
catch (Exception e) catch (Exception e)
@@ -249,7 +249,7 @@ public static class AdminManager
DumpObject(_cInfo); DumpObject(_cInfo);
string steamId = _cInfo.PlatformId.ReadablePlatformUserIdentifier; string steamId = _cInfo.PlatformId.ReadablePlatformUserIdentifier;
Console.WriteLine($"[AdminManager] Checking admin-permissions for user: {steamId}"); Log.Out($"[CHRANIBotTNG] Checking admin-permissions for user: {steamId}");
// Try exact match first // Try exact match first
if (adminSteamIDs.Contains(steamId)) if (adminSteamIDs.Contains(steamId))
@@ -275,7 +275,7 @@ public static class AdminManager
{ {
if (serverAdminPath != null) if (serverAdminPath != null)
{ {
Console.WriteLine("[AdminManager] Reloading serveradmin.xml"); Log.Out($"[CHRANIBotTNG] Reloading serveradmin.xml");
LoadAdmins(); LoadAdmins();
} }
} }
@@ -345,14 +345,14 @@ public class ChatMessagePatch
// Check if user is admin // Check if user is admin
if (!AdminManager.IsAdmin(_cInfo)) if (!AdminManager.IsAdmin(_cInfo))
{ {
Console.WriteLine($"[CHRANIBotTNG] Non-admin {_cInfo?.playerName} tried to mute - denied"); Log.Out($"[CHRANIBotTNG] Non-admin {_cInfo?.playerName} tried to mute - denied");
} }
else else
{ {
string targetId = parts[2]; string targetId = parts[2];
CHRANIBotTNG.MutedPlayers.Add(targetId); CHRANIBotTNG.MutedPlayers.Add(targetId);
MuteStorage.SaveMutedPlayers(CHRANIBotTNG.MutedPlayers); MuteStorage.SaveMutedPlayers(CHRANIBotTNG.MutedPlayers);
Console.WriteLine($"[CHRANIBotTNG] Admin {_cInfo?.playerName} muted: {targetId}"); Log.Out($"[CHRANIBotTNG] Admin {_cInfo?.playerName} muted: {targetId}");
} }
} }
else if (parts.Length >= 3 && parts[1].ToLower() == "unmute") else if (parts.Length >= 3 && parts[1].ToLower() == "unmute")
@@ -360,7 +360,7 @@ public class ChatMessagePatch
// Check if user is admin // Check if user is admin
if (!AdminManager.IsAdmin(_cInfo)) if (!AdminManager.IsAdmin(_cInfo))
{ {
Console.WriteLine($"[CHRANIBotTNG] Non-admin {_cInfo?.playerName} tried to unmute - denied"); Log.Out($"[CHRANIBotTNG] Non-admin {_cInfo?.playerName} tried to unmute - denied");
} }
else else
{ {
@@ -368,11 +368,11 @@ public class ChatMessagePatch
if (CHRANIBotTNG.MutedPlayers.Remove(targetId)) if (CHRANIBotTNG.MutedPlayers.Remove(targetId))
{ {
MuteStorage.SaveMutedPlayers(CHRANIBotTNG.MutedPlayers); MuteStorage.SaveMutedPlayers(CHRANIBotTNG.MutedPlayers);
Console.WriteLine($"[CHRANIBotTNG] Admin {_cInfo?.playerName} unmuted: {targetId}"); Log.Out($"[CHRANIBotTNG] Admin {_cInfo?.playerName} unmuted: {targetId}");
} }
else else
{ {
Console.WriteLine($"[CHRANIBotTNG] Player was not muted: {targetId}"); Log.Out($"[CHRANIBotTNG] Player was not muted: {targetId}");
} }
} }
} }
@@ -381,14 +381,14 @@ public class ChatMessagePatch
// Show muted players list // Show muted players list
if (!AdminManager.IsAdmin(_cInfo)) if (!AdminManager.IsAdmin(_cInfo))
{ {
Console.WriteLine($"[CHRANIBotTNG] Non-admin {_cInfo?.playerName} tried to view mutelist - denied"); Log.Out($"[CHRANIBotTNG] Non-admin {_cInfo?.playerName} tried to view mutelist - denied");
} }
else else
{ {
Console.WriteLine($"[CHRANIBotTNG] Muted players ({CHRANIBotTNG.MutedPlayers.Count}):"); Log.Out($"[CHRANIBotTNG] Muted players ({CHRANIBotTNG.MutedPlayers.Count}):");
foreach (var muted in CHRANIBotTNG.MutedPlayers) foreach (var muted in CHRANIBotTNG.MutedPlayers)
{ {
Console.WriteLine($" - {muted}"); Log.Out($"[CHRANIBotTNG] {muted}");
} }
} }
} }
@@ -397,12 +397,12 @@ public class ChatMessagePatch
// Reload serveradmin.xml // Reload serveradmin.xml
if (!AdminManager.IsAdmin(_cInfo)) if (!AdminManager.IsAdmin(_cInfo))
{ {
Console.WriteLine($"[CHRANIBotTNG] Non-admin {_cInfo?.playerName} tried to reload - denied"); Log.Out($"[CHRANIBotTNG] Non-admin {_cInfo?.playerName} tried to reload - denied");
} }
else else
{ {
AdminManager.Reload(); AdminManager.Reload();
Console.WriteLine($"[CHRANIBotTNG] Admin {_cInfo?.playerName} reloaded serveradmin.xml"); Log.Out($"[CHRANIBotTNG] Admin {_cInfo?.playerName} reloaded serveradmin.xml");
} }
} }

View File

@@ -8,6 +8,7 @@ csc -target:library \
-out:CHRANIBotTNG/CHRANIBotTNG.dll \ -out:CHRANIBotTNG/CHRANIBotTNG.dll \
-nostdlib \ -nostdlib \
-r:"$GAME_DIR/7DaysToDie_Data/Managed/mscorlib.dll" \ -r:"$GAME_DIR/7DaysToDie_Data/Managed/mscorlib.dll" \
-r:"$GAME_DIR/7DaysToDie_Data/Managed/LogLibrary.dll" \
-r:"$GAME_DIR/7DaysToDie_Data/Managed/netstandard.dll" \ -r:"$GAME_DIR/7DaysToDie_Data/Managed/netstandard.dll" \
-r:"$GAME_DIR/7DaysToDie_Data/Managed/System.dll" \ -r:"$GAME_DIR/7DaysToDie_Data/Managed/System.dll" \
-r:"$GAME_DIR/7DaysToDie_Data/Managed/System.Core.dll" \ -r:"$GAME_DIR/7DaysToDie_Data/Managed/System.Core.dll" \