Merge pull request #2946 from AgaSpace/playerdata-changes
PlayerData changes
This commit is contained in:
commit
1c724901b0
5 changed files with 37 additions and 14 deletions
|
|
@ -79,7 +79,7 @@ namespace TShockAPI.DB
|
|||
|
||||
public PlayerData GetPlayerData(TSPlayer player, int acctid)
|
||||
{
|
||||
PlayerData playerData = new PlayerData(player);
|
||||
PlayerData playerData = new PlayerData(false);
|
||||
|
||||
try
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2620,9 +2620,9 @@ namespace TShockAPI
|
|||
private static bool HandleConnecting(GetDataHandlerArgs args)
|
||||
{
|
||||
var account = TShock.UserAccounts.GetUserAccountByName(args.Player.Name);//
|
||||
args.Player.DataWhenJoined = new PlayerData(args.Player);
|
||||
args.Player.DataWhenJoined = new PlayerData(false);
|
||||
args.Player.DataWhenJoined.CopyCharacter(args.Player);
|
||||
args.Player.PlayerData = new PlayerData(args.Player);
|
||||
args.Player.PlayerData = new PlayerData(false);
|
||||
args.Player.PlayerData.CopyCharacter(args.Player);
|
||||
|
||||
if (account != null && !TShock.Config.Settings.DisableUUIDLogin)
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ using Terraria.Localization;
|
|||
using Terraria.GameContent.NetModules;
|
||||
using Terraria.Net;
|
||||
using Terraria.ID;
|
||||
using System;
|
||||
|
||||
namespace TShockAPI
|
||||
{
|
||||
|
|
@ -63,13 +64,22 @@ namespace TShockAPI
|
|||
public int unlockedSuperCart;
|
||||
public int enabledSuperCart;
|
||||
|
||||
public PlayerData(TSPlayer player)
|
||||
/// <summary>
|
||||
/// Sets the default values for the inventory.
|
||||
/// </summary>
|
||||
[Obsolete("The player argument is not used.")]
|
||||
public PlayerData(TSPlayer player) : this(true) { }
|
||||
|
||||
/// <summary>
|
||||
/// Sets the default values for the inventory.
|
||||
/// </summary>
|
||||
/// <param name="includingStarterInventory">Is it necessary to load items from TShock's config</param>
|
||||
public PlayerData(bool includingStarterInventory = true)
|
||||
{
|
||||
for (int i = 0; i < NetItem.MaxInventory; i++)
|
||||
{
|
||||
this.inventory[i] = new NetItem();
|
||||
}
|
||||
|
||||
if (includingStarterInventory)
|
||||
for (int i = 0; i < TShock.ServerSideCharacterConfig.Settings.StartingInventory.Count; i++)
|
||||
{
|
||||
var item = TShock.ServerSideCharacterConfig.Settings.StartingInventory[i];
|
||||
|
|
@ -86,12 +96,22 @@ namespace TShockAPI
|
|||
/// <param name="stack"></param>
|
||||
public void StoreSlot(int slot, int netID, byte prefix, int stack)
|
||||
{
|
||||
if (slot > (this.inventory.Length - 1)) //if the slot is out of range then dont save
|
||||
StoreSlot(slot, new NetItem(netID, stack, prefix));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stores an item at the specific storage slot
|
||||
/// </summary>
|
||||
/// <param name="slot"></param>
|
||||
/// <param name="item"></param>
|
||||
public void StoreSlot(int slot, NetItem item)
|
||||
{
|
||||
if (slot > (this.inventory.Length - 1) || slot < 0) //if the slot is out of range then dont save
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.inventory[slot] = new NetItem(netID, stack, prefix);
|
||||
this.inventory[slot] = item;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -1292,7 +1292,7 @@ namespace TShockAPI
|
|||
}
|
||||
}
|
||||
|
||||
PlayerData = new PlayerData(this);
|
||||
PlayerData = new PlayerData();
|
||||
Group = TShock.Groups.GetGroupByName(TShock.Config.Settings.DefaultGuestGroupName);
|
||||
tempGroup = null;
|
||||
if (tempGroupTimer != null)
|
||||
|
|
|
|||
|
|
@ -117,6 +117,9 @@ Use past tense when adding new entries; sign your name off when you add or chang
|
|||
* Added a property `TSPlayer.Hostile`, which gets pvp player mode. (@AgaSpace)
|
||||
* Fixed bug where when the `UseSqlLogs` config property is true, an empty log file would still get created. (@ZakFahey)
|
||||
* Fixed typo in `/gbuff`. (@sgkoishi, #2955)
|
||||
* Added a constructor for `TShockAPI.PlayerData` that accepts the `includingStarterInventory` parameter, which is responsible for loading the TShock inventory.
|
||||
* Declared the constructor `TShockAPI.PlayerData` accepting the argument `TShockAPI.TSPlayer` obsolete.
|
||||
* Updated the `PlayerData.StoreSlot` method: Added an overload that takes `TShockAPI.NetItem`.
|
||||
* Added `PlayerHooks.PrePlayerCommand` hook, which fired before command execution. (@AgaSpace)
|
||||
* Added `PlayerHooks.PostPlayerCommand` hook, which fired after command execution. (@AgaSpace)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue