MCCore
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
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!
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 >_<)
Uploaded a new version (v1.23) that brings the following changes:
@Eniripsa96
okay thanks!
@Comander_Cody
@thequestingbeast
I'll release a fix shortly, sorry about that.
Same here... everything is disabled and everything is still there.
Hello,
I recently updated MCCore and SkillAPI to the most recent version so I can remove the chat function of SkillAPI via MCCore. By chat function I mean the prefixes' that are shown when you choose a class. I disabled the chat in MCCore and reloaded the server and nothing happened.
@Zalakoth
This plugin has been using Java 6 for awhile, and as qbgeekjtw said, I think you are mixing it up with MCore, as I don't even know what vampire plugin you are talking about. You can find the one you want here: http:dev.bukkit.org/bukkit-plugins/mcore/
@Zalakoth
I believe you may be confusing this project with MCore, which supports the Vampire plugin.
Hi, I am running an RPG server [WIP], and wish to use the Vampire plugin you guys support, However, my server runs Java 6 and if I update to 7 (or 8) None of my other plugins I use will run. Would you be able to post a link to a Version of MCore for Java 6?
If so, thanks for your consideration...
@shadowofdoom100
That was a debug message accidentally left in. I will remove that in the next version. Sorry about that :\
How to disable console information about durability loss?
Take note that was just 1 player ingame (me), and see the time log. Just imagine if there's multiple players in the game, the console information will only be filled up by this information.
@thequestingbeast
Yes, both through the MCCore addition and another option in the SkillAPI config which is "show-class-name" under GUI again
@Eniripsa96
And the titles beside the names? That can be hidden too?
@thequestingbeast
In v1.17, I added the option to disable individual features such as the stat box. Optionally, there is the "scoreboard-enabled" in SkillAPI under the GUI section in it's config which is there now.
If I wanted to take away the stat box from players, or at least give them the option to have it up, how would I go about doing that?
Actually I would like to hide everything this tells people from my players.
Just uploaded MCCore v1.17 which introduces durability features such as events for when items gain or lose durability as well as a utility class for setting custom durabilities.
Just uploaded MCCore v1.15 which changes StatBoards like those used in Parties and SkillAPI to be more efficient with UUID changes. The changes will not work with previous versions of SkillAPI and Parties, so you must download the most recent version for each (v2.37 for SkillAPI, v1.2 for Parties).
@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.
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.
DOFUS!
Random Console Error: http://hastebin.com/kuwuxokipe.avrasm