Console [Release 4.4]
=====================
For Minecraft 1.4.5

Written by q3hardcore

Code is used from:
* Single Player Commands by simo_415
* Minecraft Forge (various authors)

Installation
------------
Open minecraft.jar using 7-zip or similar.
Copy all files except readme.txt into minecraft.jar
Delete the META-INF folder.

minecraft.jar is found in .minecraft/bin
To get there, open Minecraft and click "Texture Packs".
Then click on "Open texture pack folder"
A new window should appear, displaying the texturepacks folder.
Go up one level (alt+up arrow on Windows) - you should be in .minecraft now.
Switch back to Minecraft and close it.
From the .minecraft folder, enter the bin folder.

Note
----
All versions from 3.0 onwards will include WorldEdit support, unless otherwise noted.

Changelog
---------
4.4
* added /waypoint command
* plugins work properly for multiple players now
* entities will be spawned in correct dimension
* typing /c without command displays Minecraft version
* /gamemode, /xp and /gamerule work again
* WorldEdit works properly in LAN games
* /paint 0 and /path 0 now place air,
rather than a glitchy gray block
* WorldEditCUI support re-added (again!)

4.3
* fixed issues with Forge
* /restorepos command now checks dimension

4.2
* bug fixes
* changed structure command

4.1.5 (unreleased)
* WorldEdit commands can be used normally
* Commands are now loaded in a separate thread
* includes latest stable build of WorldEdit

4.1
* support for Forge re-added
* more bug fixes
* some commands can now be used normally
* latest WorldEdit snapshot included

4.0 (unreleased)
* bug fixes
* cleaned up code
* removed Forge support

3.9 (unreleased)
* fixed /restorepos command
* new version of WorldEdit included
* updated help

3.8
* WorldEditCUI support re-added
* /reach command added (doesn't affect wand)
* bug fixes

3.7
* compatible with SinglePlayerCommands
* similar folder structure to SinglePlayerCommands

3.6
* started using RetroGuard
* plugins are now located in 'plugins' folder

3.5
* more bug fixes
* removed unused code

3.4
* more bug fixes
* compatible with Minecraft Forge
* two new commands: /enderchest and /repair

3.3
* bug fixes

3.2
* added /enchant command

3.1
* removed testing code

3.0
* key bindings no longer randomly stop working
* WorldEdit brushes work slightly better
* /spawner command fixed
* added /light command - lights up world
* other bug fixes

2.9 (WorldEdit Edition)
* plugins work properly again
* '/structure temple' no longer generates a witch hut

2.8 (WorldEdit Edition)
* WorldEdit works better over LAN
* fixed path seemingly ignoring block specified
* other bug fixes

2.7 (WorldEdit Edition)
* further bug fixes
* key binding support improved
* WorldEdit /butcher command now works

2.6 (WorldEdit Edition)
* more bug fixes
* better LAN support

2.5 (WorldEdit Edition)
* /generate command gives errors properly
* /skullowner now gives message when successful
* key binding re-written with code with code from SPC
* fixed crash when opening Chat GUI with tilde
* fixed WorldEdit giving error when no command specified

2.4 (WorldEdit Edition)
* fixed crashes with /killplayer command
* added new command - /togglecheats
* added new command - /skullowner
* selecting regions with WorldEdit fixed
* added more control over structure generation

2.3 (WorldEdit Edition)
* /difficulty command added
* better WorldEdit integration
* /storeinventory non-functional
* structures now generate properly in flat worlds
* can edit CommandBlock without having cheats enabled
* added default binding: ~ (tilde) opens chat GUI
* more bug fixes

2.2 (WorldEdit Edition)
* /path complety re-written to work over LAN
* bug fixes
* /xp command is finished

2.1 (WorldEdit Edition)
* obfuscated edition
* updated for 12w37a
* experimental /xp command added

2.0 (WorldEdit Edition)
* added key binding support from SinglePlayerCommands
* added /storeinventory command
* /remove command broken

1.9 (WorldEdit Edition)
* MCP release
* now supports WorldEditCUI (ModLoader only)
* code slightly cleaner

1.8 (WorldEdit Edition)
* obfuscated release
* started fixing WorldEdit support

1.7 (WorldEdit Edition)
* MCP release
* compatible with Forge

1.6 (WorldEdit Edition) (unreleased)
* obfuscated release
* even better plugin error handling

1.5 (WorldEdit Edition)
* MCP Release
* fixed plugin error handling
* added features from Console 1.4

1.4 (WorldEdit Edition)
* more bugfixes
* ability to kill other players
(/killplayer command)
* improved WorldEdit support

1.3 (unreleased)
* obfuscated version
* gamemode command re-added
* fixed allowfly command
* various other bugfixes
* WorldEdit support removed

1.2 (WorldEdit Edition)
* fixed people 'cheating' when playing LAN games
* fixed certain commands only working in MCP
* re-added WorldEdit support (less crashy now!)

1.1
* no longer requires cheats to be enabled
* cleaned up source code a little
* fixed Waypoint plugin further
* only modifies 1 Minecraft class

1.0
* misc bug fixes
* fixed Waypoint plugin

rc 2
* /generate command re-added
* fixed crashes from Minecraft becoming out-of-sync

rc 1
* broken commands now fixed
* can't use jeb's /test command
* /drops now works
* switched to using MCP

beta 10 (alpha)
* various commands broken - refer to notes.txt
* anti-structure generation plugin removed,
currently being re-written
* WorldEdit support dropped -
will be re-added sometime later
* can use jeb's /test command

beta 9
* dimension command fixed
* added ability to specifically generate temple

beta 8
* paint command fixed
* path command partially fixed
* platform command fixed
* spawner command improved
* WorldEdit wand works better

beta 7
* can use ~ or chat key to open Console

beta 6
* WorldEdit plugins released separately
* crash when using path remains unfixed

beta 5
* WorldEdit support temporarily removed
* started making Console more 'modular'

beta 4
* paint and path now work

beta 3
* added WorldEdit support

Bugs
----
- creating a stronghold may crash the game (to do with chests)
- WorldEdit //undo command doesn't properly restore doors, beds
- Paint hasn't been re-written to support multiple players

Notes
-----
Console works in LAN games - currently clients do *not* need Console installed.

You must prefix all commands with /c, for example "/c /give diamond 3"

You can now generate a biome-specific feature, using "/c /structure biomefeature"
This will generate a different structure depending on which biome you are in.
Swamp biome = witch hut, Jungle biome = jungle temple, Other biomes = Pyramid

Some commands have been left out, due to Minecraft having similar commands.

I'm working on developing a custom Console GUI, based on simo_415's Console.
Depending on various factors, this may not be included.

Not all commands work currently, this will gradually be fixed.

Available commands
------------------
~COMMAND~		~DESCRIPTION~
oldhelp			- displays help from old version of Console
hunger [value]		- sets hunger amount
feed [value]		- feeds player specified amount of food
restoreitems		- REMOVED (use the keepInventory gamerule instead)
drops			- toggles item drops
time get		- display current time
time set day		- day time
time set night		- night time
time set hour [value]	- set hour
time set day [value]	- set day
time set minute [value]	- set minute
seed			- display current seed
kill			- kills player
dimension		- teleport to specified dimension
platform		- places block of glass directly underneath player
god			- toggles invincibility
give item amount damage	- gives specified item, amount and damage are optional
clear			- clears messages
biome			- displays current biome
pos			- displays current position
spawnportal nether	- spawns nether portal
spawnportal end		- spawns end portal (non-stronghold)
help			- lists commands
help [commandname]	- displays help for specified command
remove			- removes entity you're pointing at (CURRENTLY UNFINISHED)
removeblock		- removes block you're pointing at
spawn [entity] [amount]	- spawns specified entity - amount optional
spawn list		- lists all entities, spawnable or not
spawner [entity]	- changes entity spawned by mob spawner you're pointing at
listcolors		- lists available command colors
color [number]		- sets command color
color error [number]	- sets error color
clearwater		- REMOVED (use /light command instead)
allowfly		- toggles flying (works in survival)
find [item]		- find id(s) for item with specified (partial) name (case sensitive)
itemname [id]		- finds item name for specified item id
storeinventory		- upon death, store inventory (retrievable via Ender Chest)
togglecheats		- toggles Minecraft's inbuilt cheats on/off
skullowner		- lets you set the owner of a head
serverinfo		- displays integrated server version
reach			- sets reach distance, for use with /generate command
showchat		- brings up the chat GUI (this bound to ~ by default)
phelp			- displays a list of plugin commands
phelp [commandname]	- displays help for specific plugin command
plugin version [plugin]	- displays version of specified plugin
plugin list		- lists currently enable plugins
plugin dlist		- lists currently disabled plugins
plugin disable [plugin]	- disable specified plugin
plugin enable [plugin]	- enable specified plugin

New Minecraft commands
======================
Console now adds new commands to Minecraft (that aren't used through /c)
This current includes:
* All WorldEdit Commands
* /light
* /waypoint

Plugin commands
===============

Description
-----------
The following plugins are included:

 ported plugins: (from SinglePlayerCommands)
 - Bind
 - Enchant
 - Inventory
 - Light
 - Paint
 - Path
 - Weather

 native plugins:
 - Generate
 - KillPlayer
 - StructureGeneration
 - Waypoint

 worldedit plugins:
 - WorldEdit
 - WorldEditGUI (depending on version)

Note
----
All commands must be prefixed with /c
For example, type '/c /weather rain' to make it rain.
WorldEdit commands require an additional forward slash.
Type '/c ///help' to get a list of WorldEdit commands.

Bind Command
------------
Use '/c /bind [key] [command]' to bind a key to the specified command.
Note that you do *NOT* prefix the command name with /c.
For example, '/c /bind g /god' will make g toggle god mode.

Inventory Commands
------------------
enderchest		- bring up enderchest GUI without having enderchest
repair <all>		- repair current item (or all items in inventory)

Attempting to repair non-damaged items, for example wool, can lead to unexpected results.
e.g. wool uses damage values to determine which colour it is, so it will be reset to white.

Waypoint Commands
-----------------
setspawn		- sets spawn position to current coordinates
setspawn [x] [y] [z]	- sets spawn position to specified co-ordinates
getspawn		- displays current spawn position
home			- teleport to home(bed)
return			- return to last position before teleporting
restorepos		- teleport to position player died (fixed in 3.9)
tp [x] [y] [z]		- teleports to specified coordinates, eg. 'tp 150 70 80'
spawnpoint		- teleports to spawn point
gethome			- displays current home (bed) position

WARNING: the /restorepos command does *NOT* take dimension into account.

Weather Commands
----------------
weather rain		- changes weather to rain
weather thunder		- changes weather to storm (rain and thunder/lightning)
weather lightning	- creates a lightning bolt at block you're pointing at
weather sun		- changes weather to sunny

Structure Commands
------------------
(standard structures)
structure village	- create village (desert village if in desert)
structure netherbridge	- create nether bridge (regardless of dimension)
structure mineshaft	- create (abandoned) mineshaft
structure stronghold	- create stronghold

(biome-specific structures)
structure biomefeature	- create biome-specific structure
structure hut		- create witch hut
structure pyramid	- create desert pyramid
structure temple	- create jungle temple

For example, to generate a stronghold, you would type '/c /structure stronghold'

You can prefix a structure command with either 'forceflat' or 'forcenormal'.
If you find pyramids spawn in the air, use '/c /structure pyramid forceflat'.


Generate Commands
-----------------
Use '/c /generate [anti-structure]' to generate an anti-structure.
For example, '/generate swamptree' will generate a swamp tree.
The anti-structure is generated at the block you're pointing at.

Type '/c /generate mode 0' to generate at your current position.
Use '/c /generate mode 1' if you want the default behaviour.

If you want to generate an anti-structure at specific co-ordinates,
use '/c /generate pumpkin 0 64 0' for example.

You can adjust the offsets used when generating anti-structures.
Use '/c /generate xoffset [number]' to adjust the xoffset.
Use '/c /generate yoffset [number]' to adjust the yoffset.
Use '/c /generate zoffset [number]' to adjust the zoffset.
You will need to adjust the yoffset if you change the generation mode to 0.

To get the default offsets back, type:
/c /generate xoffset 0
/c /generate yoffset 1
/c /generate zoffset 0

Some anti-structures allow custom parameters.
For example, '/c /generate jungletree 128' will generate a jungle tree 128 blocks high.
To specify a custom block for mineable, you might type '/generate mineable oreDiamond'.

Different types of trees:
- foresttree is a birch tree. (whitebark)
- tree1 is a regular tree.
- tree2 is a jungle tree with vines.
- tree3 is a jungle tree without vines.
- taigatree1 is a tall sequoia tree. (redwood)
- taigatree2 is a regular sequoia tree. (redwood)
- jungletree is a huge jungle tree.
- swamptree is a tree with vines.
- bigtree is a big tree.

Dungeons are extremely difficult (impossible?) to generate.
This was fixed in a previous version of Single Player Console,
however the fix was removed, as it was poorly coded.

Glowstone only generates on netherrack.

Anti-structure list
-------------------

chest		- generates bonus chest
waterlily	- generates water lily
pumpkin		- generates pumpkins
mineable	- generates mineable blocks (allows custom block)
flower		- generates yellow flowers
rose		- generates roses (red)
mushroombrown	- generates brown mushrooms
mushroomred	- generates red mushrooms
tallgrass	- generates tall grass
ferns		- generates ferns
lavalake	- generates lake of lava
waterlake	- generates lake of water
vines		- generates vines
netherlava	- generates lava when in The Nether
netherfire	- generatres fire when in The Nether
clay		- generates clay
water		- generates water
lava		- generates lava
glowstone1	- generates glowstone
glowstone2	- generates glowstone
reeds		- generates sugar cane on sand
taigatree1	- generates 1st type of taiga tree
taigatree2	- generates 2nd type of taiga tree
deadbush	- generates dead bushes
spikes		- generates end spikes on end stone
cactus		- generates cactus on sand
dungeon		- generates dungeon (doesn't work)
sand		- generates sand around water
gravel		- generates gravel around water
swamptree	- generates a swamp tree (formerly known as vinetree)
well		- generates a well
shrub		- generates a shrub
bigmushroom	- generates a giant mushroom (random type)
bigmushroom1	- generates a giant mushroom (1st type)
bigmushroom2	- generates a giant mushroom (2nd type)
bigtree		- generates a large tree
jungletree	- generates a jungle tree (allows custom height)
foresttree	- generates a forest tree
tree1		- generates 1st type of tree
tree2		- generates 2nd type of tree (allows custom height)
tree3		- generates 3rd type of tree (allows custom height)