BLWarps is a Sponge plugin for easily setting locations for players to warp to.
##Commands
Note: In the following commands, square brackets ([]
) indicate optional arguments, and angle brackets (<>
) indicate required arguments.
/warp set <warp name> [x] [y] [z]
- Create a new warp with name
warp name
and optional coordinates (x
,y
,z
). /warp <warp name>
- Warp to the warp with name
warp name
. /warp delete <warp name>
- Delete the warp with name
warp name
. /warp list [page number]
- List all of the currently saved warps. Optionally, specify a
page number
. /warp group add <warp name> <group name>
- Add the warp with name
warp name
to the groupgroup name
. /warp group remove <warp name> <group name>
- Remove the warp with name
warp name
from the groupgroup name
warp group removeall <group name>
- Remove all warps from the group with name
group name
##Storage Regardless of the storage solution, each warp has 5 properties:
- name - the name of the warp
- world - the name of the world that contains the warp
- x - the x coordinate of the warp (stored as a double)
- y - the y coordinate of the warp (stored as a double)
- z - the z coordinate of the warp (stored as a double)
And optional properties:
- groups - the groups of which the warp belongs to
Note: If an attempt to save warps with any storage method fails, the plugin will revert to a flat file to store the warps.
###Flat File Storage
For flat file storage, warps are stored as JSON (serialized using Jackson) in the config/BLWarps/warps.json
file. A sample warps.json
file would be similar to the following:
[ {
"name" : "warp1",
"world" : "world",
"x" : 40.3,
"y" : 41.0,
"z" : 72.07,
"groups" : [ "group", "group2" ]
}, {
"name" : "warp2",
"world" : "DIM-1",
"x" : 7.63,
"y" : 64.0,
"z" : 11.79
} ]
###SQL Storage
Any JDBC-compatible database is a valid option for storing warps. The JDBC connection URL must be specified in the sql.connection-url
. By default, the Warps will be stored in the warps
table. Currently, the name of the table cannot be changed. BLWarps uses JDBI for executing queries and mapping results to a Warp object.
###REST API Storage
For REST-based storage, HTTP requests are sent using the Jersey Client to the URI specified by the rest-uri
field in the configuration. Currently, only basic authentication is available, which uses the rest.username
and rest.password
credentials (by default, they are root
and pass
, respectively). The plugin will send the following requests, and will expect the application/json
media type as part of the response:
GET
when loading warps - must receive a List of WarpsPOST
when saving a new warpDELETE
when deleting a warp. The warp's name will be a path parameter.- Ex:
http://localhost:8080/warps/deletethiswarp
PUT
when updating a warp (adding/removing groups)
##Building BLWarps
BLWarps uses Maven as a dependency manager and as a build tool. To build the plugin from source, make sure Maven is installed, and run mvn clean install
. The newly built plugin will be in target/bl-warps-{version}.jar
. For developing, run the Maven build once, then add the target/generated-sources/java-templates
directory as a source folder (see graphic below for how to do this in Eclipse).