[General/Tool/Admin] Cortex

Cortex

Cortex is a standalone modification viewer and spoofer. It allows you complete control over who can view which Forge mods/Sponge plugins and how they’re viewed. It will come featureful out-of-the-box, and will always be accepting new ideas in order to make Cortex the all-in-one “Modification Metadata Tracker”.

Source: Coming Soon!

JAR Size: 33KB

Version: 0.8.6

Versioning: http://semver.org/spec/v2.0.0.html

Credit: Cortex makes use of @mmonkey’s amazing PaginatedLists! (Planned to be moved to the new Pagination Service)

Proof Of Concept: Screenshot (Updated as of 07/09/2015)

Features (not all FULLY implemented)

  • Supports display to clients, consoles, and RCON. NEW
  • Display of all versions of mods and server (including Minecraft/MCP/FML/Minecraft Forge).
  • Spoofing. Manipulate the view of an existing mod (make Factions vX.X.X display as FunnyBoat v32.12222k), or spoof one entirely (add a non-existent mod named Love v2.0)!
  • Permission notation if desired (cortex.<mod>.<viewing-rule>), can be done via configuration instead or a mix of both.
  • Per-player specific viewing rules.
  • Per-IP specific viewing rules. NEW
  • Global viewing rules (overridden by player rules).
  • Global restriction permission (toggle this to make people only with specific settings or this permission to view certain/all mods).
  • Full colour scheme (including mods for forge and sponge plugins specifically) and message configuration.
  • Planned MySQL support.
  • Ability to separate Forge mods and Sponge mods (plugins) by command or line(s) of your choice.
  • Watchdog. This allows any user/IP associated user to be kept informed on all queries of a mod (or all mods) from particular users (or all/console). This will also include any metadata changes so that you know when someone is changing information (ie: changed a viewing rule for someone for a particular mod). This feature has also introduced the “watchdog rules” (will be touched on later). NEW
  • Option to output all components upon server startup NEW
  • Dynamic scheme switching via command /cortex scheme <target> <scheme-id> NEW 07/09/2015
  • Option to load schemes all at once, or dynamically. NEW 07/09/2015
  • Schemes can be stored in separate files for easy drop-in installations making scheme sharing easy! NEW 07/09/2015

Commands

Depending on settings!
WORK IN PROGRESS- Not fully documented!

  • /cortex[cx] pkg list
  • /cortex[cx] pkg meta <id> (displays all metadata including the data associated universally, uuid-user-based, and IP based).
  • /cortex[cx] pkg authors <id>
  • /cortex[cx] pkg desc <id>
  • /cortex[cx] pkg spoofs (displays all fully and partially spoofed components)
  • /cortex[cx] pkg mutations[mts] (displays all mutated components AKA partially spoofed)

Configuration(s)

Files:

  • config.conf (Primary configuration file)
  • metadata.conf (Mod/plugin metadata configuration file)
  • schemes.conf (Schemes configuration file)
  • Optionally: users.conf (User metadata configuration file ONLY if opted-for in the config.conf).

config.conf

metadata.conf

Any questions, suggestions, or thoughts are appreciated :smile:

6 Likes

Can you make a viewing rule that checks a permission for the given commandsource?

So if a player has ModTracker.raw.see = true they can see the mod, otherwise they can’t?

you can also try and separate what mods are actual mods and what mods are sponge plugins.

2 Likes

Well you can do that with the configuration but I can also include permissions if you would like to use that instead sure!

Sure easy enough. Do you suggest have them at the top, different color,prefixed/suffixed with something? Not sure how I’d like to do it. Maybe just a line between sponge plugins and forge mods?

I think a different color would work at best, and then perhaps a command to render only sponge plugins/only forge mods?

1 Like

So I decided I’ll add a configuration for the mod separation, either line (so mods will be first to show, then sponge mods separated by line(s) of your choice), command (/mods, /plugins) and regardless of mode you will be able to edit the color scheme just like everything else.

1 Like

Update
Edited OP to better represent what the plugin’s configuration will look like. It’s not finalized but it’s more filled out. Also, just FYI the bad formatting is purely due to Discourse, it’s perfectly fine in the file bundled with ModTracker.

Update

  • Introduced the “Watchdog”. This effectively allows you to monitor queries and changes with the metadata of a mod (currently only in real-time for users, this does NOT support output to console/rcon/database/flat-file… at least for now ;)).
  • Refactored the name of the project to Cortex as the purpose of the plugin as expanded.
  • Added metadata.conf temporarily (until Sponge adds plugin descriptions) allowing server administrators to add information about a Forge mod/Sponge plugin (currently not all that happy with this, I don’t like the idea of the server admin defining the plugin instead of the developer(s)).
  • Added /cortex[cx] pkg desc <id> (displays description)
  • Added /cortex[cx] pkg authors <id> (displays authors)
  • Added /cortex[cx] pkg meta <id> (displays all metadata about the mod/plugin)
  • Added more information to OP and cleaned up some sections. Updated all ModTracker references (AFAIK) to Cortex.
  • Updated file size info.
  • Added file schemes.conf in preparation of moving schemes to their own dedicated file for easy sharing as well as to make the configuration more modular (kind of).

odd, typically the command format i see puts the operation before the argument
/component desc <id>, /component authors <id>, /component meta <id>

not to say its wrong though; but i’d take consideration of what people’re used to with a command format .o.

That’s definitely something I’ll take into consideration thanks!

Haven’t had time to work on this, although I’ll have updates next week (for those still interested in this).

EDIT Also changed a couple things in OP. Mainly added 3 new features, changed the screenshot, updated JAR size, and added the plan to migrate from @mmonkey’s Paginated List lib to the new Pagination Service

@wingz let me know how that goes, I haven’t implemented the new paginated service yet, but it looks great!

Will do, seems to be a little easier than your pagination lib, although I’m only going off what is documented.

EDIT: Forgot to mention the modification display cache. This should help with performance (so we don’t have to parse mods all the time).

1 Like