PGM icon indicating copy to clipboard operation
PGM copied to clipboard

Support 1.19

Open Electroid opened this issue 4 years ago • 1 comments

Now that we support Spigot 1.8, we should look at supporting Spigot (or Paper?) 1.19. My hunch is just supporting 1.8 and the latest version will be easier than supporting every possible version between 1.8 and 1.19. It's possible that enough APIs have been added to 1.16 that reflection is not necessary in that version, but there may still need to be a few NMSHacks.

Part of this work will be to change the pom.xml version of Bukkit to 1.19 and change SportPaper APIs to use reflection, likely with SportPaperUtils.

Paper 1.16+ has native support for adventure, so there are several benefit/performance reasons why we may want to target Paper. (about 50% of servers use Paper according to recent stats, and it's going up)

Electroid avatar Apr 18 '21 16:04 Electroid

Here's a general checklist of things that need to be handled for pgm to support 1.19

  • [ ] figure out how we'll handle different 1.8 vs 1.19 implementations in the code
  • [ ] material changes
    • [ ] material name changes
    • [ ] material data byte values
    • [ ] block / item coloring changes
      • [ ] wool parsing and such
    • [ ] block state material stuff
    • [ ] BlockImage
    • [ ] MaterialCounter and MaterialEncoder
    • [ ] changes to Materials util interface
    • [ ] material matchers
  • [ ] block state changes
  • [ ] xml parsing
    • [ ] potion parsing / OldPotionBuilder
    • [ ] more of converting old styles to new materials
  • [ ] update PotionClassifier
  • [ ] attribute changes
  • [ ] attribute modifier changes
    • [ ] also unbreakable and similar
  • [ ] figure out lang vs lang3
    • [ ] some builders have a slightly changed api
  • [ ] sound changes
  • [ ] change scheduler / executor
  • [ ] item tags
  • [ ] banner changes
    • [ ] related to material changes
  • [ ] sending particles changes
  • [ ] change the villager merchant api
  • [ ] player head and skin handling changes
  • [ ] slight changes to water / lava handling
  • [ ] switch arrows stuck api
  • [ ] WorldProblemListener relying on NMSHacks.getBlocks
  • [ ] figure out NMSHacks.detect world usage
  • [ ] team packets, either replacement or figure out how we want to send them for 1.19
  • [ ] change player freezing
  • [ ] switch spigot / sportpaper 1.8 apis to the paper apis where applicable
  • [ ] switch away from NMSHacks where possible
  • [ ] deal with CraftItemStack usage
  • [ ] change displayName api
  • [ ] handle the TNTRenderMatchModule for 1.19
  • [ ] why did I add net.sf.trove4j and commons-io?
  • [ ] Audience changes
  • [ ] accessing getPlugin too early
  • [ ] TargetBlock vs RayBlockIntersection
  • [ ] tab display
  • [ ] locale getting
  • [ ] changes for below y=0 building

This list was built by looking at the changes in #982 This list could also use better ordering / prioritization

cswhite2000 avatar Oct 09 '22 05:10 cswhite2000