Add /eat command
This commit is contained in:
@@ -27,6 +27,26 @@ namespace reallife_gamemode.Server.Commands
|
||||
{
|
||||
public class Admin : Script
|
||||
{
|
||||
[Command("eat", "~m~Benutzung: ~s~/eat [Item]")]
|
||||
public void CmdAdminEat(Client player, string item)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
IItem iItem = InventoryManager.GetItemByName(item);
|
||||
|
||||
List<UserItem> itemList = player.GetUser().GetItems();
|
||||
UserItem eatItem = itemList.FirstOrDefault(i => i.ItemId == iItem.Id);
|
||||
|
||||
if(eatItem is IUsableItem)
|
||||
{
|
||||
var usableItemObj = eatItem as IUsableItem;
|
||||
usableItemObj.Use(eatItem, player);
|
||||
}
|
||||
}
|
||||
[Command("myitems")]
|
||||
public void CmdAdminMyItems(Client player)
|
||||
{
|
||||
@@ -41,7 +61,7 @@ namespace reallife_gamemode.Server.Commands
|
||||
foreach (var item in itemList)
|
||||
{
|
||||
IItem iitem = InventoryManager.GetItemById(item.ItemId);
|
||||
player.SendChatMessage("Item: ~g~" + iitem.Name);
|
||||
player.SendChatMessage("Item: ~g~" + item.Amount + " " + iitem.Name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +78,13 @@ namespace reallife_gamemode.Server.Commands
|
||||
{
|
||||
ChatService.PlayerNotFound(player);
|
||||
return;
|
||||
}
|
||||
}
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
UserItem newItem = new UserItem() { ItemId = itemId, UserId = target.GetUser().Id, Amount = amount };
|
||||
dbContext.UserItems.Add(newItem);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
[Command("vmod", "~m~Benutzung: ~s~/vmod [Slot] [Mod ID]")]
|
||||
public void CmdAdminVmod(Client player, int slot, int mod)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using GTANetworkAPI;
|
||||
using reallife_gamemode.Server.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
@@ -13,6 +14,6 @@ namespace reallife_gamemode.Server.Inventory.Interfaces
|
||||
{
|
||||
public interface IUsableItem
|
||||
{
|
||||
void Use(Client player);
|
||||
void Use(UserItem uItem, Client player);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @overview Life of German Reallife - Inventory Items Cheeseburger (Cheeseburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
*/
|
||||
|
||||
23
Server/Inventory/Items/Chickenburger.cs
Normal file
23
Server/Inventory/Items/Chickenburger.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using reallife_gamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Chickenburger (Chickenburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
*/
|
||||
|
||||
namespace reallife_gamemode.Server.Inventory.Items
|
||||
{
|
||||
public class Chickenburger : FoodItem, IItem
|
||||
{
|
||||
public int Id => 3;
|
||||
public string Name => "Chickenburger";
|
||||
public string Description => "Hühnchenburger";
|
||||
public int Gewicht => 330;
|
||||
public string Einheit => "g";
|
||||
public override int HpAmount => 25;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,8 @@
|
||||
using GTANetworkAPI;
|
||||
using reallife_gamemode.Server.Entities;
|
||||
using reallife_gamemode.Server.Extensions;
|
||||
using reallife_gamemode.Server.Inventory.Interfaces;
|
||||
using reallife_gamemode.Server.Managers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
@@ -10,9 +13,11 @@ namespace reallife_gamemode.Server.Inventory.Items
|
||||
{
|
||||
public abstract int HpAmount { get; }
|
||||
|
||||
public void Use(Client player)
|
||||
public void Use(UserItem uItem, Client player)
|
||||
{
|
||||
player.Health += HpAmount;
|
||||
player.SendChatMessage("Du hast einen ~y~" + InventoryManager.GetItemById(uItem.ItemId).Name + " ~s~gegessen.");
|
||||
InventoryManager.RemoveUserItem(player.GetUser(), uItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
using GTANetworkAPI;
|
||||
using reallife_gamemode.Model;
|
||||
using reallife_gamemode.Server.Commands;
|
||||
using reallife_gamemode.Server.Entities;
|
||||
using reallife_gamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -45,5 +47,28 @@ namespace reallife_gamemode.Server.Managers
|
||||
{
|
||||
return itemList.Find(i => i.Id == id);
|
||||
}
|
||||
|
||||
public static IItem GetItemByName(string name)
|
||||
{
|
||||
return itemList.Find(i => i.Name == name);
|
||||
}
|
||||
|
||||
public static void RemoveUserItem(Entities.User user, UserItem item)
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
var userItem = dbContext.UserItems.FirstOrDefault(i => i.Id == item.Id);
|
||||
|
||||
userItem.Amount--;
|
||||
|
||||
dbContext.SaveChanges();
|
||||
|
||||
if(userItem.Amount == 0)
|
||||
{
|
||||
dbContext.Remove(userItem);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user