Skip to content

Commit

Permalink
Add actions
Browse files Browse the repository at this point in the history
  • Loading branch information
LeoDog896 committed Nov 28, 2021
1 parent f287aaa commit 782b759
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 22 deletions.
4 changes: 2 additions & 2 deletions build.gradle.kts
Expand Up @@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
// Apply the Kotlin JVM plugin to add support for Kotlin.
kotlin("jvm") version "1.5.31"
kotlin("jvm") version "1.6.0"
id("com.github.johnrengelman.shadow") version "7.1.0"
id("org.jetbrains.dokka") version "1.5.31"
kotlin("plugin.serialization") version "1.5.0"
Expand Down Expand Up @@ -56,7 +56,7 @@ dependencies {
compileOnly("com.github.Project-Cepi:MobExtension:0ed0fc125e")

// Add actions
compileOnly("com.github.Project-Cepi:Actions:b22ef7ae29")
compileOnly("com.github.Project-Cepi:Actions:80871eeb22")

// Add canvas
implementation("com.mattworzala:canvas:1.1.5")
Expand Down
@@ -1,8 +1,10 @@
package world.cepi.itemextension.item

import kotlinx.serialization.modules.SerializersModule
import kotlinx.serialization.modules.plus
import kotlinx.serialization.modules.polymorphic
import kotlinx.serialization.modules.subclass
import world.cepi.actions.ActionSerializer
import world.cepi.itemextension.item.traits.ItemTrait
import world.cepi.itemextension.item.traits.list.*
import world.cepi.itemextension.item.traits.list.actions.PrimaryActionTrait
Expand Down Expand Up @@ -37,4 +39,4 @@ val itemSerializationModule = SerializersModule {

subclass(CustomTextTrait::class)
}
}
} + ActionSerializer.module
Expand Up @@ -10,7 +10,7 @@ import net.minestom.server.event.EventNode
import net.minestom.server.event.player.*
import net.minestom.server.event.trait.PlayerEvent
import net.minestom.server.item.ItemStack
import world.cepi.actions.Action
import world.cepi.actions.ActionItem
import world.cepi.itemextension.item.Item
import world.cepi.itemextension.item.cepiItem
import world.cepi.itemextension.item.traits.ItemTrait
Expand All @@ -21,7 +21,7 @@ import world.cepi.kstom.raycast.RayCast
@Serializable
sealed class ActionTrait: ItemTrait() {

abstract val action: Action
abstract val action: ActionItem
abstract val displayName: String
abstract val useTargeting: Boolean

Expand Down
Expand Up @@ -2,17 +2,17 @@ package world.cepi.itemextension.item.traits.list.actions

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import world.cepi.actions.Action
import world.cepi.actions.ActionItem
import world.cepi.actions.context.ActionItemOffContextParser
import world.cepi.kstom.command.arguments.generation.annotations.ParameterContext

@Serializable
@SerialName("primary_action")
class PrimaryActionTrait(
@ParameterContext(ActionItemOffContextParser::class)
override val action: Action,
override val displayName: String,
override val useTargeting: Boolean
override val useTargeting: Boolean,
@ParameterContext(ActionItemOffContextParser::class)
override val action: ActionItem
): ActionTrait() {
override val clickType = "Left"
}
Expand Up @@ -2,17 +2,17 @@ package world.cepi.itemextension.item.traits.list.actions

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import world.cepi.actions.Action
import world.cepi.actions.ActionItem
import world.cepi.actions.context.ActionItemOffContextParser
import world.cepi.kstom.command.arguments.generation.annotations.ParameterContext

@Serializable
@SerialName("secondary_action")
data class SecondaryActionTrait(
@ParameterContext(ActionItemOffContextParser::class)
override val action: Action,
override val displayName: String,
override val useTargeting: Boolean
override val useTargeting: Boolean,
@ParameterContext(ActionItemOffContextParser::class)
override val action: ActionItem
): ActionTrait() {
override val clickType = "Sneak + Left"

Expand Down
Expand Up @@ -3,16 +3,17 @@ package world.cepi.itemextension.item.traits.list.actions
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import world.cepi.actions.Action
import world.cepi.actions.ActionItem
import world.cepi.actions.context.ActionItemOffContextParser
import world.cepi.kstom.command.arguments.generation.annotations.ParameterContext

@Serializable
@SerialName("tertiary_action")
data class TertiaryActionTrait(
@ParameterContext(ActionItemOffContextParser::class)
override val action: Action,
override val displayName: String,
override val useTargeting: Boolean
override val useTargeting: Boolean,
@ParameterContext(ActionItemOffContextParser::class)
override val action: ActionItem
): ActionTrait() {
override val clickType = "Right"

Expand Down
Expand Up @@ -3,6 +3,7 @@ package world.cepi.itemextension.item.serialization
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.Disabled
import world.cepi.actions.ActionItem
import world.cepi.actions.list.FlingAction
import world.cepi.itemextension.item.Item
import world.cepi.itemextension.item.cepiItem
Expand All @@ -18,7 +19,7 @@ class ItemSerializer {
val item = cepiItem {
+LevelTrait(5)
+AttackSpeedTrait(Duration.ofMillis(10_000))
+PrimaryActionTrait(FlingAction(1.0), "Fling", true)
+PrimaryActionTrait("Fling", true, ActionItem(FlingAction(1.0)))
}


Expand All @@ -32,7 +33,7 @@ class ItemSerializer {
assertEquals(LevelTrait(5), decodedJSON.get<LevelTrait>())

assertTrue(decodedJSON.hasTrait<PrimaryActionTrait>())
assertEquals(PrimaryActionTrait(FlingAction(1.0), "Fling", true), decodedJSON.get<PrimaryActionTrait>())
assertEquals(PrimaryActionTrait("Fling", true, ActionItem(FlingAction(1.0))), decodedJSON.get<PrimaryActionTrait>())
}

}
Expand Up @@ -2,6 +2,7 @@ package world.cepi.itemextension.item.traits

import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.Disabled
import world.cepi.actions.ActionItem
import world.cepi.actions.list.FlingAction
import world.cepi.itemextension.item.traits.list.NameTrait
import world.cepi.itemextension.item.traits.list.actions.ActionTrait
Expand All @@ -18,8 +19,8 @@ class TraitContainerTest {

traitContainerImpl.put(NameTrait("Hello World!"))

traitContainerImpl.put(PrimaryActionTrait(FlingAction(1.0), "Fling", true))
traitContainerImpl.put(SecondaryActionTrait(FlingAction(1.0), "Fling", true))
traitContainerImpl.put(PrimaryActionTrait("Fling", true, ActionItem(FlingAction(1.0))))
traitContainerImpl.put(SecondaryActionTrait("Fling", true, ActionItem(FlingAction(1.0))))

assertTrue(traitContainerImpl.hasTrait<NameTrait>())

Expand All @@ -30,8 +31,8 @@ class TraitContainerTest {

assertEquals(
listOf(
PrimaryActionTrait(FlingAction(1.0), "Fling", true),
SecondaryActionTrait(FlingAction(1.0), "Fling", true)
PrimaryActionTrait("Fling", true, ActionItem(FlingAction(1.0))),
SecondaryActionTrait("Fling", true, ActionItem(FlingAction(1.0)))
),
traitContainerImpl.softGet<ActionTrait>()
)
Expand Down

0 comments on commit 782b759

Please sign in to comment.