diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs
index a32d7df9..e423885c 100644
--- a/ReallifeGamemode.Server/Commands/FactionCommands.cs
+++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs
@@ -224,7 +224,7 @@ namespace ReallifeGamemode.Server.Commands
NAPI.Pools.GetAllPlayers().ForEach(p =>
{
User pUser = p.GetUser();
- if ((pUser?.FactionLeader ?? false) || pUser.IsAdmin(AdminLevel.ADMIN))
+ if ((pUser?.FactionLeader ?? false) || (pUser.IsAdmin(AdminLevel.ADMIN) && !p.HasData("toglc")))
{
ChatService.SendMessage(p, broadcastMsg);
}
diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs
index ba6e0506..5dff77b5 100644
--- a/ReallifeGamemode.Server/Events/Death.cs
+++ b/ReallifeGamemode.Server/Events/Death.cs
@@ -70,7 +70,10 @@ namespace ReallifeGamemode.Server.Events
{
Autowanted.Check_AutoWanted(killer, player);
string message = "~y~[HINWEIS]: " + killer.Name + " hat " + player.Name + " getötet (" + Managers.WeaponManager.GetCauseOfDeathByHash(reason) + ")";
- ChatService.BroadcastAdmin(message, AdminLevel.ADMIN);
+ ChatService.BroadcastAdmin(message, AdminLevel.ADMIN, shouldSendMessage: admin =>
+ {
+ return admin.HasData("togdeath");
+ });
}
}
}
diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs
index 344c2ed5..95690c6c 100644
--- a/ReallifeGamemode.Server/Events/Login.cs
+++ b/ReallifeGamemode.Server/Events/Login.cs
@@ -92,15 +92,30 @@ namespace ReallifeGamemode.Server.Events
ChatService.BroadcastGroup(msg, user.Group);
}
+ string message = string.Empty;
+
if (GlobalHelper.CustomJoinMessages.ContainsKey(player.SocialClubName))
{
- ChatService.BroadcastAdmin("!{#FFFF00}*** " + GlobalHelper.CustomJoinMessages[player.SocialClubName] + " [ID: " + player.Handle.Value + "] (" + user.AdminLevel.GetName() + ")", AdminLevel.MAPPING);
+ message = "!{#FFFF00}*** " + GlobalHelper.CustomJoinMessages[player.SocialClubName] + " [ID: " + player.Handle.Value + "] (" + user.AdminLevel.GetName() + ")");
}
else if (user.IsAdmin(AdminLevel.MAPPING))
{
- ChatService.BroadcastAdmin("!{#FFFF00}*** " + user.Name + " [ID: " + player.Handle.Value + "]" + " hat sich als " + user.AdminLevel.GetName() + " eingeloggt!", AdminLevel.MAPPING);
+ message = "!{#FFFF00}*** " + user.Name + " [ID: " + player.Handle.Value + "]" + " hat sich als " + user.AdminLevel.GetName() + " eingeloggt!";
}
+ string addInfoStr = " (IP: " + player.Address + ")";
+
+ if(!string.IsNullOrEmpty(message))
+ {
+ ChatService.BroadcastAdmin(message, AdminLevel.MAPPING, admin =>
+ {
+ if(admin.HasData("togip"))
+ {
+ return addInfoStr;
+ }
+ return "";
+ });
+ }
var userItems = dbContext.UserItems.Where(u => u.UserId == user.Id).ToList();
player.SetData("items", userItems);
diff --git a/ReallifeGamemode.Server/Services/ChatService.cs b/ReallifeGamemode.Server/Services/ChatService.cs
index 255b30ad..e1b62f63 100644
--- a/ReallifeGamemode.Server/Services/ChatService.cs
+++ b/ReallifeGamemode.Server/Services/ChatService.cs
@@ -94,12 +94,25 @@ namespace ReallifeGamemode.Server.Services
///
/// Die Nachricht, die gesendet werden soll
/// Das mindest Admin Level, das für das Erhalten dieser Nachricht benötigt wird
- public static void BroadcastAdmin(string message, AdminLevel minLevel)
+ public static void BroadcastAdmin(string message, AdminLevel minLevel, Func getAddInfoMessage = null, Predicate shouldSendMessage = null)
{
NAPI.Pools.GetAllPlayers().ForEach(p =>
{
if (p.GetUser()?.IsAdmin(minLevel) ?? false)
{
+ if(shouldSendMessage != null)
+ {
+ if(!shouldSendMessage(p))
+ {
+ return;
+ }
+ }
+
+ if(getAddInfoMessage != null)
+ {
+ message += getAddInfoMessage(p);
+ }
+
ChatService.SendMessage(p, message);
}
});