Minecraft Mod Package Manager
Third release testing
note that the first release will just be a proof of viability, for the most part; it won't be worthy of serious use until the second release at least. expect late feb, early march.
Features currently planned and in progress:
For modders (I probably forgot some):
- [*:27hncrab] Distributed repository system - the main repository can include your repository, allowing you to deal with keeping your mods up to date yourself
[*:27hncrab] You only have to maintain one method of distribution - if you don't want to use the repository, you can distribute packages without using a repository, and the package manager will still be able to understand them.
[*:27hncrab] Dependency resolution - no need to package mods that you depend on with your mods
[*:27hncrab] Conflict prevention - you won't get users complaining to you that your mod doesn't work. Instead, they will know which mod it doesn't work with and be able to give you useful information to resolving this (if they so choose)
[*:27hncrab] Binary patching - no need to distribute whole class files, therefore dealing with a large portion of the problem Mojang has with client mods
These will not be in the first release, but are planned:
- [*:27hncrab] Bytecode patching - if a mod changes the same class file, there is a fair chance it won't conflict with yours
[*:27hncrab] Automatic repository management - a way to generate repository index files. for the first release, they will be completely manual.
[*:27hncrab] Remote control from in-game - this will be for when more client modders get into server modding, the server will be able to tell the client "a server mod needs you to install X client mod" and then it will ask the user if this is ok, to try to play on the server without it, or to not play on the server.
For users (notice the similarities - again I probably forgot some):
- [*:27hncrab] Repository system for mods. This means that the only download link you will click is the one for the package manager; then you run the package manager, tell it you want (for instance) "humans+", it searches for Humans+ and offers to install it next time you start Minecraft.
[*:27hncrab] Dependency resolution - if Humans+ needs Modloader, you don't have to tell it so; you just tell it you want Humans+ and it deals with the rest for you.
[*:27hncrab] Conflict prevention - if mods conflict, then it will warn you. if they have a hard conflict, aka they're not possible to install over each other, then it won't try.
[*:27hncrab] Conflict resolution (won't be in the first release) - if two mods use the same file, then they might still work together.
[*:27hncrab] Patching - mod packages will not contain notch's code, so you don't have to worry that you're breaking any laws by downloading a mod
[*:27hncrab] Nicer upgrade management - will tell you when there is an upgrade to one of your mods, and offer to install it. Same with minecraft. When an upgrade is available, it will offer to install it.
[*:27hncrab] There will be a commandline and a gui version available - most users will prefer the gui version, but for techies the command line version will likely prove valuable.
[*:27hncrab] Possible feature - It might allow you to play directly in offline mode
[*:27hncrab] (probably not in first release) click links that start with mcpkg:// and it will autoinstall the package for you
[*:27hncrab] (probably not in first release) a way to get detailed console error logs, so that when something does go wrong, you can send the error to the modder who needs to see it
#mcpkg on irc.esper.net is the channel for mcpkg. It is NOT a user support channel, don't join expecting end-user support.
For those who are curious and who know Java, my git repo is at https://github.com/lahwran/mcpkg - feel free to poke around it and make fun of, or even give useful suggestions about, my code.
Note about the source repository: mercurial is set up because I was using mercurial, switched to git, tried to remove it, but on start of Eclipse, .hg reappeared.
me (lahwran) - main author, have done nearly all the code so far
TLUL, Silasary - were doing the same thing, have given a lot of suggestions for design
population of #risucraft - various design suggestions
sonicrules1234 (a friend of mine) - not a modder, helped with design, reminded me to make sure it understands ssl
various tech bloggers found on google - code snippets
if I forgot you, then it means I am an evil person trying to make you look bad. that or I really just missed you.