Removed vespucci cardealer, add interior system (teleport missing)

This commit is contained in:
hydrant
2018-12-24 15:26:38 +01:00
parent cae6c951a9
commit d22cf6e1ba
5 changed files with 186 additions and 3 deletions

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:600fcdcea0bee73c236286d15cdf6ba784791c65eaacb7131cfd4413e653f650
size 25088

View File

@@ -96,5 +96,8 @@ namespace reallife_gamemode.Model
// Whitelist
public DbSet<Server.Entities.Whitelist> WhitelistEntries { get; set; }
// Interiors
public DbSet<Server.Entities.Interior> Interiors { get; set; }
}
}

View File

@@ -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

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

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