diff options
author | SignpostMarv | 2012-09-14 13:17:07 +0100 |
---|---|---|
committer | Melanie | 2012-09-17 14:15:47 +0100 |
commit | f9721573d956092c2d993ee41654f3f5e160401c (patch) | |
tree | 157a221bbc9b6776b696ad4f7441be2d96b0e414 /OpenSim/Region/OptionalModules/Scripting | |
parent | preventing a null reference exception from being thrown (diff) | |
download | opensim-SC_OLD-f9721573d956092c2d993ee41654f3f5e160401c.zip opensim-SC_OLD-f9721573d956092c2d993ee41654f3f5e160401c.tar.gz opensim-SC_OLD-f9721573d956092c2d993ee41654f3f5e160401c.tar.bz2 opensim-SC_OLD-f9721573d956092c2d993ee41654f3f5e160401c.tar.xz |
Implementing ability to register script constants and invocations on a region module automatically
Diffstat (limited to 'OpenSim/Region/OptionalModules/Scripting')
-rw-r--r-- | OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs b/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs index 23cc633..98396ff 100644 --- a/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs +++ b/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs | |||
@@ -211,6 +211,23 @@ namespace OpenSim.Region.OptionalModules.Scripting.ScriptModuleComms | |||
211 | RegisterScriptInvocation(target, mi); | 211 | RegisterScriptInvocation(target, mi); |
212 | } | 212 | } |
213 | } | 213 | } |
214 | |||
215 | public void RegisterScriptInvocations(IRegionModuleBase target) | ||
216 | { | ||
217 | foreach(MethodInfo method in target.GetType().GetMethods( | ||
218 | BindingFlags.Public | BindingFlags.Instance | | ||
219 | BindingFlags.Static)) | ||
220 | { | ||
221 | if(method.GetCustomAttributes( | ||
222 | typeof(ScriptInvocationAttribute), true).Any()) | ||
223 | { | ||
224 | if(method.IsStatic) | ||
225 | RegisterScriptInvocation(target.GetType(), method); | ||
226 | else | ||
227 | RegisterScriptInvocation(target, method); | ||
228 | } | ||
229 | } | ||
230 | } | ||
214 | 231 | ||
215 | public Delegate[] GetScriptInvocationList() | 232 | public Delegate[] GetScriptInvocationList() |
216 | { | 233 | { |
@@ -313,6 +330,20 @@ namespace OpenSim.Region.OptionalModules.Scripting.ScriptModuleComms | |||
313 | } | 330 | } |
314 | } | 331 | } |
315 | 332 | ||
333 | public void RegisterConstants(IRegionModuleBase target) | ||
334 | { | ||
335 | foreach (FieldInfo field in target.GetType().GetFields( | ||
336 | BindingFlags.Public | BindingFlags.Static | | ||
337 | BindingFlags.Instance)) | ||
338 | { | ||
339 | if (field.GetCustomAttributes( | ||
340 | typeof(ScriptConstantAttribute), true).Any()) | ||
341 | { | ||
342 | RegisterConstant(field.Name, field.GetValue(target)); | ||
343 | } | ||
344 | } | ||
345 | } | ||
346 | |||
316 | /// <summary> | 347 | /// <summary> |
317 | /// Operation to check for a registered constant | 348 | /// Operation to check for a registered constant |
318 | /// </summary> | 349 | /// </summary> |