Prism Build Status

By viveleroi

Prism is a rollback/restore grief-prevention plugin for Sponge-based Minecraft servers.

Prism

Prism 3.x has been completely rewritten for Sponge. It's still very early in the development process but we're working hard to exceed even our own standards.

Because of this, our feature set is growing. File an issue or let us know in IRC what's important to you.

Downloads

If using Mongo, download the Prism-(version)-all.jar file. Otherwise, download Prism-(version).jar.

Installation

  1. Place into your mods directory.
  2. Ensure your Prism configuration file has the proper database connection details.

Features

Commands

Parameters

Flags

Permissions

Configuration

Coming soon. Bug vive about this.

Databases

Prism supports a variety of databases. We work hard to ensure is Prism is fast and efficient, but there are a lot of variables and no matter how much we tweak the "out-of-box" experience, the location, hardware, and configuration of your database servers can be a crucial factor.

Mongo (Recommended)

MongoDB is a "no-sql" database, meaning it works very differently from sql-based databases. Rather than define fixed schemas, we store records as "documents". Given the variable nature of Minecraft and Mod data, it's difficult to work with a fixed schema.

We really appreciate other features like it's incredible performance.

Mongo can be installed and run similarly to other database servers.

MySQL/MariaDB

MySQL and the MariaDB fork are familiar products, especially for users of Prism 1/2. We continue to support these two products although native JSON support is essentially unavailable

Recent versions of MySQL support native JSON, while MariaDB has some support - although they've diverged in their handling. Supporting would require special work for each and is not a priority at this time.

H2

H2 is a file-based storage engine which does not require any servers or setup on your part. It's useful only for testing or small servers. File-based storage engines are quite limited compared to database servers.

Unfortunately, H2 does not fully support batch inserts the way Prism needs - this impacts Prism's performance as it either prevents us from using batches, or prevents us from utilizing table relationships.

Also, H2 doesn't seem to have a way of grouping by formatted data - in this case the date. It has to group on the column itself which would defeat the purpose. For now, records are grouped but without dates.

Others?

Prism can be extended with support for additional storage engines. We always are open to PRs if you would like to submit further support.

API

Prism 3 offers an API which allows you to:

Documentation Pending.

IRC

Please follow prism development on irc.esper.net in #prism

Credits

Prism 3 is the successor to Prism 1/2 (for Bukkit/Spigot/Cauldron). While much of the code has been rewritten it's still influenced by our original vision.

Prism 1.x - 2.x

YourKit

Thanks to YourKit for an open source license for their java profiling application.

YourKit

Compiling

Use the provided Gradle runtime to compile.

./gradlew build

Development