haus-konto geld abheben (30% steuern)
alten hausmanager entfernt
interiormanager in core verschoben
This commit is contained in:
hydrant
2020-03-30 22:25:09 +02:00
parent 4159043348
commit 73bd04b84f
21 changed files with 1930 additions and 753 deletions

View File

@@ -46,10 +46,11 @@ namespace ReallifeGamemode.Server.Core.Commands.Admin
};
dbContext.Houses.Add(house);
dbContext.SaveChanges();
houseManager.LoadHouse(house);
dbContext.SaveChanges();
player.SendNotification("Das Haus wurde erstellt");
return;
@@ -98,11 +99,12 @@ namespace ReallifeGamemode.Server.Core.Commands.Admin
}
nearHouse.Price = price;
dbContext.SaveChanges();
houseManager.RemoveHouse(nearHouse);
houseManager.LoadHouse(nearHouse);
dbContext.SaveChanges();
player.SendNotification("Der Hauspreis wurde gesetzt");
return;
}
@@ -122,11 +124,12 @@ namespace ReallifeGamemode.Server.Core.Commands.Admin
}
nearHouse.Type = option2;
dbContext.SaveChanges();
houseManager.RemoveHouse(nearHouse);
houseManager.LoadHouse(nearHouse);
dbContext.SaveChanges();
player.SendNotification("Der Haustyp wurde gesetzt");
return;

View File

@@ -0,0 +1,114 @@
using System;
using System.Collections.Generic;
using System.Text;
using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Server.Core.API;
using ReallifeGamemode.Server.Core.Managers;
using ReallifeGamemode.Server.Types;
namespace ReallifeGamemode.Server.Core.Commands.Admin
{
class InteriorCommand : AdminCommand
{
public override string CommandName => "interior";
public override string HelpText => "[Add / Remove / SetEnter / SetExit][Name / ID]";
protected override AdminLevel AdminLevel => AdminLevel.HEADADMIN;
public void Handle(IPlayer player, string option1, string option2 = null)
{
option1 = option1.ToString();
if (option1 != "add" && option1 != "remove" && option1 != "setenter" && option1 != "setexit")
{
player.SendMessage("/interior [Add / Remove / SetEnter / SetExit] [Name / ID]", ChatPrefix.Usage);
return;
}
var interiorManager = Main.GetScript<InteriorManager>();
switch (option1)
{
case "add":
using (var dbContext = GetDbContext())
{
Interior interiorAdd = new Interior
{
Name = option2
};
dbContext.Interiors.Add(interiorAdd);
dbContext.SaveChanges();
player.SendMessage("Das Interior ~y~" + option2 + "~s~ wurde erstellt. ~m~ID: " + interiorAdd.Id, ChatPrefix.Admin);
}
break;
case "remove":
using (var dbContext = GetDbContext())
{
if (!int.TryParse(option2, out int intId))
{
player.SendMessage("Es muss eine Nummer angegeben werden", ChatPrefix.Error);
return;
}
Interior interiorRemove = interiorManager.GetInteriorById(intId, dbContext);
if (interiorRemove == null)
{
player.SendMessage("Dieses Interior existiert nicht", ChatPrefix.Error);
return;
}
interiorManager.DeleteInterior(interiorRemove);
dbContext.Interiors.Remove(interiorRemove);
dbContext.SaveChanges();
}
player.SendMessage("Das Interior wurde gelöscht", ChatPrefix.Admin);
break;
case "setenter":
using (var dbContext = GetDbContext())
{
if (!int.TryParse(option2, out int intIdEnter))
{
player.SendMessage("Es muss eine Nummer angegeben werden", ChatPrefix.Error);
return;
}
Interior interior = interiorManager.GetInteriorById(intIdEnter, dbContext);
if (interior == null)
{
player.SendMessage("Dieses Interior existiert nicht", ChatPrefix.Error);
return;
}
interior.EnterPosition = player.Position;
dbContext.SaveChanges();
interiorManager.DeleteInterior(interior);
interiorManager.LoadInterior(interior);
player.SendMessage("Die Eingangs-Position vom Interior ~y~" + interior.Name + "~s~ wurde gesetzt", ChatPrefix.Admin);
interiorManager.LoadInteriors();
}
break;
case "setexit":
using (var dbContext = GetDbContext())
{
if (!int.TryParse(option2, out int intIdExit))
{
player.SendMessage("Es muss eine Nummer angegeben werden", ChatPrefix.Error);
return;
}
Interior interior = interiorManager.GetInteriorById(intIdExit, dbContext);
if (interior == null)
{
player.SendMessage("Dieses Interior existiert nicht", ChatPrefix.Error);
return;
}
interior.ExitPosition = player.Position;
dbContext.SaveChanges();
interiorManager.DeleteInterior(interior);
interiorManager.LoadInterior(interior);
player.SendMessage("Die Eingangs-Position vom Interior ~y~" + interior.Name + "~s~ wurde gesetzt", ChatPrefix.Admin);
interiorManager.LoadInteriors();
}
break;
}
}
}
}