本文整理汇总了C#中Terraria.Player.GetAuthenticatedAs方法的典型用法代码示例。如果您正苦于以下问题:C# Player.GetAuthenticatedAs方法的具体用法?C# Player.GetAuthenticatedAs怎么用?C# Player.GetAuthenticatedAs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Terraria.Player
的用法示例。
在下文中一共展示了Player.GetAuthenticatedAs方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SavePlayerData
public static bool SavePlayerData(IDbConnection ctx, IDbTransaction txn, bool save, Player player)
#endif
{
if (!player.IsAuthenticated()) return false;
//If using a flat based system ensure the MODE is stored
string authName = null;
if (Mode == CharacterMode.AUTH)
{
var auth = player.GetAuthenticatedAs();
if (!String.IsNullOrEmpty(auth))
authName = auth;
}
else if (Mode == CharacterMode.UUID)
{
if (!String.IsNullOrEmpty(player.ClientUUId))
authName = player.ClientUUId + '@' + player.name;
}
if (!String.IsNullOrEmpty(authName))
{
if (Storage.IsAvailable)
{
var auth = player.GetAuthenticatedAs();
#if ENTITY_FRAMEWORK_6
int userId = 0;
if (Mode == CharacterMode.AUTH)
{
var user = AuthenticatedUsers.GetUser(auth);
if (user == null)
{
OTA.Logging.ProgramLog.Error.Log("No user found ");
return false;
}
userId = user.Id;
}
else if (Mode != CharacterMode.UUID)
return false;
//Sync the character
var character = ctx.GetCharacter(Mode, userId, player.ClientUUId);
if (null == character)
{
character = ctx.AddCharacter(userId, player);
}
else character.UpdateCharacter(userId, player);
//Sync items
var items = ctx.Items.Where(x => x.CharacterId == character.Id).ToArray();
if (!SaveCharacterItems(ctx, save, player, character.Id, player.inventory, ItemType.Inventory, items)) return false;
if (!SaveCharacterItems(ctx, save, player, character.Id, player.armor, ItemType.Armor, items)) return false;
if (!SaveCharacterItems(ctx, save, player, character.Id, player.dye, ItemType.Dye, items)) return false;
if (!SaveCharacterItems(ctx, save, player, character.Id, player.miscEquips, ItemType.Equipment, items)) return false;
if (!SaveCharacterItems(ctx, save, player, character.Id, player.miscDyes, ItemType.MiscDyes, items)) return false;
if (!SaveCharacterItem(ctx, save, player, character.Id, ItemType.Trash, player.trashItem, 0, items)) return false;
#elif ENTITY_FRAMEWORK_7
#else
var character = Tables.CharacterTable.GetCharacter(ctx, txn, Mode, auth, player.ClientUUId);
if (character == null)
{
// if (player.ClearPluginData(Key_NewCharacter))
// {
character = Tables.CharacterTable.NewCharacter
(
ctx,
txn,
Mode,
auth,
player.ClientUUId,
player.statLife,
player.statLifeMax,
player.statMana,
player.statManaMax,
player.SpawnX,
player.SpawnY,
player.hair,
player.hairDye,
player.hideVisual,
player.difficulty,
player.hairColor,
player.skinColor,
player.eyeColor,
player.shirtColor,
player.underShirtColor,
player.pantsColor,
player.shoeColor,
player.anglerQuestsFinished
);
// }
// else
// {
// ProgramLog.Error.Log("Failed to save SSC for player: {0}", player.name);
// return false;
// }
//.........这里部分代码省略.........
示例2: LoadPlayerData
public static ServerCharacter LoadPlayerData(IDbConnection ctx, IDbTransaction txn, Player player, bool returnNewInfo = false)
{
//If using a flat based system ensure the MODE is stored
string authName = null;
if (Mode == CharacterMode.AUTH)
{
var auth = player.GetAuthenticatedAs();
if (!String.IsNullOrEmpty(auth))
authName = auth;
}
else if (Mode == CharacterMode.UUID)
{
if (!String.IsNullOrEmpty(player.ClientUUId))
authName = player.ClientUUId + '@' + player.name;
}
// ProgramLog.Admin.Log("SSC is: " + Storage.IsAvailable);
// ProgramLog.Admin.Log("Finding SSC for: " + (authName ?? "NULL"));
if (!String.IsNullOrEmpty(authName))
{
// ProgramLog.Log("Loading SSC for " + authName);
if (Storage.IsAvailable)
{
var auth = player.GetAuthenticatedAs();
#if ENTITY_FRAMEWORK_6 || ENTITY_FRAMEWORK_7
var dbSSC = Tables.CharacterTable.GetCharacter(ctx, Mode, auth, player.ClientUUId);
// ProgramLog.Admin.Log("Found SCC: " + (dbSSC != null));
if (dbSSC != null)
{
var ssc = dbSSC.ToServerCharacter();
#elif DATA_CONNECTOR
var ssc = Tables.CharacterTable.GetCharacter(Mode, auth, player.ClientUUId);
if (ssc != null)
{
#elif DAPPER
var dbSSC = Tables.CharacterTable.GetCharacter(ctx, txn, Mode, auth, player.ClientUUId);
if (dbSSC != null)
{
var ssc = dbSSC.ToServerCharacter();
#endif
// ProgramLog.Log("Loading SSC loadout");
// ProgramLog.Admin.Log("Loading SSC loadout: " + dbSSC.Id);
// ProgramLog.Admin.Log("Translated SCC: " + (ssc != null));
//
var inv = Tables.ItemTable.GetItemsForCharacter(ctx, txn, ItemType.Inventory, ssc.Id);
if (null != inv) ssc.Inventory = inv.ToList();
var amr = Tables.ItemTable.GetItemsForCharacter(ctx, txn, ItemType.Armor, ssc.Id);
if (null != amr) ssc.Armor = amr.ToList();
var dye = Tables.ItemTable.GetItemsForCharacter(ctx, txn, ItemType.Dye, ssc.Id);
if (null != dye) ssc.Dye = dye.ToList();
var equipment = Tables.ItemTable.GetItemsForCharacter(ctx, txn, ItemType.Equipment, ssc.Id);
if (null != equipment) ssc.Equipment = equipment.ToList();
var miscdye = Tables.ItemTable.GetItemsForCharacter(ctx, txn, ItemType.MiscDyes, ssc.Id);
if (null != miscdye) ssc.MiscDyes = miscdye.ToList();
var bank = Tables.ItemTable.GetItemsForCharacter(ctx, txn, ItemType.Bank, ssc.Id);
if (null != bank) ssc.Bank = bank.ToList();
var bank2 = Tables.ItemTable.GetItemsForCharacter(ctx, txn, ItemType.Bank2, ssc.Id);
if (null != bank2) ssc.Bank2 = bank2.ToList();
var trash = Tables.ItemTable.GetItemsForCharacter(ctx, txn, ItemType.Trash, ssc.Id);
#if ENTITY_FRAMEWORK_6 || ENTITY_FRAMEWORK_7
if (null != trash && trash.Count > 0) ssc.Trash = trash.First();
#elif DATA_CONNECTOR
if (null != trash && trash.Length > 0) ssc.Trash = trash.First();
#endif
return ssc;
}
else
{
if (returnNewInfo)
{
// ProgramLog.Log("Issuing new loadout");
// player.SetPluginData(Key_NewCharacter, true);
EnsureSave = true; //Save is now required
return new ServerCharacter(StartingOutInfo, player);
}
// else ProgramLog.Log("New loadout not specified");
}
}
else
{
var dir = Path.Combine(Globals.CharacterDataPath, Mode.ToString());
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
var file = Path.Combine(dir, authName + ".ssc");
if (System.IO.File.Exists(file))
{
//.........这里部分代码省略.........