Show inventory for Admins
This commit is contained in:
@@ -61,43 +61,7 @@ namespace reallife_gamemode.Server.Commands
|
||||
usableItemObj.Use(eatItem, player);
|
||||
}
|
||||
}
|
||||
[Command("myitems")]
|
||||
public void CmdAdminMyItems(Client player)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
List<UserItem> itemList = player.GetUser().GetItems();
|
||||
|
||||
foreach (var item in itemList)
|
||||
{
|
||||
IItem iitem = InventoryManager.GetItemById(item.ItemId);
|
||||
player.SendChatMessage("Item: ~g~" + item.Amount + " " + iitem.Name);
|
||||
}
|
||||
}
|
||||
|
||||
[Command("giveitem", "~m~Benutzung: ~s~/giveitem [Target] [Item ID] [Anzahl]")]
|
||||
public void CmdAdminGiveItem(Client player, string targetname, int itemId, int amount)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
Client target = ClientService.GetClientByNameOrId(targetname);
|
||||
if (target == null || !target.IsLoggedIn())
|
||||
{
|
||||
ChatService.PlayerNotFound(player);
|
||||
return;
|
||||
}
|
||||
|
||||
UserItem item = new UserItem() { ItemId = itemId, UserId = target.GetUser().Id, Amount = amount};
|
||||
InventoryManager.AddItemToInventory(target, item);
|
||||
}
|
||||
|
||||
|
||||
#region Support
|
||||
[Command("o", "~m~Benutzung: ~s~/o [Nachricht]", GreedyArg = true)]
|
||||
@@ -1062,6 +1026,48 @@ namespace reallife_gamemode.Server.Commands
|
||||
|
||||
|
||||
#region ALevel1337
|
||||
|
||||
[Command("giveitem", "~m~Benutzung: ~s~/giveitem [Target] [Item ID] [Anzahl]")]
|
||||
public void CmdAdminGiveItem(Client player, string targetname, int itemId, int amount)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
Client target = ClientService.GetClientByNameOrId(targetname);
|
||||
if (target == null || !target.IsLoggedIn())
|
||||
{
|
||||
ChatService.PlayerNotFound(player);
|
||||
return;
|
||||
}
|
||||
|
||||
UserItem item = new UserItem() { ItemId = itemId, UserId = target.GetUser().Id, Amount = amount };
|
||||
InventoryManager.AddItemToInventory(target, item);
|
||||
}
|
||||
|
||||
[Command("inventory", "~m~Benutzung: ~s~/inventory [Spieler]")]
|
||||
public void CmdAdminGiveItem(Client player, string targetname)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
Client target = ClientService.GetClientByNameOrId(targetname);
|
||||
if (target == null || !target.IsLoggedIn())
|
||||
{
|
||||
ChatService.PlayerNotFound(player);
|
||||
return;
|
||||
}
|
||||
|
||||
var user = target.GetUser();
|
||||
|
||||
InventoryManager.GetUserItemsAsAdmin(player, user);
|
||||
}
|
||||
|
||||
[Command("editmode")]
|
||||
public void CmdAdminToggleEditMode(Client player)
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user