try fix bsparam setvalue for parameter type string

This commit is contained in:
UbitUmarov
2023-05-31 20:44:42 +01:00
parent a76a65d0a4
commit 8d5d985ba1

View File

@@ -351,6 +351,19 @@ namespace OpenSim.Region.PhysicsModule.BulletS
{
// Get the generic type of the setter
Type genericType = setter.GetType().GetGenericArguments()[0];
if (genericType == typeof(string))
{
try
{
setter(s, defaultValue);
}
catch
{
s.Logger.Error($"{LogHeader} Failed setting string parameter value '{valAsString}'");
}
return;
}
// Find the 'Parse' method on that type
System.Reflection.MethodInfo parser = null;
try
@@ -359,8 +372,8 @@ namespace OpenSim.Region.PhysicsModule.BulletS
}
catch (Exception e)
{
s.Logger.ErrorFormat("{0} Exception getting parser for type '{1}': {2}", LogHeader, genericType, e);
parser = null;
s.Logger.Error($"{LogHeader} Exception getting parser for type '{genericType}': {e.Message}");
return;
}
if (parser != null)
{
@@ -374,13 +387,11 @@ namespace OpenSim.Region.PhysicsModule.BulletS
}
catch
{
s.Logger.ErrorFormat("{0} Failed parsing parameter value '{1}' as type '{2}'", LogHeader, valAsString, genericType);
s.Logger.Error($"{LogHeader} Failed parsing parameter value '{valAsString}' as type '{genericType}'");
}
}
else
{
s.Logger.ErrorFormat("{0} Could not find parameter parser for type '{1}'", LogHeader, genericType);
}
s.Logger.Error($"{LogHeader} Could not find parameter parser for type '{genericType}'");
}
public override bool HasSetOnObject
{