Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
b5d1c21
Implement basic of paycheck management system with admin commands and…
Qbiterv Oct 11, 2025
2ec3945
Enhance paycheck system: add price argument resolver, improve paychec…
Qbiterv Oct 12, 2025
57297af
Refactor paycheck system to withdraw system: rename classes and updat…
Qbiterv Oct 12, 2025
a6c2134
Refactor withdraw system: rename classes, update dependencies, and im…
Qbiterv Oct 13, 2025
632c26b
Refactor withdraw system: update message handling, improve price argu…
Qbiterv Oct 13, 2025
dc22d8b
Refactor withdraw system: update plugin metadata handling, adjust ite…
Qbiterv Oct 13, 2025
de005b7
Fix price validation logic in PriceArgumentResolver: update threshold…
Qbiterv Oct 13, 2025
e84550c
Refactor command argument handling: update amount argument to use Pri…
Qbiterv Oct 13, 2025
e558053
Refactor AdminSetCommand: improve method parameter formatting for bet…
Qbiterv Oct 13, 2025
292a847
Refactor WithdrawItemService: ensure default item type is set to PAPE…
Qbiterv Oct 13, 2025
2aba885
Implement WithdrawItemService interface and create WithdrawItemServic…
Qbiterv Oct 15, 2025
40bf52c
Refactor PluginConfig and command classes: replace ItemStack with Con…
Qbiterv Oct 15, 2025
94d83d2
Refactor WithdrawService: update texture assignment to handle absence…
Qbiterv Oct 15, 2025
55aa9b6
Refactor command argument handling: replace PriceArgumentResolver wit…
Qbiterv Oct 17, 2025
df22aa5
Refactor message formatting: streamline chat notices for improved rea…
Qbiterv Oct 18, 2025
4b312cd
Review. Use proper paper-api loader, fix multiple bug's.
vLuckyyy Nov 4, 2025
43aed79
Fix tabulation. Remove useless changes.
vLuckyyy Nov 4, 2025
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
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/Versions.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
object Versions {

const val SPIGOT_API = "1.19.4-R0.1-SNAPSHOT"
const val PAPER_API = "1.20.4-R0.1-SNAPSHOT"

const val OKAERI_CONFIGS = "5.0.5"
const val LITE_COMMANDS = "3.10.5"
Expand Down
4 changes: 2 additions & 2 deletions buildSrc/src/main/kotlin/economy-repositories.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ plugins {
}

repositories {
mavenCentral()
maven("https://maven-central.storage-download.googleapis.com/maven2")
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
maven("https://repo.papermc.io/repository/maven-public/")
maven("https://repo.panda-lang.org/releases/")
Expand All @@ -13,4 +13,4 @@ repositories {
maven("https://jitpack.io")
maven("https://repo.extendedclip.com/content/repositories/placeholderapi/")
maven("https://s01.oss.sonatype.org/content/repositories/snapshots/")
}
}
3 changes: 1 addition & 2 deletions eternaleconomy-api/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
plugins {
`economy-java`
`economy-repositories`
// `economy-checkstyle`
`economy-publish`
}

dependencies {
compileOnly("org.spigotmc:spigot-api:${Versions.SPIGOT_API}")
compileOnly("io.papermc.paper:paper-api:${Versions.PAPER_API}")
api("org.jetbrains:annotations:${Versions.JETBRAINS_ANNOTATIONS}")
}

96 changes: 55 additions & 41 deletions eternaleconomy-core/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,54 +1,61 @@
import net.minecrell.pluginyml.bukkit.BukkitPluginDescription
import net.minecrell.pluginyml.paper.PaperPluginDescription

plugins {
`economy-java`
`economy-repositories`
// `economy-checkstyle`

id("net.minecrell.plugin-yml.bukkit")
id("net.minecrell.plugin-yml.paper")
id("com.gradleup.shadow")
id("xyz.jpenilla.run-paper")
id("me.champeau.jmh")
}


repositories {
maven {
name = "papermc"
url = uri("https://repo.papermc.io/repository/maven-public/")
}
}

dependencies {
// api module
implementation(project(":eternaleconomy-api"))

// spigot-api
compileOnly("org.spigotmc:spigot-api:${Versions.SPIGOT_API}")
// paper-api
compileOnly("io.papermc.paper:paper-api:${Versions.PAPER_API}")

// eternalcode commons
implementation("com.eternalcode:eternalcode-commons-adventure:${Versions.ETERNALCODE_COMMONS}")
implementation("com.eternalcode:eternalcode-commons-bukkit:${Versions.ETERNALCODE_COMMONS}")
implementation("com.eternalcode:eternalcode-commons-shared:${Versions.ETERNALCODE_COMMONS}")
implementation("com.eternalcode:eternalcode-commons-folia:${Versions.ETERNALCODE_COMMONS}")

bukkitLibrary("org.mariadb.jdbc:mariadb-java-client:${Versions.MARIA_DB}")
bukkitLibrary("org.postgresql:postgresql:${Versions.POSTGRESQL}")
bukkitLibrary("com.h2database:h2:${Versions.H2}")
bukkitLibrary("com.j256.ormlite:ormlite-core:${Versions.ORMLITE}")
bukkitLibrary("com.j256.ormlite:ormlite-jdbc:${Versions.ORMLITE}")
bukkitLibrary("com.zaxxer:HikariCP:${Versions.HIKARI_CP}")

implementation("dev.rollczi:litecommands-bukkit:${Versions.LITE_COMMANDS}")
implementation("dev.rollczi:litecommands-adventure:${Versions.LITE_COMMANDS}")
implementation("dev.rollczi:litecommands-jakarta:${Versions.LITE_COMMANDS}")
paperLibrary("com.eternalcode:eternalcode-commons-adventure:${Versions.ETERNALCODE_COMMONS}")
paperLibrary("com.eternalcode:eternalcode-commons-bukkit:${Versions.ETERNALCODE_COMMONS}")
paperLibrary("com.eternalcode:eternalcode-commons-shared:${Versions.ETERNALCODE_COMMONS}")
paperLibrary("com.eternalcode:eternalcode-commons-folia:${Versions.ETERNALCODE_COMMONS}")

paperLibrary("org.mariadb.jdbc:mariadb-java-client:${Versions.MARIA_DB}")
paperLibrary("org.postgresql:postgresql:${Versions.POSTGRESQL}")
paperLibrary("com.h2database:h2:${Versions.H2}")
paperLibrary("com.j256.ormlite:ormlite-core:${Versions.ORMLITE}")
paperLibrary("com.j256.ormlite:ormlite-jdbc:${Versions.ORMLITE}")
paperLibrary("com.zaxxer:HikariCP:${Versions.HIKARI_CP}")

paperLibrary("dev.rollczi:litecommands-bukkit:${Versions.LITE_COMMANDS}")
paperLibrary("dev.rollczi:litecommands-adventure:${Versions.LITE_COMMANDS}")
paperLibrary("dev.rollczi:litecommands-jakarta:${Versions.LITE_COMMANDS}")

// multification
implementation("com.eternalcode:multification-bukkit:${Versions.MULTIFICATION}")
implementation("com.eternalcode:multification-okaeri:${Versions.MULTIFICATION}")

// kyori
implementation("net.kyori:adventure-platform-bukkit:${Versions.ADVENTURE_PLATFORM_BUKKIT}")
implementation("net.kyori:adventure-text-minimessage:${Versions.ADVENTURE_API}")
paperLibrary("com.eternalcode:multification-bukkit:${Versions.MULTIFICATION}")
paperLibrary("com.eternalcode:multification-okaeri:${Versions.MULTIFICATION}")

// vault
compileOnly("com.github.MilkBowl:VaultAPI:${Versions.VAULT_API}")

// okaeri configs
implementation("eu.okaeri:okaeri-configs-yaml-snakeyaml:${Versions.OKAERI_CONFIGS}")
implementation("eu.okaeri:okaeri-configs-serdes-commons:${Versions.OKAERI_CONFIGS}")
paperLibrary("eu.okaeri:okaeri-configs-yaml-snakeyaml:${Versions.OKAERI_CONFIGS}")
paperLibrary("eu.okaeri:okaeri-configs-serdes-commons:${Versions.OKAERI_CONFIGS}")
paperLibrary("eu.okaeri:okaeri-configs-serdes-bukkit:${Versions.OKAERI_CONFIGS}")

paperLibrary("com.github.cryptomorin:XSeries:13.5.1")

compileOnly("me.clip:placeholderapi:${Versions.PLACEHOLDER_API}")

Expand All @@ -66,9 +73,10 @@ tasks.test {
useJUnitPlatform()
}

bukkit {
paper {
main = "com.eternalcode.economy.EconomyBukkitPlugin"
apiVersion = "1.13"
loader = "com.eternalcode.economy.EconomyBukkitLoader"
apiVersion = "1.19"
prefix = "EternalEconomy"
author = "EternalCodeTeam"
name = "EternalEconomy"
Expand All @@ -79,14 +87,26 @@ bukkit {
load = BukkitPluginDescription.PluginLoadOrder.STARTUP
version = "${project.version}"

depend = listOf("Vault")
softDepend = listOf("PlaceholderAPI")
serverDependencies {
register("Vault") {
required = true
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
register("PlaceholderAPI") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
}

foliaSupported = true
generateLibrariesJson = true
}

tasks.runServer {
minecraftVersion("1.21.8")
downloadPlugins {
url("https://github.com/MilkBowl/Vault/releases/download/1.7.3/Vault.jar")
}
}

tasks.shadowJar {
Expand All @@ -97,14 +117,8 @@ tasks.shadowJar {
"org/jetbrains/annotations/**"
)

val prefix = "com.eternalcode.economy.libs"
listOf(
"dev.rollczi",
"eu.okaeri",
"panda",
"org.yaml",
"net.kyori",
"com.eternalcode.commons",
"net.jodah",
).forEach { relocate(it, prefix) }
// val prefix = "com.eternalcode.economy.libs"
// listOf(
//
// ).forEach { relocate(it, prefix) }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package com.eternalcode.economy;

import com.google.gson.Gson;
import io.papermc.paper.plugin.loader.PluginClasspathBuilder;
import io.papermc.paper.plugin.loader.PluginLoader;
import io.papermc.paper.plugin.loader.library.impl.MavenLibraryResolver;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.graph.Dependency;
import org.eclipse.aether.repository.RemoteRepository;
import org.jetbrains.annotations.NotNull;

public class EconomyBukkitLoader implements PluginLoader {

public static final Gson GSON = new Gson();
public static final String LIBRARIES_JSON_PATH = "/paper-libraries.json";

@Override
public void classloader(@NotNull PluginClasspathBuilder classpathBuilder) {
MavenLibraryResolver resolver = new MavenLibraryResolver();

PluginLibraries pluginLibraries = this.load();

pluginLibraries.asDependencies().forEach(resolver::addDependency);
pluginLibraries.asRepositories().forEach(resolver::addRepository);

classpathBuilder.addLibrary(resolver);
}

public PluginLibraries load() {
try (InputStream in = getClass().getResourceAsStream(LIBRARIES_JSON_PATH)) {
return GSON.fromJson(new InputStreamReader(in, StandardCharsets.UTF_8), PluginLibraries.class);
}
catch (IOException exception) {
throw new RuntimeException(exception);
}
}

private record PluginLibraries(Map<String, String> repositories, List<String> dependencies) {
public Stream<Dependency> asDependencies() {
return this.dependencies.stream().map(d -> new Dependency(new DefaultArtifact(d), null));
}

public Stream<RemoteRepository> asRepositories() {
return this.repositories.entrySet().stream()
.map(e -> new RemoteRepository.Builder(e.getKey(), "default", e.getValue()).build());
}
}
}
Loading