Commons 1.8.8-3

An all in one Framework (API) providing the Essentials for server owners, and developers!

  1. MumbosHut
    Commons - The Server Framework!

    Commons isn't just your typical "all in one" plugin. Although it provides many of the features that "Essentials" clones provides, commons is designed to be a framework for developers! Making it simple, fluid, and fun to code an entire server from scratch.

    Don't worry any more about the boiler-plating required to design a plugin, simply add Commons as a dependency, and get to making your dreams come true!

    Note: Commons is, and always will be a work in progress! I'm open to pull requests, suggestions, and criticism!

    The Version of Commons (1.8.8, for example) reflects the version of Minecraft that it's to be used with!

    Features:
    Designed with a very specific vision in mind, I break many of the conventional means which plugins and other API's establish.

    As of version 1.8.8-3 Commons supports both YML and XML Serialization via @Annotations in their individual ways; This is a game changing feature for how things will function from here out!

    Libraries included in Commons: Simple XML, JavaTuples, Commons-IO, Project Lombok, jOOR, and Reflections.
    More features are always being worked on in Commons!

    Configuration:
    Commons has a very simple, yet powerful set of configuration options to provide many options to your server!

    If you're upgrading to v1.8.8-3 from a previous version
    You'll notice that there's now a 'data-option.txt' file in your plugins/Commons directory with a value stating your config choice.

    Make your choice by changing this value, and have Commons handle the conversion between.

    Default Configuration(s)
    By default, if you're not upgrading from a previous version, Commons will use a 'yml' based configuration file at 'plugins/Commons/config.yml' though the previously honoured 'xml' configuration is still entirely viable!

    Choose your fancy, and enjoy!

    Code (Text):
    # Any concerns regarding the purpose of configuration nodes
    # What they affect, or how they change aspects of the API
    # are described under the Wiki on Commons GitHub page.

    Database:
      Mysql:
        enable: false
        host: localhost
        port: '3306'
        database-name: minecraft
        username: username
      track-online-status: false
      # Used in the chosen database implementation
      # to identify the server.
      server-name: EDIT THIS
    Commands:
      # By default Commons includes a plethora of commands
      # Designed to aid you in your server ventures!
      # Though if you're not requiring use of these commands, and
      # Wish to use Commons for only its API Features, then change this value to
      # False
      register-commands: true
      # Allows usage of 'Bukkit:' prefixed commands
      # Changing this value to false disable these commands
      # from being used on your server.
      enable-bukkit-commands: true
      # Changing the value of this option to false
      # Stops players from using '/plugins' on your server.
      enable-plugins-command: true
    Server:
      # Whether or not to enable join messages
      # in chat when a player joins the server
      enable-join-message: true
      # Whether or not to enable leave messages
      # in chat when a player leaves the server
      enable-leave-messages: true
      # Whether or not to show 'player was kicked'
      # messages in chat, when a player is kicked.
      enable-kick-messages: true
      # Determines whether or not Commons should
      # handle chat formatting (in a very basic manner)
      # or to hand it off to another plugin
      external-chat-plugin: true
      # When enabled, only players with 'commons.silence.bypass'
      # in their permissions will be able to talk
      silence-chat: false
      Premium:
        # Determines whether or not to kick a non-premium player
        # when a premium user joins the server, and the server
        # is currently full.
        # Premium users are determined by the 'premium-user-permission'
        # node below.
        kick-when-full: false
        # Message to display to non-premium users after being
        # kicked to make room for a premium user.
        kick-when-full-message: '&eYou were kicked to make room for a Premium User. Sorry.'
        # When enabled, only users with premium (defined by a permission below)
        # will be able to join your server.
        # Those without premium will be displayed a configurable message
        premium-only-mode: false
        # This message will be shown to non-premium users who join during premium-only mode.
        premium-only-mode-kick-message: '&cThis server is currently in premium mode'
        # Used to restrict access during premium only mode
        # To players who have this permission
        premium-user-permission: commons.premiumuser
      Worlds:
        # All the options beneath this are used to control
        # various aspects of the worlds across all
        # the enabled worlds on your server.
        #
        # If you have another plugin enabled that also
        # Modifies any of these values, there's no guarantee
        # that they will function as expected.
        disable-weather: false
        # When enabled, players will be teleported to their world spawn when joining the server
        teleport-to-spawn-on-join: false
        # Changes whether or not lightning will strike during a storm
        disable-lightning: false
        # Changes whether or not thunder will rumble during a storm
        disable-thunder: false
        # Changes whether or not ice will spread and accumulate
        disable-ice-accumulation: false
        # Changes whether or not snow will accumulate while snowing
        disable-snow-accumulation: false
        # Changes whether or not mycelium will infect blocks around it, and spread
        disable-mycelium-spread: false
        # Changes whether or not fire will spread
        disable-fire-spread: false
        # Changes whether or not leaves will decay over time
        disable-leaf-decay: false
        # When enabled it changes pressure plates into launch pads, like many server hubs have
        launchpad-pressure-plates: false
        # Changes whether or not blocks can be broken outside of creative
        enable-block-break: true
        # Changes if players are able to pick up items that are dropped
        enable-item-pickup: true
        # Changes if players are able to drop their items
        enable-item-drop: true
        # Changes whether or not players lose their hunger while playing
        enable-food-change: true
        # When enabled, fireworks will launch and explode whenever a regular explosion happens
        fireworks-on-explosion: false
        # Changes whether or not players take fall damage
        enable-fall-damage: true
      Maintenance-Mode:
        # Maintenance mode enables admins, operators, and users
        # with the 'commons.maintenance.join' permission
        # to join while the server is undergoing maintenance.
        # At the same time, it keeps all players not permitted, out, until
        # maintenance is complete!
        #
        # Customizable MOTD (Server list message)
        # and kick message are available to notify users of
        # maintenance!
        enabled: false
        kick-message: '&cThis server is currently undergoing maintenance; Sorry for the
          inconvenience'
        motd: '&aThis server is currently undergoing maintenance'
    Debug:
      # Debug options are very useful to developers!
      # Providing a StackTraceEvent, and various output options
      # which enable in-game players in debug mode
      # and developers hooking the event to
      # track, handle, change, and work with the headaches of bug fixing
      # in an easy and fun manner!
      stack-trace-event: true
      # When enabled in conjunction with stack-trace-event
      # users in debug mode will receive a Book in-game outlining
      # The error which happened, and it's stack trace written in the books
      # pages!
      stack-trace-book: false
      # When enabled in conjunction with stack-trace-event,
      # users in debug mode will receive the stack trace in their chat;
      # so eyes don't have to stray from game, to console, to code.
      #
      # Note: Can quickly and painfully spam your chat if to many
      # errors occur
      stack-trace-chat: true
    Warps:
      # When enabled, it provides an interactive GUI
      # of which players can use to teleport and interact
      # with warps.
      enable-gui: true

    Commands:
    The list of commands is quickly growing to be to much to keep on this page; For information about each Command, its syntax, arguments, and permissions: Click here to go to the Wiki.

    Permissions:

    All the permissions have been copied from the plugin.yml file found inside Commons; Assign them accordingly. Any suggestions for actions that should be restricted via permission, please let me know!

    Click here to view a comprehensive list of all the permissions inside Commons, on the Wiki.

    Usage, and Tutorials!

    To Start, adding 'depend: [Commons]' to your plugin.yml file, inside the plugin you're making, will allow you to use Commons as a dependency on the plugin level.

    Next is to add your plugin as a dependency! If you're using maven enter the following information:
    HTML:
    <dependency>
                <groupId>com.caved_in</groupId>
                <artifactId>commons</artifactId>
                <version>1.8.8-3</version>
                <scope>system</scope>
                <systemPath>commons-location/commons-1.8.8-3.jar</systemPath>
            </dependency>
    Don't want all the commands, and only the API?


    Many usage examples are included in the features list above, though if you have any questions regarding a specific usage, class, feature, anything; Ask away! I'll be more than happy to help!

    I'm currently moving between provinces and have to wait to my recording setup to be shipped down!

    Hopefully you all enjoy Commons, and keep coming back to see what else is on the way! I'll be updating this post, and the library, very frequently.

    Thanks!


    JavaDocs to come soon!
    Requires Java 8!

    Check out Commons on Github!
    KiwiFisher and ferrinweb like this.

Recent Reviews

  1. Robincool
    Robincool
    5/5,
    Version: 1.8.8-2
    Awesome library! This is useful to me. And can u update the source code to github or make a maven repository? :-)
    1. MumbosHut
      Author's Response
      Hey! I've pushed the latest update to github; I'll try and setup a maven repo soon, waiting on my dedicated server :)
  2. xXkguyXx
    xXkguyXx
    5/5,
    Version: 1.8.8-2
    Amazing plugin, however I was looking at the code and you have ally of statics, I recommend using singletons, so of would be like this, commons.get().give money("xxkguyxx");, you would only have one static, however outstanding work and keep making your plugins better and better!
    1. MumbosHut
      Author's Response
      Thanks for the review! I'd use singletons, though I see no need to have the classes instanced, as it would take away from the design of the plugin; There's instances of Singletons inside the Framework though; Such as Players.java for the MinecraftPlayer manager, used to handle instance data for players in Commons.

      Again, thanks! Hopefully it fills your needs :D
  3. mr.seiko
    mr.seiko
    5/5,
    Version: 1.8.8-1
    Very extensive framework. Lots of nice features.

    I'll be putting this beast to work on my servers.

    Can't wait to see what else can be added to make this better.
  4. Whoopsiee
    Whoopsiee
    5/5,
    Version: 1.8.8
    Keep the work going! Works perfectly fine and highly recommend for all kinds of developers! Not only developers but also server owners :)
  5. Interface
    Interface
    5/5,
    Version: 1.8.8
    Amazing and highly extensive framework! I highly recommend this to any developers! Great job on this!
    1. MumbosHut
      Author's Response
      Thank you! :) Really glad you enjoy it!
  6. JPG2000
    JPG2000
    5/5,
    Version: 1.8.8
    Awesome resource! Made most of my plugins using this API, and found that its easier to setup and use than Bukkit while having more functionality at the same time. I specifically like the command system, as its really easy to use and is just plain superior to Bukkits.

    I recommend it to all developers! :)
    1. MumbosHut
      Author's Response
      Thanks Jake! If you post up any of the plugins you made using Commons send me a link and I'll include them in the post!