fix /tog command

This commit is contained in:
hydrant
2021-04-11 04:15:12 +02:00
parent 5ebbfb0638
commit f5c0bb4f6b
4 changed files with 36 additions and 5 deletions

View File

@@ -224,7 +224,7 @@ namespace ReallifeGamemode.Server.Commands
NAPI.Pools.GetAllPlayers().ForEach(p => NAPI.Pools.GetAllPlayers().ForEach(p =>
{ {
User pUser = p.GetUser(); 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); ChatService.SendMessage(p, broadcastMsg);
} }

View File

@@ -70,7 +70,10 @@ namespace ReallifeGamemode.Server.Events
{ {
Autowanted.Check_AutoWanted(killer, player); Autowanted.Check_AutoWanted(killer, player);
string message = "~y~[HINWEIS]: " + killer.Name + " hat " + player.Name + " getötet (" + Managers.WeaponManager.GetCauseOfDeathByHash(reason) + ")"; 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");
});
} }
} }
} }

View File

@@ -92,15 +92,30 @@ namespace ReallifeGamemode.Server.Events
ChatService.BroadcastGroup(msg, user.Group); ChatService.BroadcastGroup(msg, user.Group);
} }
string message = string.Empty;
if (GlobalHelper.CustomJoinMessages.ContainsKey(player.SocialClubName)) 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)) 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(); var userItems = dbContext.UserItems.Where(u => u.UserId == user.Id).ToList();
player.SetData("items", userItems); player.SetData("items", userItems);

View File

@@ -94,12 +94,25 @@ namespace ReallifeGamemode.Server.Services
/// </summary> /// </summary>
/// <param name="message">Die Nachricht, die gesendet werden soll</param> /// <param name="message">Die Nachricht, die gesendet werden soll</param>
/// <param name="minLevel">Das mindest Admin Level, das für das Erhalten dieser Nachricht benötigt wird</param> /// <param name="minLevel">Das mindest Admin Level, das für das Erhalten dieser Nachricht benötigt wird</param>
public static void BroadcastAdmin(string message, AdminLevel minLevel) public static void BroadcastAdmin(string message, AdminLevel minLevel, Func<Player, string> getAddInfoMessage = null, Predicate<Player> shouldSendMessage = null)
{ {
NAPI.Pools.GetAllPlayers().ForEach(p => NAPI.Pools.GetAllPlayers().ForEach(p =>
{ {
if (p.GetUser()?.IsAdmin(minLevel) ?? false) if (p.GetUser()?.IsAdmin(minLevel) ?? false)
{ {
if(shouldSendMessage != null)
{
if(!shouldSendMessage(p))
{
return;
}
}
if(getAddInfoMessage != null)
{
message += getAddInfoMessage(p);
}
ChatService.SendMessage(p, message); ChatService.SendMessage(p, message);
} }
}); });