89 lines
3.4 KiB
C#
89 lines
3.4 KiB
C#
using GTANetworkAPI;
|
|
using ReallifeGamemode.Server.Entities;
|
|
using ReallifeGamemode.Server.Extensions;
|
|
using ReallifeGamemode.Server.Models;
|
|
using ReallifeGamemode.Server.Services;
|
|
using ReallifeGamemode.Server.Util;
|
|
using System.Linq;
|
|
|
|
namespace ReallifeGamemode.Server.Commands
|
|
{
|
|
class UserCommands : Script
|
|
{
|
|
[Command("accept", "~m~Benutzung: ~s~/accept [invite]")]
|
|
public void CmdUserAccept(Client player, string option)
|
|
{
|
|
if (!player.IsLoggedIn()) return;
|
|
|
|
option = option.ToLower();
|
|
|
|
switch (option)
|
|
{
|
|
case "invite":
|
|
{
|
|
if (!player.HasData("accept_invite"))
|
|
{
|
|
ChatService.Error(player, "Du hast keine Einladung in eine Fraktion erhalten.");
|
|
return;
|
|
}
|
|
|
|
player.ResetData("accept_data");
|
|
|
|
using (var dbContext = new DatabaseContext())
|
|
{
|
|
Client leader = NAPI.Player.GetPlayerFromHandle((NetHandle)player.GetData("accept_invite"));
|
|
|
|
if (leader == null)
|
|
{
|
|
ChatService.Error(player, "Die Einladung ist abgelaufen.");
|
|
return;
|
|
}
|
|
|
|
User u = leader.GetUser(dbContext);
|
|
User own = player.GetUser(dbContext);
|
|
|
|
own.FactionId = u.FactionId;
|
|
own.FactionLeader = false;
|
|
own.FactionRankId = dbContext
|
|
.FactionRanks
|
|
.OrderBy(x => x.Order)
|
|
.Where(r => r.FactionId == own.FactionId)
|
|
.FirstOrDefault()?.Id ?? null;
|
|
|
|
leader.SendChatMessage("!{02FCFF}" + player.Name + " hat die Einladung angenommen.");
|
|
player.SendChatMessage("!{02FCFF}Du hast die Einladung angenommen.");
|
|
|
|
dbContext.SaveChanges();
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
[Command("car", "~m~Benutzung: ~s~/car")]
|
|
public void CmdUserCar(Client player)
|
|
{
|
|
if (!player.IsLoggedIn()) return;
|
|
if (!player.IsInVehicle) return;
|
|
|
|
Vehicle pVeh = player.Vehicle;
|
|
|
|
if (pVeh.GetServerVehicle() is ServerVehicle veh)
|
|
{
|
|
if (player.GetUser().IsAdmin(AdminLevel.SUPPORTER))
|
|
{
|
|
player.SendChatMessage("~m~" + ((VehicleHash)pVeh.Model) + " | " + veh.ToString() + " | Farbe 1: " + pVeh.PrimaryColor + " | Farbe 2: " + pVeh.SecondaryColor + " | ID: " + pVeh.Handle.Value);
|
|
}
|
|
else
|
|
{
|
|
player.SendChatMessage("~m~" + ((VehicleHash)pVeh.Model) + " | Farbe 1: " + pVeh.PrimaryColor + " | Farbe 2: " + pVeh.SecondaryColor + " | ID: " + pVeh.Handle.Value);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
player.SendChatMessage("~m~" + ((VehicleHash)pVeh.Model) + " | Farbe 1: " + pVeh.PrimaryColor + " | Farbe 2: " + pVeh.SecondaryColor + " | ID: " + pVeh.Handle.Value);
|
|
}
|
|
}
|
|
}
|
|
}
|