EcoShop is now a libreforge plugin

This commit is contained in:
Auxilor
2023-11-22 15:15:38 +00:00
parent 7a06c1c397
commit 23c82e6448
29 changed files with 296 additions and 367 deletions

View File

@@ -1,110 +0,0 @@
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10"
}
}
plugins {
id 'java-library'
id 'com.github.johnrengelman.shadow' version '7.0.0'
id 'maven-publish'
id 'java'
}
dependencies {
implementation project(":eco-core").getSubprojects()
}
allprojects {
apply plugin: 'kotlin'
apply plugin: 'java'
apply plugin: 'maven-publish'
apply plugin: 'com.github.johnrengelman.shadow'
repositories {
mavenCentral()
mavenLocal()
maven { url 'https://jitpack.io' }
maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
maven { url 'https://repo.auxilor.io/repository/maven-public/' }
}
jar {
onlyIf { !sourceSets.main.allSource.files.isEmpty() }
}
shadowJar {
relocate('com.willfp.ecomponent', 'com.willfp.ecoshop.ecomponent')
}
dependencies {
compileOnly 'com.willfp:eco:6.65.4'
implementation 'com.willfp:ecomponent:1.3.0'
compileOnly 'com.github.ben-manes.caffeine:caffeine:3.0.6'
compileOnly 'org.jetbrains:annotations:23.0.0'
compileOnly 'org.jetbrains.kotlin:kotlin-stdlib:1.7.10'
compileOnly 'com.willfp:libreforge:4.40.0'
}
tasks.withType(JavaCompile) {
options.deprecation = true
options.encoding = 'UTF-8'
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = "17"
}
}
processResources {
filesMatching(["**plugin.yml"]) {
expand projectVersion: project.version
}
}
compileJava.options.encoding = 'UTF-8'
compileJava.dependsOn clean
}
tasks.withType(Jar) {
destinationDirectory = file("$rootDir/bin/")
}
clean.doLast {
file("${rootDir}/bin").deleteDir()
}
shadowJar {
archiveFileName = findProperty("plugin-name") + " v" + findProperty("version") + ".jar"
}
jar {
archiveFileName = findProperty("plugin-name") + " v" + findProperty("version") + " " + "unshaded" + ".jar"
}
group = 'com.willfp'
archivesBaseName = project.name
version = findProperty("version")
java.sourceCompatibility = JavaVersion.VERSION_17
compileJava.options.encoding = 'UTF-8'
build.dependsOn shadowJar
tasks.register('buyThePlugins') {
dependsOn subprojects.build
doLast {
println 'If you like the plugin, please consider buying it on Spigot or Polymart!'
println 'Spigot: https://www.spigotmc.org/resources/authors/auxilor.507394/'
println 'Polymart: https://polymart.org/user/auxilor.1107/'
println 'Buying gives you access to support and the plugin auto-updater, and it allows me to keep developing plugins.'
}
}
build.finalizedBy buyThePlugins

86
build.gradle.kts Normal file
View File

@@ -0,0 +1,86 @@
plugins {
java
`java-library`
`maven-publish`
kotlin("jvm") version "1.7.10"
id("com.github.johnrengelman.shadow") version "8.0.0"
id("com.willfp.libreforge-gradle-plugin") version "1.0.0"
}
group = "com.willfp"
version = findProperty("version")!!
val libreforgeVersion = findProperty("libreforge-version")
base {
archivesName.set(project.name)
}
dependencies {
project(":eco-core").dependencyProject.subprojects {
implementation(this)
}
}
allprojects {
apply(plugin = "java")
apply(plugin = "kotlin")
apply(plugin = "maven-publish")
apply(plugin = "com.github.johnrengelman.shadow")
repositories {
mavenLocal()
mavenCentral()
maven("https://repo.papermc.io/repository/maven-public/")
maven("https://repo.auxilor.io/repository/maven-public/")
maven("https://jitpack.io")
}
dependencies {
compileOnly("com.willfp:eco:6.65.4")
compileOnly("org.jetbrains:annotations:23.0.0")
compileOnly("org.jetbrains.kotlin:kotlin-stdlib:1.7.10")
compileOnly("com.github.ben-manes.caffeine:caffeine:3.1.0")
implementation("com.willfp:ecomponent:1.4.1")
}
java {
withSourcesJar()
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
}
tasks {
shadowJar {
relocate("com.willfp.libreforge.loader", "com.willfp.ecoshop.libreforge.loader")
relocate("com.willfp.ecomponent", "com.willfp.ecoshop.ecomponent")
}
compileKotlin {
kotlinOptions {
jvmTarget = "17"
}
}
compileJava {
options.isDeprecation = true
options.encoding = "UTF-8"
dependsOn(clean)
}
processResources {
filesMatching(listOf("**plugin.yml", "**eco.yml")) {
expand(
"version" to project.version,
"libreforgeVersion" to libreforgeVersion,
"pluginName" to rootProject.name
)
}
}
build {
dependsOn(shadowJar)
}
}
}

View File

@@ -1,2 +0,0 @@
group 'com.willfp'
version rootProject.version

View File

@@ -0,0 +1,2 @@
group = "com.willfp"
version = rootProject.version

View File

@@ -1,7 +0,0 @@
group 'com.willfp'
version rootProject.version
dependencies {
compileOnly 'org.spigotmc:spigot-api:1.19.1-R0.1-SNAPSHOT'
compileOnly fileTree(dir: '../../lib', include: ['*.jar'])
}

View File

@@ -0,0 +1,37 @@
group = "com.willfp"
version = rootProject.version
dependencies {
compileOnly("io.papermc.paper:paper-api:1.19.3-R0.1-SNAPSHOT")
}
publishing {
publications {
register<MavenPublication>("maven") {
groupId = project.group.toString()
version = project.version.toString()
artifactId = rootProject.name
artifact(rootProject.tasks.shadowJar.get().archiveFile)
}
}
publishing {
repositories {
maven {
name = "auxilor"
url = uri("https://repo.auxilor.io/repository/maven-releases/")
credentials {
username = System.getenv("MAVEN_USERNAME")
password = System.getenv("MAVEN_PASSWORD")
}
}
}
}
}
tasks {
build {
dependsOn(publishToMavenLocal)
}
}

View File

@@ -1,87 +1,48 @@
package com.willfp.ecoshop
import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.command.impl.PluginCommand
import com.willfp.eco.core.config.ConfigType
import com.willfp.eco.core.config.interfaces.Config
import com.willfp.eco.core.config.readConfig
import com.willfp.eco.core.integrations.IntegrationLoader
import com.willfp.eco.core.integrations.shop.ShopManager
import com.willfp.ecoshop.commands.CommandEcoShop
import com.willfp.ecoshop.commands.CommandSell
import com.willfp.ecoshop.config.UsermadeConfig
import com.willfp.ecoshop.integration.EcoShopAdapter
import com.willfp.ecoshop.integration.libreforge.LibreforgeIntegration
import com.willfp.ecoshop.integrations.EcoShopAdapter
import com.willfp.ecoshop.libreforge.FilterShopItem
import com.willfp.ecoshop.libreforge.TriggerBuyItem
import com.willfp.ecoshop.libreforge.TriggerSellItem
import com.willfp.ecoshop.shop.ShopCategories
import com.willfp.ecoshop.shop.Shops
import com.willfp.ecoshop.shop.gui.SellGUI
import com.willfp.libreforge.filters.Filters
import com.willfp.libreforge.loader.LibreforgePlugin
import com.willfp.libreforge.loader.configs.ConfigCategory
import com.willfp.libreforge.triggers.Triggers
import org.bukkit.event.Listener
import java.io.File
import java.util.zip.ZipFile
class EcoShopPlugin : EcoPlugin() {
class EcoShopPlugin : LibreforgePlugin() {
init {
instance = this
ShopManager.register(EcoShopAdapter)
}
override fun loadConfigCategories(): List<ConfigCategory> {
return listOf(
ShopCategories,
Shops
)
}
override fun handleEnable() {
copyConfigs("categories")
copyConfigs("shops")
Shops.update(this)
SellGUI.update(this)
Filters.register(FilterShopItem)
Triggers.register(TriggerBuyItem)
Triggers.register(TriggerSellItem)
}
override fun handleReload() {
Shops.update(this)
SellGUI.update(this)
}
private fun copyConfigs(directory: String) {
val folder = File(this.dataFolder, directory)
if (!folder.exists()) {
val files = mutableListOf<String>()
try {
for (entry in ZipFile(this.file).entries().asIterator()) {
if (entry.name.startsWith("$directory/")) {
files.add(entry.name.removePrefix("$directory/"))
}
}
} catch (_: Exception) {
// Sometimes, ZipFile likes to completely fail. No idea why, but here's the 'solution'!
}
files.removeIf { !it.endsWith(".yml") }
files.replaceAll { it.replace(".yml", "") }
for (configName in files) {
UsermadeConfig(configName, directory, this)
}
}
}
fun getConfigs(directory: String): Map<String, Config> {
val configs = mutableMapOf<String, Config>()
for (file in File(this.dataFolder, directory).walk()) {
if (file.nameWithoutExtension == "_example") {
continue
}
if (!file.name.endsWith(".yml")) {
continue
}
val id = file.nameWithoutExtension
val config = file.readConfig(ConfigType.YAML)
configs[id] = config
}
return configs
}
override fun loadListeners(): List<Listener> {
return listOf(
@@ -95,14 +56,8 @@ class EcoShopPlugin : EcoPlugin() {
)
}
override fun loadIntegrationLoaders(): List<IntegrationLoader> {
return listOf(
IntegrationLoader("libreforge") { LibreforgeIntegration.load() }
)
}
override fun getMinimumEcoVersion(): String {
return "6.48.0"
return "6.65.0"
}
companion object {

View File

@@ -34,7 +34,7 @@ class CommandResetBuys(plugin: EcoPlugin) : Subcommand(
return
}
val item = ShopItems.getByID(args[1])
val item = ShopItems[args[1]]
if (item == null) {
sender.sendMessage(plugin.langYml.getMessage("invalid-item"))

View File

@@ -1,14 +0,0 @@
package com.willfp.ecoshop.config
import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.config.ConfigType
import com.willfp.eco.core.config.ExtendableConfig
class UsermadeConfig(name: String, directory: String, plugin: EcoPlugin) : ExtendableConfig(
name,
true,
plugin,
plugin::class.java,
"$directory/",
ConfigType.YAML
)

View File

@@ -1,20 +0,0 @@
package com.willfp.ecoshop.integration.libreforge
import com.willfp.eco.core.integrations.Integration
import com.willfp.ecoshop.integration.libreforge.impl.FilterShopItem
import com.willfp.ecoshop.integration.libreforge.impl.TriggerBuyItem
import com.willfp.ecoshop.integration.libreforge.impl.TriggerSellItem
import com.willfp.libreforge.filters.Filters
import com.willfp.libreforge.triggers.Triggers
object LibreforgeIntegration: Integration {
fun load() {
Filters.register(FilterShopItem)
Triggers.register(TriggerBuyItem)
Triggers.register(TriggerSellItem)
}
override fun getPluginName(): String {
return "libreforge"
}
}

View File

@@ -1,4 +1,4 @@
package com.willfp.ecoshop.integration
package com.willfp.ecoshop.integrations
import com.willfp.eco.core.integrations.shop.ShopIntegration
import com.willfp.eco.core.integrations.shop.ShopSellEvent

View File

@@ -1,4 +1,4 @@
package com.willfp.ecoshop.integration.libreforge.impl
package com.willfp.ecoshop.libreforge
import com.willfp.eco.core.config.interfaces.Config
import com.willfp.ecoshop.event.ShopEvent

View File

@@ -1,6 +1,7 @@
package com.willfp.ecoshop.integration.libreforge.impl
package com.willfp.ecoshop.libreforge
import com.willfp.ecoshop.event.EcoShopBuyEvent
import com.willfp.libreforge.toDispatcher
import com.willfp.libreforge.triggers.Trigger
import com.willfp.libreforge.triggers.TriggerData
import com.willfp.libreforge.triggers.TriggerParameter
@@ -18,7 +19,7 @@ object TriggerBuyItem : Trigger("buy_item") {
val player = event.player
this.dispatch(
player,
player.toDispatcher(),
TriggerData(
player = player,
location = player.location,

View File

@@ -1,6 +1,7 @@
package com.willfp.ecoshop.integration.libreforge.impl
package com.willfp.ecoshop.libreforge
import com.willfp.ecoshop.event.EcoShopSellEvent
import com.willfp.libreforge.toDispatcher
import com.willfp.libreforge.triggers.Trigger
import com.willfp.libreforge.triggers.TriggerData
import com.willfp.libreforge.triggers.TriggerParameter
@@ -18,7 +19,7 @@ object TriggerSellItem : Trigger("sell_item") {
val player = event.player
this.dispatch(
player,
player.toDispatcher(),
TriggerData(
player = player,
location = player.location,

View File

@@ -10,6 +10,7 @@ import com.willfp.eco.core.gui.slot.ConfigSlot
import com.willfp.eco.core.gui.slot.FillerMask
import com.willfp.eco.core.gui.slot.MaskItems
import com.willfp.eco.core.items.Items
import com.willfp.eco.core.registry.KRegistrable
import com.willfp.eco.core.sound.PlayableSound
import com.willfp.eco.util.formatEco
import com.willfp.eco.util.savedDisplayName
@@ -39,9 +40,9 @@ fun Menu.kickBack(player: Player) =
class Shop(
val plugin: EcoShopPlugin,
val id: String,
override val id: String,
val config: Config
) {
): KRegistrable {
val clickSound = config.ifHasOrNull("click-sound") {
PlayableSound.create(config.getSubsection(it))
}

View File

@@ -1,37 +1,21 @@
package com.willfp.ecoshop.shop
import com.google.common.collect.HashBiMap
import com.google.common.collect.ImmutableList
import com.willfp.eco.core.config.interfaces.Config
import com.willfp.ecoshop.EcoShopPlugin
import com.willfp.libreforge.loader.LibreforgePlugin
import com.willfp.libreforge.loader.configs.RegistrableCategory
@Suppress("UNUSED")
object ShopCategories {
private val BY_ID = HashBiMap.create<String, ShopCategory>()
/**
* Get category matching id.
*
* @param id The id to query.
* @return The matching category, or null if not found.
*/
@JvmStatic
fun getByID(id: String): ShopCategory? {
return BY_ID[id]
object ShopCategories : RegistrableCategory<ShopCategory>("category", "categories") {
override fun clear(plugin: LibreforgePlugin) {
registry.clear()
}
/** All shop categories. */
@JvmStatic
fun values(): List<ShopCategory> {
return ImmutableList.copyOf(BY_ID.values)
}
@JvmStatic
internal fun update(plugin: EcoShopPlugin) {
override fun beforeReload(plugin: LibreforgePlugin) {
ShopItems.clear()
BY_ID.clear()
}
for ((id, config) in plugin.getConfigs("categories")) {
BY_ID[id] = ShopCategory(plugin, id, config)
}
override fun acceptConfig(plugin: LibreforgePlugin, id: String, config: Config) {
registry.register(ShopCategory(plugin as EcoShopPlugin, id, config))
}
}

View File

@@ -14,6 +14,7 @@ import com.willfp.eco.core.gui.slot.MaskItems
import com.willfp.eco.core.gui.slot.Slot
import com.willfp.eco.core.items.Items
import com.willfp.eco.core.items.builder.modify
import com.willfp.eco.core.registry.KRegistrable
import com.willfp.eco.util.formatEco
import com.willfp.ecomponent.components.pageChangerWithDefault
import com.willfp.ecomponent.menuStateVar
@@ -30,16 +31,15 @@ fun <T> Stack<T>.popOrNull(): T? =
class ShopCategory(
val plugin: EcoShopPlugin,
val id: String,
override val id: String,
val config: Config
) {
) : KRegistrable {
private val permission = config.getStringOrNull("permission")
val items = config.getSubsections("items").mapNotNull {
try {
val item = ShopItem(plugin, it)
ShopItems.addNewItem(item)
ShopItems.register(item)
item
} catch (e: InvalidShopItemException) {
plugin.logger.warning(e.message)

View File

@@ -14,6 +14,7 @@ import com.willfp.eco.core.items.Items
import com.willfp.eco.core.items.builder.ItemStackBuilder
import com.willfp.eco.core.price.CombinedDisplayPrice
import com.willfp.eco.core.price.ConfiguredPrice
import com.willfp.eco.core.registry.KRegistrable
import com.willfp.eco.util.formatEco
import com.willfp.ecoshop.EcoShopPlugin
import com.willfp.ecoshop.event.EcoShopBuyEvent
@@ -21,6 +22,10 @@ import com.willfp.ecoshop.event.EcoShopSellEvent
import com.willfp.ecoshop.shop.gui.BuyMenu
import com.willfp.ecoshop.shop.gui.SellMenu
import com.willfp.ecoshop.shop.gui.ShopItemSlot
import com.willfp.libreforge.ViolationContext
import com.willfp.libreforge.effects.Effects
import com.willfp.libreforge.toDispatcher
import com.willfp.libreforge.triggers.TriggerData
import org.bukkit.Bukkit
import org.bukkit.Material
import org.bukkit.OfflinePlayer
@@ -39,13 +44,18 @@ enum class BuyType {
class ShopItem(
plugin: EcoShopPlugin,
val config: Config
) {
val id = config.getString("id")
) : KRegistrable {
override val id = config.getString("id")
val commands = config.getStrings("command") + config.getStrings("commands")
val item = if (config.has("item")) Items.lookup(config.getString("item")) else null
val effects = Effects.compileChain(
config.getSubsections("effects"),
ViolationContext(plugin, "shop item $id")
)
val buyAmount = config.getIntOrNull("buy.amount") ?: 1
private val _displayItem = ItemStackBuilder(
@@ -282,6 +292,16 @@ class ShopItem(
)
}
effects?.trigger(
player.toDispatcher(),
TriggerData(
player = player,
location = player.location,
item = player.inventory.itemInMainHand,
value = amount.toDouble()
)
)
if (buyItemMessage != null) {
for (message in buyItemMessage) {
player.sendMessage(
@@ -304,7 +324,7 @@ class ShopItem(
/** Get if a [player] is allowed to sell this item. */
fun getSellStatus(player: Player): SellStatus {
// Can't sell a command
// Can't sell a command or an effect
if (item == null || sellPrice == null) {
return SellStatus.CANNOT_SELL
}
@@ -405,7 +425,7 @@ class ShopItem(
var amountOfItems = 0
for (itemStack in player.inventory.storageContents) {
if (!item.matches(itemStack)) {
if (!item.matches(itemStack) || itemStack == null) {
continue
}

View File

@@ -1,36 +1,5 @@
package com.willfp.ecoshop.shop
import com.google.common.collect.HashBiMap
import com.google.common.collect.ImmutableList
import com.willfp.eco.core.registry.Registry
@Suppress("UNUSED")
object ShopItems {
private val BY_ID = HashBiMap.create<String, ShopItem>()
/**
* Get item matching id.
*
* @param id The id to query.
* @return The matching item, or null if not found.
*/
@JvmStatic
fun getByID(id: String): ShopItem? {
return BY_ID[id]
}
/** All shop items. */
@JvmStatic
fun values(): List<ShopItem> {
return ImmutableList.copyOf(BY_ID.values)
}
/** Add a new [item]. */
fun addNewItem(item: ShopItem) {
BY_ID[item.id] = item
}
/** Clear registry. */
internal fun clear() {
BY_ID.clear()
}
}
object ShopItems : Registry<ShopItem>()

View File

@@ -1,47 +1,16 @@
package com.willfp.ecoshop.shop
import com.google.common.collect.HashBiMap
import com.google.common.collect.ImmutableList
import com.willfp.eco.core.config.updating.ConfigUpdater
import com.willfp.eco.core.config.interfaces.Config
import com.willfp.ecoshop.EcoShopPlugin
import com.willfp.libreforge.loader.LibreforgePlugin
import com.willfp.libreforge.loader.configs.RegistrableCategory
@Suppress("UNUSED")
object Shops {
private val BY_ID = HashBiMap.create<String, Shop>()
/**
* Get shop matching id.
*
* @param id The id to query.
* @return The matching shop, or null if not found.
*/
@JvmStatic
fun getByID(id: String): Shop? {
return BY_ID[id]
object Shops : RegistrableCategory<Shop>("shop", "shops") {
override fun clear(plugin: LibreforgePlugin) {
registry.clear()
}
/**
* List of all shops.
*
* @return The shops.
*/
@JvmStatic
fun values(): List<Shop> {
return ImmutableList.copyOf(BY_ID.values)
}
@JvmStatic
fun update(plugin: EcoShopPlugin) {
ShopCategories.update(plugin)
for (shop in values()) {
shop.remove()
}
BY_ID.clear()
for ((id, config) in plugin.getConfigs("shops")) {
BY_ID[id] = Shop(plugin, id, config)
}
override fun acceptConfig(plugin: LibreforgePlugin, id: String, config: Config) {
registry.register(Shop(plugin as EcoShopPlugin, id, config))
}
}

View File

@@ -121,6 +121,26 @@ items:
row: 3 # The row.
page: 2 # The page.
- id: do_something_cool
# Effects to run when the player buys the item.
# Read here: https://plugins.auxilor.io/effects/configuring-an-effect
effects: []
buy:
value: 65
type: crystals
display: "&b%value% Crystals ❖"
gui:
display:
item: nether_star
lore:
- "&fBuy me to do something cool!"
column: 6 # The column.
row: 3 # The row.
page: 2 # The page.
- id: valkyrie_egg
item: ecobosses:valkyrie_spawn_egg
@@ -152,7 +172,7 @@ items:
- ""
- "&e&oLeft click to buy with money,"
- "&e&oRight click to buy with &bCrystals ❖&e&o!"
column: 6 # How far left to right (1-9).
column: 7 # How far left to right (1-9).
row: 3 # How far up or down (1-6).
page: 1 # The page.

View File

@@ -1,4 +1,9 @@
resource-id: 3177
bstats-id: 16978
color: '&#76b852'
supports-extensions: false
environment:
- name: libreforge version
value: ${libreforgeVersion}
options:
resource-id: 3177
bstats-id: 16978
color: '&#76b852'
uses-reflective-reload: false

View File

@@ -1,2 +1,5 @@
version = 1.3.0
plugin-name = EcoShop
#libreforge-updater
#Tue Nov 21 22:40:58 GMT 2023
kotlin.code.style=official
libreforge-version=4.44.0
version=1.4.0

Binary file not shown.

View File

@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

41
gradlew vendored
View File

@@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -80,13 +80,11 @@ do
esac
done
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
APP_NAME="Gradle"
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -133,22 +131,29 @@ location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi
# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -193,11 +198,15 @@ if "$cygwin" || "$msys" ; then
done
fi
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
@@ -205,6 +214,12 @@ set -- \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.

15
gradlew.bat vendored
View File

@@ -14,7 +14,7 @@
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@@ -25,7 +25,8 @@
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal

View File

@@ -1,5 +0,0 @@
rootProject.name = 'EcoShop'
// Core
include ':eco-core'
include ':eco-core:core-plugin'

14
settings.gradle.kts Normal file
View File

@@ -0,0 +1,14 @@
pluginManagement {
repositories {
gradlePluginPortal()
mavenLocal()
maven("https://repo.jpenilla.xyz/snapshots/")
maven("https://repo.auxilor.io/repository/maven-public/")
}
}
rootProject.name = "EcoShop"
// Core
include(":eco-core")
include(":eco-core:core-plugin")