Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 3 additions & 8 deletions buildSrc/src/main/kotlin/Versions.kt
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
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"
const val JUNIT_JUPITER_ENGINE = "6.0.3"

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"
Expand All @@ -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"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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}")
Expand Down
4 changes: 2 additions & 2 deletions eternalcombat-api/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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}")
}
59 changes: 34 additions & 25 deletions eternalcombat-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -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"
Expand All @@ -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}")
Expand Down Expand Up @@ -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)
Expand All @@ -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",
Expand All @@ -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")
}
Expand Down Expand Up @@ -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())
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -92,7 +90,6 @@ public final class CombatPlugin extends JavaPlugin implements EternalCombatApi {

private RegionProvider regionProvider;

private AudienceProvider audienceProvider;
private LiteCommands<CommandSender> liteCommands;


Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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),
Expand Down Expand Up @@ -225,10 +221,6 @@ public void onDisable() {
this.liteCommands.unregister();
}

if (this.audienceProvider != null) {
this.audienceProvider.close();
}

this.fightManager.untagAll();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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("<b><gradient:#8a1212:#fc6b03>EternalCombat:</gradient></b> Reloaded EternalCombat in <color:#fce303>{TIME}ms!</color>")
.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -28,7 +28,7 @@ public <T extends OkaeriConfig> T create(Class<T> config, File file) {

YamlSnakeYamlConfigurer configurer = new YamlSnakeYamlConfigurer();
NoticeResolverRegistry noticeRegistry = NoticeResolverDefaults.createRegistry()
.registerResolver(new SoundBukkitResolver());
.registerResolver(new SoundAdventureResolver());

configFile.withConfigurer(configurer,
new SerdesCommons(),
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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: <red>{TIME}</red>")
.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<UUID> getDamagerUniqueIdFromEndCrystal(EntityDamageByEntityEvent event) {
if (event.getDamager() instanceof EnderCrystal enderCrystal) {
List<MetadataValue> metadataValues = enderCrystal.getMetadata(CRYSTAL_METADATA);
Expand All @@ -52,20 +36,16 @@ public static Optional<UUID> getDamagerUniqueIdFromEndCrystal(EntityDamageByEnti
}

public static Optional<UUID> 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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}
}
Expand Down Expand Up @@ -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);
}
}
Expand Down
Loading