Files
reallife-gamemode/ReallifeGamemode.Server/Commands/UserCommands.cs
2019-05-06 12:26:02 +02:00

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);
}
}
}
}