diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 9215063c..dd9c2172 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -1,6 +1,6 @@ object Versions { - const val SPIGOT_API = "1.17.1-R0.1-SNAPSHOT" + const val PAPER_API = "1.19.3-R0.1-SNAPSHOT" const val JUNIT_JUPITER_API = "6.0.3" const val JUNIT_JUPITER_PARAMS = "6.0.3" @@ -8,13 +8,10 @@ object Versions { const val JETBRAINS_ANNOTATIONS = "26.1.0" - const val ETERNALCODE_COMMONS = "1.3.4" - const val MULTIFICATION = "1.2.4" + const val ETERNALCODE_COMMONS = "1.4.0-SNAPSHOT" + const val MULTIFICATION = "1.2.5-SNAPSHOT" const val PACKETS_EVENTS = "2.12.1" - const val ADVENTURE_PLATFORM_BUKKIT = "4.4.1" - const val ADVENTURE_API = "4.26.1" - const val LITE_COMMANDS = "3.10.9" const val OKAERI_CONFIGS_SERDES_COMMONS = "5.0.13" const val OKAERI_CONFIGS_SERDES_BUKKIT = "5.0.13" @@ -28,8 +25,6 @@ object Versions { const val PLACEHOLDER_API = "2.12.2" const val LANDS_API = "7.25.4" - const val PAPERLIB = "1.0.8" - const val WORLDEDIT = "3ISh7ADm" //cannot use numeric version bc of duplicated version on modrinth const val PACKETEVENTS = "2.11.1" const val WORLDGUARD = "7.0.15-beta-01" diff --git a/buildSrc/src/main/kotlin/eternalcombat-java-unit-test.gradle.kts b/buildSrc/src/main/kotlin/eternalcombat-java-unit-test.gradle.kts index ce8752ae..0ec46da2 100644 --- a/buildSrc/src/main/kotlin/eternalcombat-java-unit-test.gradle.kts +++ b/buildSrc/src/main/kotlin/eternalcombat-java-unit-test.gradle.kts @@ -3,7 +3,7 @@ plugins { } dependencies { - testImplementation("org.spigotmc:spigot-api:${Versions.SPIGOT_API}") + testImplementation("io.papermc.paper:paper-api:${Versions.PAPER_API}") testImplementation("org.junit.jupiter:junit-jupiter-api:${Versions.JUNIT_JUPITER_API}") testImplementation("org.junit.jupiter:junit-jupiter-params:${Versions.JUNIT_JUPITER_PARAMS}") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${Versions.JUNIT_JUPITER_ENGINE}") diff --git a/eternalcombat-api/build.gradle.kts b/eternalcombat-api/build.gradle.kts index b6911a26..a2c7c39e 100644 --- a/eternalcombat-api/build.gradle.kts +++ b/eternalcombat-api/build.gradle.kts @@ -6,7 +6,7 @@ plugins { } dependencies { - // Spigot api - compileOnlyApi("org.spigotmc:spigot-api:${Versions.SPIGOT_API}") + // Paper api + compileOnlyApi("io.papermc.paper:paper-api:${Versions.PAPER_API}") api("org.jetbrains:annotations:${Versions.JETBRAINS_ANNOTATIONS}") } diff --git a/eternalcombat-plugin/build.gradle.kts b/eternalcombat-plugin/build.gradle.kts index 3cbf3602..5afe79ac 100644 --- a/eternalcombat-plugin/build.gradle.kts +++ b/eternalcombat-plugin/build.gradle.kts @@ -1,12 +1,13 @@ -import net.minecrell.pluginyml.bukkit.BukkitPluginDescription import io.papermc.hangarpublishplugin.model.Platforms +import net.minecrell.pluginyml.bukkit.BukkitPluginDescription +import net.minecrell.pluginyml.paper.PaperPluginDescription import org.gradle.kotlin.dsl.shadowJar plugins { `eternalcombat-java` `eternalcombat-repositories` - id("net.minecrell.plugin-yml.bukkit") + id("de.eldoria.plugin-yml.paper") version "0.9.0" id("com.gradleup.shadow") id("xyz.jpenilla.run-paper") id("com.modrinth.minotaur") version "2.9.0" @@ -27,14 +28,8 @@ configurations.all { dependencies { implementation(project(":eternalcombat-api")) - // kyori - implementation("net.kyori:adventure-platform-bukkit:${Versions.ADVENTURE_PLATFORM_BUKKIT}") - implementation("net.kyori:adventure-text-minimessage:${Versions.ADVENTURE_API}") - implementation("net.kyori:adventure-api") { - version { - strictly(Versions.ADVENTURE_API) - } - } + // Paper + compileOnly("io.papermc.paper:paper-api:${Versions.PAPER_API}") // litecommands implementation("dev.rollczi:litecommands-bukkit:${Versions.LITE_COMMANDS}") @@ -69,32 +64,46 @@ dependencies { compileOnly("com.github.angeschossen:LandsAPI:${Versions.LANDS_API}") // Multification - implementation("com.eternalcode:multification-bukkit:${Versions.MULTIFICATION}") + implementation("com.eternalcode:multification-paper:${Versions.MULTIFICATION}") implementation("com.eternalcode:multification-okaeri:${Versions.MULTIFICATION}") compileOnly("com.github.retrooper:packetevents-spigot:${Versions.PACKETS_EVENTS}") - implementation("io.papermc:paperlib:${Versions.PAPERLIB}") } -bukkit { +paper { main = "com.eternalcode.combat.CombatPlugin" - author = "EternalCodeTeam" - apiVersion = "1.13" + authors = listOf("EternalCodeTeam") + apiVersion = "1.19" prefix = "EternalCombat" name = "EternalCombat" + generateLibrariesJson = true load = BukkitPluginDescription.PluginLoadOrder.POSTWORLD - softDepend = listOf( - "Lands", - "WorldGuard" - ) - depend = listOf( - "packetevents", - ) version = "${project.version}" foliaSupported = true + + serverDependencies { + register("packetevents") { + required = true + load = PaperPluginDescription.RelativeLoadOrder.BEFORE + } + + register("Lands") { + required = false + load = PaperPluginDescription.RelativeLoadOrder.BEFORE + } + + register("WorldGuard") { + required = false + load = PaperPluginDescription.RelativeLoadOrder.BEFORE + } + } } tasks { + named("generatePaperPluginDescription") { + notCompatibleWithConfigurationCache("The plugin-yml paper generator reads Task.project during execution.") + } + runServer { minecraftVersion("1.21.11") downloadPlugins.modrinth("WorldEdit", Versions.WORLDEDIT) @@ -115,12 +124,12 @@ tasks.shadowJar { "javax/**", "org/checkerframework/**", "com/google/errorprone/**", + "com/google/gson/**" ) val prefix = "com.eternalcode.combat.libs" listOf( "eu.okaeri", - "net.kyori", "org.bstats", "org.yaml", "dev.rollczi.litecommands", @@ -130,7 +139,7 @@ tasks.shadowJar { "com.eternalcode.commons", "com.eternalcode.multification", "com.github.cryptomorin", - "io.papermc.lib", + "com.cryptomorin", ).forEach { pack -> relocate(pack, "$prefix.$pack") } @@ -166,7 +175,7 @@ modrinth { versionType.set(if (isRelease) "release" else "beta") uploadFile.set(tasks.shadowJar) gameVersions.addAll(paperVersions) - loaders.addAll(listOf("paper", "spigot", "folia", "purpur")) + loaders.addAll(listOf("paper", "folia", "purpur")) changelog.set(changelogText) syncBodyFrom.set(rootProject.file("README.md").readText()) } diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/CombatPlugin.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/CombatPlugin.java index 48874171..720ea416 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/CombatPlugin.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/CombatPlugin.java @@ -63,8 +63,6 @@ import dev.rollczi.litecommands.bukkit.LiteBukkitMessages; import dev.rollczi.litecommands.folia.FoliaExtension; import java.time.Duration; -import net.kyori.adventure.platform.AudienceProvider; -import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.text.minimessage.MiniMessage; import org.bstats.bukkit.Metrics; import org.bukkit.Server; @@ -92,7 +90,6 @@ public final class CombatPlugin extends JavaPlugin implements EternalCombatApi { private RegionProvider regionProvider; - private AudienceProvider audienceProvider; private LiteCommands liteCommands; @@ -122,13 +119,12 @@ public void onEnable() { UpdaterService updaterService = new UpdaterService(this.getDescription()); - this.audienceProvider = BukkitAudiences.create(this); MiniMessage miniMessage = MiniMessage.builder() .postProcessor(new AdventureLegacyColorPostProcessor()) .preProcessor(new AdventureLegacyColorPreProcessor()) .build(); - NoticeService noticeService = new NoticeService(this.audienceProvider, pluginConfig, miniMessage); + NoticeService noticeService = new NoticeService(pluginConfig, miniMessage); BridgeService bridgeService = new BridgeService( pluginConfig, @@ -185,7 +181,7 @@ public void onEnable() { new FightPearlController(pluginConfig.pearl, noticeService, this.fightManager, this.fightPearlService), new DeathFlareController(pluginConfig, server, scheduler, this), new DeathLightningController(pluginConfig, server), - new UpdaterNotificationController(updaterService, pluginConfig, this.audienceProvider, miniMessage), + new UpdaterNotificationController(updaterService, pluginConfig, miniMessage), new KnockbackRegionController(noticeService, this.regionProvider, this.fightManager, knockbackService, server), new FightEffectController(pluginConfig.effect, this.fightEffectService, this.fightManager, server), new FightTagOutController(this.fightTagOutService), @@ -225,10 +221,6 @@ public void onDisable() { this.liteCommands.unregister(); } - if (this.audienceProvider != null) { - this.audienceProvider.close(); - } - this.fightManager.untagAll(); } diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/EternalCombatReloadCommand.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/EternalCombatReloadCommand.java index 9bcf62d0..7b2393e3 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/EternalCombatReloadCommand.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/EternalCombatReloadCommand.java @@ -2,7 +2,6 @@ import com.eternalcode.combat.config.ConfigService; import com.eternalcode.combat.notification.NoticeService; -import com.eternalcode.multification.bukkit.notice.BukkitNotice; import com.eternalcode.multification.notice.Notice; import com.google.common.base.Stopwatch; import dev.rollczi.litecommands.annotations.async.Async; @@ -16,7 +15,7 @@ @Command(name = "combatlog", aliases = "combat") public class EternalCombatReloadCommand { - private static final Notice RELOAD_MESSAGE = BukkitNotice.builder() + private static final Notice RELOAD_MESSAGE = Notice.builder() .chat("EternalCombat: Reloaded EternalCombat in {TIME}ms!") .build(); diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/border/animation/block/ChunkCache.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/border/animation/block/ChunkCache.java index b8f099c6..1b2cc8c4 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/border/animation/block/ChunkCache.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/border/animation/block/ChunkCache.java @@ -2,7 +2,6 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import io.papermc.lib.PaperLib; import org.bukkit.ChunkSnapshot; import org.bukkit.entity.Player; @@ -22,7 +21,7 @@ public ChunkSnapshot loadSnapshot(Player player, ChunkLocation location) { return snapshot; } - ChunkSnapshot chunkSnapshot = PaperLib.getChunkAtAsync(player.getWorld(), location.x(), location.z(), false) + ChunkSnapshot chunkSnapshot = player.getWorld().getChunkAtAsync(location.x(), location.z(), false) .thenApply(chunk -> chunk.getChunkSnapshot()) .join(); diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/ConfigService.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/ConfigService.java index 4ef3edf2..b1d377f9 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/ConfigService.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/ConfigService.java @@ -3,9 +3,9 @@ import com.eternalcode.combat.border.animation.block.BlockTypeTransformer; import com.eternalcode.combat.border.animation.particle.ParticleColorTransformer; import com.eternalcode.combat.border.animation.particle.ParticleTypeTransformer; -import com.eternalcode.multification.bukkit.notice.resolver.sound.SoundBukkitResolver; import com.eternalcode.multification.notice.resolver.NoticeResolverDefaults; import com.eternalcode.multification.notice.resolver.NoticeResolverRegistry; +import com.eternalcode.multification.notice.resolver.sound.SoundAdventureResolver; import com.eternalcode.multification.okaeri.MultificationSerdesPack; import eu.okaeri.configs.ConfigManager; import eu.okaeri.configs.OkaeriConfig; @@ -28,7 +28,7 @@ public T create(Class config, File file) { YamlSnakeYamlConfigurer configurer = new YamlSnakeYamlConfigurer(); NoticeResolverRegistry noticeRegistry = NoticeResolverDefaults.createRegistry() - .registerResolver(new SoundBukkitResolver()); + .registerResolver(new SoundAdventureResolver()); configFile.withConfigurer(configurer, new SerdesCommons(), diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/implementation/MessagesSettings.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/implementation/MessagesSettings.java index d7a8849a..d4434017 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/implementation/MessagesSettings.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/implementation/MessagesSettings.java @@ -1,6 +1,5 @@ package com.eternalcode.combat.config.implementation; -import com.eternalcode.multification.bukkit.notice.BukkitNotice; import com.eternalcode.multification.notice.Notice; import eu.okaeri.configs.OkaeriConfig; import eu.okaeri.configs.annotation.Comment; @@ -19,7 +18,7 @@ public class MessagesSettings extends OkaeriConfig { "# You can use the {TIME} variable to display the remaining combat time.", " ", }) - public Notice combatNotification = BukkitNotice.builder() + public Notice combatNotification = Notice.builder() .actionBar("Combat ends in: {TIME}") .build(); diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/crystalpvp/CrystalPvpConstants.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/crystalpvp/CrystalPvpConstants.java index b1c82e37..b60ea813 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/crystalpvp/CrystalPvpConstants.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/crystalpvp/CrystalPvpConstants.java @@ -3,12 +3,11 @@ import com.eternalcode.combat.config.implementation.PluginConfig; import com.eternalcode.combat.fight.FightManager; import com.eternalcode.combat.fight.event.CauseOfTag; -import com.eternalcode.combat.util.ReflectUtil; import java.util.List; import java.util.Optional; import java.util.UUID; import org.bukkit.Material; -import org.bukkit.block.BlockState; +import org.bukkit.block.Block; import org.bukkit.entity.EnderCrystal; import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityDamageByBlockEvent; @@ -23,21 +22,6 @@ private CrystalPvpConstants() { public static final String CRYSTAL_METADATA = "eternalcombat:crystal"; public static final String ANCHOR_METADATA = "eternalcombat:anchor"; - private static final boolean HAS_DAMAGER_BLOCK_STATE = checkForDamagerBlockState(); - - private static boolean checkForDamagerBlockState() { - try { - return EntityDamageByBlockEvent.class.getDeclaredMethod("getDamagerBlockState") != null; - } - catch (NoSuchMethodException exception) { - return false; - } - } - - static boolean hasDamagerBlockState() { - return HAS_DAMAGER_BLOCK_STATE; - } - public static Optional getDamagerUniqueIdFromEndCrystal(EntityDamageByEntityEvent event) { if (event.getDamager() instanceof EnderCrystal enderCrystal) { List metadataValues = enderCrystal.getMetadata(CRYSTAL_METADATA); @@ -52,20 +36,16 @@ public static Optional getDamagerUniqueIdFromEndCrystal(EntityDamageByEnti } public static Optional getDamagerUniqueIdFromRespawnAnchor(EntityDamageByBlockEvent event) { - if (!CrystalPvpConstants.hasDamagerBlockState()) { + Block damager = event.getDamager(); + if (damager == null) { return Optional.empty(); } - Object maybeState = ReflectUtil.invokeMethod(event, "getDamagerBlockState"); - if (!(maybeState instanceof BlockState state)) { - return Optional.empty(); - } - Material type = state.getType(); - if (!type.equals(Material.RESPAWN_ANCHOR)) { + if (damager.getType() != Material.RESPAWN_ANCHOR) { return Optional.empty(); } - return state.getMetadata(ANCHOR_METADATA).stream() + return damager.getMetadata(ANCHOR_METADATA).stream() .filter(source -> source instanceof CrystalMetadata) .map(meta -> (CrystalMetadata) meta) .findFirst() diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/effect/FightEffectController.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/effect/FightEffectController.java index 5cc10ac9..438fb85e 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/effect/FightEffectController.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/effect/FightEffectController.java @@ -4,7 +4,6 @@ import com.eternalcode.combat.fight.event.CauseOfUnTag; import com.eternalcode.combat.fight.event.FightTagEvent; import com.eternalcode.combat.fight.event.FightUntagEvent; -import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -50,9 +49,11 @@ public void onQuit(FightUntagEvent event) { } if (event.getCause() == CauseOfUnTag.LOGOUT) { - Player player = Bukkit.getPlayer(event.getPlayer()); + Player player = this.server.getPlayer(event.getPlayer()); + if (player == null) { + return; + } - assert player != null; this.effectService.clearStoredEffects(player); } } @@ -80,9 +81,11 @@ public void onDeath(FightUntagEvent event) { return; } if (event.getCause() == CauseOfUnTag.DEATH_BY_PLAYER || event.getCause() == CauseOfUnTag.DEATH) { - Player player = Bukkit.getPlayer(event.getPlayer()); + Player player = this.server.getPlayer(event.getPlayer()); + if (player == null) { + return; + } - assert player != null; this.effectService.clearStoredEffects(player); } } diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/knockback/KnockbackService.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/knockback/KnockbackService.java index bae8afab..a1ac3f39 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/knockback/KnockbackService.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/knockback/KnockbackService.java @@ -5,7 +5,6 @@ import com.eternalcode.combat.region.Region; import com.eternalcode.combat.region.RegionProvider; import com.eternalcode.commons.bukkit.scheduler.MinecraftScheduler; -import io.papermc.lib.PaperLib; import java.time.Duration; import java.util.HashMap; import java.util.Map; @@ -55,7 +54,7 @@ public void forceKnockbackLater(Player player, Region region) { Location location = generate(playerLocation, Point2D.from(region.getMin()), Point2D.from(region.getMax())); - PaperLib.teleportAsync(player, location, TeleportCause.PLUGIN); + player.teleportAsync(location, TeleportCause.PLUGIN); }, this.config.knockback.forceDelay); } diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/pearl/FightPearlSettings.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/pearl/FightPearlSettings.java index 4cb29803..d423f495 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/pearl/FightPearlSettings.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/pearl/FightPearlSettings.java @@ -1,6 +1,5 @@ package com.eternalcode.combat.fight.pearl; -import com.eternalcode.multification.bukkit.notice.BukkitNotice; import com.eternalcode.multification.notice.Notice; import eu.okaeri.configs.OkaeriConfig; import eu.okaeri.configs.annotation.Comment; @@ -28,12 +27,12 @@ public class FightPearlSettings extends OkaeriConfig { public Duration pearlThrowDelay = Duration.ofSeconds(3); @Comment("# Message sent when player tries to throw ender pearl, but are disabled") - public Notice pearlThrowBlockedDuringCombat = BukkitNotice.builder() + public Notice pearlThrowBlockedDuringCombat = Notice.builder() .chat("Throwing ender pearls is prohibited during combat!") .build(); @Comment("# Message sent when player tries to throw ender pearl, but has delay") - public Notice pearlThrowBlockedDelayDuringCombat = BukkitNotice.builder() + public Notice pearlThrowBlockedDelayDuringCombat = Notice.builder() .chat("You must wait {TIME} before next throw!") .build(); diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/notification/NoticeService.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/notification/NoticeService.java index 2ada96b8..3bbed108 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/notification/NoticeService.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/notification/NoticeService.java @@ -2,24 +2,20 @@ import com.eternalcode.combat.config.implementation.PluginConfig; import com.eternalcode.multification.adventure.AudienceConverter; -import com.eternalcode.multification.bukkit.BukkitMultification; +import com.eternalcode.multification.paper.PaperMultification; import com.eternalcode.multification.translation.TranslationProvider; -import net.kyori.adventure.platform.AudienceProvider; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.serializer.ComponentSerializer; import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; -public final class NoticeService extends BukkitMultification { +public final class NoticeService extends PaperMultification { - private final AudienceProvider audienceProvider; private final PluginConfig pluginConfig; private final MiniMessage miniMessage; - public NoticeService(AudienceProvider audienceProvider, PluginConfig pluginConfig, MiniMessage miniMessage) { - this.audienceProvider = audienceProvider; + public NoticeService(PluginConfig pluginConfig, MiniMessage miniMessage) { this.pluginConfig = pluginConfig; this.miniMessage = miniMessage; } @@ -36,13 +32,7 @@ public NoticeService(AudienceProvider audienceProvider, PluginConfig pluginConfi @Override protected @NotNull AudienceConverter audienceConverter() { - return commandSender -> { - if (commandSender instanceof Player player) { - return this.audienceProvider.player(player.getUniqueId()); - } - - return this.audienceProvider.console(); - }; + return commandSender -> commandSender; } } diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/updater/UpdaterNotificationController.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/updater/UpdaterNotificationController.java index 4c0c770b..65c28744 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/updater/UpdaterNotificationController.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/updater/UpdaterNotificationController.java @@ -2,8 +2,6 @@ import com.eternalcode.combat.config.implementation.PluginConfig; import com.eternalcode.commons.concurrent.FutureHandler; -import net.kyori.adventure.audience.Audience; -import net.kyori.adventure.platform.AudienceProvider; import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -16,20 +14,17 @@ public class UpdaterNotificationController implements Listener { private final UpdaterService updaterService; private final PluginConfig pluginConfig; - private final AudienceProvider audienceProvider; private final MiniMessage miniMessage; - public UpdaterNotificationController(UpdaterService updaterService, PluginConfig pluginConfig, AudienceProvider audienceProvider, MiniMessage miniMessage) { + public UpdaterNotificationController(UpdaterService updaterService, PluginConfig pluginConfig, MiniMessage miniMessage) { this.updaterService = updaterService; this.pluginConfig = pluginConfig; - this.audienceProvider = audienceProvider; this.miniMessage = miniMessage; } @EventHandler void onJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); - Audience audience = this.audienceProvider.player(player.getUniqueId()); if (!shouldNotify(player)) { return; @@ -38,7 +33,7 @@ void onJoin(PlayerJoinEvent event) { this.updaterService.checkForUpdate() .thenAccept(result -> { if (result.isUpdateAvailable()) { - audience.sendMessage(this.miniMessage.deserialize(NEW_VERSION_AVAILABLE)); + player.sendMessage(this.miniMessage.deserialize(NEW_VERSION_AVAILABLE)); } }) .exceptionally(FutureHandler::handleException); diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/util/ReflectUtil.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/util/ReflectUtil.java deleted file mode 100644 index 1d963087..00000000 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/util/ReflectUtil.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.eternalcode.combat.util; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -public final class ReflectUtil { - - private ReflectUtil() { - } - - @SuppressWarnings("unchecked") - public static T invokeMethod(Object object, String name) { - try { - if (object == null) { - return null; - } - - Method method = object.getClass().getDeclaredMethod(name); - method.setAccessible(true); - return (T) method.invoke(object); - } - catch (InvocationTargetException | NoSuchMethodException | IllegalAccessException exception) { - throw new RuntimeException(exception); - } - } - -} diff --git a/gradle.properties b/gradle.properties index 74ab9c9b..415a9938 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,4 +4,4 @@ org.gradle.configuration-cache=true org.gradle.configuration-cache.parallel=true # Platforms -paperVersion=1.17,1.17.1,1.18,1.18.1,1.18.2,1.19,1.19.1,1.19.2,1.19.3,1.19.4,1.20,1.20.1,1.20.2,1.20.3,1.20.4,1.20.5,1.20.6,1.21,1.21.1,1.21.2,1.21.3,1.21.4,1.21.5,1.21.6,1.21.7,1.21.8,1.21.9,1.21.10,1.21.11 +paperVersion=1.19.3,1.19.4,1.20,1.20.1,1.20.2,1.20.4,1.20.5,1.20.6,1.21,1.21.1,1.21.3,1.21.4,1.21.5,1.21.6,1.21.7,1.21.8,1.21.9,1.21.10,1.21.11,26.1.1,26.1.2