/interior list
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using ReallifeGamemode.Database.Entities;
|
using ReallifeGamemode.Database.Entities;
|
||||||
using ReallifeGamemode.Server.Core.API;
|
using ReallifeGamemode.Server.Core.API;
|
||||||
@@ -12,7 +13,7 @@ namespace ReallifeGamemode.Server.Core.Commands.Admin
|
|||||||
{
|
{
|
||||||
public override string CommandName => "interior";
|
public override string CommandName => "interior";
|
||||||
|
|
||||||
public override string HelpText => "[Add / Remove / SetEnter / SetExit][Name / ID]";
|
public override string HelpText => "[Add / Remove / SetEnter / SetExit/ List] [Name / ID]";
|
||||||
|
|
||||||
protected override AdminLevel AdminLevel => AdminLevel.HEADADMIN;
|
protected override AdminLevel AdminLevel => AdminLevel.HEADADMIN;
|
||||||
|
|
||||||
@@ -20,9 +21,9 @@ namespace ReallifeGamemode.Server.Core.Commands.Admin
|
|||||||
{
|
{
|
||||||
option1 = option1.ToString();
|
option1 = option1.ToString();
|
||||||
|
|
||||||
if (option1 != "add" && option1 != "remove" && option1 != "setenter" && option1 != "setexit")
|
if (option1 != "add" && option1 != "remove" && option1 != "setenter" && option1 != "setexit" && option1 != "list")
|
||||||
{
|
{
|
||||||
player.SendMessage("/interior [Add / Remove / SetEnter / SetExit] [Name / ID]", ChatPrefix.Usage);
|
player.SendMessage("/interior [Add / Remove / SetEnter / SetExit / List] [Name / ID]", ChatPrefix.Usage);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,6 +109,11 @@ namespace ReallifeGamemode.Server.Core.Commands.Admin
|
|||||||
interiorManager.LoadInteriors();
|
interiorManager.LoadInteriors();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "list":
|
||||||
|
var interiors = interiorManager.GetInteriors();
|
||||||
|
player.SendMessage(string.Join(", ", interiors.Select(i => i.Item1 + " (" + i.Item2 + ")")), ChatPrefix.Admin);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,14 +90,14 @@ namespace ReallifeGamemode.Server.Core.Managers
|
|||||||
_interiorExitColShapes.Remove(interior.Id);
|
_interiorExitColShapes.Remove(interior.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ITextLabel GetInteriorEnterTextLabel(Interior interior) => _interiorEnterTextLabels[interior.Id];
|
public ITextLabel GetInteriorEnterTextLabel(Interior interior) => _interiorEnterTextLabels.FirstOrDefault(x => x.Key == interior.Id).Value;
|
||||||
public ITextLabel GetInteriorExitTextLabel(Interior interior) => _interiorExitTextLabels[interior.Id];
|
public ITextLabel GetInteriorExitTextLabel(Interior interior) => _interiorExitTextLabels.FirstOrDefault(x => x.Key == interior.Id).Value;
|
||||||
|
|
||||||
public IMarker GetInteriorEnterMarker(Interior interior) => _interiorEnterMarkers[interior.Id];
|
public IMarker GetInteriorEnterMarker(Interior interior) => _interiorEnterMarkers.FirstOrDefault(x => x.Key == interior.Id).Value;
|
||||||
public IMarker GetInteriorExitMarkers(Interior interior) => _interiorExitMarkers[interior.Id];
|
public IMarker GetInteriorExitMarkers(Interior interior) => _interiorExitMarkers.FirstOrDefault(x => x.Key == interior.Id).Value;
|
||||||
|
|
||||||
public IColShape GetInteriorEnterColShape(Interior interior) => _interiorEnterColShapes[interior.Id];
|
public IColShape GetInteriorEnterColShape(Interior interior) => _interiorEnterColShapes.FirstOrDefault(x => x.Key == interior.Id).Value;
|
||||||
public IColShape GetInteriorExitColShape(Interior interior) => _interiorExitColShapes[interior.Id];
|
public IColShape GetInteriorExitColShape(Interior interior) => _interiorExitColShapes.FirstOrDefault(x => x.Key == interior.Id).Value;
|
||||||
|
|
||||||
public int GetInteriorIdFromEnterColShape(IColShape handle) => _interiorEnterColShapes.FirstOrDefault(c => c.Value == handle).Key;
|
public int GetInteriorIdFromEnterColShape(IColShape handle) => _interiorEnterColShapes.FirstOrDefault(c => c.Value == handle).Key;
|
||||||
public int GetInteriorIdFromExitColShape(IColShape handle) => _interiorExitColShapes.FirstOrDefault(c => c.Value == handle).Key;
|
public int GetInteriorIdFromExitColShape(IColShape handle) => _interiorExitColShapes.FirstOrDefault(c => c.Value == handle).Key;
|
||||||
@@ -134,7 +134,23 @@ namespace ReallifeGamemode.Server.Core.Managers
|
|||||||
var enterExit = args[1].ToInt();
|
var enterExit = args[1].ToInt();
|
||||||
|
|
||||||
Interior interior = GetInteriorById(id, GetDbContext());
|
Interior interior = GetInteriorById(id, GetDbContext());
|
||||||
|
|
||||||
|
if (interior.ExitPosition == null || interior.EnterPosition == null)
|
||||||
|
{
|
||||||
|
player.SendMessage("Dieses Interior ist noch nicht eingerichtet (keine Ein-/Ausgangsposition)", ChatPrefix.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
player.Position = enterExit == 0 ? interior.ExitPosition : interior.EnterPosition;
|
player.Position = enterExit == 0 ? interior.ExitPosition : interior.EnterPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IEnumerable<(string, int)> GetInteriors()
|
||||||
|
{
|
||||||
|
using var dbContext = GetDbContext();
|
||||||
|
foreach (Interior interior in dbContext.Interiors)
|
||||||
|
{
|
||||||
|
yield return (interior.Name, interior.Id);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user