Coder Social home page Coder Social logo

prism's Introduction

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

  • Unprecedented block change tracking. We've worked closely with the Sponge team to ensure it provides us the framework we need.
  • Lookup & "near" commands.
  • Rollback and Restore commands.
  • "Undo" command.
  • MongoDB Support (Recommended)
  • H2, MySQL support.

Commands

  • /pr l (parameters) - Lookup records, filtering by parameters.
  • /pr rb (parameters) - Rollback, filtering by parameters.
  • /pr rs (parameters) - Restore, filtering by parameters.
  • /pr undo - Undo your last rollback/restore action.

Parameters

  • a:(event) - "Action". break, place, etc.
  • before:(time) - "Before" time period.
  • since:(time) - "Since" time period.
  • player:(name) - "Player" name. May be an offline player.
  • r:(number) - "Radius" - A distance around you.
  • b:(block id) - "Block" name. Like "grass".

Flags

  • clean - Clean dangerous blocks and item drops from the rollback area.
  • drain - Drain liquids within a rollback area.
  • --no-group - Prevent record grouping in lookups. Clicking on a single record will teleport you to those coordinates.

Permissions

  • prism.lookup - Can query records (via lookup or near).
  • prism.rollback - Can perform a rollback.
  • prism.override.radius - Can exceed the maximum radius in the config.

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.

###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:

  • Query the database.
  • Register custom action handlers (allow custom parameter parsing).
  • Register custom result handlers (allow custom rollback/restores).
  • ... and more!

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.

  • viveleroi (Creator, Lead Dev)
  • Dev Testing: Wolfire1, Ollie2000, ickyacky

Prism 1.x - 2.x

  • bloodmc (Assistance with MCPC+ special compatibility)
  • nasonfish (Contributor)
  • YeaItsMe (Release QA)
  • nasonfish, Natman93, YeaItsMe, mafoan (Alpha Testers)
  • mafoan, randox24, tacovan, nehocbelac, Shampoo123, cxmmy14, Palczynski, drac17, ollie2000, PGKxNIGHTMARE, allies333, DocVanNostrand, drfizzman123, 00benallen, rachaelriott, PheonixTamer, YeaItsMe, Natman93, Brazter, sydney2005, rsleight, napalm1, Teh_Fishman, and plenty more from DHMC (Live Testers on DHMC)
  • Artwork by LegendarySoldier

YourKit

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

YourKit

Donate to Vive

alt text

Hey, I'm viveleroi and I'm responsible for 99% of Prism, the WebUI, the website, the documentation, responding to comments, IRC, and snowy tickets. But I also have a job and a family. Prism, and the rest of my plugins take an incalculable amount of time and that's hard to manage without any pay.

So please, make a donation and make it easier for me to continue with these amazing plugins.

Compiling

Use the provided Gradle runtime to compile.

./gradlew build

Development

prism's People

Contributors

viveleroi avatar phroa avatar bulby13 avatar

Watchers

James Cloos avatar James C. Owens avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.