OBT/1.2.0(Spring Update)
Sync with Upstream
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
using Barotrauma;
|
||||
using Barotrauma.Items.Components;
|
||||
using Barotrauma.Networking;
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using static Barotrauma.Items.Components.Quality;
|
||||
|
||||
namespace Barotrauma;
|
||||
|
||||
static class MapEntityExtensions
|
||||
{
|
||||
public static void AddLinked(this MapEntity entity, MapEntity other)
|
||||
{
|
||||
entity.linkedTo.Add(other);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static class ClientExtensions
|
||||
{
|
||||
#if SERVER
|
||||
public static void SetClientCharacter(this Client client, Character character)
|
||||
{
|
||||
GameMain.Server.SetClientCharacter(client, character);
|
||||
}
|
||||
|
||||
public static void Kick(this Client client, string reason = "")
|
||||
{
|
||||
GameMain.Server.KickClient(client.Connection, reason);
|
||||
}
|
||||
|
||||
public static void Ban(this Client client, string reason = "", float seconds = -1)
|
||||
{
|
||||
if (seconds == -1)
|
||||
{
|
||||
GameMain.Server.BanClient(client, reason, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
GameMain.Server.BanClient(client, reason, TimeSpan.FromSeconds(seconds));
|
||||
}
|
||||
}
|
||||
|
||||
public static bool CheckPermission(this Client client, ClientPermissions permissions)
|
||||
{
|
||||
return client.Permissions.HasFlag(permissions);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static class ItemExtensions
|
||||
{
|
||||
public static object GetComponentString(this Item item, string component)
|
||||
{
|
||||
Type type = LuaCsSetup.Instance.PluginManagementService
|
||||
.GetType("Barotrauma.Items.Components." + component);
|
||||
|
||||
if (type == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
MethodInfo method = typeof(Item).GetMethod(nameof(Item.GetComponent));
|
||||
MethodInfo generic = method.MakeGenericMethod(type);
|
||||
return generic.Invoke(item, null);
|
||||
}
|
||||
|
||||
#if SERVER
|
||||
public static object CreateServerEventString(this Item item, string component)
|
||||
{
|
||||
var comp = item.GetComponentString(component);
|
||||
|
||||
if (comp == null)
|
||||
return null;
|
||||
|
||||
MethodInfo method = typeof(Item).GetMethod(
|
||||
nameof(Item.CreateServerEvent),
|
||||
new Type[] { Type.MakeGenericMethodParameter(0) });
|
||||
|
||||
MethodInfo generic = method.MakeGenericMethod(comp.GetType());
|
||||
return generic.Invoke(item, new object[] { comp });
|
||||
}
|
||||
|
||||
public static object CreateServerEventString(this Item item, string component, object[] extraData)
|
||||
{
|
||||
var comp = item.GetComponentString(component);
|
||||
|
||||
if (comp == null)
|
||||
return null;
|
||||
|
||||
MethodInfo method = typeof(Item).GetMethod(
|
||||
nameof(Item.CreateServerEvent),
|
||||
new Type[] { Type.MakeGenericMethodParameter(0), typeof(object[]) });
|
||||
|
||||
MethodInfo generic = method.MakeGenericMethod(comp.GetType());
|
||||
return generic.Invoke(item, new object[] { comp, extraData });
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static class QualityExtensions
|
||||
{
|
||||
public static void SetValue(this Quality quality, StatType statType, float value)
|
||||
{
|
||||
quality.statValues[statType] = value;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user