Internal refactoring, added Model Engine support as an arg parser
This commit is contained in:
@@ -100,6 +100,7 @@ import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsOraxen
|
||||
import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsScyther
|
||||
import com.willfp.eco.internal.spigot.integrations.customrecipes.CustomRecipeCustomCrafting
|
||||
import com.willfp.eco.internal.spigot.integrations.economy.EconomyVault
|
||||
import com.willfp.eco.internal.spigot.integrations.entitylookup.EntityLookupModelEngine
|
||||
import com.willfp.eco.internal.spigot.integrations.hologram.HologramCMI
|
||||
import com.willfp.eco.internal.spigot.integrations.hologram.HologramDecentHolograms
|
||||
import com.willfp.eco.internal.spigot.integrations.hologram.HologramHolographicDisplays
|
||||
@@ -117,7 +118,6 @@ import com.willfp.eco.internal.spigot.recipes.listeners.ComplexInComplex
|
||||
import com.willfp.eco.internal.spigot.recipes.listeners.ComplexInVanilla
|
||||
import com.willfp.eco.internal.spigot.recipes.stackhandlers.ShapedCraftingRecipeStackHandler
|
||||
import com.willfp.eco.internal.spigot.recipes.stackhandlers.ShapelessCraftingRecipeStackHandler
|
||||
import net.kyori.adventure.platform.bukkit.BukkitAudiences
|
||||
import net.milkbowl.vault.economy.Economy
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Material
|
||||
@@ -129,42 +129,42 @@ abstract class EcoSpigotPlugin : EcoPlugin() {
|
||||
protected abstract val profileHandler: EcoProfileHandler
|
||||
|
||||
init {
|
||||
Items.registerArgParser(ArgParserEnchantment())
|
||||
Items.registerArgParser(ArgParserColor())
|
||||
Items.registerArgParser(ArgParserTexture())
|
||||
Items.registerArgParser(ArgParserCustomModelData())
|
||||
Items.registerArgParser(ArgParserFlag())
|
||||
Items.registerArgParser(ArgParserUnbreakable())
|
||||
Items.registerArgParser(ArgParserName())
|
||||
Items.registerArgParser(ArgParserEnchantment)
|
||||
Items.registerArgParser(ArgParserColor)
|
||||
Items.registerArgParser(ArgParserTexture)
|
||||
Items.registerArgParser(ArgParserCustomModelData)
|
||||
Items.registerArgParser(ArgParserFlag)
|
||||
Items.registerArgParser(ArgParserUnbreakable)
|
||||
Items.registerArgParser(ArgParserName)
|
||||
|
||||
Entities.registerArgParser(EntityArgParserName())
|
||||
Entities.registerArgParser(EntityArgParserNoAI())
|
||||
Entities.registerArgParser(EntityArgParserAttackDamage())
|
||||
Entities.registerArgParser(EntityArgParserAttackSpeed())
|
||||
Entities.registerArgParser(EntityArgParserFlySpeed())
|
||||
Entities.registerArgParser(EntityArgParserFollowRange())
|
||||
Entities.registerArgParser(EntityArgParserHealth())
|
||||
Entities.registerArgParser(EntityArgParserJumpStrength())
|
||||
Entities.registerArgParser(EntityArgParserKnockback())
|
||||
Entities.registerArgParser(EntityArgParserKnockbackResistance())
|
||||
Entities.registerArgParser(EntityArgParserSize())
|
||||
Entities.registerArgParser(EntityArgParserSpawnReinforcements())
|
||||
Entities.registerArgParser(EntityArgParserSpeed())
|
||||
Entities.registerArgParser(EntityArgParserBaby())
|
||||
Entities.registerArgParser(EntityArgParserAdult())
|
||||
Entities.registerArgParser(EntityArgParserCharged())
|
||||
Entities.registerArgParser(EntityArgParserExplosionRadius())
|
||||
Entities.registerArgParser(EntityArgParserSilent())
|
||||
Entities.registerArgParser(EntityArgParserEquipment())
|
||||
Entities.registerArgParser(EntityArgParserName)
|
||||
Entities.registerArgParser(EntityArgParserNoAI)
|
||||
Entities.registerArgParser(EntityArgParserAttackDamage)
|
||||
Entities.registerArgParser(EntityArgParserAttackSpeed)
|
||||
Entities.registerArgParser(EntityArgParserFlySpeed)
|
||||
Entities.registerArgParser(EntityArgParserFollowRange)
|
||||
Entities.registerArgParser(EntityArgParserHealth)
|
||||
Entities.registerArgParser(EntityArgParserJumpStrength)
|
||||
Entities.registerArgParser(EntityArgParserKnockback)
|
||||
Entities.registerArgParser(EntityArgParserKnockbackResistance)
|
||||
Entities.registerArgParser(EntityArgParserSize)
|
||||
Entities.registerArgParser(EntityArgParserSpawnReinforcements)
|
||||
Entities.registerArgParser(EntityArgParserSpeed)
|
||||
Entities.registerArgParser(EntityArgParserBaby)
|
||||
Entities.registerArgParser(EntityArgParserAdult)
|
||||
Entities.registerArgParser(EntityArgParserCharged)
|
||||
Entities.registerArgParser(EntityArgParserExplosionRadius)
|
||||
Entities.registerArgParser(EntityArgParserSilent)
|
||||
Entities.registerArgParser(EntityArgParserEquipment)
|
||||
|
||||
CraftingRecipeListener.registerListener(ComplexInComplex())
|
||||
CraftingRecipeListener.registerListener(ComplexInVanilla())
|
||||
CraftingRecipeListener.registerListener(ComplexInComplex)
|
||||
CraftingRecipeListener.registerListener(ComplexInVanilla)
|
||||
|
||||
StackedRecipeListener.registerHandler(ShapedCraftingRecipeStackHandler())
|
||||
StackedRecipeListener.registerHandler(ShapelessCraftingRecipeStackHandler())
|
||||
StackedRecipeListener.registerHandler(ShapedCraftingRecipeStackHandler)
|
||||
StackedRecipeListener.registerHandler(ShapelessCraftingRecipeStackHandler)
|
||||
|
||||
SegmentParserGroup().register()
|
||||
SegmentParserUseIfPresent().register()
|
||||
SegmentParserGroup.register()
|
||||
SegmentParserUseIfPresent.register()
|
||||
|
||||
CustomItemsManager.registerProviders()
|
||||
}
|
||||
@@ -317,7 +317,8 @@ abstract class EcoSpigotPlugin : EcoPlugin() {
|
||||
this.eventManager.registerListener(
|
||||
MultiverseInventoriesIntegration(this)
|
||||
)
|
||||
}
|
||||
},
|
||||
IntegrationLoader("ModelEngine") { EntityLookupModelEngine.register() }
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.willfp.eco.internal.spigot.arrows
|
||||
|
||||
import com.sun.tools.javac.jvm.ByteCodes.ret
|
||||
import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.eco.core.items.isEmpty
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.entity.Arrow
|
||||
import org.bukkit.entity.LivingEntity
|
||||
@@ -27,13 +29,9 @@ class ArrowDataListener(
|
||||
|
||||
val entity = arrow.shooter as LivingEntity
|
||||
|
||||
if (entity.equipment == null) {
|
||||
return
|
||||
}
|
||||
val item = entity.equipment?.itemInMainHand
|
||||
|
||||
val item = entity.equipment!!.itemInMainHand
|
||||
|
||||
if (item.type == Material.AIR || !item.hasItemMeta() || item.itemMeta == null) {
|
||||
if (item.isEmpty || item == null) {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.willfp.eco.internal.spigot.integrations.entitylookup
|
||||
|
||||
import com.ticxo.modelengine.api.ModelEngineAPI
|
||||
import com.willfp.eco.core.entities.Entities
|
||||
import com.willfp.eco.core.entities.args.EntityArgParseResult
|
||||
import com.willfp.eco.core.entities.args.EntityArgParser
|
||||
import com.willfp.eco.core.integrations.Integration
|
||||
|
||||
object EntityLookupModelEngine : Integration {
|
||||
fun register() {
|
||||
Entities.registerArgParser(EntityArgParserModelEngine)
|
||||
}
|
||||
|
||||
override fun getPluginName(): String {
|
||||
return "ModelEngine"
|
||||
}
|
||||
|
||||
private object EntityArgParserModelEngine : EntityArgParser {
|
||||
override fun parseArguments(args: Array<out String>): EntityArgParseResult? {
|
||||
var id: String? = null
|
||||
var animation: String? = null
|
||||
|
||||
for (arg in args) {
|
||||
val argSplit = arg.split(":")
|
||||
if (!argSplit[0].equals("model-engine", ignoreCase = true)) {
|
||||
continue
|
||||
}
|
||||
if (argSplit.size < 2) {
|
||||
continue
|
||||
}
|
||||
|
||||
val modelEngineInfo = argSplit[1].split(",")
|
||||
|
||||
id = modelEngineInfo.getOrNull(0)
|
||||
animation = modelEngineInfo.getOrNull(1)
|
||||
}
|
||||
|
||||
if (id == null) {
|
||||
return null
|
||||
}
|
||||
|
||||
return EntityArgParseResult(
|
||||
{
|
||||
val modelled = ModelEngineAPI.getModeledEntity(it.uniqueId)
|
||||
|
||||
if (modelled == null) {
|
||||
return@EntityArgParseResult false
|
||||
}
|
||||
|
||||
modelled.models.containsKey(id)
|
||||
},
|
||||
{
|
||||
val model = ModelEngineAPI.createActiveModel(id)
|
||||
|
||||
if (animation != null) {
|
||||
val handler = model.animationHandler
|
||||
val property = handler.getAnimation(animation)
|
||||
|
||||
if (property != null) {
|
||||
handler.playAnimation(property, true)
|
||||
}
|
||||
}
|
||||
|
||||
val modelled = ModelEngineAPI.createModeledEntity(it)
|
||||
modelled.addModel(model, true)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import com.willfp.eco.internal.spigot.recipes.GenericCraftEvent
|
||||
import com.willfp.eco.internal.spigot.recipes.RecipeListener
|
||||
import org.bukkit.entity.Player
|
||||
|
||||
class ComplexInComplex : RecipeListener {
|
||||
object ComplexInComplex : RecipeListener {
|
||||
override fun handle(event: GenericCraftEvent) {
|
||||
val recipe = event.recipe
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.willfp.eco.internal.spigot.recipes.CraftingRecipeListener
|
||||
import com.willfp.eco.internal.spigot.recipes.GenericCraftEvent
|
||||
import com.willfp.eco.internal.spigot.recipes.RecipeListener
|
||||
|
||||
class ComplexInVanilla : RecipeListener {
|
||||
object ComplexInVanilla : RecipeListener {
|
||||
override fun handle(event: GenericCraftEvent) {
|
||||
if (EcoPlugin.getPluginNames().contains(event.recipe.key.namespace)) {
|
||||
return
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.willfp.eco.core.recipe.recipes.ShapedCraftingRecipe
|
||||
import com.willfp.eco.internal.spigot.recipes.StackedRecipeHandler
|
||||
import org.bukkit.inventory.ItemStack
|
||||
|
||||
class ShapedCraftingRecipeStackHandler : StackedRecipeHandler {
|
||||
object ShapedCraftingRecipeStackHandler : StackedRecipeHandler {
|
||||
override val recipeType = ShapedCraftingRecipe::class.java
|
||||
override fun makeData(recipe: CraftingRecipe): Any? = null
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.willfp.eco.core.recipe.recipes.ShapelessCraftingRecipe
|
||||
import com.willfp.eco.internal.spigot.recipes.StackedRecipeHandler
|
||||
import org.bukkit.inventory.ItemStack
|
||||
|
||||
class ShapelessCraftingRecipeStackHandler :
|
||||
object ShapelessCraftingRecipeStackHandler :
|
||||
StackedRecipeHandler {
|
||||
override val recipeType = ShapelessCraftingRecipe::class.java
|
||||
override fun makeData(recipe: CraftingRecipe): Any {
|
||||
|
||||
@@ -47,4 +47,5 @@ softdepend:
|
||||
- EconomyShopGUI
|
||||
- zShop
|
||||
- DeluxeSellwands
|
||||
- Scyther
|
||||
- Scyther
|
||||
- ModelEngine
|
||||
Reference in New Issue
Block a user