Removed vespucci cardealer, add interior system (teleport missing)
This commit is contained in:
@@ -2111,6 +2111,87 @@ namespace reallife_gamemode.Server.Commands
|
||||
player.TriggerEvent("showTuningMenu");
|
||||
}
|
||||
|
||||
[Command("interior", "~m~Benutzung: ~s~/interior [Add / Remove / SetEnterPosition / SetExitPosition] [Name]")]
|
||||
public void CmdAdminInterior(Client player, string option1, string option2)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
option1 = option1.ToString();
|
||||
|
||||
if(option1 != "add" && option1 != "remove" && option1 != "setenterposition" && option1 != "setexitposition")
|
||||
{
|
||||
player.SendChatMessage("~m~Benutzung: ~s~/interior [Add / Remove / SetEnterPosition / SetExitPosition] [Name]");
|
||||
return;
|
||||
}
|
||||
|
||||
switch(option1)
|
||||
{
|
||||
case "add":
|
||||
if(InteriorManager.GetInteriorByName(option2) != null)
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert schon.");
|
||||
return;
|
||||
}
|
||||
using(var dbContext = new DatabaseContext())
|
||||
{
|
||||
Interior interiorAdd = new Interior
|
||||
{
|
||||
Name = option2
|
||||
};
|
||||
dbContext.Interiors.Add(interiorAdd);
|
||||
dbContext.SaveChanges();
|
||||
player.SendChatMessage("~b~[ADMIN]~s~ Das Interior ~y~" + option2 + "~s~ wurde erstellt. ~m~ID: " + interiorAdd.Id);
|
||||
}
|
||||
break;
|
||||
case "remove":
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
Interior interiorRemove = InteriorManager.GetInteriorByName(option2, dbContext);
|
||||
if(interiorRemove == null)
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert nicht.");
|
||||
return;
|
||||
}
|
||||
dbContext.Interiors.Remove(interiorRemove);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
player.SendChatMessage("~b~[ADMIN]~s~ Das Interior wurde gelöscht.");
|
||||
break;
|
||||
case "setenterposition":
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
Interior interior = InteriorManager.GetInteriorByName(option2, dbContext);
|
||||
if (interior == null)
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert nicht.");
|
||||
return;
|
||||
}
|
||||
interior.EnterPosition = player.Position;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
player.SendChatMessage("~b~[ADMIN]~s~ Die Eingangs-Position vom Interior ~y~" + option2 + "~s~ wurde gesetzt.");
|
||||
break;
|
||||
case "setexitposition":
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
Interior interior = InteriorManager.GetInteriorByName(option2, dbContext);
|
||||
if (interior == null)
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert nicht.");
|
||||
return;
|
||||
}
|
||||
interior.ExitPosition = player.Position;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
player.SendChatMessage("~b~[ADMIN]~s~ Die Ausgangs-Position vom Interior ~y~" + option2 + "~s~ wurde gesetzt.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ALevel1338
|
||||
|
||||
75
Server/Entities/Interior.cs
Normal file
75
Server/Entities/Interior.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Text;
|
||||
|
||||
namespace reallife_gamemode.Server.Entities
|
||||
{
|
||||
public class Interior
|
||||
{
|
||||
[NotMapped]
|
||||
private Vector3 _enterPosition;
|
||||
[NotMapped]
|
||||
private Vector3 _exitPosition;
|
||||
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
[Column("EnterPosition")]
|
||||
public string EnterPositionStr
|
||||
{
|
||||
get
|
||||
{
|
||||
return JsonConvert.SerializeObject(this._enterPosition);
|
||||
}
|
||||
set
|
||||
{
|
||||
this._enterPosition = JsonConvert.DeserializeObject<Vector3>(value);
|
||||
}
|
||||
}
|
||||
|
||||
[Column("ExitPosition")]
|
||||
public string ExitPositionStr
|
||||
{
|
||||
get
|
||||
{
|
||||
return JsonConvert.SerializeObject(this._exitPosition);
|
||||
}
|
||||
set
|
||||
{
|
||||
this._exitPosition = JsonConvert.DeserializeObject<Vector3>(value);
|
||||
}
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
public Vector3 EnterPosition
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._enterPosition;
|
||||
}
|
||||
set
|
||||
{
|
||||
this._enterPosition = value;
|
||||
}
|
||||
}
|
||||
[NotMapped]
|
||||
public Vector3 ExitPosition
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._exitPosition;
|
||||
}
|
||||
set
|
||||
{
|
||||
this._exitPosition = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
27
Server/Managers/InteriorManager.cs
Normal file
27
Server/Managers/InteriorManager.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using reallife_gamemode.Model;
|
||||
using reallife_gamemode.Server.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace reallife_gamemode.Server.Managers
|
||||
{
|
||||
public class InteriorManager
|
||||
{
|
||||
public static Interior GetInteriorByName(string name, DatabaseContext dbContext = null)
|
||||
{
|
||||
if(dbContext == null)
|
||||
{
|
||||
using (dbContext = new DatabaseContext())
|
||||
{
|
||||
return dbContext.Interiors.Where(i => i.Name.ToLower() == name.ToLower()).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return dbContext.Interiors.Where(i => i.Name.ToLower() == name.ToLower()).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user