MCCore

MCCore

122k Downloads

MCCore

MC Core is an attempt to provide a foundation for several aspects of bukkit plugin development to help new coders get started more easily, provide a framework for new plugins (or old ones that decide to convert) to be more compatible, and just in general provide many tools to speed up the development process. This plugin acts as a library for many different functions so that people can avoid coding the same things over again, and possibly do some things they didn't think were possible. Without further ado, here are the tools that MC Core has to offer:

Scoreboard

  • Many scoreboards can be registered at once
  • Scoreboards can optionally cycle through all registered ones or be chosen via a command (controlled by players)
  • There are new types of scoreboards provided that give easy functionality:

StatBoard

  • Automatically updating stats
  • A one-method interface provided allows you to turn your player data into something that can be used with this scoreboard!

TextBoard

  • Easily display lines of text on the scoreboard (You don't need to worry about length requirements, it wraps it automatically)
  • Option to automatically divide up messages

    TextBoard Example
    This is the TextBoard in-game with the "separateMessages" option as true. This was created and displayed in only 6 lines of code (4 of them were just simply adding the text!)

Chat Management

  • Ability to have many plugins providing prefixes without conflict
  • Can have colorful display names and many prefixes
Plugin Prefixes
  • Applied in code only
  • One prefix per plugin name
  • Great way to apply important prefixes without conflicting with other plugins
Unlockable Prefixes
  • Can have an unlimited amount (more or less)
  • Players get to choose which one they want showing and change whenever
Display Names
  • Color support via the ampersand character '&'
  • Command requiring permissions so you control who uses it

Command Tools

  • Simple, flexible system for setting up commands
  • Can make as many levels to your commands as you want (e.g. /root, sub1 sub2 sub3 args)
  • Commands using ConfigurableCommand are automatically configurable for users
  • Configuration includes enabling/disabling commands, changing the command names, and changing the descriptions
  • Commands are automatically arranged into pages for command usage
  • Text buttons for switching between pages is included for versions 1.7.9 and later!


Default Player Usage Display Default Console Usage Display

Config

  • Has the basic implementation from the Bukkit tutorial included
  • Added the ability to create configs in new folders
  • Added the ability to add savable objects to them for easy saving
  • Configs obtained through the MCCore method automatically save on disable!

Name Translations

  • Mob, enchantment, and item conversions between bukkit and vanilla names
  • Mobs have the option of detailed names with attributes like sheep color or villager profession!

Text Manipulation

TextFormatter

  • Formats strings into UpperCamelCase, lowerCamelCase, or General Form For Titles

TextSizer

  • Measures the legnth of strings for the chat box
  • Can add spacing to strings in front or in back to square everything up nicely
  • More accurate than what can be achieved by manually adding spaces alone!

TypeChecker

  • Allows you to check whether or not a string is an integer, double, or other type before trying to parse it

TextSplitter

  • More for scoreboard usage
  • Divides up messages into 16 characters per line

Regions

New to 1.9 are region helpers. There are currenlty 2:

Cuboid

  • Allows you to define a cuboid from a number of options
  • Easily get the contents of the cuboid such as the blocks or players
  • Check whether a certain player is inside

Sphere

  • Same as the cuboid except with spheres

Commands

Scoreboard Commands

  • /board - Displays usage for scoreboard commands
  • /board cycle - Enables scoreboard cycling
  • /board list - Shows a list of all active boards
  • /board show <boardName> - Switches to the board with the given name
  • /board stop - Stops scoreboard cycling

Chat Commands

  • /chat list - Displays a list of unlocked prefixes
  • /chat name <displayName> - Sets display name (colors via '&' are supported)
  • /chat prefix <prefixName> - Sets the prefix as the displayed one
  • /chat reset - Resets display name

Permissions

  • core.* - all privileges
  • core.board - all permissions for scoreboards
  • core.board.cycle - board cycle command (default true)
  • core.board.list - board list command (default true)
  • core.board.show - board show command (default true)
  • core.board.stop - board stop command (default true)
  • core.chat - all permissions for chat
  • core.chat.list - chat list command (default true)
  • core.chat.name - chat name command (default op)
  • core.chat.prefix - chat prefix command (default true)
  • core.chat.reset - chat reset command (default op)

About

I wanted to make a central set of tools for me to work off of to make things easier. I've decided to also share that with everyone else so that maybe plugins can be a little more compatible and help other developers make things much more easily. I plan on adding a lot to this (before you ask, yes, I will be adding permissions for various things) so feel free to provide suggestions as it progresses along!

* While I try my best at testing for bugs, I can't find them all, especially when I have to test solo and create some things that are for multiple people. Please let me know of any bugs that you find and I apologize for them in advance. (In fact, I appear to be off to a bad start already >_<)

Javadocs, Source Code, and Tutorials

Source Code

JavaDocs

Tutorials

Like the Project?

Donate!