generated from AriasCreations/vsmodtemplate
Adds homes
This commit is contained in:
parent
3f1ce790d9
commit
d5dc0d5892
5 changed files with 184 additions and 4 deletions
|
@ -18,6 +18,8 @@ namespace AriasServerUtils
|
|||
private static bool bDirty = false;
|
||||
internal static Dictionary<string, PlayerInventory> backupInventory = new Dictionary<string, PlayerInventory>();
|
||||
|
||||
internal static Dictionary<string, PlayerStorage> mPlayerData = new Dictionary<string, PlayerStorage>();
|
||||
|
||||
internal static string[] saveInvTypes = new string[] {
|
||||
GlobalConstants.hotBarInvClassName,
|
||||
GlobalConstants.backpackInvClassName,
|
||||
|
@ -64,6 +66,11 @@ namespace AriasServerUtils
|
|||
api.Event.ServerRunPhase(EnumServerRunPhase.Shutdown, OnShutdown);
|
||||
api.Event.Timer(OnCheckModDirty, 20);
|
||||
api.Event.PlayerDeath += OnPlayerDeath;
|
||||
api.Event.PlayerJoin += OnPlayerJoin;
|
||||
api.Event.PlayerDisconnect += OnPlayerDC;
|
||||
api.Event.PlayerLeave += OnPlayerDC;
|
||||
|
||||
|
||||
|
||||
api.ChatCommands.Create("setspawn").RequiresPrivilege(Privilege.controlserver).HandleWith(Events.HandleSetSpawn);
|
||||
api.ChatCommands.Create("spawn").RequiresPrivilege(Privilege.chat).HandleWith(Events.HandleSpawn);
|
||||
|
@ -73,6 +80,39 @@ namespace AriasServerUtils
|
|||
api.ChatCommands.Create("test_death").RequiresPlayer().RequiresPrivilege(Privilege.controlserver).HandleWith(TestDeath);
|
||||
var parsers = api.ChatCommands.Parsers;
|
||||
api.ChatCommands.Create("restoreinv").RequiresPlayer().WithArgs(parsers.OnlinePlayer("player")).HandleWith(Events.HandleReturnItems).WithDescription("Returns items to a player in the event of a problem").RequiresPrivilege(Privilege.controlserver);
|
||||
|
||||
api.ChatCommands.Create("sethome").RequiresPlayer().WithArgs(parsers.OptionalWord("name")).WithDescription("Creates a home").RequiresPrivilege(Privilege.chat).HandleWith(Events.HandleSetHome);
|
||||
api.ChatCommands.Create("home").RequiresPlayer().WithArgs(parsers.OptionalWord("name")).WithDescription("Teleports you to home").RequiresPrivilege(Privilege.chat).HandleWith(Events.HandleGoHome);
|
||||
api.ChatCommands.Create("delhome").RequiresPlayer().WithArgs(parsers.OptionalWord("name")).WithDescription("Deletes a home entry").RequiresPrivilege(Privilege.chat).HandleWith(Events.HandleDelHome);
|
||||
}
|
||||
|
||||
private void OnPlayerDC(IServerPlayer byPlayer)
|
||||
{
|
||||
OnCheckModDirty();
|
||||
|
||||
mPlayerData.Remove(byPlayer.PlayerName);
|
||||
}
|
||||
|
||||
private void OnPlayerJoin(IServerPlayer byPlayer)
|
||||
{
|
||||
API.Logger.Notification($"[ASU] {Lang.Get($"{MOD_ID}:playerjoin")}");
|
||||
|
||||
PlayerStorage data = API.LoadModConfig<PlayerStorage>(GetConfigurationFile(byPlayer.PlayerName, ModConfigType.World));
|
||||
if (data == null) data = new PlayerStorage();
|
||||
|
||||
mPlayerData[byPlayer.PlayerName] = data;
|
||||
}
|
||||
|
||||
public static PlayerStorage GetPlayerData(IServerPlayer player)
|
||||
{
|
||||
if (mPlayerData.ContainsKey(player.PlayerName))
|
||||
{
|
||||
return mPlayerData[player.PlayerName];
|
||||
}
|
||||
else
|
||||
{
|
||||
return new PlayerStorage();
|
||||
}
|
||||
}
|
||||
|
||||
private TextCommandResult TestDeath(TextCommandCallingArgs args)
|
||||
|
@ -129,6 +169,16 @@ namespace AriasServerUtils
|
|||
//API.Logger.Notification(Lang.Get($"{MOD_ID}:timer"));
|
||||
bDirty = false;
|
||||
SaveGlobalConfig();
|
||||
|
||||
SavePlayerData();
|
||||
}
|
||||
}
|
||||
|
||||
private void SavePlayerData()
|
||||
{
|
||||
foreach (var data in mPlayerData)
|
||||
{
|
||||
API.StoreModConfig<PlayerStorage>(data.Value, GetConfigurationFile(data.Key, ModConfigType.World));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue