MCCore

Command Uage

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 change how things are displayed or what is displayed by simple overrides
  • Default implementation provides a nice, clean, and organized usage display with a pages feature

CommandHandler

  • Very simple to set up (only requires a command label and a plugin reference)
  • Registered for a command the same way as any other command executor
  • Automatically provides command usage with pages

ICommand

  • Allows your commands to work with the CommandHandler
  • Methods provide information to generate the command usage and whether or not to execute the command
  • The execute method provides everything you need and is called only when that sub command is executed

    Default 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!

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of ferrago ferrago Mar 31, 2014 at 12:55 UTC - 0 likes

    @Heliostorm, ever try player.getName()? I believe he is modifying custom names, so if you want to just see the players real name just use the above method where player is an Player object representing the player whose name you wish to get.

    CQR|CQR

  • Avatar of Heliostorm Heliostorm Mar 24, 2014 at 21:31 UTC - 0 likes

    I'm getting a bug with the chat display names where the display name always cuts off the last letter. So if I use /chat name test, it will appear in game as "tes".

    Also, a way to check a player's real name would be lovely.

    Last edited Mar 25, 2014 by Heliostorm
  • Avatar of MineLGSG MineLGSG Mar 17, 2014 at 22:18 UTC - 0 likes

    DOFUS!

  • Avatar of Celeress Celeress Feb 12, 2014 at 01:35 UTC - 0 likes

    DD's banner

  • Avatar of NobleStrike NobleStrike Jan 27, 2014 at 04:19 UTC - 0 likes

    Works fine with essentials if you know what your doing.

    owner: '&e{factions_roleprefix} &c{factions_name|rp} &4([&6Owner&4])&c {DISPLAYNAME}&4*&e {MESSAGE}'

    This in the essentials config for the ranks.

    As if in PEX the group name is owner then owner will get this.

    Also make sure you toggle the settings right in essentials AND factions to have factions relay on essentials and not the automatic prefix settings of factions. Also in the essentials config you have to have it so it overrides. Just read into the configs, its all there. In a nutshell your telling factions to use essentials to handle EVERYTHING and pex is telling essentials what rank is who.

    So now im running pex with essentials and factions in a multiworld server, with a faction world that uses faction prefixes. I may have made it seem complex but don't stress its not.

  • Avatar of Eniripsa96 Eniripsa96 Jan 16, 2014 at 14:09 UTC - 1 like

    I can try to find a way to make it work with essentials/PEX, but no guarantees. It's hard working around other people's code while not actually depending on it.

    BFAK:86513,955c39aa0fd005d53a0df93f256769ca83f60e42d36afbeaf01fab5fcc205630My Plugins: SkillAPI | Parties | MCCore | LegendaryWeapons | EnchantmentAPI | EnchantmentPack

  • Avatar of spindyzzer spindyzzer Jan 13, 2014 at 02:58 UTC - 0 likes

    Can you make it compatible with essentials? I use only essentials (i do not use essentialchat, essentialsprotect,etc) but prefix dont work with essential.jar. And i need essential because i have several warps, etc.

    Thanks

  • Avatar of Ryex95 Ryex95 Jan 12, 2014 at 21:29 UTC - 0 likes

    How to make this work with PermissionsEx prefixes?

    I wanted to do for example: [Figher]&4PlayerName:

    With this I mean a prefix and a name color.

  • Avatar of Tom555444 Tom555444 Dec 16, 2013 at 01:07 UTC - 0 likes

    MCCore plugin.yml

  • Avatar of Eniripsa96 Eniripsa96 Dec 12, 2013 at 18:13 UTC - 0 likes

    @Tom555444: Go

    The plugin.yml for MCCore? Or your own plugin?

Facts

Date created
Jun 25, 2013
Category
Last update
Feb 03, 2014
Development stage
Release
Language
  • enUS
License
GNU General Public License version 3 (GPLv3)
Curse link
MCCore
Downloads
15,286
Recent files

Authors