What is Simply Modular?
Simply Modular is a plugin suite that provides many crucial, core plugins for the aspiring server administrator. Also, Simply Modular is a platform, just as much as it is a plugin. It provides many core features that one could use to create additional plugins.
What kind of plugin modules will Simply Modular have?
Glad you asked! Currently, the following modules are planned for Simply Modular:
- Permissions system with multi-inheritance and world-based hierarchy*
- Block Locking system (a la LWC)
- Chat management system (public/private channels)
- Multi-world management system
- Backpack/fake inventory system
- AFK
- Server security/lockdown systems
- Command Macro systems
- Warp Management
- Inventory viewing/editing system
- Mail system*
- Weather/time management
- Environmental protection
- Administrative commands
- Ban management suite
- Entity death logging suite
- PVP rules management
- New Player management
*Implemented currently
“But,” I hear you say, “What separates Simply Modular from all of the other Essentials-type plugins?”
Thanks for asking! There are a few key aspects about Simply Modular that make it shine. First and foremost, Simply Modular was built from the ground up with the idea that it will be 100% completely customizeable. Not just in what modules are being used, but the fun stuff too, such as how every single message the plugin can send to a player can be customized to the administrator’s contentment! That’s right, the plugin can be skinned/themed!
But even moreso than that, one of simplymodular’s great strengths is that it is built to be extendable. If it gets popular, expect many additions, sub-plugins, or replacements of Simply Modulars plugins
What can Simply Modular do?
While many of the features are not quite necessary with some of the changes Sponge has brought over Bukkit there are quite a few features that help make things easy for a plugin developer. Here are a few things:
- Provides a “module” subsystem that provides many features and utility functionalities, such as automated configuration retrieval/saving/management, player-getter methods for obtaining players and player data objects by name, nicknames, or fragments of either, and more
- Alternative command system that enables dynamic registration and deregistration, along with tab completion and default setting support options via the CommandMetadata system, along with allowing the server administrator to customize any aspect of any command!
- StringContainer allows for additions to the systems customizeable string database, meaning if you are a sub-plugin for Simply Modular, you too can allow customization of your plugins responses!
How do I use it?
Find the download link here, extract SimplyModular.jar into the mods folder of your Sponge server. Boot the server once, and then go into the “config” folder in the root of your server, From there, go into “SimplyModular” to find your config files.
(Note: Do not touch any file inside “UserManager” without first making a backup, in case you mess things up. Do not modify the UserManager.json file either.)
First things first, open up the plugin.json file In this, you’ll find a bunch of options for you. Of the “enabledModules”, change their values to true or false depending on which modules you’d like to enable.
Of the “commandOptions” category, you can put in additonal JSON Objects to customize the different commands in SimplyModular. For instance, if you’d like to edit the “setgroup” command to be customized, you’d add something like this:
"commandOptions": {
"setgroup": {
"name": "newname",
"permission": "new.permission",
"description": "alternative description",
"usage": "/newname is how you do it now",
"aliases": [
"newalias",
"-removingoldalias"
],
"logusage": true
}
}
Next, open up strings.json. Here, all of the plugins text-based feedback are stored. Essentially, they work like this: The %#'s are parameters, and are hardcoded bits of information that are provided for the uses of each string type. You are not required to use them, but they are the only way to provide feedback (for instance, if you are trying to look for a player name, %1 might be how to provide the players name to your string).
The strings file supports color coding, a default color (for automatic changing. This default color defaults to aqua), and newlines.
I will create more guides and likely a much better documentation of the plugin over time. But feel free to tinker with the other configuration files. For now, I’ll leave you with a current list of commands, so you know what to do.
Command Reference
SimplyEssential - List of basic, essential commands: (WIP)
- /motd - Prints the MOTD listed in the SimplyEssential.json file
- /nickname - Its supposed to set the players nickname, however this hasnt been implemented yet.
SimplyPermissible - Simple Permissions system:
- /addgperm [world] - this adds a permission to a group. world optional, defaults to global.
- /list - Lists everyone who is online by group
- /delgperm [world] - This removes a permission from group. world optional, defaults to global.
- /setgroup - This sets the target player to the target group.
- /testpermission [player] - this tests whether or not the target player has a specific permission. Will also tell what is setting the permission, to explain why the permission is what it is.
SimplyPostal - Touch Based Mail System With Attachments:
- /inbox - Displays the users inbox
- /quickmail - Quickly mails a subject-less mail to the target player
- /readmail - Reads the target mail from the inbox
- /markunread - Marks the target mail as unread.
- /sendmail - sends the current draft
- /replymail - creates a draft, setting the recipient to the sender of the target mail
- /replyallmail - creates a draft, setting the recipients to the sender/recipients of the target mail, and inheriting cc’s
- /forwardmail - creates a draft, setting the recipient to the target player.
- /draft
- /draft new - creates new draft
- /draft delete - deletes the current draft
- /draft preview - displays the draft as is
- /draft setrecipients - sets the recipients to the listed players. Separate each playername by a space
- /draft setcc - sets the CC of the mail
- /draft setbcc - sets the BCC of the mail
- /draft addattachment [arguments] - uses the specified attachment provider to provide an attachment (note: only the “item” attachmentprovider exists. Try doing “/draft addattachment item” to test it out!)
- /draft removeattachment - Does not work yet.
- /draft setsubject - sets the subject of the draft
- /draft setbody - sets the body of the draft. Supports \n’s
- /draft addbody - adds the string to the body
- /draft addparagraph - adds two newlines, and then the string to the draft
- /draft clearbody - clears the body of the draft
More will be added as I develop the plugin!
Where can I get it?!
I’ll try to upload simply modular here whenever I have a build that I believe I’m comfortable enough with the build to be public. I dont keep a good repository so its not quite up to date at this very moment, however, I am very excited to announce Simply Modular!