Show inventory for Admins

This commit is contained in:
VegaZ
2018-12-16 00:16:54 +01:00
parent ff652a3152
commit 8064549f8b
4 changed files with 281 additions and 48 deletions

View File

@@ -6,6 +6,7 @@ using reallife_gamemode.Server.Commands;
using reallife_gamemode.Server.Entities;
using reallife_gamemode.Server.Extensions;
using reallife_gamemode.Server.Inventory.Interfaces;
using reallife_gamemode.Server.Services;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -101,6 +102,32 @@ namespace reallife_gamemode.Server.Managers
}
}
public static void GetUserItemsAsAdmin(Client player, Entities.User user)
{
var inventoryWeight = 0;
using (var context = new DatabaseContext())
{
List<UserItem> userItems = context.UserItems.ToList().FindAll(i => i.UserId == user.Id);
string[][] items = new string[userItems.Count][];
foreach (var item in userItems)
{
IItem iItem = GetItemById(item.ItemId);
var currentItemWeight = iItem.Gewicht * item.Amount;
inventoryWeight += currentItemWeight;
items[userItems.IndexOf(item)] = new string[6];
items[userItems.IndexOf(item)][0] = iItem.Name;
items[userItems.IndexOf(item)][1] = iItem.Description;
items[userItems.IndexOf(item)][2] = iItem.Gewicht.ToString();
items[userItems.IndexOf(item)][3] = item.Amount.ToString();
items[userItems.IndexOf(item)][4] = item.Slot.ToString();
items[userItems.IndexOf(item)][5] = item.Id.ToString();
}
player.TriggerEvent("showInventoryToAdmin", user.Name, inventoryWeight, items);
}
}
[RemoteEvent("saveInventory")]
public void SavePlayerInventory(Client player, string itemArray)
{
@@ -147,9 +174,9 @@ namespace reallife_gamemode.Server.Managers
var user = player.GetUser();
using (var context = new DatabaseContext())
{
List <UserItem> allItemsByUser = context.UserItems.ToList().FindAll(i => i.UserId == user.Id);
List<UserItem> allItemsByUser = context.UserItems.ToList().FindAll(i => i.UserId == user.Id);
var slotArr = Enumerable.Range(1, 20).ToList();
allItemsByUser.ForEach(allItem =>
{
@@ -164,10 +191,34 @@ namespace reallife_gamemode.Server.Managers
IItem iItem = GetItemById(item.ItemId);
string[] newItem = new string[] { iItem.Name, iItem.Description, iItem.Gewicht.ToString(), item.Amount.ToString(), newSlot.ToString(), item.Id.ToString()};
string[] newItem = new string[] { iItem.Name, iItem.Description, iItem.Gewicht.ToString(), item.Amount.ToString(), newSlot.ToString(), item.Id.ToString() };
player.TriggerEvent("addItem", newItem);
player.TriggerEvent("addItem", JsonConvert.SerializeObject(newItem));
}
}
[RemoteEvent("removeItemAsAdmin")]
public void SavePlayerInventory(Client player, string amount, string userItemId, string targetPlayerName)
{
using (var context = new DatabaseContext())
{
UserItem fItem = context.UserItems.FirstOrDefault(j => j.Id == int.Parse(userItemId));
Client targetPlayer = ClientService.GetClientByNameOrId(targetPlayerName);
if (amount == "stack")
{
var itemSlot = fItem.Slot;
targetPlayer.TriggerEvent("removeItem", userItemId, "stack");
context.UserItems.Remove(fItem);
}
else if (amount == "one")
{
var itemSlot = fItem.Slot;
targetPlayer.TriggerEvent("removeItem", userItemId, "one");
fItem.Amount--;
}
context.SaveChanges();
}
}
}
}
}