diff --git a/.gitignore b/.gitignore index f239bef..b8be6c7 100644 --- a/.gitignore +++ b/.gitignore @@ -119,4 +119,7 @@ run/ /libs -lombok.config \ No newline at end of file +lombok.config + +# temp files +/tmp \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 133f6a4..b3a8d8c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,9 +1,9 @@ plugins { `java-library` - id("io.github.goooler.shadow") version "8.1.7" + id("com.gradleup.shadow") version "8.3.9" id("io.freefair.lombok") version "8.6" id("net.minecrell.plugin-yml.bukkit") version "0.6.0" - id("io.papermc.paperweight.userdev") version "1.7.1" apply false + id("io.papermc.paperweight.userdev") version "2.0.0-beta.18" apply false } bukkit { @@ -66,7 +66,10 @@ dependencies { api(project(":nms:versions:20_1", "reobf")) api(project(":nms:versions:20_2", "reobf")) api(project(":nms:versions:20_3", "reobf")) - api(project(":nms:versions:20_5", "reobf")) - api(project(":nms:versions:21", "reobf")) - api(project(":nms:versions:21_2", "reobf")) + api(project(":nms:versions:20_5")) + api(project(":nms:versions:21")) + api(project(":nms:versions:21_2")) + api(project(":nms:versions:21_3")) + api(project(":nms:versions:21_4")) + api(project(":nms:versions:21_5")) } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0d18421..63e0e83 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/nms/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/JukeboxFactory.java b/nms/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/JukeboxFactory.java index ca7309e..c7dedf8 100644 --- a/nms/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/JukeboxFactory.java +++ b/nms/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/JukeboxFactory.java @@ -24,8 +24,19 @@ public class JukeboxFactory { case "1.21.3": className = START_PATH + "V21_2"; break; + case "1.21.4": + className = START_PATH + "V21_3"; + break; + case "1.21.5": + className = START_PATH + "V21_4"; + break; + case "1.21.6": + case "1.21.7": + case "1.21.8": + case "1.21.9": + case "1.21.10": default: - className = null; + className = START_PATH + "V21_5"; break; } } else if (iV == 20) { diff --git a/nms/versions/20_5/build.gradle.kts b/nms/versions/20_5/build.gradle.kts index d649fda..07ad1ee 100644 --- a/nms/versions/20_5/build.gradle.kts +++ b/nms/versions/20_5/build.gradle.kts @@ -1,12 +1,18 @@ plugins { id("io.papermc.paperweight.userdev") } + java { toolchain.languageVersion.set(JavaLanguageVersion.of(21)) } + repositories { - maven("https://repo.minebench.de") //kiory fix + maven("https://repo.papermc.io/repository/maven-public/") + maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") } + dependencies { - paperweight.paperDevBundle("1.20.5-R0.1-SNAPSHOT") + paperweight.paperDevBundle("1.20.6-R0.1-SNAPSHOT") + + compileOnly(project(":nms:shared")) } \ No newline at end of file diff --git a/nms/versions/21_3/build.gradle.kts b/nms/versions/21_3/build.gradle.kts new file mode 100644 index 0000000..a619168 --- /dev/null +++ b/nms/versions/21_3/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("io.papermc.paperweight.userdev") +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) +} + +repositories { + maven("https://repo.papermc.io/repository/maven-public/") +} + +dependencies { + paperweight.paperDevBundle("1.21.4-R0.1-SNAPSHOT") +} + diff --git a/nms/versions/21_3/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/versions/V21_3.java b/nms/versions/21_3/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/versions/V21_3.java new file mode 100644 index 0000000..9922074 --- /dev/null +++ b/nms/versions/21_3/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/versions/V21_3.java @@ -0,0 +1,30 @@ +package ru.spliterash.musicbox.minecraft.nms.jukebox.versions; + +import net.minecraft.world.level.block.entity.JukeboxBlockEntity; +import org.bukkit.block.Jukebox; +import org.bukkit.craftbukkit.block.CraftJukebox; +import org.bukkit.craftbukkit.inventory.CraftItemStack; +import org.bukkit.inventory.ItemStack; +import ru.spliterash.musicbox.minecraft.nms.jukebox.IJukebox; + +public class V21_3 implements IJukebox { + private final JukeboxBlockEntity tileEntity; + + public V21_3(Jukebox jukebox) { + CraftJukebox craft = (CraftJukebox) jukebox; + tileEntity = craft.getTileEntity(); + } + + public void setJukebox(ItemStack item) { + net.minecraft.world.item.ItemStack converted = CraftItemStack.asNMSCopy(item); + tileEntity.setSongItemWithoutPlaying(converted, 0); + } + + public ItemStack getJukebox() { + net.minecraft.world.item.ItemStack nmsItem = tileEntity.getTheItem(); + if (nmsItem == null || nmsItem.isEmpty()) + return null; + + return CraftItemStack.asBukkitCopy(nmsItem); + } +} diff --git a/nms/versions/21_4/build.gradle.kts b/nms/versions/21_4/build.gradle.kts new file mode 100644 index 0000000..7332788 --- /dev/null +++ b/nms/versions/21_4/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("io.papermc.paperweight.userdev") +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) +} + +repositories { + maven("https://repo.papermc.io/repository/maven-public/") +} + +dependencies { + paperweight.paperDevBundle("1.21.5-R0.1-SNAPSHOT") +} + diff --git a/nms/versions/21_4/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/versions/V21_4.java b/nms/versions/21_4/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/versions/V21_4.java new file mode 100644 index 0000000..68b1347 --- /dev/null +++ b/nms/versions/21_4/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/versions/V21_4.java @@ -0,0 +1,30 @@ +package ru.spliterash.musicbox.minecraft.nms.jukebox.versions; + +import net.minecraft.world.level.block.entity.JukeboxBlockEntity; +import org.bukkit.block.Jukebox; +import org.bukkit.craftbukkit.block.CraftJukebox; +import org.bukkit.craftbukkit.inventory.CraftItemStack; +import org.bukkit.inventory.ItemStack; +import ru.spliterash.musicbox.minecraft.nms.jukebox.IJukebox; + +public class V21_4 implements IJukebox { + private final JukeboxBlockEntity tileEntity; + + public V21_4(Jukebox jukebox) { + CraftJukebox craft = (CraftJukebox) jukebox; + tileEntity = craft.getBlockEntity(); + } + + public void setJukebox(ItemStack item) { + net.minecraft.world.item.ItemStack converted = CraftItemStack.asNMSCopy(item); + tileEntity.setSongItemWithoutPlaying(converted, 0); + } + + public ItemStack getJukebox() { + net.minecraft.world.item.ItemStack nmsItem = tileEntity.getTheItem(); + if (nmsItem == null || nmsItem.isEmpty()) + return null; + + return CraftItemStack.asBukkitCopy(nmsItem); + } +} diff --git a/nms/versions/21_5/build.gradle.kts b/nms/versions/21_5/build.gradle.kts new file mode 100644 index 0000000..49837f6 --- /dev/null +++ b/nms/versions/21_5/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("io.papermc.paperweight.userdev") +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) +} + +repositories { + maven("https://repo.papermc.io/repository/maven-public/") +} + +dependencies { + paperweight.paperDevBundle("1.21.10-R0.1-SNAPSHOT") +} + diff --git a/nms/versions/21_5/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/versions/V21_5.java b/nms/versions/21_5/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/versions/V21_5.java new file mode 100644 index 0000000..a7f88f6 --- /dev/null +++ b/nms/versions/21_5/src/main/java/ru/spliterash/musicbox/minecraft/nms/jukebox/versions/V21_5.java @@ -0,0 +1,30 @@ +package ru.spliterash.musicbox.minecraft.nms.jukebox.versions; + +import net.minecraft.world.level.block.entity.JukeboxBlockEntity; +import org.bukkit.block.Jukebox; +import org.bukkit.craftbukkit.block.CraftJukebox; +import org.bukkit.craftbukkit.inventory.CraftItemStack; +import org.bukkit.inventory.ItemStack; +import ru.spliterash.musicbox.minecraft.nms.jukebox.IJukebox; + +public class V21_5 implements IJukebox { + private final JukeboxBlockEntity tileEntity; + + public V21_5(Jukebox jukebox) { + CraftJukebox craft = (CraftJukebox) jukebox; + tileEntity = craft.getBlockEntity(); + } + + public void setJukebox(ItemStack item) { + net.minecraft.world.item.ItemStack converted = CraftItemStack.asNMSCopy(item); + tileEntity.setSongItemWithoutPlaying(converted, 0); + } + + public ItemStack getJukebox() { + net.minecraft.world.item.ItemStack nmsItem = tileEntity.getTheItem(); + if (nmsItem == null || nmsItem.isEmpty()) + return null; + + return CraftItemStack.asBukkitCopy(nmsItem); + } +} diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts index 77690f4..fa3a4da 100644 --- a/plugin/build.gradle.kts +++ b/plugin/build.gradle.kts @@ -7,7 +7,7 @@ dependencies { compileOnly("com.github.MilkBowl:VaultAPI:1.7") compileOnly("com.github.koca2000:NoteBlockAPI:1.6.1") - api("com.github.cryptomorin:XSeries:11.0.0") + api("com.github.cryptomorin:XSeries:13.5.1") api("io.github.bananapuncher714:nbteditor:7.19.0") api("org.bstats:bstats-bukkit:3.0.2") diff --git a/settings.gradle b/settings.gradle index 231ae22..73012c9 100644 --- a/settings.gradle +++ b/settings.gradle @@ -14,4 +14,7 @@ include "nms:versions:20_2" include "nms:versions:20_3" include "nms:versions:20_5" include "nms:versions:21" -include "nms:versions:21_2" \ No newline at end of file +include "nms:versions:21_2" +include "nms:versions:21_3" +include "nms:versions:21_4" +include "nms:versions:21_5" \ No newline at end of file