changed for canarymod
This commit is contained in:
parent
80522b6d4d
commit
795043cbb0
2 changed files with 130 additions and 128 deletions
|
@ -56,34 +56,33 @@ players connect to a Minecraft Server on the internet or locally
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
CraftBukkit is a version of the Minecraft server software which allows
|
CanaryMod is a version of the Minecraft server software which allows
|
||||||
easy addition of 'Mods' and extensions to Minecraft. ScriptCraft is a
|
easy addition of 'Mods' and extensions to Minecraft. ScriptCraft is a
|
||||||
'Mod' for use with CraftBukkit. Adding Mods to Minecraft can be
|
'Mod' for use with CanaryMod. Adding Mods to Minecraft can be
|
||||||
difficult but CraftBukkit makes it easy. Follow these steps to
|
difficult but CanaryMod makes it easy. Follow these steps to
|
||||||
Install ScriptCraft on your computer...
|
Install ScriptCraft on your computer...
|
||||||
|
|
||||||
1. [Download and install CraftBukkit][dlbuk2] (choose either Recommended, Beta or Development) . Then follow the [Bukkit
|
1. [Download and install CanaryMod][dlcm] (choose either Recommended, Beta or Development) . Then follow the [CanaryMod
|
||||||
Installation Instructions][bii]. (Tip: You can grab the very latest
|
Installation Instructions][cmadmin].
|
||||||
version of bukkit from the [alternative versions list][dlbuk2])
|
|
||||||
|
|
||||||
2. Start the CraftBukkit server, then once it has started up, stop it
|
2. Start the CanaryMod server, then once it has started up, stop it
|
||||||
by typing 'stop'. If you go to the craftbukkit folder (see step 1) you
|
by typing 'stop'. If you go to the CanaryMod folder (see step 1) you
|
||||||
should see some new files and subfolders.
|
should see some new files and subfolders.
|
||||||
|
|
||||||
3. [Download the latest version of the ScriptCraft Mod][sc-plugin]. Then copy the ScriptCraft.jar file to the
|
3. [Download the latest version of the ScriptCraft Mod][sc-plugin]. Then copy the ScriptCraft.jar file to the
|
||||||
`craftbukkit/plugins` folder (This folder won't be created until you run Bukkit for the first time (see previous step).
|
`plugins` folder (This folder won't be created until you run CanaryMod for the first time (see previous step).
|
||||||
|
|
||||||
4. Start up the craftbukkit server again (see [instructions for starting the server][bii]).
|
4. Start up the CanaryMod server again (see [instructions for starting the server][cmadmin]).
|
||||||
|
|
||||||
5. In the CraftBukkit command window type `op {your_username}` and hit
|
5. In the CanaryMod command window type `op {your_username}` and hit
|
||||||
enter, replacing {your_username} with your own minecraft
|
enter, replacing {your_username} with your own minecraft
|
||||||
username. This will give you `operator` access meaning you can perform
|
username. This will give you `operator` access meaning you can perform
|
||||||
more commands than are normally available in Minecraft. You should
|
more commands than are normally available in Minecraft. You should
|
||||||
make yourself a server operator (Server operators have full privileges
|
make yourself a server operator (Server operators have full privileges
|
||||||
for the server) permanently by editing the craftbukkit/ops.txt file
|
for the server) permanently by editing the ops.txt file
|
||||||
and adding your username (one username per line).
|
and adding your username (one username per line).
|
||||||
|
|
||||||
6. In the CraftBukkit command window type `js 1 + 1` and hit enter. You should see `> 2` .
|
6. In the CanaryMod command window type `js 1 + 1` and hit enter. You should see `> 2` .
|
||||||
|
|
||||||
... Congratulations! You just installed your own Minecraft Server with
|
... Congratulations! You just installed your own Minecraft Server with
|
||||||
the ScriptCraft Mod and are now ready to begin programming in Minecraft.
|
the ScriptCraft Mod and are now ready to begin programming in Minecraft.
|
||||||
|
@ -98,9 +97,9 @@ interactive web sites and many other applications.
|
||||||
|
|
||||||
## Configuring your Server (optional)
|
## Configuring your Server (optional)
|
||||||
|
|
||||||
Once you've installed CraftBukkit, depending on your specific needs,
|
Once you've installed CanaryMod, depending on your specific needs,
|
||||||
you might want to consider setting the following properties in the
|
you might want to consider setting the following properties in the
|
||||||
`server.properties` file...
|
`server.properties` or `world.properties` files...
|
||||||
|
|
||||||
# completely flat worlds are best for building from scratch
|
# completely flat worlds are best for building from scratch
|
||||||
level-type=FLAT
|
level-type=FLAT
|
||||||
|
@ -139,8 +138,8 @@ Minecraft server and are ready to connect ...
|
||||||
4. Type any name you like in the name field then type `localhost` in the
|
4. Type any name you like in the name field then type `localhost` in the
|
||||||
address field. `localhost` is a special internet address that points to
|
address field. `localhost` is a special internet address that points to
|
||||||
your own computer.
|
your own computer.
|
||||||
5. Click 'Join Server' to join the craftbukkit server. If the version
|
5. Click 'Join Server' to join the server. If the version
|
||||||
of Minecraft is incompatible with the version of CraftBukkit you will
|
of Minecraft is incompatible with the version of the server you will
|
||||||
not be able to connect to the server. To fix this, you can create a
|
not be able to connect to the server. To fix this, you can create a
|
||||||
Minecraft profile in your client. Profiles let you decide which
|
Minecraft profile in your client. Profiles let you decide which
|
||||||
version of Minecraft client you want to run so that your client and
|
version of Minecraft client you want to run so that your client and
|
||||||
|
@ -188,7 +187,7 @@ value like this...
|
||||||
The `var` keyword is only needed when you first create the variable. Now
|
The `var` keyword is only needed when you first create the variable. Now
|
||||||
execute this command...
|
execute this command...
|
||||||
|
|
||||||
/js echo( location )
|
/js echo( self, location )
|
||||||
|
|
||||||
...and it displays...
|
...and it displays...
|
||||||
|
|
||||||
|
@ -199,11 +198,11 @@ the variables you'll create in your in-game commands and scripts, there
|
||||||
are handy *free* variables created for you by ScriptCraft. One such variable is
|
are handy *free* variables created for you by ScriptCraft. One such variable is
|
||||||
`self`, it contains information about the current player (that's you)...
|
`self`, it contains information about the current player (that's you)...
|
||||||
|
|
||||||
/js echo ( self )
|
/js echo ( self, self.name )
|
||||||
|
|
||||||
... displays the following...
|
... displays something like the following...
|
||||||
|
|
||||||
CraftPlayer{name=walterh}
|
walterh
|
||||||
|
|
||||||
... for me but the message displayed will be different for every player.
|
... for me but the message displayed will be different for every player.
|
||||||
|
|
||||||
|
@ -217,7 +216,7 @@ looking at the building functions let's look at the `echo()` function.
|
||||||
`echo()` - as its name implies - will echo back at you whatever you
|
`echo()` - as its name implies - will echo back at you whatever you
|
||||||
tell it. For example, type ...
|
tell it. For example, type ...
|
||||||
|
|
||||||
/js echo('Hello')
|
/js echo( self, 'Hello')
|
||||||
|
|
||||||
... and the game will display...
|
... and the game will display...
|
||||||
|
|
||||||
|
@ -225,7 +224,7 @@ tell it. For example, type ...
|
||||||
|
|
||||||
... type ...
|
... type ...
|
||||||
|
|
||||||
/js echo( 5 + 7 )
|
/js echo( self, 5 + 7 )
|
||||||
|
|
||||||
... and the game will display...
|
... and the game will display...
|
||||||
|
|
||||||
|
@ -235,7 +234,7 @@ tell it. For example, type ...
|
||||||
don't recommend it. Homework and Minecraft don't mix! The `echo()`
|
don't recommend it. Homework and Minecraft don't mix! The `echo()`
|
||||||
function will display anything you tell it to - Text, Numbers and other types...
|
function will display anything you tell it to - Text, Numbers and other types...
|
||||||
|
|
||||||
/js echo( new Date() )
|
/js echo( self, new Date() )
|
||||||
|
|
||||||
... prints today's date. If the statement above looks confusing - don't
|
... prints today's date. If the statement above looks confusing - don't
|
||||||
worry - `new Date()` creates a new date object - I'll talk about objects
|
worry - `new Date()` creates a new date object - I'll talk about objects
|
||||||
|
@ -502,12 +501,12 @@ Once you've installed Notepad++, Launch it, create a new file and type the follo
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
exports.greet = function( player ) {
|
exports.greet = function( player ) {
|
||||||
player.sendMessage('Hi ' + player.name);
|
echo( player, 'Hi ' + player.name);
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
... then save the file in a new directory
|
... then save the file in a new directory
|
||||||
`craftbukkit/plugins/scriptcraft/plugins/{your_name}` (replace
|
`scriptcraft/plugins/{your_name}` (replace
|
||||||
{your_name} with your own name) and call the file `greet.js` (be sure
|
{your_name} with your own name) and call the file `greet.js` (be sure
|
||||||
to change the file-type option to '*.* All Files' when saving or
|
to change the file-type option to '*.* All Files' when saving or
|
||||||
NotePad++ will add a '.txt' extension to the filename. Now switch back
|
NotePad++ will add a '.txt' extension to the filename. Now switch back
|
||||||
|
@ -528,7 +527,7 @@ loaded. Try it out by typing this command...
|
||||||
minecraft username. Congratulations - You've just written your very
|
minecraft username. Congratulations - You've just written your very
|
||||||
first Minecraft Mod! With ScriptCraft installed, writing Minecraft
|
first Minecraft Mod! With ScriptCraft installed, writing Minecraft
|
||||||
Mods is as simple as writing a new javascript function and saving it
|
Mods is as simple as writing a new javascript function and saving it
|
||||||
in a file in the craftbukkit/plugins/scriptcraft/plugins
|
in a file in the scriptcraft/plugins
|
||||||
directory. This function will now be avaible every time you launch
|
directory. This function will now be avaible every time you launch
|
||||||
minecraft. This is a deliberately trivial minecraft mod but the
|
minecraft. This is a deliberately trivial minecraft mod but the
|
||||||
principles are the same when creating more complex mods.
|
principles are the same when creating more complex mods.
|
||||||
|
@ -543,17 +542,17 @@ one or more functions, objects or variables. For example...
|
||||||
#### thrower.js
|
#### thrower.js
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
exports.egg = function(player){
|
exports.boo = function(player){
|
||||||
player.throwEgg();
|
echo( player, 'Boo!');
|
||||||
}
|
}
|
||||||
exports.snowball = function(player){
|
exports.yo = function(player){
|
||||||
player.throwSnowball();
|
echo( player, 'Yo!');
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
... is a plugin which provides 2 javascript functions called `egg()`
|
... is a plugin which provides 2 javascript functions called `boo()`
|
||||||
and `snowball()` which can be invoked from the in-game prompt like
|
and `yo()` which can be invoked from the in-game prompt like
|
||||||
this `/js egg(self)` or `/js snowball(self)`.
|
this `/js boo(self)` or `/js yo(self)`.
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
If you want to change the `greet()` function so that it displays a
|
If you want to change the `greet()` function so that it displays a
|
||||||
|
@ -568,7 +567,7 @@ Change the `greet()` function so that it looks like this...
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
exports.greet = function ( greeting , player) {
|
exports.greet = function ( greeting , player) {
|
||||||
player.sendMessage( greeting + player.name );
|
echo( player, greeting + player.name );
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -635,6 +634,8 @@ things...
|
||||||
compare the ages of your friends or siblings to your own age.
|
compare the ages of your friends or siblings to your own age.
|
||||||
|
|
||||||
## More fun with `true` or `false`
|
## More fun with `true` or `false`
|
||||||
|
TODO: This needs to be changed for CanaryMod
|
||||||
|
|
||||||
You can find out if you can Fly in minecraft by typing the following statement...
|
You can find out if you can Fly in minecraft by typing the following statement...
|
||||||
|
|
||||||
/js self.allowFlight
|
/js self.allowFlight
|
||||||
|
@ -669,7 +670,7 @@ expected...
|
||||||
... This statement won't work as expected - it will give an Error
|
... This statement won't work as expected - it will give an Error
|
||||||
message. This is because sometimes we can read variables but we can't
|
message. This is because sometimes we can read variables but we can't
|
||||||
change them the same way we read them (this is because of how
|
change them the same way we read them (this is because of how
|
||||||
Javascript, Java and the CraftBukkit API work together). To turn on or
|
Javascript, Java and the CanaryMod API work together). To turn on or
|
||||||
off the spawning of monsters, type the following...
|
off the spawning of monsters, type the following...
|
||||||
|
|
||||||
/js self.location.world.setSpawnFlags(false, true)
|
/js self.location.world.setSpawnFlags(false, true)
|
||||||
|
@ -680,8 +681,8 @@ whether or not Animals can spawn. (SIDENOTE: You may be wondering how
|
||||||
to change other aspects of the Minecraft game - pretty much all
|
to change other aspects of the Minecraft game - pretty much all
|
||||||
aspects of the game can be changed. Changes are made using what are
|
aspects of the game can be changed. Changes are made using what are
|
||||||
called `API` calls - these are calls to functions and methods in
|
called `API` calls - these are calls to functions and methods in
|
||||||
Minecraft - you can read more about these on the [CraftBukkit API
|
Minecraft - you can read more about these on the [CanaryMod API
|
||||||
Reference][cbapi].)
|
Reference][cmapi].)
|
||||||
|
|
||||||
## ...and Again, and Again, and Again,...
|
## ...and Again, and Again, and Again,...
|
||||||
|
|
||||||
|
@ -722,26 +723,24 @@ connnected to a server, the worlds of a server and so on.
|
||||||
|
|
||||||
At the in-game command prompt type the following then hit Enter...
|
At the in-game command prompt type the following then hit Enter...
|
||||||
|
|
||||||
/js for (var i = 0;i < server.onlinePlayers.length; i++){ server.onlinePlayers[i].sendMessage('Hi!'); }
|
/js var utils = require('utils');
|
||||||
|
/js var players = utils.players();
|
||||||
|
/js for (var i = 0;i < players.length; i++){ echo(players[i], 'Hi!'); }
|
||||||
|
|
||||||
... Lets look at these statements in more detail. We had to enter the
|
... Lets look at these statements in more detail. We had to enter the
|
||||||
statements on a single line at the in-game command prompt but the
|
statements on a single line at the in-game command prompt but the
|
||||||
statements could be written like this...
|
statements could be written like this...
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var players = server.onlinePlayers;
|
var utils = require('utils');
|
||||||
var player;
|
var players = utils.players();
|
||||||
var i;
|
for (var i = 0;i < players.length; i++) {
|
||||||
for ( i = 0; i < players.length; i++ ) {
|
echo(players[i], 'Hi!');
|
||||||
player = players[i];
|
|
||||||
player.sendMessage( 'Hi!' );
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
... On the first line, a new variable `players` is created from the
|
... On the 2nd line, a new variable `players` is created and assigned a value by calling utils.players().
|
||||||
server object's onlinePlayers property. `players` is more concise and
|
On the next line, the for loop is declared, a counter variable `i` is set
|
||||||
easier to type than the long-winded `server.onlinePlayers`. On the
|
|
||||||
fourth line, the for loop is declared, a counter variable `i` is set
|
|
||||||
to 0 (zero - arrays in javascript start at 0 not 1) and each time
|
to 0 (zero - arrays in javascript start at 0 not 1) and each time
|
||||||
around the loop is tested to see if it's less than the number of
|
around the loop is tested to see if it's less than the number of
|
||||||
players online. At the end of each run around the loop the `i`
|
players online. At the end of each run around the loop the `i`
|
||||||
|
@ -766,18 +765,19 @@ TextWrangler or your editor of choice) and add the following code at
|
||||||
the bottom of the file...
|
the bottom of the file...
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
|
var utils = require('utils');
|
||||||
exports.hiAll = function () {
|
exports.hiAll = function () {
|
||||||
var players = server.onlinePlayers,
|
var players = utils.players();
|
||||||
player,
|
player,
|
||||||
i;
|
i;
|
||||||
for ( i = 0; i < players.length; i++) {
|
for ( i = 0; i < players.length; i++) {
|
||||||
player = players[i];
|
player = players[i];
|
||||||
player.sendMessage( 'Hi!' );
|
echo( player, 'Hi!' );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
... save the file, at the in-game command prompt type `reload` and
|
... save the file, at the in-game command prompt type `js refresh()` and
|
||||||
then type `/js hiAll()`. This will send the message `Hi!` to all of
|
then type `/js hiAll()`. This will send the message `Hi!` to all of
|
||||||
the players connected to your server. You've done this using a `for`
|
the players connected to your server. You've done this using a `for`
|
||||||
loop and arrays. Arrays and `for` loops are used heavily in all types
|
loop and arrays. Arrays and `for` loops are used heavily in all types
|
||||||
|
@ -885,7 +885,7 @@ utils.foreach( server.onlinePlayers, function( player ) {
|
||||||
|
|
||||||
### Exercise
|
### Exercise
|
||||||
Try changing the above function so that different sounds are played
|
Try changing the above function so that different sounds are played
|
||||||
instead of a Cat's Meow. You'll need to lookup the [CraftBukkit API's
|
instead of a Cat's Meow. You'll need to lookup the [CanaryMod API's
|
||||||
Sound class][soundapi] to see all of the possible sounds that can be
|
Sound class][soundapi] to see all of the possible sounds that can be
|
||||||
played.
|
played.
|
||||||
|
|
||||||
|
@ -1266,23 +1266,24 @@ covered here. If you want to dive deeper into programming and modding
|
||||||
minecraft, I recommend reading the accompanying [ScriptCraft API
|
minecraft, I recommend reading the accompanying [ScriptCraft API
|
||||||
reference][api] which covers all of the ScriptCraft functions, objects
|
reference][api] which covers all of the ScriptCraft functions, objects
|
||||||
and methods. I also recommend reading the source code to some of the
|
and methods. I also recommend reading the source code to some of the
|
||||||
existing scriptcraft add-ons, the *chat* module (
|
existing scriptcraft plugins, followed by
|
||||||
`scriptcraft/plugins/chat/color.js` ) is a good place to start, followed by
|
[Anatomy of a ScriptCraft Plug-in][ap]. The online [CanaryMod API
|
||||||
[Anatomy of a ScriptCraft Plug-in][ap]. The online [Craftbukkit API
|
Reference][cmapi] provides lots of valuable information about the
|
||||||
Reference][cbapi] provides lots of valuable information about the
|
|
||||||
different objects and methods available for use by ScriptCraft.
|
different objects and methods available for use by ScriptCraft.
|
||||||
|
|
||||||
|
|
||||||
[buk]: http://wiki.bukkit.org/Setting_up_a_server
|
[cmadmin]: http://canarymod.net/books/canarymod-admin-guide
|
||||||
[dlbuk2]: http://dl.bukkit.org/downloads/craftbukkit/
|
[dlbuk2]: http://dl.bukkit.org/downloads/craftbukkit/
|
||||||
|
[dlcm]: http://canarymod.net/releases
|
||||||
[bii]: http://wiki.bukkit.org/Setting_up_a_server
|
[bii]: http://wiki.bukkit.org/Setting_up_a_server
|
||||||
[sc-plugin]: http://scriptcraftjs.org/download/
|
[sc-plugin]: http://scriptcraftjs.org/download/
|
||||||
[ce]: http://www.codecademy.com/
|
[ce]: http://www.codecademy.com/
|
||||||
[mcdv]: http://www.minecraftwiki.net/wiki/Data_values
|
[mcdv]: http://www.minecraftwiki.net/wiki/Data_values
|
||||||
[np]: http://notepad-plus-plus.org/
|
[np]: http://notepad-plus-plus.org/
|
||||||
[cbapi]: http://jd.bukkit.org/beta/apidocs/
|
[cbapi]: http://jd.bukkit.org/beta/apidocs/
|
||||||
|
[cmapi]: https://ci.visualillusionsent.net/job/CanaryLib/javadoc/
|
||||||
[boole]: http://en.wikipedia.org/wiki/George_Boole
|
[boole]: http://en.wikipedia.org/wiki/George_Boole
|
||||||
[soundapi]: http://jd.bukkit.org/beta/apidocs/org/bukkit/Sound.html
|
[soundapi]: https://ci.visualillusionsent.net/job/CanaryLib/javadoc/net/canarymod/api/world/effects/SoundEffect.Type.html
|
||||||
[ap]: Anatomy-of-a-Plugin.md
|
[ap]: Anatomy-of-a-Plugin.md
|
||||||
[api]: API-Reference.md
|
[api]: API-Reference.md
|
||||||
[twl]: http://www.barebones.com/products/textwrangler/
|
[twl]: http://www.barebones.com/products/textwrangler/
|
||||||
|
|
129
src/docs/templates/ypgpm.md
vendored
129
src/docs/templates/ypgpm.md
vendored
|
@ -20,34 +20,33 @@ players connect to a Minecraft Server on the internet or locally
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
CraftBukkit is a version of the Minecraft server software which allows
|
CanaryMod is a version of the Minecraft server software which allows
|
||||||
easy addition of 'Mods' and extensions to Minecraft. ScriptCraft is a
|
easy addition of 'Mods' and extensions to Minecraft. ScriptCraft is a
|
||||||
'Mod' for use with CraftBukkit. Adding Mods to Minecraft can be
|
'Mod' for use with CanaryMod. Adding Mods to Minecraft can be
|
||||||
difficult but CraftBukkit makes it easy. Follow these steps to
|
difficult but CanaryMod makes it easy. Follow these steps to
|
||||||
Install ScriptCraft on your computer...
|
Install ScriptCraft on your computer...
|
||||||
|
|
||||||
1. [Download and install CraftBukkit][dlbuk2] (choose either Recommended, Beta or Development) . Then follow the [Bukkit
|
1. [Download and install CanaryMod][dlcm] (choose either Recommended, Beta or Development) . Then follow the [CanaryMod
|
||||||
Installation Instructions][bii]. (Tip: You can grab the very latest
|
Installation Instructions][cmadmin].
|
||||||
version of bukkit from the [alternative versions list][dlbuk2])
|
|
||||||
|
|
||||||
2. Start the CraftBukkit server, then once it has started up, stop it
|
2. Start the CanaryMod server, then once it has started up, stop it
|
||||||
by typing 'stop'. If you go to the craftbukkit folder (see step 1) you
|
by typing 'stop'. If you go to the CanaryMod folder (see step 1) you
|
||||||
should see some new files and subfolders.
|
should see some new files and subfolders.
|
||||||
|
|
||||||
3. [Download the latest version of the ScriptCraft Mod][sc-plugin]. Then copy the ScriptCraft.jar file to the
|
3. [Download the latest version of the ScriptCraft Mod][sc-plugin]. Then copy the ScriptCraft.jar file to the
|
||||||
`craftbukkit/plugins` folder (This folder won't be created until you run Bukkit for the first time (see previous step).
|
`plugins` folder (This folder won't be created until you run CanaryMod for the first time (see previous step).
|
||||||
|
|
||||||
4. Start up the craftbukkit server again (see [instructions for starting the server][bii]).
|
4. Start up the CanaryMod server again (see [instructions for starting the server][cmadmin]).
|
||||||
|
|
||||||
5. In the CraftBukkit command window type `op {your_username}` and hit
|
5. In the CanaryMod command window type `op {your_username}` and hit
|
||||||
enter, replacing {your_username} with your own minecraft
|
enter, replacing {your_username} with your own minecraft
|
||||||
username. This will give you `operator` access meaning you can perform
|
username. This will give you `operator` access meaning you can perform
|
||||||
more commands than are normally available in Minecraft. You should
|
more commands than are normally available in Minecraft. You should
|
||||||
make yourself a server operator (Server operators have full privileges
|
make yourself a server operator (Server operators have full privileges
|
||||||
for the server) permanently by editing the craftbukkit/ops.txt file
|
for the server) permanently by editing the ops.txt file
|
||||||
and adding your username (one username per line).
|
and adding your username (one username per line).
|
||||||
|
|
||||||
6. In the CraftBukkit command window type `js 1 + 1` and hit enter. You should see `> 2` .
|
6. In the CanaryMod command window type `js 1 + 1` and hit enter. You should see `> 2` .
|
||||||
|
|
||||||
... Congratulations! You just installed your own Minecraft Server with
|
... Congratulations! You just installed your own Minecraft Server with
|
||||||
the ScriptCraft Mod and are now ready to begin programming in Minecraft.
|
the ScriptCraft Mod and are now ready to begin programming in Minecraft.
|
||||||
|
@ -62,9 +61,9 @@ interactive web sites and many other applications.
|
||||||
|
|
||||||
## Configuring your Server (optional)
|
## Configuring your Server (optional)
|
||||||
|
|
||||||
Once you've installed CraftBukkit, depending on your specific needs,
|
Once you've installed CanaryMod, depending on your specific needs,
|
||||||
you might want to consider setting the following properties in the
|
you might want to consider setting the following properties in the
|
||||||
`server.properties` file...
|
`server.properties` or `world.properties` files...
|
||||||
|
|
||||||
# completely flat worlds are best for building from scratch
|
# completely flat worlds are best for building from scratch
|
||||||
level-type=FLAT
|
level-type=FLAT
|
||||||
|
@ -103,8 +102,8 @@ Minecraft server and are ready to connect ...
|
||||||
4. Type any name you like in the name field then type `localhost` in the
|
4. Type any name you like in the name field then type `localhost` in the
|
||||||
address field. `localhost` is a special internet address that points to
|
address field. `localhost` is a special internet address that points to
|
||||||
your own computer.
|
your own computer.
|
||||||
5. Click 'Join Server' to join the craftbukkit server. If the version
|
5. Click 'Join Server' to join the server. If the version
|
||||||
of Minecraft is incompatible with the version of CraftBukkit you will
|
of Minecraft is incompatible with the version of the server you will
|
||||||
not be able to connect to the server. To fix this, you can create a
|
not be able to connect to the server. To fix this, you can create a
|
||||||
Minecraft profile in your client. Profiles let you decide which
|
Minecraft profile in your client. Profiles let you decide which
|
||||||
version of Minecraft client you want to run so that your client and
|
version of Minecraft client you want to run so that your client and
|
||||||
|
@ -152,7 +151,7 @@ value like this...
|
||||||
The `var` keyword is only needed when you first create the variable. Now
|
The `var` keyword is only needed when you first create the variable. Now
|
||||||
execute this command...
|
execute this command...
|
||||||
|
|
||||||
/js echo( location )
|
/js echo( self, location )
|
||||||
|
|
||||||
...and it displays...
|
...and it displays...
|
||||||
|
|
||||||
|
@ -163,11 +162,11 @@ the variables you'll create in your in-game commands and scripts, there
|
||||||
are handy *free* variables created for you by ScriptCraft. One such variable is
|
are handy *free* variables created for you by ScriptCraft. One such variable is
|
||||||
`self`, it contains information about the current player (that's you)...
|
`self`, it contains information about the current player (that's you)...
|
||||||
|
|
||||||
/js echo ( self )
|
/js echo ( self, self.name )
|
||||||
|
|
||||||
... displays the following...
|
... displays something like the following...
|
||||||
|
|
||||||
CraftPlayer{name=walterh}
|
walterh
|
||||||
|
|
||||||
... for me but the message displayed will be different for every player.
|
... for me but the message displayed will be different for every player.
|
||||||
|
|
||||||
|
@ -181,7 +180,7 @@ looking at the building functions let's look at the `echo()` function.
|
||||||
`echo()` - as its name implies - will echo back at you whatever you
|
`echo()` - as its name implies - will echo back at you whatever you
|
||||||
tell it. For example, type ...
|
tell it. For example, type ...
|
||||||
|
|
||||||
/js echo('Hello')
|
/js echo( self, 'Hello')
|
||||||
|
|
||||||
... and the game will display...
|
... and the game will display...
|
||||||
|
|
||||||
|
@ -189,7 +188,7 @@ tell it. For example, type ...
|
||||||
|
|
||||||
... type ...
|
... type ...
|
||||||
|
|
||||||
/js echo( 5 + 7 )
|
/js echo( self, 5 + 7 )
|
||||||
|
|
||||||
... and the game will display...
|
... and the game will display...
|
||||||
|
|
||||||
|
@ -199,7 +198,7 @@ tell it. For example, type ...
|
||||||
don't recommend it. Homework and Minecraft don't mix! The `echo()`
|
don't recommend it. Homework and Minecraft don't mix! The `echo()`
|
||||||
function will display anything you tell it to - Text, Numbers and other types...
|
function will display anything you tell it to - Text, Numbers and other types...
|
||||||
|
|
||||||
/js echo( new Date() )
|
/js echo( self, new Date() )
|
||||||
|
|
||||||
... prints today's date. If the statement above looks confusing - don't
|
... prints today's date. If the statement above looks confusing - don't
|
||||||
worry - `new Date()` creates a new date object - I'll talk about objects
|
worry - `new Date()` creates a new date object - I'll talk about objects
|
||||||
|
@ -466,12 +465,12 @@ Once you've installed Notepad++, Launch it, create a new file and type the follo
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
exports.greet = function( player ) {
|
exports.greet = function( player ) {
|
||||||
player.sendMessage('Hi ' + player.name);
|
echo( player, 'Hi ' + player.name);
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
... then save the file in a new directory
|
... then save the file in a new directory
|
||||||
`craftbukkit/plugins/scriptcraft/plugins/{your_name}` (replace
|
`scriptcraft/plugins/{your_name}` (replace
|
||||||
{your_name} with your own name) and call the file `greet.js` (be sure
|
{your_name} with your own name) and call the file `greet.js` (be sure
|
||||||
to change the file-type option to '*.* All Files' when saving or
|
to change the file-type option to '*.* All Files' when saving or
|
||||||
NotePad++ will add a '.txt' extension to the filename. Now switch back
|
NotePad++ will add a '.txt' extension to the filename. Now switch back
|
||||||
|
@ -492,7 +491,7 @@ loaded. Try it out by typing this command...
|
||||||
minecraft username. Congratulations - You've just written your very
|
minecraft username. Congratulations - You've just written your very
|
||||||
first Minecraft Mod! With ScriptCraft installed, writing Minecraft
|
first Minecraft Mod! With ScriptCraft installed, writing Minecraft
|
||||||
Mods is as simple as writing a new javascript function and saving it
|
Mods is as simple as writing a new javascript function and saving it
|
||||||
in a file in the craftbukkit/plugins/scriptcraft/plugins
|
in a file in the scriptcraft/plugins
|
||||||
directory. This function will now be avaible every time you launch
|
directory. This function will now be avaible every time you launch
|
||||||
minecraft. This is a deliberately trivial minecraft mod but the
|
minecraft. This is a deliberately trivial minecraft mod but the
|
||||||
principles are the same when creating more complex mods.
|
principles are the same when creating more complex mods.
|
||||||
|
@ -507,17 +506,17 @@ one or more functions, objects or variables. For example...
|
||||||
#### thrower.js
|
#### thrower.js
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
exports.egg = function(player){
|
exports.boo = function(player){
|
||||||
player.throwEgg();
|
echo( player, 'Boo!');
|
||||||
}
|
}
|
||||||
exports.snowball = function(player){
|
exports.yo = function(player){
|
||||||
player.throwSnowball();
|
echo( player, 'Yo!');
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
... is a plugin which provides 2 javascript functions called `egg()`
|
... is a plugin which provides 2 javascript functions called `boo()`
|
||||||
and `snowball()` which can be invoked from the in-game prompt like
|
and `yo()` which can be invoked from the in-game prompt like
|
||||||
this `/js egg(self)` or `/js snowball(self)`.
|
this `/js boo(self)` or `/js yo(self)`.
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
If you want to change the `greet()` function so that it displays a
|
If you want to change the `greet()` function so that it displays a
|
||||||
|
@ -532,7 +531,7 @@ Change the `greet()` function so that it looks like this...
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
exports.greet = function ( greeting , player) {
|
exports.greet = function ( greeting , player) {
|
||||||
player.sendMessage( greeting + player.name );
|
echo( player, greeting + player.name );
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -599,6 +598,8 @@ things...
|
||||||
compare the ages of your friends or siblings to your own age.
|
compare the ages of your friends or siblings to your own age.
|
||||||
|
|
||||||
## More fun with `true` or `false`
|
## More fun with `true` or `false`
|
||||||
|
TODO: This needs to be changed for CanaryMod
|
||||||
|
|
||||||
You can find out if you can Fly in minecraft by typing the following statement...
|
You can find out if you can Fly in minecraft by typing the following statement...
|
||||||
|
|
||||||
/js self.allowFlight
|
/js self.allowFlight
|
||||||
|
@ -633,7 +634,7 @@ expected...
|
||||||
... This statement won't work as expected - it will give an Error
|
... This statement won't work as expected - it will give an Error
|
||||||
message. This is because sometimes we can read variables but we can't
|
message. This is because sometimes we can read variables but we can't
|
||||||
change them the same way we read them (this is because of how
|
change them the same way we read them (this is because of how
|
||||||
Javascript, Java and the CraftBukkit API work together). To turn on or
|
Javascript, Java and the CanaryMod API work together). To turn on or
|
||||||
off the spawning of monsters, type the following...
|
off the spawning of monsters, type the following...
|
||||||
|
|
||||||
/js self.location.world.setSpawnFlags(false, true)
|
/js self.location.world.setSpawnFlags(false, true)
|
||||||
|
@ -644,8 +645,8 @@ whether or not Animals can spawn. (SIDENOTE: You may be wondering how
|
||||||
to change other aspects of the Minecraft game - pretty much all
|
to change other aspects of the Minecraft game - pretty much all
|
||||||
aspects of the game can be changed. Changes are made using what are
|
aspects of the game can be changed. Changes are made using what are
|
||||||
called `API` calls - these are calls to functions and methods in
|
called `API` calls - these are calls to functions and methods in
|
||||||
Minecraft - you can read more about these on the [CraftBukkit API
|
Minecraft - you can read more about these on the [CanaryMod API
|
||||||
Reference][cbapi].)
|
Reference][cmapi].)
|
||||||
|
|
||||||
## ...and Again, and Again, and Again,...
|
## ...and Again, and Again, and Again,...
|
||||||
|
|
||||||
|
@ -686,26 +687,24 @@ connnected to a server, the worlds of a server and so on.
|
||||||
|
|
||||||
At the in-game command prompt type the following then hit Enter...
|
At the in-game command prompt type the following then hit Enter...
|
||||||
|
|
||||||
/js for (var i = 0;i < server.onlinePlayers.length; i++){ server.onlinePlayers[i].sendMessage('Hi!'); }
|
/js var utils = require('utils');
|
||||||
|
/js var players = utils.players();
|
||||||
|
/js for (var i = 0;i < players.length; i++){ echo(players[i], 'Hi!'); }
|
||||||
|
|
||||||
... Lets look at these statements in more detail. We had to enter the
|
... Lets look at these statements in more detail. We had to enter the
|
||||||
statements on a single line at the in-game command prompt but the
|
statements on a single line at the in-game command prompt but the
|
||||||
statements could be written like this...
|
statements could be written like this...
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var players = server.onlinePlayers;
|
var utils = require('utils');
|
||||||
var player;
|
var players = utils.players();
|
||||||
var i;
|
for (var i = 0;i < players.length; i++) {
|
||||||
for ( i = 0; i < players.length; i++ ) {
|
echo(players[i], 'Hi!');
|
||||||
player = players[i];
|
|
||||||
player.sendMessage( 'Hi!' );
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
... On the first line, a new variable `players` is created from the
|
... On the 2nd line, a new variable `players` is created and assigned a value by calling utils.players().
|
||||||
server object's onlinePlayers property. `players` is more concise and
|
On the next line, the for loop is declared, a counter variable `i` is set
|
||||||
easier to type than the long-winded `server.onlinePlayers`. On the
|
|
||||||
fourth line, the for loop is declared, a counter variable `i` is set
|
|
||||||
to 0 (zero - arrays in javascript start at 0 not 1) and each time
|
to 0 (zero - arrays in javascript start at 0 not 1) and each time
|
||||||
around the loop is tested to see if it's less than the number of
|
around the loop is tested to see if it's less than the number of
|
||||||
players online. At the end of each run around the loop the `i`
|
players online. At the end of each run around the loop the `i`
|
||||||
|
@ -730,18 +729,19 @@ TextWrangler or your editor of choice) and add the following code at
|
||||||
the bottom of the file...
|
the bottom of the file...
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
|
var utils = require('utils');
|
||||||
exports.hiAll = function () {
|
exports.hiAll = function () {
|
||||||
var players = server.onlinePlayers,
|
var players = utils.players();
|
||||||
player,
|
player,
|
||||||
i;
|
i;
|
||||||
for ( i = 0; i < players.length; i++) {
|
for ( i = 0; i < players.length; i++) {
|
||||||
player = players[i];
|
player = players[i];
|
||||||
player.sendMessage( 'Hi!' );
|
echo( player, 'Hi!' );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
... save the file, at the in-game command prompt type `reload` and
|
... save the file, at the in-game command prompt type `js refresh()` and
|
||||||
then type `/js hiAll()`. This will send the message `Hi!` to all of
|
then type `/js hiAll()`. This will send the message `Hi!` to all of
|
||||||
the players connected to your server. You've done this using a `for`
|
the players connected to your server. You've done this using a `for`
|
||||||
loop and arrays. Arrays and `for` loops are used heavily in all types
|
loop and arrays. Arrays and `for` loops are used heavily in all types
|
||||||
|
@ -849,7 +849,7 @@ utils.foreach( server.onlinePlayers, function( player ) {
|
||||||
|
|
||||||
### Exercise
|
### Exercise
|
||||||
Try changing the above function so that different sounds are played
|
Try changing the above function so that different sounds are played
|
||||||
instead of a Cat's Meow. You'll need to lookup the [CraftBukkit API's
|
instead of a Cat's Meow. You'll need to lookup the [CanaryMod API's
|
||||||
Sound class][soundapi] to see all of the possible sounds that can be
|
Sound class][soundapi] to see all of the possible sounds that can be
|
||||||
played.
|
played.
|
||||||
|
|
||||||
|
@ -1230,23 +1230,24 @@ covered here. If you want to dive deeper into programming and modding
|
||||||
minecraft, I recommend reading the accompanying [ScriptCraft API
|
minecraft, I recommend reading the accompanying [ScriptCraft API
|
||||||
reference][api] which covers all of the ScriptCraft functions, objects
|
reference][api] which covers all of the ScriptCraft functions, objects
|
||||||
and methods. I also recommend reading the source code to some of the
|
and methods. I also recommend reading the source code to some of the
|
||||||
existing scriptcraft add-ons, the *chat* module (
|
existing scriptcraft plugins, followed by
|
||||||
`scriptcraft/plugins/chat/color.js` ) is a good place to start, followed by
|
[Anatomy of a ScriptCraft Plug-in][ap]. The online [CanaryMod API
|
||||||
[Anatomy of a ScriptCraft Plug-in][ap]. The online [Craftbukkit API
|
Reference][cmapi] provides lots of valuable information about the
|
||||||
Reference][cbapi] provides lots of valuable information about the
|
|
||||||
different objects and methods available for use by ScriptCraft.
|
different objects and methods available for use by ScriptCraft.
|
||||||
|
|
||||||
|
|
||||||
[buk]: http://wiki.bukkit.org/Setting_up_a_server
|
[cmadmin]: http://canarymod.net/books/canarymod-admin-guide
|
||||||
[dlbuk2]: http://dl.bukkit.org/downloads/craftbukkit/
|
[dlbuk2]: http://dl.bukkit.org/downloads/craftbukkit/
|
||||||
|
[dlcm]: http://canarymod.net/releases
|
||||||
[bii]: http://wiki.bukkit.org/Setting_up_a_server
|
[bii]: http://wiki.bukkit.org/Setting_up_a_server
|
||||||
[sc-plugin]: http://scriptcraftjs.org/download/
|
[sc-plugin]: http://scriptcraftjs.org/download/
|
||||||
[ce]: http://www.codecademy.com/
|
[ce]: http://www.codecademy.com/
|
||||||
[mcdv]: http://www.minecraftwiki.net/wiki/Data_values
|
[mcdv]: http://www.minecraftwiki.net/wiki/Data_values
|
||||||
[np]: http://notepad-plus-plus.org/
|
[np]: http://notepad-plus-plus.org/
|
||||||
[cbapi]: http://jd.bukkit.org/beta/apidocs/
|
[cbapi]: http://jd.bukkit.org/beta/apidocs/
|
||||||
|
[cmapi]: https://ci.visualillusionsent.net/job/CanaryLib/javadoc/
|
||||||
[boole]: http://en.wikipedia.org/wiki/George_Boole
|
[boole]: http://en.wikipedia.org/wiki/George_Boole
|
||||||
[soundapi]: http://jd.bukkit.org/beta/apidocs/org/bukkit/Sound.html
|
[soundapi]: https://ci.visualillusionsent.net/job/CanaryLib/javadoc/net/canarymod/api/world/effects/SoundEffect.Type.html
|
||||||
[ap]: Anatomy-of-a-Plugin.md
|
[ap]: Anatomy-of-a-Plugin.md
|
||||||
[api]: API-Reference.md
|
[api]: API-Reference.md
|
||||||
[twl]: http://www.barebones.com/products/textwrangler/
|
[twl]: http://www.barebones.com/products/textwrangler/
|
||||||
|
|
Reference in a new issue