mirror of
https://github.com/Auxilor/EcoMobs.git
synced 2025-12-19 15:09:17 +00:00
Compare commits
43 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
553e006da3 | ||
|
|
c658decff0 | ||
|
|
3af948b712 | ||
|
|
81eeabef5e | ||
|
|
2efa705760 | ||
|
|
040c43f072 | ||
|
|
a3fc8569f9 | ||
|
|
a2eb10c1f2 | ||
|
|
a1fe7ffdc0 | ||
|
|
ebf26ae8ca | ||
|
|
10ce71bb08 | ||
|
|
5432d066b3 | ||
|
|
0a0d1d8764 | ||
|
|
5619859b42 | ||
|
|
c6a6fc4201 | ||
|
|
b4c81d7874 | ||
|
|
fb78e87bd0 | ||
|
|
fd4b3bcc76 | ||
|
|
f1d02cc3ba | ||
|
|
78135d7e72 | ||
|
|
ed0fd90df8 | ||
|
|
42af89c79a | ||
|
|
d453461eeb | ||
|
|
e4093a0fd5 | ||
|
|
7e950ea508 | ||
|
|
ac79baa2d3 | ||
|
|
50adfae567 | ||
|
|
153022c3bf | ||
|
|
8d37635381 | ||
|
|
299d3ee1d6 | ||
|
|
f0a2d32b95 | ||
|
|
4e86750c7d | ||
|
|
b3b7695218 | ||
|
|
1aa0a27c65 | ||
|
|
392a76bad8 | ||
|
|
95afe96860 | ||
|
|
21d24a5198 | ||
|
|
af9766a391 | ||
|
|
df70871bad | ||
|
|
b030af609a | ||
|
|
344e71cd9a | ||
|
|
7b7a16f9c6 | ||
|
|
ba1c348f8e |
7
.github/ISSUE_TEMPLATE/config.yml
vendored
7
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,8 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Auxilor Community Discord
|
||||
- name: Discord
|
||||
url: https://discord.gg/ZcwpSsE/
|
||||
about: Join the Auxilor discord to get help from support staff and the general community!
|
||||
- name: The most common issues people have
|
||||
url: https://github.com/Auxilor/eco/issues/78
|
||||
about: Check the list of known common issues to see if your issue has already been solved
|
||||
about: Issues have moved to Discord, please join the server to get help!
|
||||
|
||||
24
.github/ISSUE_TEMPLATE/report-a-bug.md
vendored
24
.github/ISSUE_TEMPLATE/report-a-bug.md
vendored
@@ -4,28 +4,8 @@ about: Report an issue with the plugin
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
# Please report bugs on the discord!
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Server Information (please complete the following information):**
|
||||
- Version: (output of `/ver` command)
|
||||
- Version of plugin and eco (`/ver eco`, `/ver <plugin>`)
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
[Join by clicking here](https://discord.gg/ZcwpSsE/)
|
||||
|
||||
20
.github/ISSUE_TEMPLATE/request-a-feature.md
vendored
20
.github/ISSUE_TEMPLATE/request-a-feature.md
vendored
@@ -1,20 +0,0 @@
|
||||
---
|
||||
name: Request a Feature
|
||||
about: Suggest an idea for this plugin
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
33
.github/workflows/publish-release.yml
vendored
Normal file
33
.github/workflows/publish-release.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
name: Publish Packages
|
||||
on:
|
||||
workflow_dispatch:
|
||||
release:
|
||||
types: [ created ]
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: Checkout latest code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
|
||||
- name: Change wrapper permissions
|
||||
run: chmod +x ./gradlew
|
||||
|
||||
- name: Publish package
|
||||
uses: gradle/gradle-build-action@v2
|
||||
with:
|
||||
arguments: publish
|
||||
env:
|
||||
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
|
||||
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
|
||||
@@ -3,11 +3,13 @@ plugins {
|
||||
`java-library`
|
||||
`maven-publish`
|
||||
kotlin("jvm") version "1.7.10"
|
||||
id("com.github.johnrengelman.shadow") version "7.0.0"
|
||||
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)
|
||||
@@ -22,27 +24,23 @@ dependencies {
|
||||
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")
|
||||
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
|
||||
maven("https://repo.codemc.org/repository/nms/")
|
||||
maven("https://repo.codemc.org/repository/maven-public")
|
||||
maven("https://repo.dmulloy2.net/nexus/repository/public/")
|
||||
maven("https://papermc.io/repo/repository/maven-public/")
|
||||
maven("https://mvn.lumine.io/repository/maven-public/")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("com.willfp:eco:6.44.0")
|
||||
compileOnly("com.willfp:eco:6.56.0")
|
||||
compileOnly("org.jetbrains:annotations:23.0.0")
|
||||
compileOnly("org.jetbrains.kotlin:kotlin-stdlib:1.7.10")
|
||||
|
||||
implementation("com.willfp:libreforge:3.128.1")
|
||||
implementation("org.joml:joml:1.10.4")
|
||||
}
|
||||
|
||||
java {
|
||||
@@ -51,10 +49,13 @@ allprojects {
|
||||
}
|
||||
|
||||
tasks {
|
||||
shadowJar {
|
||||
relocate("com.willfp.libreforge.loader", "com.willfp.ecobosses.libreforge.loader")
|
||||
}
|
||||
|
||||
compileKotlin {
|
||||
kotlinOptions {
|
||||
jvmTarget = "17"
|
||||
freeCompilerArgs = freeCompilerArgs + "-Xjvm-default=all"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,66 +67,17 @@ allprojects {
|
||||
}
|
||||
|
||||
processResources {
|
||||
val ignoreList = listOf("**/*.png", "**/models/**", "**/textures/**", "**lang.yml")
|
||||
filesNotMatching(ignoreList) {
|
||||
expand("projectVersion" to project.version)
|
||||
filesMatching(listOf("**plugin.yml", "**eco.yml")) {
|
||||
expand(
|
||||
"version" to project.version,
|
||||
"libreforgeVersion" to libreforgeVersion,
|
||||
"pluginName" to rootProject.name
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
build {
|
||||
dependsOn(shadowJar)
|
||||
}
|
||||
|
||||
shadowJar {
|
||||
relocate("com.willfp.libreforge", "com.willfp.ecobosses.libreforge")
|
||||
relocate("org.joml", "com.willfp.ecobosses.libreforge.joml")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks {
|
||||
shadowJar {
|
||||
destinationDirectory.set(file("$rootDir/bin"))
|
||||
}
|
||||
|
||||
val buyThePlugins by creating {
|
||||
dependsOn(subprojects.map { it.tasks.getByName("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 {
|
||||
dependsOn(shadowJar)
|
||||
dependsOn(publishToMavenLocal)
|
||||
finalizedBy(buyThePlugins)
|
||||
}
|
||||
|
||||
clean.get().doLast { file("$rootDir/bin").deleteRecursively() }
|
||||
|
||||
fun fileName(extra: String): String = buildString {
|
||||
append(findProperty("plugin-name"))
|
||||
append(" v")
|
||||
append(findProperty("version"))
|
||||
if (extra.isNotEmpty()) {
|
||||
append(" ")
|
||||
append(extra)
|
||||
}
|
||||
append(".jar")
|
||||
}
|
||||
|
||||
shadowJar.get().archiveFileName.set(fileName(""))
|
||||
jar.get().archiveFileName.set(fileName("unshaded"))
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
register("maven", MavenPublication::class) {
|
||||
from(subprojects.first { it.name == "core-plugin" }.components["java"])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,10 +2,33 @@ group = "com.willfp"
|
||||
version = rootProject.version
|
||||
|
||||
dependencies {
|
||||
compileOnly("org.spigotmc:spigot-api:1.17.1-R0.1-SNAPSHOT")
|
||||
compileOnly("net.kyori:adventure-api:4.9.3")
|
||||
|
||||
// Integrations
|
||||
compileOnly("io.papermc.paper:paper-api:1.19.3-R0.1-SNAPSHOT")
|
||||
compileOnly("com.github.lokka30:LevelledMobs:3.1.4")
|
||||
compileOnly("com.ticxo.modelengine:api:R3.0.1")
|
||||
compileOnly("com.ticxo.modelengine:api:R3.1.5")
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
register("maven", MavenPublication::class) {
|
||||
from(components["java"])
|
||||
artifactId = rootProject.name
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,12 +6,15 @@ import com.willfp.eco.core.integrations.IntegrationLoader
|
||||
import com.willfp.ecobosses.bosses.Bosses
|
||||
import com.willfp.ecobosses.bosses.EggDisplay
|
||||
import com.willfp.ecobosses.bosses.bossHolders
|
||||
import com.willfp.ecobosses.commands.CommandEcobosses
|
||||
import com.willfp.ecobosses.commands.CommandEcoBosses
|
||||
import com.willfp.ecobosses.defence.DamageMultiplierHandler
|
||||
import com.willfp.ecobosses.defence.ImmunitiesHandler
|
||||
import com.willfp.ecobosses.defence.MountHandler
|
||||
import com.willfp.ecobosses.defence.PickupHandler
|
||||
import com.willfp.ecobosses.integrations.levelledmobs.IntegrationLevelledMobs
|
||||
import com.willfp.ecobosses.libreforge.EffectBossDropChanceMultiplier
|
||||
import com.willfp.ecobosses.libreforge.TriggerKillBoss
|
||||
import com.willfp.ecobosses.libreforge.TriggerSpawnBoss
|
||||
import com.willfp.ecobosses.lifecycle.CompatibilityListeners
|
||||
import com.willfp.ecobosses.lifecycle.ConsoleLoggers
|
||||
import com.willfp.ecobosses.lifecycle.DeathListeners
|
||||
@@ -21,28 +24,41 @@ import com.willfp.ecobosses.spawn.SpawnEggHandler
|
||||
import com.willfp.ecobosses.spawn.SpawnTotemHandler
|
||||
import com.willfp.ecobosses.util.DiscoverRecipeListener
|
||||
import com.willfp.ecobosses.util.TopDamagerListener
|
||||
import com.willfp.libreforge.LibReforgePlugin
|
||||
import com.willfp.libreforge.effects.Effects
|
||||
import com.willfp.libreforge.loader.LibreforgePlugin
|
||||
import com.willfp.libreforge.loader.configs.ConfigCategory
|
||||
import com.willfp.libreforge.registerHolderProvider
|
||||
import com.willfp.libreforge.triggers.Triggers
|
||||
import org.bukkit.event.Listener
|
||||
|
||||
class EcoBossesPlugin : LibReforgePlugin() {
|
||||
class EcoBossesPlugin : LibreforgePlugin() {
|
||||
init {
|
||||
instance = this
|
||||
}
|
||||
|
||||
override fun loadConfigCategories(): List<ConfigCategory> {
|
||||
return listOf(
|
||||
Bosses
|
||||
)
|
||||
}
|
||||
|
||||
override fun handleLoad() {
|
||||
Effects.register(EffectBossDropChanceMultiplier)
|
||||
Triggers.register(TriggerKillBoss)
|
||||
Triggers.register(TriggerSpawnBoss)
|
||||
}
|
||||
|
||||
override fun handleEnable() {
|
||||
registerHolderProvider { it.bossHolders }
|
||||
}
|
||||
|
||||
override fun handleEnableAdditional() {
|
||||
this.copyConfigs("bosses")
|
||||
}
|
||||
|
||||
override fun handleReloadAdditional() {
|
||||
override fun handleReload() {
|
||||
Bosses.getAllAlive().forEach { it.remove() }
|
||||
|
||||
logger.info(Bosses.values().size.toString() + " Bosses Loaded")
|
||||
|
||||
AutospawnHandler.startSpawning(this)
|
||||
}
|
||||
|
||||
override fun handleDisableAdditional() {
|
||||
override fun handleDisable() {
|
||||
Bosses.getAllAlive().forEach { it.remove() }
|
||||
}
|
||||
|
||||
@@ -52,7 +68,7 @@ class EcoBossesPlugin : LibReforgePlugin() {
|
||||
|
||||
override fun loadPluginCommands(): List<PluginCommand> {
|
||||
return listOf(
|
||||
CommandEcobosses(this)
|
||||
CommandEcoBosses(this)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -73,7 +89,7 @@ class EcoBossesPlugin : LibReforgePlugin() {
|
||||
)
|
||||
}
|
||||
|
||||
override fun loadAdditionalIntegrations(): List<IntegrationLoader> {
|
||||
override fun loadIntegrationLoaders(): List<IntegrationLoader> {
|
||||
return listOf(
|
||||
IntegrationLoader("LevelledMobs") { this.eventManager.registerListener(IntegrationLevelledMobs()) }
|
||||
)
|
||||
|
||||
@@ -2,15 +2,15 @@ package com.willfp.ecobosses.bosses
|
||||
|
||||
import com.willfp.eco.core.fast.fast
|
||||
import com.willfp.ecobosses.EcoBossesPlugin
|
||||
import com.willfp.libreforge.Holder
|
||||
import com.willfp.ecobosses.util.EntityProvidedHolder
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.inventory.ItemStack
|
||||
import org.bukkit.persistence.PersistentDataType
|
||||
import kotlin.math.pow
|
||||
|
||||
val Player.bossHolders: Iterable<Holder>
|
||||
val Player.bossHolders: Collection<EntityProvidedHolder>
|
||||
get() {
|
||||
val holders = mutableListOf<Holder>()
|
||||
val holders = mutableListOf<EntityProvidedHolder>()
|
||||
|
||||
for (boss in Bosses.values()) {
|
||||
for (livingBoss in boss.getAllAlive()) {
|
||||
@@ -21,7 +21,7 @@ val Player.bossHolders: Iterable<Holder>
|
||||
}
|
||||
|
||||
if (entity.location.distanceSquared(this.location) <= boss.influence.pow(2)) {
|
||||
holders.add(boss)
|
||||
holders.add(EntityProvidedHolder(boss, entity))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -38,7 +38,7 @@ var ItemStack.bossEgg: EcoBoss?
|
||||
if (value == null) {
|
||||
pdc.remove(spawnEggKey)
|
||||
} else {
|
||||
pdc.set(spawnEggKey, PersistentDataType.STRING, value.id)
|
||||
pdc.set(spawnEggKey, PersistentDataType.STRING, value.id.key)
|
||||
}
|
||||
this.itemMeta = meta
|
||||
}
|
||||
|
||||
@@ -1,21 +1,29 @@
|
||||
package com.willfp.ecobosses.bosses
|
||||
|
||||
import com.google.common.collect.BiMap
|
||||
import com.google.common.collect.HashBiMap
|
||||
import com.google.common.collect.ImmutableList
|
||||
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.config.updating.ConfigUpdater
|
||||
import com.willfp.eco.core.registry.Registry
|
||||
import com.willfp.ecobosses.EcoBossesPlugin
|
||||
import com.willfp.libreforge.loader.LibreforgePlugin
|
||||
import com.willfp.libreforge.loader.configs.ConfigCategory
|
||||
import com.willfp.libreforge.loader.configs.LegacyLocation
|
||||
import com.willfp.libreforge.separatorAmbivalent
|
||||
import org.bukkit.entity.Entity
|
||||
import org.bukkit.entity.LivingEntity
|
||||
import java.io.File
|
||||
import java.util.UUID
|
||||
|
||||
object Bosses {
|
||||
object Bosses : ConfigCategory("boss", "bosses") {
|
||||
/** Registered bosses. */
|
||||
private val BY_ID: BiMap<String, EcoBoss> = HashBiMap.create()
|
||||
private val registry = Registry<EcoBoss>()
|
||||
|
||||
override val legacyLocation = LegacyLocation(
|
||||
"ecobosses.yml",
|
||||
"bosses"
|
||||
)
|
||||
|
||||
/**
|
||||
* Get all registered [EcoBoss]s.
|
||||
@@ -24,7 +32,7 @@ object Bosses {
|
||||
*/
|
||||
@JvmStatic
|
||||
fun values(): List<EcoBoss> {
|
||||
return ImmutableList.copyOf(BY_ID.values)
|
||||
return ImmutableList.copyOf(registry.values())
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -35,52 +43,15 @@ object Bosses {
|
||||
*/
|
||||
@JvmStatic
|
||||
fun getByID(name: String): EcoBoss? {
|
||||
return BY_ID[name]
|
||||
return registry[name]
|
||||
}
|
||||
|
||||
/**
|
||||
* Update all [EcoBoss]s.
|
||||
*
|
||||
* @param plugin Instance of EcoBosses.
|
||||
*/
|
||||
@ConfigUpdater
|
||||
@JvmStatic
|
||||
fun update(plugin: EcoBossesPlugin) {
|
||||
for (boss in values()) {
|
||||
removeBoss(boss)
|
||||
}
|
||||
|
||||
for ((id, config) in plugin.fetchConfigs("bosses")) {
|
||||
addNewBoss(EcoBoss(id, config, plugin))
|
||||
}
|
||||
|
||||
val ecoBossesYml = File(plugin.dataFolder, "ecobosses.yml").readConfig(ConfigType.YAML)
|
||||
|
||||
for (bossConfig in ecoBossesYml.getSubsections("bosses")) {
|
||||
// Boss configs are separator ambivalent in order to preserve backwards compatibility
|
||||
addNewBoss(EcoBoss(bossConfig.getString("id"), bossConfig.separatorAmbivalent(), plugin))
|
||||
}
|
||||
override fun clear(plugin: LibreforgePlugin) {
|
||||
registry.clear()
|
||||
}
|
||||
|
||||
/**
|
||||
* Add new [EcoBoss] to EcoBosses.
|
||||
*
|
||||
* @param set The [EcoBoss] to add.
|
||||
*/
|
||||
@JvmStatic
|
||||
fun addNewBoss(set: EcoBoss) {
|
||||
BY_ID.remove(set.id)
|
||||
BY_ID[set.id] = set
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove [EcoBoss] from EcoBosses.
|
||||
*
|
||||
* @param set The [EcoBoss] to remove.
|
||||
*/
|
||||
@JvmStatic
|
||||
fun removeBoss(set: EcoBoss) {
|
||||
BY_ID.remove(set.id)
|
||||
override fun acceptConfig(plugin: LibreforgePlugin, id: String, config: Config) {
|
||||
registry.register(EcoBoss(id, config, plugin as EcoBossesPlugin))
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.willfp.eco.core.items.builder.ItemStackBuilder
|
||||
import com.willfp.eco.core.recipe.Recipes
|
||||
import com.willfp.eco.core.recipe.parts.EmptyTestableItem
|
||||
import com.willfp.eco.core.recipe.recipes.CraftingRecipe
|
||||
import com.willfp.eco.core.registry.Registrable
|
||||
import com.willfp.eco.util.NamespacedKeyUtils
|
||||
import com.willfp.eco.util.toComponent
|
||||
import com.willfp.ecobosses.events.BossKillEvent
|
||||
@@ -38,6 +39,7 @@ import com.willfp.ecobosses.util.SpawnTotem
|
||||
import com.willfp.ecobosses.util.XpReward
|
||||
import com.willfp.ecobosses.util.topDamagers
|
||||
import com.willfp.libreforge.Holder
|
||||
import com.willfp.libreforge.ViolationContext
|
||||
import com.willfp.libreforge.conditions.Conditions
|
||||
import com.willfp.libreforge.effects.Effects
|
||||
import net.kyori.adventure.bossbar.BossBar
|
||||
@@ -53,10 +55,12 @@ import java.util.Objects
|
||||
import java.util.UUID
|
||||
|
||||
class EcoBoss(
|
||||
override val id: String,
|
||||
id: String,
|
||||
val config: Config,
|
||||
private val plugin: EcoPlugin
|
||||
) : Holder {
|
||||
) : Holder, Registrable {
|
||||
override val id = plugin.createNamespacedKey(id)
|
||||
|
||||
val displayName: String = config.getString("display-name")
|
||||
|
||||
val lifespan = config.getInt("lifespan")
|
||||
@@ -138,7 +142,7 @@ class EcoBoss(
|
||||
|
||||
val recipe = Recipes.createAndRegisterRecipe(
|
||||
this@EcoBoss.plugin,
|
||||
"${this.id}_spawn_egg",
|
||||
"${this.id.key}_spawn_egg",
|
||||
spawnEggBacker,
|
||||
config.getStrings("spawn.egg.recipe")
|
||||
)
|
||||
@@ -192,9 +196,10 @@ class EcoBoss(
|
||||
ConfiguredGoal(it.getInt("priority"), goal)
|
||||
}
|
||||
|
||||
val spawnConditions = config.getSubsections("spawn.conditions").mapNotNull {
|
||||
Conditions.compile(it, "$id Spawn Conditions")
|
||||
}
|
||||
val spawnConditions = Conditions.compile(
|
||||
config.getSubsections("spawn.conditions"),
|
||||
ViolationContext(plugin, "$id Spawn Conditions")
|
||||
)
|
||||
|
||||
private val bossBarColor = BossBar.Color.valueOf(config.getString("boss-bar.color").uppercase())
|
||||
|
||||
@@ -307,12 +312,12 @@ class EcoBoss(
|
||||
|
||||
override val conditions = Conditions.compile(
|
||||
config.getSubsections("conditions"),
|
||||
"Boss ID $id"
|
||||
ViolationContext(plugin, "Boss ID $id")
|
||||
)
|
||||
|
||||
override val effects = Effects.compile(
|
||||
config.getSubsections("effects"),
|
||||
"Boss ID $id"
|
||||
ViolationContext(plugin, "Boss ID $id")
|
||||
)
|
||||
|
||||
fun markDead(uuid: UUID) {
|
||||
@@ -339,7 +344,7 @@ class EcoBoss(
|
||||
mob.persistentDataContainer.set(
|
||||
plugin.namespacedKeyFactory.create("boss"),
|
||||
PersistentDataType.STRING,
|
||||
this.id
|
||||
this.id.key
|
||||
)
|
||||
|
||||
if (hasCustomAI) {
|
||||
@@ -470,6 +475,10 @@ class EcoBoss(
|
||||
)
|
||||
}
|
||||
|
||||
override fun getID(): String {
|
||||
return this.id.key
|
||||
}
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (other !is EcoBoss) {
|
||||
return false
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.willfp.eco.core.display.Display
|
||||
import com.willfp.eco.core.display.DisplayModule
|
||||
import com.willfp.eco.core.display.DisplayPriority
|
||||
import com.willfp.eco.core.fast.fast
|
||||
import com.willfp.libreforge.SimpleProvidedHolder
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.inventory.ItemStack
|
||||
|
||||
@@ -26,8 +27,8 @@ class EggDisplay(
|
||||
val egg = itemStack.bossEgg ?: return
|
||||
|
||||
val lines = egg.spawnConditions
|
||||
.filterNot { it.isMet(player) }
|
||||
.mapNotNull { it.notMetLines?.map { line -> Display.PREFIX + line } }
|
||||
.filterNot { it.isMet(player, SimpleProvidedHolder(egg)) }
|
||||
.map { it.notMetLines.map { line -> Display.PREFIX + line } }
|
||||
.flatten()
|
||||
|
||||
|
||||
|
||||
@@ -2,13 +2,9 @@ package com.willfp.ecobosses.commands
|
||||
|
||||
import com.willfp.eco.core.command.impl.PluginCommand
|
||||
import com.willfp.ecobosses.EcoBossesPlugin
|
||||
import com.willfp.ecobosses.bosses.Bosses
|
||||
import com.willfp.libreforge.lrcdb.CommandExport
|
||||
import com.willfp.libreforge.lrcdb.CommandImport
|
||||
import com.willfp.libreforge.lrcdb.ExportableConfig
|
||||
import org.bukkit.command.CommandSender
|
||||
|
||||
class CommandEcobosses(plugin: EcoBossesPlugin) : PluginCommand(
|
||||
class CommandEcoBosses(plugin: EcoBossesPlugin) : PluginCommand(
|
||||
plugin,
|
||||
"ecobosses",
|
||||
"ecobosses.command.ecobosses",
|
||||
@@ -26,14 +22,5 @@ class CommandEcobosses(plugin: EcoBossesPlugin) : PluginCommand(
|
||||
.addSubcommand(CommandKillall(plugin))
|
||||
.addSubcommand(CommandSpawn(plugin))
|
||||
.addSubcommand(CommandGive(plugin))
|
||||
.addSubcommand(CommandImport("bosses", plugin))
|
||||
.addSubcommand(CommandExport(plugin) {
|
||||
Bosses.values().map {
|
||||
ExportableConfig(
|
||||
it.id,
|
||||
it.config
|
||||
)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -47,7 +47,7 @@ class CommandGive(plugin: EcoPlugin) : Subcommand(
|
||||
}
|
||||
|
||||
var message = plugin.langYml.getMessage("give-success")
|
||||
message = message.replace("%boss%", boss.id).replace("%recipient%", reciever.name)
|
||||
message = message.replace("%boss%", boss.id.key).replace("%recipient%", reciever.name)
|
||||
sender.sendMessage(message)
|
||||
|
||||
val itemStack = boss.spawnEgg!!
|
||||
@@ -94,7 +94,7 @@ class CommandGive(plugin: EcoPlugin) : Subcommand(
|
||||
* The cached names.
|
||||
*/
|
||||
private val BOSS_NAMES: List<String>
|
||||
get() = Bosses.values().map { it.id }
|
||||
get() = Bosses.values().map { it.id.key }
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -166,7 +166,7 @@ class CommandSpawn(plugin: EcoBossesPlugin) : Subcommand(
|
||||
* The cached names.
|
||||
*/
|
||||
private val BOSS_NAMES: List<String>
|
||||
get() = Bosses.values().map { it.id }
|
||||
get() = Bosses.values().map { it.id.key }
|
||||
|
||||
/**
|
||||
* The cached numbers.
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.willfp.ecobosses.libreforge
|
||||
|
||||
import com.willfp.ecobosses.bosses.Bosses
|
||||
import com.willfp.ecobosses.bosses.EcoBoss
|
||||
import com.willfp.ecobosses.events.BossTryDropItemEvent
|
||||
import com.willfp.libreforge.effects.templates.MultiMultiplierEffect
|
||||
import org.bukkit.event.EventHandler
|
||||
|
||||
object EffectBossDropChanceMultiplier : MultiMultiplierEffect<EcoBoss>("boss_drop_chance_multiplier") {
|
||||
override val key = "bosses"
|
||||
|
||||
override fun getElement(key: String): EcoBoss? {
|
||||
return Bosses.getByID(key)
|
||||
}
|
||||
|
||||
override fun getAllElements(): Collection<EcoBoss> {
|
||||
return Bosses.values()
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
fun handle(event: BossTryDropItemEvent) {
|
||||
val player = event.player ?: return
|
||||
|
||||
val multiplier = getMultiplier(player, event.boss)
|
||||
|
||||
event.chance *= multiplier
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.willfp.ecobosses.libreforge
|
||||
|
||||
import com.willfp.ecobosses.events.BossKillEvent
|
||||
import com.willfp.libreforge.triggers.Trigger
|
||||
import com.willfp.libreforge.triggers.TriggerData
|
||||
import com.willfp.libreforge.triggers.TriggerParameter
|
||||
import org.bukkit.attribute.Attribute
|
||||
import org.bukkit.event.EventHandler
|
||||
|
||||
object TriggerKillBoss : Trigger("kill_boss") {
|
||||
override val parameters = setOf(
|
||||
TriggerParameter.PLAYER,
|
||||
TriggerParameter.VICTIM,
|
||||
TriggerParameter.LOCATION
|
||||
)
|
||||
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
fun handle(event: BossKillEvent) {
|
||||
val killer = event.killer ?: return
|
||||
val entity = event.boss.entity
|
||||
|
||||
this.dispatch(
|
||||
killer,
|
||||
TriggerData(
|
||||
player = killer,
|
||||
victim = entity,
|
||||
location = entity.location,
|
||||
value = entity.getAttribute(Attribute.GENERIC_MAX_HEALTH)!!.value
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.willfp.ecobosses.libreforge
|
||||
|
||||
import com.willfp.ecobosses.events.BossSpawnEvent
|
||||
import com.willfp.libreforge.triggers.Trigger
|
||||
import com.willfp.libreforge.triggers.TriggerData
|
||||
import com.willfp.libreforge.triggers.TriggerParameter
|
||||
import org.bukkit.event.EventHandler
|
||||
|
||||
object TriggerSpawnBoss : Trigger("spawn_boss") {
|
||||
override val parameters = setOf(
|
||||
TriggerParameter.PLAYER,
|
||||
TriggerParameter.LOCATION
|
||||
)
|
||||
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
fun handle(event: BossSpawnEvent) {
|
||||
val player = event.spawner ?: return
|
||||
val location = event.location
|
||||
|
||||
this.dispatch(
|
||||
player,
|
||||
TriggerData(
|
||||
player = player,
|
||||
location = location
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,15 @@
|
||||
package com.willfp.ecobosses.lifecycle
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.ecobosses.events.BossDespawnEvent
|
||||
import com.willfp.ecobosses.events.BossKillEvent
|
||||
import com.willfp.ecobosses.events.BossSpawnEvent
|
||||
import com.willfp.libreforge.LibReforgePlugin
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.EventPriority
|
||||
import org.bukkit.event.Listener
|
||||
|
||||
class ConsoleLoggers(
|
||||
private val plugin: LibReforgePlugin
|
||||
private val plugin: EcoPlugin
|
||||
) : Listener {
|
||||
@EventHandler(
|
||||
ignoreCancelled = true,
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.willfp.ecobosses.spawn
|
||||
import com.willfp.ecobosses.EcoBossesPlugin
|
||||
import com.willfp.ecobosses.bosses.bossEgg
|
||||
import com.willfp.ecobosses.events.BossSpawnEvent
|
||||
import com.willfp.libreforge.conditions.isMet
|
||||
import com.willfp.libreforge.SimpleProvidedHolder
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Location
|
||||
import org.bukkit.block.Container
|
||||
@@ -79,7 +79,7 @@ class SpawnEggHandler(
|
||||
}
|
||||
|
||||
if (player != null) {
|
||||
if (!boss.spawnConditions.isMet(player)) {
|
||||
if (!boss.spawnConditions.areMet(player, SimpleProvidedHolder(boss))) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.willfp.eco.util.containsIgnoreCase
|
||||
import com.willfp.ecobosses.bosses.Bosses
|
||||
import com.willfp.ecobosses.events.BossSpawnEvent
|
||||
import com.willfp.ecobosses.util.SpawnTotem
|
||||
import com.willfp.libreforge.SimpleProvidedHolder
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.block.Block
|
||||
@@ -28,11 +29,13 @@ class SpawnTotemHandler : Listener {
|
||||
middle = event.block.getRelative(0, -1, 0)
|
||||
bottom = event.block.getRelative(0, -2, 0)
|
||||
}
|
||||
|
||||
1 -> {
|
||||
top = event.block.getRelative(0, 2, 0)
|
||||
middle = event.block.getRelative(0, 1, 0)
|
||||
bottom = event.block
|
||||
}
|
||||
|
||||
2 -> {
|
||||
top = event.block.getRelative(0, 1, 0)
|
||||
middle = event.block
|
||||
@@ -52,7 +55,7 @@ class SpawnTotemHandler : Listener {
|
||||
|
||||
val player = event.player
|
||||
|
||||
if (!boss.spawnConditions.all { it.condition.isConditionMet(player, it.config) }) {
|
||||
if (!boss.spawnConditions.areMet(player, SimpleProvidedHolder(boss))) {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ class BossBarTicker(
|
||||
override fun tick(boss: LivingEcoBoss, tick: Int) {
|
||||
val entity = boss.entity
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
bar.name(entity.customName!!.toComponent())
|
||||
bar.progress((entity.health / entity.getAttribute(Attribute.GENERIC_MAX_HEALTH)!!.value).toFloat())
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ class DisplayNameTicker : BossTicker {
|
||||
|
||||
val formattedTime = String.format("%d:%02d", timeLeft / 60, timeLeft % 60)
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
entity.customName = boss.boss.displayName
|
||||
.replace("%health%", NumberUtils.format(entity.health))
|
||||
.replace("%time%", formattedTime)
|
||||
|
||||
@@ -14,11 +14,6 @@ class LifespanTicker : BossTicker {
|
||||
Bukkit.getPluginManager().callEvent(event)
|
||||
|
||||
boss.remove()
|
||||
boss.boss.handleLifecycle(
|
||||
BossLifecycle.DESPAWN,
|
||||
boss.entity.location,
|
||||
boss.entity
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.willfp.ecobosses.util
|
||||
|
||||
import com.willfp.libreforge.Holder
|
||||
import com.willfp.libreforge.ProvidedHolder
|
||||
import org.bukkit.entity.LivingEntity
|
||||
|
||||
class EntityProvidedHolder(
|
||||
override val holder: Holder,
|
||||
override val provider: LivingEntity
|
||||
) : ProvidedHolder {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (other !is EntityProvidedHolder) {
|
||||
return false
|
||||
}
|
||||
|
||||
return other.holder == holder && other.provider == provider
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
var result = holder.hashCode()
|
||||
result = 31 * result + provider.hashCode()
|
||||
return result
|
||||
}
|
||||
}
|
||||
@@ -38,6 +38,7 @@ data class LocalBroadcast(
|
||||
|
||||
if (radius < 0) {
|
||||
for (message in toBroadcast) {
|
||||
@Suppress("DEPRECATION")
|
||||
Bukkit.broadcastMessage(message)
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
# Read more about chains: https://plugins.auxilor.io/effects/configuring-an-effect#effect-chains
|
||||
|
||||
chains:
|
||||
- id: blind
|
||||
effects:
|
||||
- id: potion_effect
|
||||
args:
|
||||
effect: blindness
|
||||
level: 3
|
||||
duration: 30
|
||||
apply_to_player: true
|
||||
- id: play_sound
|
||||
args:
|
||||
sound: entity_dragon_fireball_explode
|
||||
pitch: 1.5
|
||||
volume: 4
|
||||
@@ -8,48 +8,3 @@ log-spawn-kill: true
|
||||
|
||||
autospawn:
|
||||
one-boss-per-world: true # If only one boss can auto-spawn per world at once.
|
||||
|
||||
cooldown:
|
||||
in-actionbar: true
|
||||
sound:
|
||||
enabled: true
|
||||
sound: "BLOCK_NOTE_BLOCK_PLING"
|
||||
pitch: 0.5
|
||||
|
||||
cannot-afford:
|
||||
in-actionbar: true
|
||||
sound:
|
||||
enabled: true
|
||||
sound: "BLOCK_NOTE_BLOCK_PLING"
|
||||
pitch: 0.5
|
||||
|
||||
cannot-afford-type:
|
||||
in-actionbar: true
|
||||
sound:
|
||||
enabled: true
|
||||
sound: "BLOCK_NOTE_BLOCK_PLING"
|
||||
pitch: 0.5
|
||||
|
||||
cannot-afford-price:
|
||||
in-actionbar: true
|
||||
sound:
|
||||
enabled: true
|
||||
sound: "BLOCK_NOTE_BLOCK_PLING"
|
||||
pitch: 0.5
|
||||
|
||||
point-names: # If you have point names that look ugly (e.g. souls) then you can map them to nice names to be shown to players.
|
||||
example_point: "Nicely Formatted Point"
|
||||
|
||||
use-faster-move-trigger: true # Disable if you want move trigger to detect sub-1-block movements
|
||||
raytrace-distance: 80 # The distance that alt_click should check for a location
|
||||
|
||||
potions:
|
||||
icon:
|
||||
permanent: true
|
||||
triggered: true
|
||||
ambient:
|
||||
permanent: false
|
||||
triggered: true
|
||||
particles:
|
||||
permanent: false
|
||||
triggered: true
|
||||
@@ -1,3 +1,8 @@
|
||||
resource-id: 525
|
||||
bstats-id: 10635
|
||||
color: "&9"
|
||||
environment:
|
||||
- name: libreforge version
|
||||
value: ${libreforgeVersion}
|
||||
|
||||
options:
|
||||
resource-id: 525
|
||||
bstats-id: 10635
|
||||
color: "&9"
|
||||
|
||||
@@ -4,18 +4,6 @@ messages:
|
||||
not-player: "&cThis command must be run by a player"
|
||||
invalid-command: "&cUnknown subcommand!"
|
||||
reloaded: "Reloaded!"
|
||||
cannot-afford: "&cYou can't afford to do this! &fCost: &a$$%cost%"
|
||||
cannot-afford-type: "&cYou can't afford to do this! &fCost: &a%cost% %type%"
|
||||
cannot-afford-price: "&cYou can't afford to do this! &fPrice: %price%"
|
||||
on-cooldown: "&cThis effect is on cooldown! &fTime left: &a%seconds% seconds"
|
||||
cannot-transmit: "&cYou can't transmit here!"
|
||||
must-specify-lrcdb-id: "&cYou must specify the ID of the config to download! Not sure what this means? Go to &alrcdb.auxilor.io"
|
||||
lrcdb-import-error: "&cError importing config: &f%message%"
|
||||
lrcdb-import-success: "&fImported &a%name%&f! Reload the plugin to install it"
|
||||
must-specify-config-name: "&cYou must specify the config name!"
|
||||
invalid-config-name: "&cInvalid config name!"
|
||||
lrcdb-export-error: "&cError exporting config: &f%message%"
|
||||
lrcdb-export-success: "&fExported &a%name%&f! View it on &alrcdb.auxilor.io&f, or share your config ID: &f%id%"
|
||||
|
||||
sent-drop: "Check console for the drop!"
|
||||
specify-boss: "&cYou must specify a valid boss!"
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
# Options for lrcdb (https://lrcdb.auxilor.io), a website to share configs
|
||||
# with other server owners, so you can get more configs without making them
|
||||
# yourself!
|
||||
|
||||
author: "Unknown Author" # The name attached to configs you export
|
||||
|
||||
# Options about automatically sharing configs you create
|
||||
share-configs:
|
||||
# If you want all your configs to automatically be publicly available,
|
||||
# set this to true. This really helps out other users!
|
||||
publicly: false
|
||||
|
||||
# If you don't want your configs to be usable to gather information about
|
||||
# plugin usage or to improve the plugins in the future, disable this.
|
||||
# Nothing identifying is shared.
|
||||
enabled: true
|
||||
|
||||
# If you disable share-configs, you can still share select configs publicly
|
||||
# with /ecobosses export <config>.
|
||||
53
eco-core/core-plugin/src/main/resources/paper-plugin.yml
Normal file
53
eco-core/core-plugin/src/main/resources/paper-plugin.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
name: ${pluginName}
|
||||
version: ${version}
|
||||
main: com.willfp.ecobosses.EcoBossesPlugin
|
||||
api-version: 1.19
|
||||
|
||||
dependencies:
|
||||
- name: eco
|
||||
required: true
|
||||
bootstrap: false
|
||||
|
||||
- name: libreforge
|
||||
required: false
|
||||
bootstrap: false
|
||||
|
||||
load-after:
|
||||
- name: eco
|
||||
bootstrap: false
|
||||
|
||||
|
||||
permissions:
|
||||
ecobosses.*:
|
||||
description: All ecobosses permissions
|
||||
default: op
|
||||
children:
|
||||
ecobosses.command.*: true
|
||||
ecobosses.command.*:
|
||||
description: All ecobosses commands
|
||||
default: op
|
||||
children:
|
||||
ecobosses.command.ecobosses: true
|
||||
ecobosses.command.reload: true
|
||||
ecobosses.command.spawn: true
|
||||
ecobosses.command.give: true
|
||||
|
||||
ecobosses.command.ecobosses:
|
||||
description: Allows the use of /ecobosses
|
||||
default: true
|
||||
|
||||
ecobosses.command.give:
|
||||
description: Allows the use of /ecobosses give
|
||||
default: op
|
||||
|
||||
ecobosses.command.spawn:
|
||||
description: Allows the use of /ecobosses spawn
|
||||
default: op
|
||||
|
||||
ecobosses.command.killall:
|
||||
description: Allows the use of /ecobosses killall
|
||||
default: op
|
||||
|
||||
ecobosses.command.reload:
|
||||
description: Allows the use of /ecobosses reload
|
||||
default: op
|
||||
@@ -1,27 +1,15 @@
|
||||
name: EcoBosses
|
||||
version: ${projectVersion}
|
||||
name: ${pluginName}
|
||||
version: ${version}
|
||||
main: com.willfp.ecobosses.EcoBossesPlugin
|
||||
api-version: 1.17
|
||||
authors: [Auxilor]
|
||||
website: willfp.com
|
||||
load: STARTUP
|
||||
depend:
|
||||
- eco
|
||||
softdepend:
|
||||
- libreforge
|
||||
- LevelledMobs
|
||||
- AureliumSkills
|
||||
- Jobs
|
||||
- mcMMO
|
||||
- Vault
|
||||
- TMMobcoins
|
||||
- EcoEnchants
|
||||
- Talismans
|
||||
- EcoArmor
|
||||
- EcoItems
|
||||
- EcoSkills
|
||||
- Boosters
|
||||
- ModelEngine
|
||||
- EcoJobs
|
||||
|
||||
commands:
|
||||
ecobosses:
|
||||
@@ -42,8 +30,6 @@ permissions:
|
||||
ecobosses.command.reload: true
|
||||
ecobosses.command.spawn: true
|
||||
ecobosses.command.give: true
|
||||
ecobosses.command.import: true
|
||||
ecobosses.command.export: true
|
||||
|
||||
ecobosses.command.ecobosses:
|
||||
description: Allows the use of /ecobosses
|
||||
@@ -64,11 +50,3 @@ permissions:
|
||||
ecobosses.command.reload:
|
||||
description: Allows the use of /ecobosses reload
|
||||
default: op
|
||||
|
||||
ecobosses.command.import:
|
||||
description: Allows the use of /ecobosses import
|
||||
default: op
|
||||
|
||||
ecobosses.command.export:
|
||||
description: Allows the use of /ecobosses export
|
||||
default: op
|
||||
@@ -1,4 +1,5 @@
|
||||
#libreforge-updater
|
||||
#Sat Feb 04 15:36:59 GMT 2023
|
||||
version=8.114.1
|
||||
plugin-name=EcoBosses
|
||||
#Mon May 15 10:52:32 BST 2023
|
||||
kotlin.code.style=official
|
||||
libreforge-version=4.12.0
|
||||
version=9.12.0
|
||||
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,5 +1,5 @@
|
||||
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.0.2-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
pluginManagement {
|
||||
repositories {
|
||||
gradlePluginPortal()
|
||||
maven { url "https://repo.jpenilla.xyz/snapshots/" }
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.name = 'EcoBosses'
|
||||
|
||||
// Core
|
||||
include ':eco-core'
|
||||
include ':eco-core:core-plugin'
|
||||
14
settings.gradle.kts
Normal file
14
settings.gradle.kts
Normal 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 = "EcoBosses"
|
||||
|
||||
// Core
|
||||
include(":eco-core")
|
||||
include(":eco-core:core-plugin")
|
||||
Reference in New Issue
Block a user