Add /eat command
This commit is contained in:
@@ -27,6 +27,26 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
{
|
{
|
||||||
public class Admin : Script
|
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")]
|
[Command("myitems")]
|
||||||
public void CmdAdminMyItems(Client player)
|
public void CmdAdminMyItems(Client player)
|
||||||
{
|
{
|
||||||
@@ -41,7 +61,7 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
foreach (var item in itemList)
|
foreach (var item in itemList)
|
||||||
{
|
{
|
||||||
IItem iitem = InventoryManager.GetItemById(item.ItemId);
|
IItem iitem = InventoryManager.GetItemById(item.ItemId);
|
||||||
player.SendChatMessage("Item: ~g~" + iitem.Name);
|
player.SendChatMessage("Item: ~g~" + item.Amount + " " + iitem.Name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,6 +79,12 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
ChatService.PlayerNotFound(player);
|
ChatService.PlayerNotFound(player);
|
||||||
return;
|
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]")]
|
[Command("vmod", "~m~Benutzung: ~s~/vmod [Slot] [Mod ID]")]
|
||||||
public void CmdAdminVmod(Client player, int slot, int mod)
|
public void CmdAdminVmod(Client player, int slot, int mod)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
|
using reallife_gamemode.Server.Entities;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@@ -13,6 +14,6 @@ namespace reallife_gamemode.Server.Inventory.Interfaces
|
|||||||
{
|
{
|
||||||
public interface IUsableItem
|
public interface IUsableItem
|
||||||
{
|
{
|
||||||
void Use(Client player);
|
void Use(UserItem uItem, Client player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using System.Collections.Generic;
|
|||||||
using System.Text;
|
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
|
* @author VegaZ
|
||||||
* @copyright (c) 2008 - 2018 Life of German
|
* @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 GTANetworkAPI;
|
||||||
|
using reallife_gamemode.Server.Entities;
|
||||||
|
using reallife_gamemode.Server.Extensions;
|
||||||
using reallife_gamemode.Server.Inventory.Interfaces;
|
using reallife_gamemode.Server.Inventory.Interfaces;
|
||||||
|
using reallife_gamemode.Server.Managers;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@@ -10,9 +13,11 @@ namespace reallife_gamemode.Server.Inventory.Items
|
|||||||
{
|
{
|
||||||
public abstract int HpAmount { get; }
|
public abstract int HpAmount { get; }
|
||||||
|
|
||||||
public void Use(Client player)
|
public void Use(UserItem uItem, Client player)
|
||||||
{
|
{
|
||||||
player.Health += HpAmount;
|
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 GTANetworkAPI;
|
||||||
using reallife_gamemode.Model;
|
using reallife_gamemode.Model;
|
||||||
|
using reallife_gamemode.Server.Commands;
|
||||||
|
using reallife_gamemode.Server.Entities;
|
||||||
using reallife_gamemode.Server.Inventory.Interfaces;
|
using reallife_gamemode.Server.Inventory.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -45,5 +47,28 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
{
|
{
|
||||||
return itemList.Find(i => i.Id == id);
|
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