using GTANetworkAPI; using ReallifeGamemode.Server.Entities; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Finance; using ReallifeGamemode.Server.Models; using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Util; using System; using System.Linq; using System.Collections; using System.Collections.Generic; using Newtonsoft.Json; namespace ReallifeGamemode.Server.Report { class Report : Script { public static List listReports = new List(); [Command("report", "~m~Benutzung: ~s~/report")] public void CmdUserReport(Client client, String message) { User user = client.GetUser(); client.TriggerEvent("showReportType"); //ChatService.BroadcastAdmin("Eingehendes Ticket von " + client.Name + ": " + message + " (Benutze /showtickets)", AdminLevel.ADMIN); ReportManage ticket = new ReportManage(client.Name, message); listReports.Add(ticket); } [Command("showtickets", "~m~Benutzung: ~s~/showtickets")] public void CmdAdminShowtickets(Client client) { if (!client.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) { ChatService.NotAuthorized(client); return; } if (listReports.Count == 0) { return; } User user = client.GetUser(); List listPlayers = new List(); List listTicketnames = new List(); for (int a=0; a< listReports.Count; a++) { ReportManage temp = listReports[a]; listPlayers.Add(temp.getUser()); listTicketnames.Add(temp.getReporttext()); } //ChatService.SendMessage(client, JsonConvert.SerializeObject(listPlayers)); client.TriggerEvent("showReportMenu", JsonConvert.SerializeObject(listPlayers), JsonConvert.SerializeObject(listTicketnames)); } [RemoteEvent("acceptReport")] public void AcceptReport(Client admin, string client) { Client player = ClientService.GetClientByNameOrId(client); if (player == null) return; ChatService.SendMessage(player, "Admin " + admin.Name + " hat dein Ticket angenommen!"); ChatService.BroadcastAdmin(admin.Name + " hat das Ticket von " + player.Name + " angenommen", AdminLevel.ADMIN); for (int a = 0; a < listReports.Count; a++) { ReportManage temp = listReports[a]; if (temp.getUser().Equals(player.Name)) { listReports[a].setAdmin(admin.Name); } } } [RemoteEvent("requestReport")] public void RequestReport(Client user, dynamic data) { ChatService.BroadcastAdmin("JA MAN!" + ", " + data, AdminLevel.ADMIN); } [RemoteEvent("sendReport")] public void SendReport(Client user, string type) { if (type.Equals("Quick Report")) { ChatService.BroadcastAdmin("Quick Report von " + user.Name, AdminLevel.ADMIN); } else if (type.Equals("Ticket Report")) { ChatService.BroadcastAdmin("Ticket Report von " + user.Name, AdminLevel.ADMIN); user.TriggerEvent("textbox"); } } [RemoteEvent("deleteReport")] public void DeleteReport(Client user, string name) { Client player = ClientService.GetClientByNameOrId(name); if (player == null) return; for (int a = 0; a < listReports.Count; a++) { ReportManage temp = listReports[a]; if (temp.getUser().Equals(player.Name)) { ChatService.Broadcast("Ticket von " + player.Name + " gelöscht!"); listReports.Remove(temp); } } ChatService.BroadcastAdmin(user.Name + " hat das Ticket von " + player.Name + " gelöscht", AdminLevel.ADMIN); } } }