Spigot & BungeeCord 1.19

Discussion in 'News and Announcements' started by md_5, Jun 7, 2022.

  1. md_5

    Administrator Developer

    Dear All

    It is my pleasure to announce that the first builds of Spigot for Minecraft 1.19 are now available. Owing to the shorter interval between 1.18 and 1.19 this is a smaller update than many previous major releases. There is however still some work to be done, so some initial caution is advised.

    Plugin Updates
    There are no substantial breakages expected for plugins using the API this release. As always, plugins using the API should be preferred for this reason. Please review previous release notes and as a server owner / developer always consider the things you can do to increase API usage.

    Java Version

    Minecraft 1.19, as with Minecraft 1.18 requires Java 17 or later. You can install this from a third party such as Azul Zulu or your Linux package manager.

    Backups
    Please make sure you have recent and tested backups for your server before upgrading. As always it is not possible to downgrade your server to an earlier version.

    World Upgrading
    Although upgrades from between any two version pairs are technically possible, it is recommended that all upgrades are conducted from 1.18.2. This means that you should first upgrade your world completely on 1.18.2 using the --forceUpgrade server argument, and then do the same on 1.19.

    Bug Reports
    If you are reporting a bug to JIRA, please make sure that you read the guidelines and have compared the results between Vanilla & Spigot, and also the 1.18.2 versions before reporting — this speeds up the process for us immensely and ensures more bugs get fixed more quickly. Please report bugs, or issues you think might be bugs, to JIRA and not in this thread, Discord, or any place other than JIRA. Please also keep in mind that we prefer good attempts at bug reports over no reports at all.

    Developers
    Please see the below post(s).

    Downloading / Installing
    In order to get 1.19, simply run the latest BuildTools with the required arguments. Please make sure both your BuildTools and Java versions are up to date. There may be mandatory BuildTools updates throughout the 1.19 release cycle, so it is good practice to ensure that you are always using the latest version. You can download the latest BuildTools from this link.
    Code (Text):
    java -jar BuildTools.jar --rev 1.19
    If you haven't used BuildTools to create a server jar yet, it is suggested you first read the 1.8 announcement and the BuildTools Wiki.

    BungeeCord is available in the usual location: https://ci.md-5.net/job/BungeeCord/

    Closing Notes
    Each release represents the culmination of hundreds of hours of effort, so if SpigotMC has helped you in any way, shape, or form we encourage you to leave a donation, contribution, or nice message. If nothing else, at least please make sure that any bug reports you may open are polite, clear, specific, and have been tested thoroughly both without plugins and on Vanilla.

    Enjoy,
    ~Spigot Team

    PS: Join our Discord.
     
    #1 md_5, Jun 7, 2022
    Last edited: Jun 8, 2022
    • Like Like x 38
    • Friendly Friendly x 11
    • Winner Winner x 9
  2. md_5

    Administrator Developer

    Additional Notes
    Chat Authentication Features
    1.19 contains chat authentication features, facilitated through the use of a shared per-player public key. For various reasons, these features are not yet completely available on BungeeCord/Spigot. Feedback on their intended usage prior to implementation would be welcomed.

    Developer Notes

    API Additions from 1.18.x
    Some exciting API have been added between 1.18 and 1.18.2. These include:
    Thank you to the contributors of these API, and of course all Spigot contributors. We hope you will find these APIs useful and encourage you to try them out. As always, if you have an idea for an API please let us know, or have a go at implementing them yourself for the benefit of all Spigot users.

    API Changes for 1.19
    You can view a complete summary of the API changes between 1.18.2 and 1.19.x at this link. There are no intentional API breakages but do note that there may be slight unavoidable changes.

    We have also reserved one of the below posts to keep you updated about new additions and changes made early on in the release period (before 1.19 becomes the default version).

    Planned Removal of commons-lang
    As foreshadowed with the 1.18 release, commons-lang has now been removed from the API. Plugins will not yet be broken as it is still included with the server, however it will eventually be removed in a future release. Please consider switching to Google Guava (which is a supported bundled API) or using your own copy of the much more recent commons-lang3.

    Bootstrap Jar
    As with 1.18.x, the main spigot-1.19.jar is now a bootstrap jar which contains all libraries. You cannot directly depend on this jar. You should depend on Spigot/Spigot-API/target/spigot-api-1.19-R0.1-SNAPSHOT-shaded.jar (download), or the entire contents of the bundler directory from your server, or use a dependency manager such as Maven or Gradle to handle this automatically.

    Future API
    There are plans underway to change the way many enums in the API are handled so that custom content can be better supported. These changes are not expected to break most plugin jars (backwards compatibility will be provided), however they may unavoidably break plugin source code (though the Maven version will be bumped if this occurs). To reduce the risk of breakage, please consider avoiding the use of switch statements and EnumSet over enums which implement 'Keyed'.

    NMS
    Please refer to the 1.17 post for information about NMS — it is still current. As always, but especially now, please try and avoid/limit NMS usage at all costs. If you must use NMS please ensure you check the value of CraftMagicNumbers.INSTANCE.getMappingsVersion() is what you expect before loading your plugin and note that development against a 'Mojang Mapped' jar is now preferred as only classes remain 'Spigot Mapped' (see 1.17 post). For your convenience the examples have been updated and posted below.

    Example Dependency Config
    Code (Text):
    <dependency>
        <groupId>org.spigotmc</groupId>
        <artifactId>spigot</artifactId>
        <version>1.19-R0.1-SNAPSHOT</version>
        <classifier>remapped-mojang</classifier>
        <scope>provided</scope>
    </dependency>
    Example Maven Config
    Code (Text):
    <plugin>
        <groupId>net.md-5</groupId>
        <artifactId>specialsource-maven-plugin</artifactId>
        <version>1.2.4</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>remap</goal>
                </goals>
                <id>remap-obf</id>
                <configuration>
                    <srgIn>org.spigotmc:minecraft-server:1.19-R0.1-SNAPSHOT:txt:maps-mojang</srgIn>
                    <reverse>true</reverse>
                    <remappedDependencies>org.spigotmc:spigot:1.19-R0.1-SNAPSHOT:jar:remapped-mojang</remappedDependencies>
                    <remappedArtifactAttached>true</remappedArtifactAttached>
                    <remappedClassifierName>remapped-obf</remappedClassifierName>
                </configuration>
            </execution>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>remap</goal>
                </goals>
                <id>remap-spigot</id>
                <configuration>
                    <inputFile>${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar</inputFile>
                    <srgIn>org.spigotmc:minecraft-server:1.19-R0.1-SNAPSHOT:csrg:maps-spigot</srgIn>
                    <remappedDependencies>org.spigotmc:spigot:1.19-R0.1-SNAPSHOT:jar:remapped-obf</remappedDependencies>
                </configuration>
            </execution>
        </executions>
    </plugin>
    Example Manual Commands
    Code (Text):
    java -cp $HOME/.m2/repository/net/md-5/SpecialSource/1.11.0/SpecialSource-1.11.0-shaded.jar:$HOME/.m2/repository/org/spigotmc/spigot/1.19-R0.1-SNAPSHOT/spigot-1.19-R0.1-SNAPSHOT-remapped-mojang.jar net.md_5.specialsource.SpecialSource --live -i $PLUGIN.jar -o $PLUGIN-obf.jar -m $HOME/.m2/repository/org/spigotmc/minecraft-server/1.19-R0.1-SNAPSHOT/minecraft-server-1.19-R0.1-SNAPSHOT-maps-mojang.txt --reverse
    java -cp $HOME/.m2/repository/net/md-5/SpecialSource/1.11.0/SpecialSource-1.11.0-shaded.jar:$HOME/.m2/repository/org/spigotmc/spigot/1.19-R0.1-SNAPSHOT/spigot-1.19-R0.1-SNAPSHOT-remapped-obf.jar net.md_5.specialsource.SpecialSource --live -i $PLUGIN-obf.jar -o $PLUGIN.jar -m $HOME/.m2/repository/org/spigotmc/minecraft-server/1.19-R0.1-SNAPSHOT/minecraft-server-1.19-R0.1-SNAPSHOT-maps-spigot.csrg
    Your $PLUGIN.jar is then ready for distribution. $HOME refers to your user directory (C:\Users\<name> on Windows).
     
    • Like Like x 16
    • Winner Winner x 5
    • Friendly Friendly x 2
  3. md_5

    Administrator Developer

    Recently Added APIs / Changes

    Forthcoming APIs
     
    • Like Like x 2
    • Friendly Friendly x 1
    • Useful Useful x 1
  4. nice
     
    • Like Like x 1
    • Agree Agree x 1
  5. oh nice the new spigot 1.19 nft is out
     
    • Funny x 7
    • Like x 1
    • Friendly x 1
    • Useful x 1
    • Optimistic x 1
  6. AYO THAT WAS TOO QUICK
     
    • Agree Agree x 1
    • Friendly Friendly x 1
  7. Nice :)
     
    • Friendly Friendly x 1
  8. Gianluca

    Gianluca Retired Resource Staff
    Retired Patron

    Appreciate all the hard work you do <3
     
    • Friendly Friendly x 2
  9. The speed is pretty insane, nice job
     
  10. Shell scripts updated, and building time.. here we go, nice and swift md_5, tnx.
     
    • Friendly Friendly x 2
  11. Thanks you for all your work !
     
    • Friendly Friendly x 1
  12. Awesome! Keep it up!
     
  13. Thank you for your hard work as always!
     
    • Friendly Friendly x 2
  14. nice
     
    • Friendly Friendly x 1
  15. Nice thanks for the updates!
     
    • Friendly Friendly x 1
  16. Amazing job as always!
    Great work!
     
    • Friendly Friendly x 2
  17. can't image spigot 1.19 is out so quick, guessing mojang could really called this version: Caves & Cliffs: Part III
     
    • Funny Funny x 1
    • Friendly Friendly x 1