[WIP] Bnet - the (almost) fully automated Management plugin

Discussion in 'WIP and Development Status' started by TheA13X, May 30, 2015.

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

    TheA13X

    Hello World,
    since I started to make plugins for Bukkit for my own little server I wanted to create a plugin management system which installs the plugins and updates them automatically, so I don't have to go to the plugins website, download a plugin and restart/load the server.
    I have loads of time for the next three months so I thought I could give it a try. It's called Bnet ,which stands for Bukkit Network and works like this Linux repository system thingy. You only have to make an xml-file to tell Bnet where your plugins are, that's it.


    The Features:
    A. already implemented
    1. Downloads and and enables the plugins without reloading
    2. Updates the plugins with a reload or a command (/bnet update)
    3. (optional) offers a unified colorinterface, so the user can choose the color of the messages
    4. (optional) offers an SQLinterface you can use to store your data with SQLite using EbeanServer Persistence and
    get Tables from other plugins

    B. planned
    1. Permission Management
    2. The possibility to automatically search for updates after an amount of time
    3. The possibility to offer older versions

    3. A Desktop program to help creating the xml-files
    4. A Desktop program or website which remotely sets up the server through FTP (installing plugins,
    adding repositories, choosing chatcolors etc...)
    5. Unifying Chatlisteners to prevent incompatibilities between Chatplugins (if this is possible)


    What Devs will have to do
    1. Create an XML-File and name it repository.xml(*)

    2. Host the repository.xml anywhere or send it to me, so I can add your plugins to my list
    3. Put the newest version of your plugins in a dropbox or your webspace, so the URL remains the same or
    change it in your xml whenever you publish a new version
    4. Tell the people the URL to your repository.xml, so they can add it to Bnet.

    What Server owners will have to do
    Get the url of the repository.xml from the developer and add it with a command
    Activate any Plugin you need



    Sorry, my fault.
    (*)The Syntax of the repository.xml
    The root tag: <plugins repname="derp"></plugins>
    attribute "repname" sets a "userfriendly" name
    here comes a plugin: <plugin></plugin>
    the name of your plugin: <name></name>
    the version: <version></version>
    thr author: <author></author>
    the main category of your plugin (e.g.: Teleportation,Administration,Library...) <category></category>
    a short (very short) description of your plugin <description></description>
    does it use the Color API?: <usescolor>true/false</usescolor>
    does it use the SQL API?: <usessql>true/false</usessql>
    the url of THIS plugin: <url></url>
    the dependencies <dependency></dependency>
    this one has some atributes
    1. optional: true/false = whether it's optional or not
    2. url = where to find this dependency
    . - internal: the plugin is in this repository
    . - http://...: the plugin can be found in the repository under this URL
    . - external: the plugin is not in a repository/its URL is unknown and has to be downloaded manually

    Example:
    Code:
    <plugins repname="BNETCENTRAL">
         <plugin>
             <name>MyPlugin</name>
             <category>administration</category>
             <version>0.1.1</version>
             <author>Me</author>
             <usescolor>true</usescolor>
             <usessql>true</usessql>
             <description>this plugin is really usefull</description>
             <dependency optional="true" url="external">PermissionsEx</dependency>
              <dependency url="external">PermissionsEx</dependency>
              <dependency url="internal">myotherplugin</dependency>
              <dependency url="http://www.anoter-website.com/repo.xml">yetanotherplugin</dependency>
              <url>http://www.mysite.com/MyPlugin.jar</url>
         </plugin>
    ...
    </plugins>



    A management plugin like this one becoms useless if there aren't any plugins to manage so it kind of depends on people being interest in using it...
    Well, at least I will offer my plugins through this system (my repository.xml is registered by default of course ;))


    ______________________________________________________________
    sincerly TheA13X
     
    Last edited: Jun 17, 2015
  2. Offline

    Corndogoz

    umm you dont say how to make the .xml
     
  3. Offline

    TheA13X

    Syntax has been moved to the first post.
     
    Last edited: Jun 17, 2015
  4. Offline

    pinkitty1

    This seems actually pretty cool! At a first glance I thought it managed the server for you meaning all chat problems (ei: all letters in caps, advertisers, etc) are taken care of and includes anti-hacks that essentially meaning no staff required for a server but this is time saving for server owners and seems pretty cool. Too bad I am still fairly new to java and coding so I won't be able to help D:
     
  5. Offline

    jacklin213

    Im quite curious as to how the /bnet update command will work.
     
  6. Offline

    Zombie_Striker

    Will there be a way to set if a plugin should update automatically (when the server starts up)?
     
  7. Offline

    TheA13X

    Oh, no problem ^^. I would't refuse any help but making this plugin is not as hard as I thought.

    It just redownloads the repository.xml. If Bnet detects that the plugins entry in the repository has a bigger version number than the current one, it'll download the new version.


    Well yeah. This feature will be activated by default.
     
Thread Status:
Not open for further replies.

Share This Page