When transporting on a line a player must be holding a select amount of items or lower to transport. This weight value should have a global default specified in the config file but each line may overwrite this value.
If a line does not overwrite this value and the config value changes, then the weight value should change too
create a config value for weight enabled of a boolean (default true)
create a config value for weight of a integer (default value of 500)
create a nullable integer of weight in the Line (if null then read config value when getting the value)
weight is calculated based on all items in the players inventory plus the items stack size
For bidirectional lines, going backwards in the order of the line's nodes causes players to first travel from their current stop to the line's last stop, and then to their intended destination.
The stop at the end of the line should not be occurring and the player should just be traveling directly from their current stop to their desired stop, which is previous in the line.
/travel <startingnode> <endingnode>
Travels a player on the line, starting node argument should be suggest the nearby nodes, and then once a starting node is chosen, the available ending nodes from that starting node should be suggested. @mosemister Can we make the second argument of a command suggest based on the first argument? If not, we will just suggest all available nodes from all nearby nodes.
/publictransit info <line> [index]
Lists all relevant information on the stop/line. When the line is provided, the second argument (marked as index) will be available both as names for stops and indexes for all nodes.
/publictransit cost <start node> <end node>
Returns the price of traveling between the said nodes.
##Admin Commands
Line
/publictransit createline <linename>
Creates a new line. The values like cost, costType, direction etc shall be loaded from the config as the default value.
/publictransit setlineoption <option> <value>
Changes options of a line like cost, name, costType, direction etc...
/publictransit deleteline <linename> [linename again for confirmation]
Delete a line. We will use the classic cheap confirmation method of a second arg.
Node
/publictransit createnode stop <linename> [nodePrice]
Creates a new node. Location is set to the location of the player.
/publictransit createnode transitional <linename> [nodePrice]
Creates a new node. Location is set to the location of the player.
/publictransit setnodeoption <option> <value>
Changes options of a node like location, name, nodetype, time...
/publictransit deletenode <linename><index> [nodename again for confirmation]
Delete a node. We will use the classic cheap confirmation method of a second arg.
/publictransit movenode <oldlinename> <oldindex> <newlinename> <newindex>
Moves a node. The line could be the same. When removed, all indexes larger than node should be lowered by 1. When added, opposite. I think this is how indexes work in java anyway.
/publictransit clonenode <oldlinename> <oldindex> <newlinename> <newindex>
Clones a node. Same as above, except the old one stays.