This commit is contained in:
Luke
2021-05-09 18:51:15 +02:00
5 changed files with 98 additions and 12 deletions

View File

@@ -5,6 +5,7 @@ using System.Net.Http;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using GTANetworkAPI; using GTANetworkAPI;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json; using Newtonsoft.Json;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Entities.Logs.Chat; using ReallifeGamemode.Database.Entities.Logs.Chat;
@@ -16,6 +17,7 @@ using ReallifeGamemode.Server.Factions.Medic;
using ReallifeGamemode.Server.Finance; using ReallifeGamemode.Server.Finance;
using ReallifeGamemode.Server.Inventory.Interfaces; using ReallifeGamemode.Server.Inventory.Interfaces;
using ReallifeGamemode.Server.Job; using ReallifeGamemode.Server.Job;
using ReallifeGamemode.Server.Log;
using ReallifeGamemode.Server.Managers; using ReallifeGamemode.Server.Managers;
using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Services;
using ReallifeGamemode.Server.Types; using ReallifeGamemode.Server.Types;
@@ -33,6 +35,8 @@ namespace ReallifeGamemode.Server.Commands
{ {
public class AdminCommands : Script public class AdminCommands : Script
{ {
private ILogger logger = LogManager.GetLogger<AdminCommands>();
#region Todo #region Todo
[Command("syncanim", "~m~Benutzung: ~s~/syncanim [animName]")] [Command("syncanim", "~m~Benutzung: ~s~/syncanim [animName]")]
@@ -3837,9 +3841,12 @@ namespace ReallifeGamemode.Server.Commands
string playedHoursString = ""; string playedHoursString = "";
int jailTime = targetUser.JailTime; int jailTime = targetUser.JailTime;
if (user.IsAdmin(AdminLevel.HEADADMIN)) { if (user.IsAdmin(AdminLevel.HEADADMIN))
{
playedHoursString = playedHours.ToString(); playedHoursString = playedHours.ToString();
} else { }
else
{
int newbiePlayedHoursThreshold = GlobalHelper.newbiePlayedMinutesThreshold / 60; int newbiePlayedHoursThreshold = GlobalHelper.newbiePlayedMinutesThreshold / 60;
playedHoursString = playedHours > newbiePlayedHoursThreshold ? (newbiePlayedHoursThreshold + "+") : playedHours.ToString(); playedHoursString = playedHours > newbiePlayedHoursThreshold ? (newbiePlayedHoursThreshold + "+") : playedHours.ToString();
} }
@@ -3847,6 +3854,66 @@ namespace ReallifeGamemode.Server.Commands
ChatService.SendMessage(player, $"Statistiken von {target.Name} - HandMoney: {handmoney.ToMoneyString()}, BankMoney: {bankmoney.ToMoneyString()}, DriverLicense: {driverLicense.ToString()}, BikeLicense: {bikeLicense.ToString()}, FlyingLicense: {flyingLicense.ToString()}, WeaponLicense: {weaponLicense.ToString()}, playedHours: {playedHoursString}, JailTime: {jailTime.ToString()}"); ChatService.SendMessage(player, $"Statistiken von {target.Name} - HandMoney: {handmoney.ToMoneyString()}, BankMoney: {bankmoney.ToMoneyString()}, DriverLicense: {driverLicense.ToString()}, BikeLicense: {bikeLicense.ToString()}, FlyingLicense: {flyingLicense.ToString()}, WeaponLicense: {weaponLicense.ToString()}, playedHours: {playedHoursString}, JailTime: {jailTime.ToString()}");
} }
[Command("setvehiclebuyprice", "~m~Benutzung: ~s~/setvehiclebuyprice [Preis]", Alias = "svbp")]
public void CmdAdminSetVehicleBuyPrice(Player player, int price)
{
using var dbContext = new DatabaseContext();
User user = player.GetUser(dbContext);
if (!user.IsAdmin(AdminLevel.HEADADMIN))
{
ChatService.NotAuthorized(player);
return;
}
if (price < 0)
{
ChatService.ErrorMessage(player, "Der neue Kaufpreis muss positiv sein");
return;
}
if (!player.IsInVehicle)
{
ChatService.ErrorMessage(player, "Du sitzt nicht in einem Fahrzeug");
return;
}
Vehicle vehicle = player.Vehicle;
ServerVehicle serverVehicle = vehicle.GetServerVehicle(dbContext);
if (serverVehicle == null)
{
ChatService.ErrorMessage(player, "Dieses Fahrzeug ist keinem System zugeordnet");
return;
}
int? oldPrice = null;
if (serverVehicle is UserVehicle userVehicle)
{
oldPrice = userVehicle.Price;
userVehicle.Price = price;
}
else if (serverVehicle is FactionVehicle factionVehicle)
{
oldPrice = factionVehicle.BuyPrice;
factionVehicle.BuyPrice = price;
}
else
{
ChatService.ErrorMessage(player, "Dieses Fahrzeug ist weder ein User- noch ein Fraktionsfahrzeug");
return;
}
logger.LogInformation("{0} set the buyprice of vehicle {1} to {2}", user.Name, serverVehicle.Id, price);
dbContext.SaveChanges();
string oldPriceStr = oldPrice == null ? "nicht gesetzt" : oldPrice.ToMoneyString();
ChatService.SendMessage(player, $"~b~[ADMIN]~s~ Der Kaufpreis des Fahrzeugs ~y~{serverVehicle.Id}~s~ wurde auf ~g~{price.ToMoneyString()} gesetzt. Alter Preis: {oldPriceStr}");
}
#endregion ALevel1337 #endregion ALevel1337
#region ALevel1338 #region ALevel1338

View File

@@ -19,7 +19,8 @@ namespace ReallifeGamemode.Server.Commands
internal class UserCommands : Script internal class UserCommands : Script
{ {
[Command("rent", "~m~rent stop")] [Command("rent", "~m~rent stop")]
public void CmdUserStopRent(Player player, String option = "") { public void CmdUserStopRent(Player player, String option = "")
{
if (!player.IsLoggedIn()) return; if (!player.IsLoggedIn()) return;
if (option != "stop") if (option != "stop")
@@ -112,7 +113,8 @@ namespace ReallifeGamemode.Server.Commands
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
User user = player.GetUser(dbContext); User user = player.GetUser(dbContext);
if (user.BankAccount.Balance < 5) { if (user.BankAccount.Balance < 5)
{
ChatService.ErrorMessage(player, "Dafür hast du nicht genug Geld auf deinem Bankkonto"); ChatService.ErrorMessage(player, "Dafür hast du nicht genug Geld auf deinem Bankkonto");
return; return;
} }
@@ -220,8 +222,25 @@ namespace ReallifeGamemode.Server.Commands
if (pVeh.GetServerVehicle(dbContext) is ServerVehicle veh) if (pVeh.GetServerVehicle(dbContext) is ServerVehicle veh)
{ {
string dbIdStr = player.GetUser(dbContext).IsAdmin(AdminLevel.ADMIN) ? $" | DB-ID: {veh.Id}" : ""; User user = player.GetUser(dbContext);
ChatService.SendMessage(player, "~m~" + ((VehicleHash)pVeh.Model) + " | " + veh.ToString() + " | Farbe 1: " + pVeh.PrimaryColor + " | Farbe 2: " + pVeh.SecondaryColor + " | ID: " + pVeh.Handle.Value + dbIdStr); string addInfoStr = "";
if (user.IsAdmin(AdminLevel.ADMIN))
{
addInfoStr += $" | DB-ID: {veh.Id}";
}
if (user.IsAdmin(AdminLevel.HEADADMIN))
{
if (veh is FactionVehicle factionVehicle)
{
addInfoStr += " | Kaufpreis: " + factionVehicle.BuyPrice.ToMoneyString();
}
else if (veh is UserVehicle userVehicle)
{
addInfoStr += " | Kaufpreis: " + userVehicle.Price.ToMoneyString();
}
}
ChatService.SendMessage(player, "~m~" + ((VehicleHash)pVeh.Model) + " | " + veh.ToString() + " | Farbe 1: " + pVeh.PrimaryColor + " | Farbe 2: " + pVeh.SecondaryColor + " | ID: " + pVeh.Handle.Value + addInfoStr);
} }
else else
{ {

View File

@@ -241,7 +241,7 @@ namespace ReallifeGamemode.Server.Events
if (sV is UserVehicle uV) if (sV is UserVehicle uV)
{ {
if (uV.UserId != u.Id) if (uV.UserId != u.Id && (!u.IsAdmin(AdminLevel.HEADADMIN) || !player.IsTSupport()))
{ {
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken."); player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken.");
return; return;
@@ -249,7 +249,7 @@ namespace ReallifeGamemode.Server.Events
} }
else if (sV is FactionVehicle fV) else if (sV is FactionVehicle fV)
{ {
if (!fV.GetOwners().Contains(u.FactionId ?? 0) || !u.FactionLeader) if ((!fV.GetOwners().Contains(u.FactionId ?? 0) || !u.FactionLeader) && (!u.IsAdmin(AdminLevel.HEADADMIN) || !player.IsTSupport()))
{ {
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken."); player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken.");
return; return;

View File

@@ -222,7 +222,7 @@ namespace ReallifeGamemode.Server.Managers
PrimaryColor = 111, PrimaryColor = 111,
SecondaryColor = 111, SecondaryColor = 111,
Active = true, Active = true,
BuyPrice = price BuyPrice = (int)(price * FACTION_CAR_MULTIPLIER)
}; };
} }
//else if (target == "Gruppe") //else if (target == "Gruppe")

View File

@@ -89,7 +89,7 @@ namespace ReallifeGamemode.Server.Managers
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
foreach (VehicleMod vMod in dbContext.VehicleMods.Where(vM => vM.ServerVehicleId == sVeh.Id).ToList()) foreach (VehicleMod vMod in dbContext.VehicleMods.Where(vM => vM.ServerVehicleId == sVeh.Id).OrderBy(v => v.Slot).ToList())
{ {
if (vMod.Slot == -2) if (vMod.Slot == -2)
{ {