Spoiler
What is it?:
WCON is an API (but not only) which allows you to download and upload data to WCON server.
You have 6 boolean registers (for redstone states) and 5 string registers (up to 5119 characters).
You can change all registers from in-game computer or from online control panel.
Note: HTTP API required.
How to get started?:
Get your software on your computer:
API reference:
About security:
Screenshots (control pannel):
Legal notice:
WCON
Control your computers over the Internet!
What is it?:
WCON is an API (but not only) which allows you to download and upload data to WCON server.
You have 6 boolean registers (for redstone states) and 5 string registers (up to 5119 characters).
You can change all registers from in-game computer or from online control panel.
Note: HTTP API required.
How to get started?:
Get your software on your computer:
- Run "pastebin get jQLjRUnt install"
- Run "install"
- Hook up some redstone or lamps
- Run "launch" in main directory.
- Login into control panel.
- Change redstone states and see what happens!
Spoiler
Version 2:
Version 2:
- Added auto updater
- Changed how stuff is located
- Added getVersion() function
- BETTER INSTALLER! YAAAY
- Better password hashing on server side.
- Initial release
API reference:
Spoiler
sendData(string state, int registry):
Sets given string registry to state.
Returns false at wrong registry, nil at communication error, true at success.
sendRsData(bool state, string side):
Sets given redstone registry to state.
Returns false at wrong side string, nil at communication error, true at success.
getData():
Gets string registers table.
Returns:
nil at server communication error,
"fatal: [ERROR CODE]" at WCON_FATAL_ERROR,
table (5 element, 1 to 5) at success.
getRsData():
Gets redstone registers table.
Returns:
nil at server communication error,
"fatal: [ERROR CODE]" at WCON_FATAL_ERROR,
table (6 element, 1 to 6) at success.
Each element in table corresponds to one side:
1 = top
2 = bottom
3 = right
4 = left
5 = back
6 = front
getSide(int side):
Converts side in int into side in string.
getServer():
Returns server address.
getId():
Returns ID.
getPassword():
Returns password.
getVersion():
Returns Version.
sendData(string state, int registry):
Sets given string registry to state.
Returns false at wrong registry, nil at communication error, true at success.
sendRsData(bool state, string side):
Sets given redstone registry to state.
Returns false at wrong side string, nil at communication error, true at success.
getData():
Gets string registers table.
Returns:
nil at server communication error,
"fatal: [ERROR CODE]" at WCON_FATAL_ERROR,
table (5 element, 1 to 5) at success.
getRsData():
Gets redstone registers table.
Returns:
nil at server communication error,
"fatal: [ERROR CODE]" at WCON_FATAL_ERROR,
table (6 element, 1 to 6) at success.
Each element in table corresponds to one side:
1 = top
2 = bottom
3 = right
4 = left
5 = back
6 = front
getSide(int side):
Converts side in int into side in string.
getServer():
Returns server address.
getId():
Returns ID.
getPassword():
Returns password.
getVersion():
Returns Version.
About security:
Spoiler
Passwords are encrypted with SHA-256, than encrypted with SHA-256 again. It means it's basically impossible to crack password. It also means that no one can see passwords, even me.
They are stored in MySQL Database (with randomly generated password), which allows only localhost connections, not in a plain text file.
Passwords are encrypted with SHA-256, than encrypted with SHA-256 again. It means it's basically impossible to crack password. It also means that no one can see passwords, even me.
They are stored in MySQL Database (with randomly generated password), which allows only localhost connections, not in a plain text file.
Screenshots (control pannel):
Spoiler
Homepage:

Login:

Control panel:

Register:

Registration complete:

Homepage:

Login:

Control panel:

Register:

Registration complete:

Legal notice:
Spoiler
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Copy of this license.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Copy of this license.












