mirror of
https://github.com/ACEmulator/ACE
synced 2026-08-17 12:26:06 -04:00
* Step 1. Add new adapter classes and models All classes and objects added are in new namespaces. This add has 0 interraction on existing ACE code. This sets the groundwork for Step 2. Moving World DB caching to the new models * first part of the world entity usage * almost there * final part * update WeenieExtensions * fix * merge fixes and improvements * ACE.Database new code * it compiles * InitializePropertyDictionaries * WOrldDatabaseWithEntityCache cleanup * ShardDatabaseWithCaching * ShardDatabase Cleanup * todo * cache counts reported in serverstatus * House InitializePropertyDictionaries * improve ServerStatus * BiotaModel change HousePermissions to Dictionary<uint, bool> * PropertiesAllegiance to dictionary * BiotaUpdater improvements * Shard Database Cache Reporting * More code ported from Step 3 * Remove stub CharacterCache * Update WorldDatabaseWithEntityCache.cs * build fixes * code audit * Remove non-callback functions from SerializedShardDatabase * BiotaUpdater progress.. only emote left * Emotes done... now need to test * fix * Burden/Value fix for containers * fat fingered EncumbranceVal * add some safety * Don't cache player biotas for initial PlayerManager load * fix null spellbook * Add another null check This is redundant as the check is also upstream. This is to prevent an exception in the future if this function is called from another source.
99 lines
2.9 KiB
C#
99 lines
2.9 KiB
C#
using System;
|
|
|
|
using ACE.Database.Models.Auth;
|
|
using ACE.Entity;
|
|
using ACE.Entity.Enum.Properties;
|
|
using ACE.Server.WorldObjects;
|
|
|
|
namespace ACE.Server.Entity
|
|
{
|
|
/// <summary>
|
|
/// This interface is used by Player and OfflinePlayer.
|
|
/// It allows us to maintain two separate lists for online players (Player) and offline players (OfflinePlayer) in PlayerManager and return generic IPlayer results.
|
|
/// </summary>
|
|
public interface IPlayer
|
|
{
|
|
ObjectGuid Guid { get; }
|
|
|
|
Account Account { get; }
|
|
|
|
bool? GetProperty(PropertyBool property);
|
|
uint? GetProperty(PropertyDataId property);
|
|
double? GetProperty(PropertyFloat property);
|
|
uint? GetProperty(PropertyInstanceId property);
|
|
int? GetProperty(PropertyInt property);
|
|
long? GetProperty(PropertyInt64 property);
|
|
string GetProperty(PropertyString property);
|
|
|
|
void SetProperty(PropertyBool property, bool value);
|
|
void SetProperty(PropertyDataId property, uint value);
|
|
void SetProperty(PropertyFloat property, double value);
|
|
void SetProperty(PropertyInstanceId property, uint value);
|
|
void SetProperty(PropertyInt property, int value);
|
|
void SetProperty(PropertyInt64 property, long value);
|
|
void SetProperty(PropertyString property, string value);
|
|
|
|
void RemoveProperty(PropertyBool property);
|
|
void RemoveProperty(PropertyDataId property);
|
|
void RemoveProperty(PropertyFloat property);
|
|
void RemoveProperty(PropertyInstanceId property);
|
|
void RemoveProperty(PropertyInt property);
|
|
void RemoveProperty(PropertyInt64 property);
|
|
void RemoveProperty(PropertyString property);
|
|
|
|
|
|
string Name { get; }
|
|
|
|
int? Level { get; }
|
|
|
|
int? Heritage { get; }
|
|
|
|
int? Gender { get; }
|
|
|
|
|
|
bool IsDeleted { get; }
|
|
bool IsPendingDeletion { get; }
|
|
|
|
|
|
uint? MonarchId { get; set; }
|
|
|
|
uint? PatronId { get; set; }
|
|
|
|
ulong AllegianceXPCached { get; set; }
|
|
|
|
ulong AllegianceXPGenerated { get; set; }
|
|
|
|
int? AllegianceRank { get; set; }
|
|
|
|
int? AllegianceOfficerRank { get; set; }
|
|
|
|
bool ExistedBeforeAllegianceXpChanges { get; set; }
|
|
|
|
uint? HouseId { get; set; }
|
|
|
|
uint? HouseInstance { get; set; }
|
|
|
|
int? HousePurchaseTimestamp { get; set; }
|
|
|
|
int? HouseRentTimestamp { get; set; }
|
|
|
|
|
|
uint GetCurrentLoyalty();
|
|
|
|
uint GetCurrentLeadership();
|
|
|
|
|
|
Allegiance Allegiance { get; set; }
|
|
|
|
AllegianceNode AllegianceNode { get; set; }
|
|
|
|
/// <summary>
|
|
/// This method forces a player to be immediately saved to the database
|
|
/// It should only be called in critical sections that must guarantee
|
|
/// lock-step with other players
|
|
/// </summary>
|
|
void SaveBiotaToDatabase(bool enqueueSave = true);
|
|
|
|
void UpdateProperty(PropertyInstanceId prop, uint? value, bool broadcast = false);
|
|
}
|
|
}
|