Merge branch 'develop' into feature/inventory-system

This commit is contained in:
VegaZ
2018-11-30 20:49:12 +01:00
55 changed files with 1114 additions and 9974 deletions

View File

@@ -17,6 +17,7 @@ using reallife_gamemode.Server.Managers;
using reallife_gamemode.Server.Inventory.Items;
using reallife_gamemode.Server.Inventory.Interfaces;
using reallife_gamemode.Server.Saves;
using reallife_gamemode.Server.Business;
/**
* @overview Life of German Reallife - Admin Commands (Admin.cs)
@@ -216,11 +217,12 @@ namespace reallife_gamemode.Server.Commands
return;
}
/* if (target == player) //TODO: wieder reintun, musste testen
if (target == player)
{
ChatService.ErrorMsg(player);
return;
}*/
}
player.SendChatMessage("~y~PM an " + target.Name + ": " + msg + " ");
string Message = "~y~PM von " + player.GetUser().AdminLevel.GetName() + " " + player.Name + ": " + msg + "";
NAPI.Chat.SendChatMessageToPlayer(target, Message);
@@ -244,6 +246,22 @@ namespace reallife_gamemode.Server.Commands
}
}
}
[Command("businesslist", "~m~Benutzung: ~s~/businesslist")]
public void CmdAdminBusinessList(Client player)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
player.SendChatMessage("~m~__________ ~s~Businesses ~m~__________");
foreach (Business.BusinessBase b in BusinessManager.Businesses)
{
player.SendChatMessage(b.Id.ToString().PadRight(3) + " | " + b.Name);
}
}
#endregion
@@ -309,11 +327,14 @@ namespace reallife_gamemode.Server.Commands
return;
}
var gotoString = "";
foreach (GotoPoint point in LoadManager.GotoPointList)
using(var dbContext = new DatabaseContext())
{
if (point.Active)
foreach (GotoPoint point in dbContext.GotoPoints)
{
gotoString += point.Description + ", ";
if (point.Active)
{
gotoString += point.Description + ", ";
}
}
}
player.SendChatMessage(gotoString);
@@ -594,7 +615,7 @@ namespace reallife_gamemode.Server.Commands
if (ban.Applied == ban.UntilDateTime)
{
user.UnbanPlayer(admin);
user.UnbanPlayer();
}
else
{
@@ -605,7 +626,7 @@ namespace reallife_gamemode.Server.Commands
return;
}
}
user.UnbanPlayer(admin);
user.UnbanPlayer();
}
string message = "~b~[ADMIN] ~s~Der Spieler ~y~" + user.Name + " ~s~wurde von ~y~" + admin.Name + " ~s~entbannt.";
@@ -841,7 +862,7 @@ namespace reallife_gamemode.Server.Commands
}
[Command("vdestroy")]
public void CmdAdminDelveh(Client player)
public void CmdAdminVdestroy(Client player)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true)
{
@@ -855,10 +876,16 @@ namespace reallife_gamemode.Server.Commands
return;
}
/* TODO: Checken, ob das Fahrzeug in einem System genutzt wird (Fraktions-Autos / Spieler-Auto)
* Wenn Ja: Abbrechen und mitteilen, dass man den System-spezifischen Befehl zu nutzen hat */
Vehicle playerVeh = player.Vehicle;
player.Vehicle.Delete();
ServerVehicle veh = VehicleManager.GetServerVehicleFromVehicle(playerVeh);
if(veh != null)
{
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Fahrzeug wird von einem Server-System benutzt: ~m~" + veh.GetType().Name);
return;
}
VehicleManager.DeleteVehicle(playerVeh);
}
[Command("vcolor", "~m~Benutzung: ~s~/vcolor [Farb-ID1] [Farb-ID2]")]
@@ -1345,17 +1372,18 @@ namespace reallife_gamemode.Server.Commands
if (player.IsInVehicle)
{
Vehicle vehicle = player.Vehicle;
SaveManager.SaveVehicleData((VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), vehicle.Locked, vehicle.EngineStatus, Convert.ToByte(vehicle.Dimension));
int playerSeat = player.VehicleSeat;
vehicle = SaveManager.SaveVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), vehicle.Locked);
player.SendNotification("Fahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
player.SetIntoVehicle(vehicle, playerSeat);
}
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
break;
case "FVehicle":
if (player.IsInVehicle)
{
if (player.GetUser().FactionId == null)
if (player.GetUser().GetFaction() == null)
{
player.SendChatMessage("~m~Du bist in keiner Fraktion! Invite dich erst mit ~y~/ainvite");
return;
@@ -1363,11 +1391,12 @@ namespace reallife_gamemode.Server.Commands
else
{
Vehicle vehicle = player.Vehicle;
SaveManager.SaveFactionVehicleData((VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), vehicle.Locked, vehicle.EngineStatus, Convert.ToByte(vehicle.Dimension), player.GetUser().FactionId);
vehicle.SetData("factionId", player.GetUser().FactionId);
LoadManager.FactionVehicleList.Add(vehicle);
player.SendChatMessage("second color: " + vehicle.SecondaryColor);
int playerSeat = player.VehicleSeat;
vehicle = SaveManager.SaveFactionVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
vehicle.PrimaryColor, vehicle.SecondaryColor, vehicle.Locked, vehicle.EngineStatus, player.GetUser().FactionId);
player.SendNotification("Fraktionsfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
player.SetIntoVehicle(vehicle, playerSeat);
}
}
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
@@ -1376,10 +1405,11 @@ namespace reallife_gamemode.Server.Commands
if (player.IsInVehicle)
{
Vehicle vehicle = player.Vehicle;
SaveManager.SaveShopVehicleData((VehicleHash)vehicle.Model, vehicle.DisplayName, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), Convert.ToByte(vehicle.Dimension), player.GetUser().FactionId);
LoadManager.ShopVehicleList.Add(vehicle);
int playerSeat = player.VehicleSeat;
vehicle = SaveManager.SaveShopVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.DisplayName, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor));
player.SendNotification("Shopfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
player.SetIntoVehicle(vehicle, playerSeat);
}
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
break;
@@ -1694,6 +1724,7 @@ namespace reallife_gamemode.Server.Commands
NAPI.Chat.SendChatMessageToPlayer(player, "~w~Das Wetter konnte nicht geändert werden");
}
}
[Command("aspeed", "~m~Benutzung: ~s~/aspeed [Modifier]")] //TODO: Überarbeiten ?? SetPlayerVelocity ??
public void CmdAdminAspeed(Client player, float modifier)
{
@@ -1711,7 +1742,8 @@ namespace reallife_gamemode.Server.Commands
player.Vehicle.EnginePowerMultiplier = modifier;
}
[Command("setmoney")]
[Command("setmoney", "~m~Benutzung: ~s~/setmoney [Name] [Menge]")]
public void SetPlayerMoney(Client player, string receiver, int amount)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
@@ -1735,7 +1767,7 @@ namespace reallife_gamemode.Server.Commands
target.SendChatMessage("~b~[ADMIN]~s~ Dein Geld wurde von Admin " + player.Name + " auf ~g~$" + amount + "~s~ gesetzt.");
}
[Command("givemoney")]
[Command("givemoney", "~m~Benutzung: ~s~/givemoney [Name] [Menge]")]
public void GivePlayerMoney(Client player, string receiver, int amount)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
@@ -1743,6 +1775,7 @@ namespace reallife_gamemode.Server.Commands
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByNameOrId(receiver);
if (target == null || !target.IsLoggedIn())
{
@@ -1758,6 +1791,106 @@ namespace reallife_gamemode.Server.Commands
player.SendChatMessage("~b~[ADMIN]~s~ Du hast " + target.Name + " ~g~$" + amount + "~s~ gegeben.");
target.SendChatMessage("~b~[ADMIN]~s~ Admin " + player.Name + " hat dir ~g~$" + amount + "~s~ gegeben.");
}
[Command("setbusinessowner", "~m~Benutzung: ~s~/setbusinessowner [Name] [Business ID]")]
public void CmdAdminSetbusinessowner(Client player, string name, int businessid)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByNameOrId(name);
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
}
if(target.GetUser().BusinessId != null)
{
player.SendChatMessage("~r~[FEHLER]~s~ Der Spieler besitzt momentan schon ein Business: ~o~" + BusinessManager.GetBusiness(target.GetUser().BusinessId).Name);
return;
}
BusinessBase business = BusinessManager.GetBusiness(businessid);
if(business == null)
{
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Business existiert nicht. ~m~/businesslist");
return;
}
if(business.GetOwner() != null)
{
player.SendChatMessage("~r~[FEHLER]~s~ Das Business hat momentan noch einen Besitzer: ~o~" + business.GetOwner().Name + "~s~. Entferne diesen Besitzer erst mit ~m~/clearbusiness");
return;
}
using(var dbContext = new DatabaseContext())
{
Entities.User targetUser = target.GetUser(dbContext);
targetUser.BusinessId = businessid;
dbContext.SaveChanges();
business.Update();
}
}
[Command("clearbusiness", "~m~Benutzung:~s~ /clearbusiness [Business ID]")]
public void CmdAdminClearbusiness(Client player, int businessid)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
BusinessBase business = BusinessManager.GetBusiness(businessid);
if (business == null)
{
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Business existiert nicht. ~m~/businesslist");
return;
}
using(var dbContext = new DatabaseContext())
{
Entities.User owner = business.GetOwner(dbContext);
if(owner == null)
{
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Business hat momentan keinen Besitzer.");
return;
}
owner.BusinessId = null;
business.GetBankAccount(dbContext).Balance = 0;
owner.GetClient()?.SendChatMessage("~b~[ADMIN]~s~ Dir wurde von ~y~" + player.Name + "~s~ dein Business entzogen.");
player.SendChatMessage("~b~[ADMIN]~s~ Du hast ~y~" + owner.Name + "~s~ sein Business ~o~" + business.Name + "~s~ entzogen.");
dbContext.SaveChanges();
business.Update();
}
}
[Command("setbusinessbankbalance", "~m~Benutzung: ~s~/setbusinessbankbalance [Business ID] [Menge]")]
public void CmdAdminGivebusinessbankbalance(Client player, int businessid, int amount)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
BusinessBase business = BusinessManager.GetBusiness(businessid);
if (business == null)
{
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Business existiert nicht. ~m~/businesslist");
return;
}
BankManager.SetMoney(player, business, amount, "Admin");
}
#endregion
#region ALevel1338
@@ -1779,25 +1912,22 @@ namespace reallife_gamemode.Server.Commands
if (player.IsInVehicle)
{
Vehicle playerVehicle = player.Vehicle;
LoadManager.UserVehicleList.Add(playerVehicle);
using (var saveVehicle = new DatabaseContext())
{
var dataSet = new UserVehicle
{
UserId = player.GetUser().Id,
Model = (VehicleHash) playerVehicle.Model,
Model = (VehicleHash)playerVehicle.Model,
PositionX = playerVehicle.Position.X,
PositionY = playerVehicle.Position.Y,
PositionZ = playerVehicle.Position.Z,
Heading = playerVehicle.Heading,
NumberPlate = playerVehicle.NumberPlate,
PrimaryColor = Convert.ToByte(playerVehicle.PrimaryColor),
SecondaryColor = Convert.ToByte(playerVehicle.SecondaryColor),
PrimaryColor = playerVehicle.PrimaryColor,
SecondaryColor = playerVehicle.SecondaryColor,
Locked = playerVehicle.Locked,
Engine = playerVehicle.EngineStatus,
Dimension = Convert.ToByte(playerVehicle.Dimension),
Active = true
};
playerVehicle.SetData("ownerId",player.GetUser().Id);
saveVehicle.UserVehicles.Add(dataSet);
saveVehicle.SaveChanges();
}
@@ -1805,13 +1935,6 @@ namespace reallife_gamemode.Server.Commands
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
}
//TODO TEST COMMAND
//TEST COMMAND
[Command("myvehicles")]
public void CmdAdminMyVehicles(Client player)
@@ -1878,10 +2001,10 @@ namespace reallife_gamemode.Server.Commands
{
ShopVehicle sVehicle = getShopVehicle.ShopVehicles.FirstOrDefault(u => u.Id == shopVehicleId);
Entities.Faction receiverUser = getShopVehicle.Factions.FirstOrDefault(u => u.Name == "LSPD");
BankManager.TransferMoney(player.GetUser(), receiverUser, sVehicle.Price, "Fahrzeug gekauft: " + sVehicle.ModelName);
BankManager.TransferMoney(player.GetUser(), receiverUser, sVehicle.Price, "Fahrzeug gekauft: " + NAPI.Vehicle.GetVehicleDisplayName(sVehicle.Model));
//TODO Anpassen
Vehicle boughtVehicle = NAPI.Vehicle.CreateVehicle(sVehicle.Model, new Vector3(sVehicle.PositionX, sVehicle.PositionY + 10, sVehicle.PositionZ + 0.5), sVehicle.Heading,
sVehicle.PrimaryColor, sVehicle.SecondaryColor, "LoG", sVehicle.Alpha, false, true, 0);
sVehicle.PrimaryColor, sVehicle.SecondaryColor, "LoG", 255, false, true, 0);
player.SetIntoVehicle(boughtVehicle, 0);
//TODO fügt das Fahrzeug als Userfahrzeug hinzu
CmdAdminOwn(player);