MCPcopy
hub / github.com/walterhiggins/ScriptCraft / grantScripting

Function grantScripting

src/main/js/modules/classroom/index.js:167–217  ·  view source on GitHub ↗
(player)

Source from the content-addressed store, hash-verified

165 events.on = oldOn;
166}
167function grantScripting(player) {
168 console.log('Enabling scripting for player ' + player.name);
169 var playerName = '' + player.name;
170 playerName = playerName.replace(/[^a-zA-Z0-9_\-]/g, '');
171
172 var playerDir = new File(playersDir + playerName);
173 if (!playerDir.exists()) {
174 playerDir.mkdirs();
175 var exampleJs =
176 '//Try running this function from Minecraft with: /js $username.hi( self )\n' +
177 '//Remember to use your real username instead of $username!\n' +
178 "//So if you had username 'walterh', you would run: /js walterh.hi( self )\n" +
179 'exports.hi = function( player ){\n' +
180 "\techo( player, 'Hi ' + player.name);\n" +
181 '};';
182 createFile(playerDir, 'greet.js', exampleJs);
183 }
184
185 if (__plugin.bukkit) {
186 player.addAttachment(__plugin, 'scriptcraft.*', true);
187 }
188 if (__plugin.canary) {
189 player.permissionProvider.addPermission('scriptcraft.evaluate', true);
190 }
191 var playerContext = {};
192 reloadPlayerModules(playerContext, playerDir);
193 global[playerName] = playerContext;
194 watchDir(playerDir, function(/*changedDir*/) {
195 var currentTime = new java.util.Date().getTime();
196 //this check is here because this callback might get called multiple times for the watch interval
197 //one call for the file change and another for directory change
198 //(this happens only in Linux because in Windows the folder lastModifiedTime is not changed)
199 if (currentTime - autoloadTime[playerName] > 1000) {
200 reloadPlayerModules(playerContext, playerDir);
201 }
202 autoloadTime[playerName] = currentTime;
203 });
204
205 function createFile(fileDir, fileName, fileContent) {
206 var out = new java.io.PrintWriter(new File(fileDir, fileName));
207 out.println(fileContent);
208 out.close();
209 }
210
211 /*
212 echo( player, 'Create your own minecraft mods by adding javascript (.js) files');
213 echo( player, ' Windows: Open Explorer, go to \\\\' + serverAddress + '\\players\\' + player.name);
214 echo( player, ' Macintosh: Open Finder, Go to smb://' + serverAddress + '/players/' + player.name);
215 echo( player, ' Linux: Open Nautilus, Go to smb://' + serverAddress + '/players/' + player.name);
216 */
217}
218
219var _classroom = {
220 allowScripting: function(/* boolean: true or false */ canScript, sender) {

Callers 1

index.jsFile · 0.85

Calls 2

createFileFunction · 0.85
reloadPlayerModulesFunction · 0.85

Tested by

no test coverage detected