StructureAPI
The StructureAPI
~ Loading and placing schematics has NEVER been SO EASY ~
The StructureAPI is that provides a convenient way to load and place schematics. Players can pick these schematics (also referred to as plans) from a menu and place them in the world. Scroll down to 'Quick Start' or watch the 'Quick Demo' to know more about how to setup your server with plans. StructureAPI aims to provide servers with a wide range of tools to place structures.
For older versions...
see structureapi 2.1.0 for the old page
Upgrading from 2.0.0 or 2.1.0? READ THIS!!
If you haven't created a backup yet CREATE BACKUPS OF YOUR SETTLERCRAFT-CORE DIRECTORY!!!. This update will upgrade the database and THERE IS NOW WAY BACK, NO DOWNGRADE POSSIBLE. Unless ofcourse you made backups ^^
Current Features
- Generate plans from schematics
- Loading plans into a fancy menu
- Select plans from a menu
- Buy plans from a menu (requires Vault)
- Build a structure or continue construction of a existing one
- Demolish a structure
- Rollback structures (since 2.2.0)
- Stop construction or demolition of a structure
- Structures don't overlap each other
- Substructures, structures may be placed inside other structures (configurable to enable/disable)
Quick Demo (2.0.0)
Quick Start
- Download schematics from any website (for example minecraft-schematics.com)
- Place the downloaded schematics within "plugins/SettlerCraft-StructureAPI/generate"
- Start the server or execute the command "stt generate plans" in the server console
- Place the schematics together with the generate XML in "plugins/SettlerCraft-StructureAPI/plans"
- Restart or reload the server
- Plans are now available in the menu, you can open the menu by either using the /stt menu or /stt shop
Note: There is a small requirement for loading the schematics into SettlerCraft. All schematics need to be placed in neutral position which means the schematic needs to be aligned to the east (front pointing to west), unless you don't care about it's orientation. You can do this by simply using the command '/stt rotate [structureid][degrees]' which will rotate a schematic permanently.
Commands (2.2.0)
See github commands for StructureAPI 2.2.x
Permissions
See github permissions for StructureAPI 2.2.x
Installation
See github installation for installing StructureAPI 2.2.x or higher
Required plugins/dependencies
- SettlerCraft-Core - Core functionality of SettlerCraft, contains a distribution of Neo4j database
- SettlerCraft-MenuAPI - Menu library of SettlerCraft
- WorldEdit 6.1
- AsyncWorldEdit - version 2.2.x (Note: you will need both AsyncWorldEdit and AsyncWorldEditInjector)
Optional Hooks
- StructureAPI-WorldGuard - WorldGuard support (requires worldguard 6.1)
- StructureAPI-HolographicDisplays - Hologram support (requires HolographicDisplays 2.1.x)
- StructureAPI-Towny - Support for Towny (since SettlerCraft-2.1.0) and ofcourse requires Towny. Mayors are able to place structures in the wildernis and players won't be able to place structures on or across plots they don't own.
- Vault 1.5.x
Optional Client Plugins (LiteLoader)
Developers
Project is under heavy development. Current implementation is very subject to change, extending this project will most likely break your code. A proper API and documentation is planned after this project has moved to Spigot.
https:github.com/chingo247/StructureAPI
Proper documentation is still in progress... Sorry! Also the API is still very subject to change.
Upcoming Features
- WorldGuard Default flags for structures
- Manual construction - Feed blocks to structures and make them grow
Found a bug ?
Report it here! and I'll try to fix it as soon as possible!
Ideas?
Ideas? Feel free to post below or PM me if u want!
Just submitted new version, it currently await's approval.
@steam323
At the moment I'm working on a DataAPI, which allows you to add extra data to a structure and is declared in XML.
I'm not really sure what you mean by substructuring. So I just post my thought so far, because i've been thinking about something like this for longer than a month probably
There are two kinds of substructuring: - Outside the structure - Inside the structure
Outside the structure basicly means another structure but which acts as expansion to the original and can be defined by another schematic. When substructuring outside of the "Main Structure" the substructure needs to claim it's own region.
Note: the substructure's region can be pre-claimed, so that i may expand in the future. It's also possible to check whether the structure can expand later on. I will leave this configurable as global setting (in the config) or it may be defined per structure (in the XML).
Inside the structure basicly means furniture. This may be hard or very easy. The hard way is perform excessive checking whether you hit the original structure. The easy way is to leave responsiblity to you. This also means that "Inside SubStructures" need to be predefined by you. There is only one rule and that is that furnitures or "Inside SubStructures" may not stick out of the "Main Structure" or any "Outside Substructure" as they don't claim a region.
All above is basicly possible through the DataAPI. Before I get my hands on this I have to come with a solution to rollback actions (probably through LogBlocks or Prism).
One suggestion on a feature. maybe substructure system like a block in a schematic could signal a place to use an expansion to a structure or even furniture but that's even later down the line. Many thanks for the reply and I hope you can look into the substructure idea
@steam323
It appears I forgot to update my WorldGuard dependency to version 6.0... Updating seems to break my code and it doesn't print any error. I'll try to come with a fix tommorow and might look into Spigot later.
Also big thanks for the notice :)
@chingo247
If you don't mind I could screen share you how to do it on skype if you don't mind or annother method while talking on skype. Here is my skype steamin323 EDIT: Had to get home before I could tell you here is the version worldguard-6.0.0-beta-02
@steam323
Is there still a way to retrieve the latest version of Spigot (build #1694), if I try to download it from the jenkins server it shows me the page of the DMCA Response.
Also what version of WorldGuard are you using?
Yeah its still not working with what we are currently using is a updated version of spigot that allows 1.7.9+ I get this error when I try clicking the second time to load a schematic http://pastebin.com/U9SQXquL
will test it out in a bit and tell you.
@paintball89
Thanks for posting! Found the error and fixed it. Don't know if it works with Spigot though, but I know Spigot should be able to run bukkit plugins.
The fact that you saw "/sc" printed was probably because there was an error generated.
There seemed to be an error generated on startup, which only shows up when the plugin was new (it writes config and some other files to the SettlerCraft folder).
Fixed it by providing the resources with the zip...
New upload is now waiting for approval
not working for me all the commands print out "/sc" after i enter them.
using Spigot build #1649
If there are any questions or remarks place them here, use the issue tracker or PM me. Im currently in my holidays so plenty of time for bugfixing ^^
@wowzersamm
I'm trying to release it today, but it will probably be tommorow... however I will not sleep until I have released it.
Currently busy with my internship, so I didn't really get the time to get this done. From 13 oct to 19 I will be having a week off from my Internship and plenty of time to finish this.
But I think I might be able to release a next version Sunday 12 october as there isn't much work left to do.
Dude, how long is this gonna take?
@chingo247
Back and developing again
I will not work on this plugin for the coming 2 weeks as I need to focus on something else right now. I will still check this comment section and my inbox on regular bases.
@chingo247 Ok, we'll discuss there.
@filoghost I can't use a scheduled task. I'm using AsyncWorldEdit, which has AsyncTask's running. I have put a change-listener on each task. When the status of a task changed, I display the new status on the Hologram. Wait i'll put more detailed info in the ticket I submitted.
If you need help, I'm here. Why don't you use a scheduled task? Where is the part of the code that is async and uses HD?