new classroom module

This commit is contained in:
walterhiggins 2013-06-07 00:01:46 +01:00
parent 3031a0216a
commit 9605e32801
2 changed files with 102 additions and 0 deletions

View file

@ -1,3 +1,34 @@
classroom Module
================
Utility functions for use in a classroom setting. The goal of these
functions is to make it easier for tutors to facilitate ScriptCraft
for use by students.
classroom.allowScripting() function
===================================
Allow or disallow anyone who connects to the server (or is already
connected) to use ScriptCraft. This function is preferable to granting 'ops' privileges
to every student in a Minecraft classroom environment.
Parameters
----------
* canScript : true or false
Example
-------
To allow all players (and any players who connect to the server) to
use the `js` and `jsp` commands...
/js classroom.allowScripting(true)
To disallow scripting (and prevent players who join the server from using the commands)...
/js classroom.allowScripting(false)
Only ops users can run the classroom.allowScripting() function - this is so that students
don't try to bar themselves and each other from scripting.
ScriptCraft API Reference
=========================

View file

@ -0,0 +1,71 @@
/************************************************************************
classroom Module
================
Utility functions for use in a classroom setting. The goal of these
functions is to make it easier for tutors to facilitate ScriptCraft
for use by students.
***/
/*************************************************************************
classroom.allowScripting() function
===================================
Allow or disallow anyone who connects to the server (or is already
connected) to use ScriptCraft. This function is preferable to granting 'ops' privileges
to every student in a Minecraft classroom environment.
Parameters
----------
* canScript : true or false
Example
-------
To allow all players (and any players who connect to the server) to
use the `js` and `jsp` commands...
/js classroom.allowScripting(true)
To disallow scripting (and prevent players who join the server from using the commands)...
/js classroom.allowScripting(false)
Only ops users can run the classroom.allowScripting() function - this is so that students
don't try to bar themselves and each other from scripting.
***/
var classroom = {
allowScripting: function(/* boolean: true or false */ canScript){}
};
ready(function(){
classroom.allowScripting = function(canScript)
{
/*
only operators should be allowed run this function
*/
if (!self.isOp())
return;
if (canScript){
utils.foreach( server.onlinePlayers, function (player) {
player.addAttachment(__plugin, "scriptcraft.*", true);
});
}else{
utils.foreach( server.onlinePlayers, function(player) {
utils.foreach(player.getEffectivePermissions(), function(perm) {
if ((""+perm.permission).indexOf("scriptcraft.") == 0){
if (perm.attachment)
perm.attachment.remove();
}
});
});
}
classroom.canScript = canScript;
};
events.on("player.PlayerLoginEvent", function(listener, event) {
var player = event.player;
if (classroom.canScript)
player.addAttachment(__plugin, "scriptcraft.*", true);
}, "HIGHEST");
});