aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms
diff options
context:
space:
mode:
authorSignpostMarv2012-09-14 13:17:07 +0100
committerMelanie2012-09-17 14:15:47 +0100
commitf9721573d956092c2d993ee41654f3f5e160401c (patch)
tree157a221bbc9b6776b696ad4f7441be2d96b0e414 /OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms
parentpreventing a null reference exception from being thrown (diff)
downloadopensim-SC-f9721573d956092c2d993ee41654f3f5e160401c.zip
opensim-SC-f9721573d956092c2d993ee41654f3f5e160401c.tar.gz
opensim-SC-f9721573d956092c2d993ee41654f3f5e160401c.tar.bz2
opensim-SC-f9721573d956092c2d993ee41654f3f5e160401c.tar.xz
Implementing ability to register script constants and invocations on a region module automatically
Diffstat (limited to 'OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms')
-rw-r--r--OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs31
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>