160 lines
3.3 KiB
C#
160 lines
3.3 KiB
C#
#region References
|
|
using System;
|
|
using System.IO;
|
|
|
|
using Server;
|
|
using Server.Items;
|
|
#endregion
|
|
|
|
namespace CustomsFramework
|
|
{
|
|
public enum SaveStrategyTypes
|
|
{
|
|
StandardSaveStrategy,
|
|
DualSaveStrategy,
|
|
DynamicSaveStrategy,
|
|
ParallelSaveStrategy
|
|
}
|
|
|
|
public enum OldClientResponse
|
|
{
|
|
Ignore,
|
|
Warn,
|
|
Annoy,
|
|
LenientKick,
|
|
Kick
|
|
}
|
|
|
|
public static class Utilities
|
|
{
|
|
public static int WriteVersion(this GenericWriter writer, int version)
|
|
{
|
|
writer.Write(version);
|
|
|
|
return version;
|
|
}
|
|
|
|
public static int ReaderVersion(this GenericReader reader, int version)
|
|
{
|
|
return reader.ReadInt();
|
|
}
|
|
|
|
public static void CheckFileStructure(string path)
|
|
{
|
|
if (!Directory.Exists(path))
|
|
{
|
|
Directory.CreateDirectory(path);
|
|
}
|
|
}
|
|
|
|
// TODO: Make this factor-in GeneralSettings AccessLevel options?
|
|
public static bool IsPlayer(this Mobile from)
|
|
{
|
|
return from.AccessLevel <= AccessLevel.VIP;
|
|
}
|
|
|
|
// TODO: Make this factor-in GeneralSettings AccessLevel options?
|
|
public static bool IsStaff(this Mobile from)
|
|
{
|
|
return from.AccessLevel >= AccessLevel.Counselor;
|
|
}
|
|
|
|
// TODO: Make this factor-in GeneralSettings AccessLevel options?
|
|
public static bool IsOwner(this Mobile from)
|
|
{
|
|
return from.AccessLevel >= AccessLevel.CoOwner;
|
|
}
|
|
|
|
public static bool IsDigit(this string text)
|
|
{
|
|
int value;
|
|
return IsDigit(text, out value);
|
|
}
|
|
|
|
public static bool IsDigit(this string text, out int value)
|
|
{
|
|
return Int32.TryParse(text, out value);
|
|
}
|
|
|
|
public static SaveStrategy GetSaveStrategy(this SaveStrategyTypes saveStrategyTypes)
|
|
{
|
|
switch (saveStrategyTypes)
|
|
{
|
|
case SaveStrategyTypes.StandardSaveStrategy:
|
|
return new StandardSaveStrategy();
|
|
case SaveStrategyTypes.DualSaveStrategy:
|
|
return new DualSaveStrategy();
|
|
case SaveStrategyTypes.DynamicSaveStrategy:
|
|
return new DynamicSaveStrategy();
|
|
case SaveStrategyTypes.ParallelSaveStrategy:
|
|
return new ParallelSaveStrategy(Core.ProcessorCount);
|
|
default:
|
|
return new StandardSaveStrategy();
|
|
}
|
|
}
|
|
|
|
public static SaveStrategyTypes GetSaveType(this SaveStrategy saveStrategy)
|
|
{
|
|
if (saveStrategy is DualSaveStrategy)
|
|
{
|
|
return SaveStrategyTypes.StandardSaveStrategy;
|
|
}
|
|
|
|
if (saveStrategy is StandardSaveStrategy)
|
|
{
|
|
return SaveStrategyTypes.StandardSaveStrategy;
|
|
}
|
|
|
|
if (saveStrategy is DynamicSaveStrategy)
|
|
{
|
|
return SaveStrategyTypes.DynamicSaveStrategy;
|
|
}
|
|
|
|
if (saveStrategy is ParallelSaveStrategy)
|
|
{
|
|
return SaveStrategyTypes.ParallelSaveStrategy;
|
|
}
|
|
|
|
return SaveStrategyTypes.StandardSaveStrategy;
|
|
}
|
|
|
|
public static void PlaceItemIn(this Container container, Item item, Point3D location)
|
|
{
|
|
container.AddItem(item);
|
|
item.Location = location;
|
|
}
|
|
|
|
public static void PlaceItemIn(this Container container, Item item, int x = 0, int y = 0, int z = 0)
|
|
{
|
|
PlaceItemIn(container, item, new Point3D(x, y, z));
|
|
}
|
|
|
|
public static Item BlessItem(this Item item)
|
|
{
|
|
item.LootType = LootType.Blessed;
|
|
|
|
return item;
|
|
}
|
|
|
|
public static Item MakeNewbie(this Item item)
|
|
{
|
|
if (!Core.AOS)
|
|
{
|
|
item.LootType = LootType.Newbied;
|
|
}
|
|
|
|
return item;
|
|
}
|
|
|
|
public static void DumpToConsole(params object[] elements)
|
|
{
|
|
Console.WriteLine();
|
|
|
|
foreach (var element in elements)
|
|
{
|
|
Console.WriteLine(ObjectDumper.Dump(element));
|
|
Console.WriteLine();
|
|
}
|
|
}
|
|
}
|
|
} |