68 lines
3.4 KiB
Markdown
68 lines
3.4 KiB
Markdown
# Wyvern
|
|
A centralized storage management system for Minecraft. Basically Dragon, rewritten for sanity and improved networking/error handling.
|
|
Requires Plethora Peripherals by SquidDev (as that's what allows item transfer by wired network).
|
|
|
|
## Goals
|
|
1. Support big, multi-user setups.
|
|
2. Work sanely and reliably even in bizarre edge cases.
|
|
3. Be pretty fast.
|
|
4. Function conveniently for end users.
|
|
5. Be relatively easy to connect other systems to.
|
|
6. Allow complex automation.
|
|
|
|
## Setup
|
|
`installer.lua` is recommended for running everything.
|
|
Get it with `wget https://osmarks.tk/git/osmarks/wyvern/raw/branch/master/installer.lua`.
|
|
|
|
Run `installer install` to download everything. It will open an editor for the config file, allowing setup of a node.
|
|
When prompted for a program to run on startup, say `client` to configure it as a client or `backend-chests` to run the chest backend.
|
|
|
|
If you just want to update Wyvern, run `installer update`.
|
|
|
|
### Networking & Hardware
|
|
|
|
```
|
|
Chests ───────┐
|
|
│ │
|
|
Server ─── Buffer
|
|
│ │
|
|
└────┬─────┘
|
|
│
|
|
├────────── Processing (not implemented yet)
|
|
│
|
|
│
|
|
┌────┴──┬───────┐
|
|
Client Client Client
|
|
```
|
|
* **Chests** is a set of chests and/or shulker boxes, connected via networking cables and modems, to the **Server** and **Buffer**. Cookie jars are not compatible.
|
|
* **Buffer** is a dropper with a wired connection on the chests' side and clients' side.
|
|
* **Server** is a computer running `backend-chests`. Other backends may eventually become available. It must be connected to the chests, clients, and both sides of the buffers.
|
|
* **Client** is a crafty turtle running `client`. It must be connected to the server and external side of the buffers.
|
|
* **Processing** will be used for autocrafting systems. It is not yet implemented.
|
|
|
|
### Configuration
|
|
Configuration is stored in `wyvern_config.tbl` in lua table syntax as used by `textutils.(un)serialise`.
|
|
|
|
#### Client
|
|
`network_name` must contain the network name (thing displayed when modem beside it is rightclicked) of the client turtle.
|
|
|
|
#### Server
|
|
`buffer_internal` must contain the network name of the buffer on the chest side.
|
|
`buffer_external` must contain the network name of the buffer on the client side.
|
|
`modem_internal` can contain the network name of the server on the chest side. This is only required if your network contains chests on the client side which are connected.
|
|
|
|
## Warnings
|
|
* Inserting/extracting items manually into/out of chests will result in the index being desynchronised with the actual items. To correct the index, run `reindex` in the CLI client.
|
|
* If you try and extract items when the storage server is still starting up, it may fail, as not all chests will have been indexed yet.
|
|
* There are currently small problems with extracting certain quantities of items from storage. Yes, it should probably be by stack.
|
|
* Yes, I am kind of using git wrong, but editing networked CC programs sanely is *very hard*. Tell me if you find a better solution.
|
|
|
|
## Usage
|
|
Once configured, the chest backend can just be plugged in and ignored, unless it explodes.
|
|
For help using the client, run `help` or `h`.
|
|
|
|
## Coming Soon(ish) (maybe)
|
|
* Audit log on server - see when items were moved.
|
|
* Overlay glasses/introspection module client.
|
|
* Autocrafting (just a port from Dragon's).
|
|
* Autosmelting (basically autocrafting). |