diff --git a/CHRANIBotTNG/CHRANIBotTNG.dll b/CHRANIBotTNG/CHRANIBotTNG.dll
index 4fef98c..f5b2cc3 100644
Binary files a/CHRANIBotTNG/CHRANIBotTNG.dll and b/CHRANIBotTNG/CHRANIBotTNG.dll differ
diff --git a/CHRANIBotTNG/ModInfo.xml b/CHRANIBotTNG/ModInfo.xml
index 18e6376..baa8dbb 100644
--- a/CHRANIBotTNG/ModInfo.xml
+++ b/CHRANIBotTNG/ModInfo.xml
@@ -4,6 +4,6 @@
-
+
\ No newline at end of file
diff --git a/Harmony/CHRANIBotTNG.cs b/Harmony/CHRANIBotTNG.cs
index 82c7a59..fd06229 100644
--- a/Harmony/CHRANIBotTNG.cs
+++ b/Harmony/CHRANIBotTNG.cs
@@ -14,7 +14,7 @@ public class CHRANIBotTNG : IModApi
public void InitMod(Mod _modInstance)
{
- Console.WriteLine("[CHRANIBotTNG] Loading");
+ Log.Out("[CHRANIBotTNG] Loading");
modPath = _modInstance.Path;
@@ -28,7 +28,7 @@ public class CHRANIBotTNG : IModApi
var harmony = new Harmony("com.chranibottng.mod");
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);
}
muteFilePath = Path.Combine(dataDir, "muted_players.json");
- Console.WriteLine($"[MuteStorage] Initialized: {muteFilePath}");
}
public static HashSet LoadMutedPlayers()
@@ -59,7 +58,7 @@ public static class MuteStorage
{
string json = File.ReadAllText(muteFilePath);
var players = ParseJsonArray(json);
- Console.WriteLine($"[MuteStorage] Loaded {players.Count} muted players");
+ Log.Out($"[CHRANIBotTNG] Loaded {players.Count} muted players");
return players;
}
}
@@ -79,7 +78,7 @@ public static class MuteStorage
{
string json = ToJsonArray(players);
File.WriteAllText(muteFilePath, json);
- Console.WriteLine($"[MuteStorage] Saved {players.Count} muted players");
+ Log.Out($"[CHRANIBotTNG] Saved {players.Count} muted players");
}
catch (Exception e)
{
@@ -218,22 +217,23 @@ public static class AdminManager
{
try
{
+ var permStr = "";
XDocument doc = XDocument.Load(serverAdminPath);
adminSteamIDs = doc.Descendants("user")
.Where(u =>
{
- var permStr = u.Attribute("permission_level")?.Value;
+ permStr = u.Attribute("permission_level")?.Value;
return int.TryParse(permStr, out int perm) && perm < 1000;
})
.Select(u => u.Attribute("userid")?.Value)
.Where(id => !string.IsNullOrEmpty(id))
.ToHashSet();
- Console.WriteLine($"[AdminManager] Loaded {adminSteamIDs.Count} admins (permission < 1000)");
+ Log.Out($"[CHRANIBotTNG] Loaded {adminSteamIDs.Count} admins (permission < 1000)");
foreach (var id in adminSteamIDs)
{
- Console.WriteLine($" Admin: {id}");
+ Log.Out($"[CHRANIBotTNG] Admin: {id} ({permStr})");
}
}
catch (Exception e)
@@ -249,7 +249,7 @@ public static class AdminManager
DumpObject(_cInfo);
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
if (adminSteamIDs.Contains(steamId))
@@ -275,7 +275,7 @@ public static class AdminManager
{
if (serverAdminPath != null)
{
- Console.WriteLine("[AdminManager] Reloading serveradmin.xml");
+ Log.Out($"[CHRANIBotTNG] Reloading serveradmin.xml");
LoadAdmins();
}
}
@@ -345,14 +345,14 @@ public class ChatMessagePatch
// Check if user is admin
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
{
string targetId = parts[2];
CHRANIBotTNG.MutedPlayers.Add(targetId);
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")
@@ -360,7 +360,7 @@ public class ChatMessagePatch
// Check if user is admin
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
{
@@ -368,11 +368,11 @@ public class ChatMessagePatch
if (CHRANIBotTNG.MutedPlayers.Remove(targetId))
{
MuteStorage.SaveMutedPlayers(CHRANIBotTNG.MutedPlayers);
- Console.WriteLine($"[CHRANIBotTNG] Admin {_cInfo?.playerName} unmuted: {targetId}");
+ Log.Out($"[CHRANIBotTNG] Admin {_cInfo?.playerName} unmuted: {targetId}");
}
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
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
{
- Console.WriteLine($"[CHRANIBotTNG] Muted players ({CHRANIBotTNG.MutedPlayers.Count}):");
+ Log.Out($"[CHRANIBotTNG] Muted players ({CHRANIBotTNG.MutedPlayers.Count}):");
foreach (var muted in CHRANIBotTNG.MutedPlayers)
{
- Console.WriteLine($" - {muted}");
+ Log.Out($"[CHRANIBotTNG] {muted}");
}
}
}
@@ -397,12 +397,12 @@ public class ChatMessagePatch
// Reload serveradmin.xml
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
{
AdminManager.Reload();
- Console.WriteLine($"[CHRANIBotTNG] Admin {_cInfo?.playerName} reloaded serveradmin.xml");
+ Log.Out($"[CHRANIBotTNG] Admin {_cInfo?.playerName} reloaded serveradmin.xml");
}
}
diff --git a/build.sh b/build.sh
index 49c3519..9d12bdf 100755
--- a/build.sh
+++ b/build.sh
@@ -8,6 +8,7 @@ csc -target:library \
-out:CHRANIBotTNG/CHRANIBotTNG.dll \
-nostdlib \
-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/System.dll" \
-r:"$GAME_DIR/7DaysToDie_Data/Managed/System.Core.dll" \