How to support your bungeecord plugin?

Discussion in 'Spigot Plugin Development' started by Deitog, Jul 3, 2019.

  1. Hi, I want to add support for bungeecord to my SimplePing plugin, and I want to know what the methods are, which is what I need, sussively.
    Thank you
     
    #1 Deitog, Jul 3, 2019
    Last edited: Jul 3, 2019
  2. The BungeeCord API is very similar to the Spigot API, for the Spigot plugins you need to create a "plugin.yml" file wich contains the plugin information (name, main class, the author, etc.).

    If you want that the same .Jar file has BungeeCord support you need to create a "bungee.yml" file wich is pretty similar to the "plugin.yml" file of Spigot, but without the "commands" entry. You can see an example here (click).

    The main class of the plugin cannot be the same on both files, you need to create two classes in different packages (for example), something like this:
    net.deitog.spp.bukkit.plugin.Main
    net.deitog.spp.bungee.plugin.Main

    In the Spigot API your main class need to extend JavaPlugin, and in the case of BungeeCord the main class need to extend Plugin.
    Both has the onEnable() & onDisable() methods.

    And knowing that, the only you need to do is to look at the BungeeCord's API to find the equivalent methods of the ones you will use on Spigot. For example for register a command or listen for an event.

    Hope I helped, good night ^^

    Hola, he visto el código de tu plugin (para ver que haz hecho) y vi que hablas español así que te responderé en español para que puedas entender mejor mi mensaje, en caso que quieras leerlo en inglés también lo dejaré arriba como un "Spoiler".

    La API de BungeeCord es muy similar a la de Spigot, para los plugins de Spigot debes crear un archivo "plugin.yml" el cual contiene la información del plugin, como el nombre, la clase principal, el autor, etc.

    Si quieres que el mismo .Jar del plugin tenga soporte para BungeeCord debes crear el archivo bungee.yml, el cual prácticamente contiene lo mismo que el "plugin.yml" de Spigot, sólo que sin lo de "commands". Un ejemplo de este archivo lo puedes ver aquí (click).

    La main class del plugin no puede ser la misma en ambos archivos, puedes crear dos clases en diferentes packages, por ejemplo algo así:
    net.deitog.spp.bukkit.plugin.Principal
    net.deitog.spp.bungee.plugin.Principal

    En la API de Spigot tu clase principal debe extender de JavaPlugin, en el caso de BungeeCord la clase principal debe extender de Plugin.
    Y ambos tienen los métodos onEnable() y onDisable(), los cuales ya conoces y sabes para que sirven.

    Y sabiendo esto, lo único que quedaría por hacer luego es investigar la API de BungeeCord para encontrar los métodos equivalentes a los que usarías en Spigot. Como por ejemplo para registrar un comando o para escuchar un evento.

    Espero haberte ayudado, buenas noches ^^
     
    • Friendly Friendly x 1
  3. Gracias, me has ayudado mucho
     
  4. Tengo que poner esto en el pom.xml?
    Code (Text):
        <repositories>
            <repository>
                <id>bungeecord-repo</id>
                <url>https://oss.sonatype.org/content/repositories/snapshots</url>
            </repository>
        </repositories>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.6.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>

        <dependencies>
            <dependency>
                <groupId>net.md-5</groupId>
                <artifactId>bungeecord-api</artifactId>
                <version>1.12-SNAPSHOT</version>
                <type>jar</type>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>net.md-5</groupId>
                <artifactId>bungeecord-api</artifactId>
                <version>1.12-SNAPSHOT</version>
                <type>javadoc</type>
                <scope>provided</scope>
            </dependency>
        </dependencies>
     
    #4 Deitog, Jul 3, 2019
    Last edited: Jul 3, 2019
  5. In my case I always add the BungeeCord jar to my .classpath, since maven's repo is outdated (or at least it was when I tried to use it).

    It should look something like this:

    En mi caso yo siempre añado el jar de BungeeCord a mi .classpath, ya que el repo de maven está desactualizado (o al menos lo estaba cuando yo lo intenté usar).

    Debería quedar algo así:

    HTML:
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
            <classpathentry kind="src" path="src"/>
            <classpathentry kind="lib" path="/home/oopsie/lib/spigot-1.14.1.jar"/>
            <classpathentry kind="lib" path="/home/oopsie/lib/BungeeCord.jar"/>
            <classpathentry kind="output" path="bin"/>
    </classpath>
     
    • Agree Agree x 1