52 lines
1.2 KiB
C#
52 lines
1.2 KiB
C#
using GTANetworkAPI;
|
|
using ReallifeGamemode.Database.Entities;
|
|
using ReallifeGamemode.Database.Entities.Logs.Chat;
|
|
using ReallifeGamemode.Database.Models;
|
|
using ReallifeGamemode.Server.Extensions;
|
|
using ReallifeGamemode.Server.Services;
|
|
|
|
namespace ReallifeGamemode.Server.Commands
|
|
{
|
|
internal class GroupCommands : Script
|
|
{
|
|
#region Chat Commands
|
|
|
|
[Command("gc", "~m~Benutzung: ~s~/gc [Nachricht]", GreedyArg = true)]
|
|
public void CmdGroupG(Player player, string message)
|
|
{
|
|
if(!player.IsLoggedIn())
|
|
{
|
|
return;
|
|
}
|
|
|
|
using var dbContext = new DatabaseContext();
|
|
User user = player.GetUser(dbContext);
|
|
|
|
Group group = user?.Group;
|
|
if (group == null)
|
|
{
|
|
ChatService.NotAuthorized(player);
|
|
return;
|
|
}
|
|
|
|
|
|
var logEntry = new GroupChatLogEntry()
|
|
{
|
|
Text = message,
|
|
UserId = user.Id,
|
|
GroupId = user.Group.Id
|
|
};
|
|
|
|
dbContext.GroupChatLogs.Add(logEntry);
|
|
dbContext.SaveChanges();
|
|
|
|
message = System.Text.RegularExpressions.Regex.Replace(message, "(~[a-zA-Z]~)|(!{(.*)})", "");
|
|
message = $"{player.Name}: {message}";
|
|
|
|
ChatService.BroadcastGroup(message, group);
|
|
}
|
|
|
|
#endregion Chat Commands
|
|
}
|
|
}
|