generated from AriasCreations/vsmodtemplate
149 lines
No EOL
4.9 KiB
C#
149 lines
No EOL
4.9 KiB
C#
using System;
|
|
using Vintagestory.API.Common;
|
|
using Vintagestory.API.Config;
|
|
using Vintagestory.API.Server;
|
|
|
|
namespace AriasServerUtils
|
|
{
|
|
public class Events
|
|
{
|
|
internal static TextCommandResult HandleClearSpawn(TextCommandCallingArgs args)
|
|
{
|
|
ServerUtilities.config.Spawn = null;
|
|
ServerUtilities.MarkDirty();
|
|
|
|
return TextCommandResult.Success(Lang.Get($"{ServerUtilities.MOD_ID}:rmspawn"));
|
|
}
|
|
|
|
internal static TextCommandResult HandleDelHome(TextCommandCallingArgs args)
|
|
{
|
|
string homeName = "default";
|
|
if (args.ArgCount > 0)
|
|
{
|
|
homeName = args[0] as string;
|
|
}
|
|
|
|
if (args.Caller.Player is IServerPlayer isp)
|
|
{
|
|
PlayerStorage data = ServerUtilities.GetPlayerData(isp);
|
|
if (data.Homes.ContainsKey(homeName))
|
|
{
|
|
data.Homes.Remove(homeName);
|
|
|
|
ServerUtilities.SendMessageTo(isp, Lang.Get($"{ServerUtilities.MOD_ID}:home-del"));
|
|
ServerUtilities.MarkDirty();
|
|
}
|
|
else
|
|
{
|
|
ServerUtilities.SendMessageTo(isp, Lang.Get($"{ServerUtilities.MOD_ID}:home-no"));
|
|
}
|
|
}
|
|
|
|
return TextCommandResult.Success();
|
|
}
|
|
|
|
internal static TextCommandResult HandleGoHome(TextCommandCallingArgs args)
|
|
{
|
|
string homeName = "default";
|
|
if (args.ArgCount > 0)
|
|
{
|
|
homeName = args[0] as string;
|
|
}
|
|
|
|
if (args.Caller.Player is IServerPlayer isp)
|
|
{
|
|
PlayerStorage data = ServerUtilities.GetPlayerData(isp);
|
|
if (data.Homes.ContainsKey(homeName))
|
|
{
|
|
data.Homes[homeName].Location.Merge(isp.Entity);
|
|
|
|
ServerUtilities.SendMessageTo(isp, Lang.Get($"{ServerUtilities.MOD_ID}:home-tp"));
|
|
}
|
|
else
|
|
{
|
|
ServerUtilities.SendMessageTo(isp, Lang.Get($"{ServerUtilities.MOD_ID}:home-no"));
|
|
}
|
|
}
|
|
|
|
return TextCommandResult.Success();
|
|
}
|
|
|
|
internal static TextCommandResult HandleReturnItems(TextCommandCallingArgs args)
|
|
{
|
|
IPlayer player = args[0] as IPlayer;
|
|
if (player is IServerPlayer isp)
|
|
{
|
|
|
|
if (ServerUtilities.backupInventory.ContainsKey(player.PlayerName))
|
|
isp.InventoryManager.DiscardAll();
|
|
else
|
|
{
|
|
ServerUtilities.SendMessageTo(isp, Lang.Get($"{ServerUtilities.MOD_ID}:nobackup"));
|
|
return TextCommandResult.Success();
|
|
}
|
|
|
|
foreach (var stack in ServerUtilities.backupInventory[player.PlayerName].Items)
|
|
{
|
|
isp.InventoryManager.TryGiveItemstack(stack.Clone());
|
|
}
|
|
}
|
|
|
|
return TextCommandResult.Success();
|
|
}
|
|
|
|
internal static TextCommandResult HandleSetHome(TextCommandCallingArgs args)
|
|
{
|
|
string homeName = "default";
|
|
if (args.ArgCount > 0)
|
|
{
|
|
homeName = args[0] as string;
|
|
}
|
|
|
|
if (args.Caller.Player is IServerPlayer isp)
|
|
{
|
|
|
|
var data = ServerUtilities.GetPlayerData(isp);
|
|
data.Homes[homeName] = Home.MakeHome(args.Caller.Player.Entity, homeName);
|
|
|
|
ServerUtilities.SendMessageTo(isp, Lang.Get($"{ServerUtilities.MOD_ID}:home-set"));
|
|
ServerUtilities.MarkDirty();
|
|
}
|
|
|
|
return TextCommandResult.Success();
|
|
}
|
|
|
|
internal static TextCommandResult HandleSetSpawn(TextCommandCallingArgs args)
|
|
{
|
|
PlayerPosition pos = PlayerPosition.from(args.Caller.Entity);
|
|
ServerUtilities.config.Spawn = pos;
|
|
if (args.Caller.Player is IServerPlayer isp)
|
|
ServerUtilities.SendMessageTo(isp, Lang.Get($"{ServerUtilities.MOD_ID}:setspawn"));
|
|
|
|
ServerUtilities.MarkDirty();
|
|
|
|
return TextCommandResult.Success();
|
|
}
|
|
|
|
internal static TextCommandResult HandleSpawn(TextCommandCallingArgs args)
|
|
{
|
|
if (ServerUtilities.config.Spawn == null)
|
|
{
|
|
if (args.Caller.Player is IServerPlayer isp)
|
|
{
|
|
ServerUtilities.SendMessageTo(isp, Lang.Get($"{ServerUtilities.MOD_ID}:spawn-not-set"));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (args.Caller.Player is IServerPlayer isp)
|
|
{
|
|
ServerUtilities.SendMessageTo(isp, Lang.Get($"{ServerUtilities.MOD_ID}:tp-spawn"));
|
|
|
|
ServerUtilities.config.Spawn.Merge(args.Caller.Player.Entity);
|
|
}
|
|
}
|
|
|
|
return TextCommandResult.Success();
|
|
}
|
|
}
|
|
} |