Plugins and the importance of standards

Discussion in 'Plugin Development' started by stalkingwolf, Mar 16, 2011.

Thread Status:
Not open for further replies.
  1. Offline


    Hello developers,

    Recently my entire family has become the victim or the plague known as minecraft addiction. Since my kids play I decided to setup a server and run the highly recommended bukkit. Everything thus far is almost fantastic, save on error with signs touching water that causes a crash, and the plug-ins are fantastic and useful. As you can imagine this is not the type of post you would put in a development forum with the title I chose.

    Reading through the plug-ins and their discussions it becomes very clear that the developers have a strong sense of pride in their work. This is great as it results in good work and drive. As you can imagine this also comes with a few downsides. These are the points I wish to illustrate in this post.

    First as I am sure you are all aware of is command conflicts between plug-ins. Why does this occur? In general the commands selected by the developer are clear and concise, as any command or code should be, so why is this a problem? The reality is that each plug developer does something that interest them very well, but not necessarily the best at other features. Other plug-ins could handle these other topics in more useful ways.

    Keep in mind this is constructive criticism so when I use examples they are purely to illustrate the problems and not bash any particular piece of code.

    Consider the plug-ins pack Essentials, which are by definition essential. However this pack encompass many areas like warp. While essentials has the basic commands for a functional warp plug-in the plug-in MyWarp has features that the base essentials does not. For someone like me the simple ability to share warps without moving characters around makes my life 100 times easier to help my children play.

    The obvious problem here is the conflict of the basic commands. I do not wish to toss essentials or MyWarp. From my perspective there are only two solutions to this problem. First would be how bukkit handles plug-in commands allowing you to import certain commands but not all from any given plug-in. Obviously this could cause issues with poor coding practices and would require an update for all the plug-ins.

    The other option is to standardize a plug-in feature that allows the server admin to disable the commands they know will conflict with other plug-ins. This could be set by config file but would be a helpful in-game command for admins to disable commands which are causing unexpected issues or a newly discovered bug.

    Next issue I would like to discuss is the adoption of standards. Right now it seems like an almost universal standard for permissions has evolved. Same could be said about coding for multiple worlds, but for simple end user things like the HELP plug-in are slower to be accepted but equally important.

    Anyways this has become a novel so I will end with this. The competition earn a name at developing your own plug-in can be more detrimental to the community then donating your plug-in to the community for group collaboration and credit.

    Thanks again for the great plug-ins and keep up the great work everyone!

  2. Offline


    You can disable certain commands from plugin by opening the jar and editing the plugin.yml.
    There should be someting like:
        description: 'AnyReg commands.'
        usage: 'Usage: /<command> help'
        aliases: []
    When you delete the whole ar part, AnyReg e.g. wouldn't listen anylonger to /ar commands.
    It's not very handy, I know, but is it an option.
Thread Status:
Not open for further replies.

Share This Page