whoops
This commit is contained in:
parent
fc225b1afa
commit
06c7f97585
3 changed files with 7 additions and 11 deletions
|
@ -135,12 +135,13 @@ class CastingHarness private constructor(
|
||||||
fun updateWithPattern(newPat: HexPattern, world: ServerLevel, continuation: SpellContinuation): CastResult {
|
fun updateWithPattern(newPat: HexPattern, world: ServerLevel, continuation: SpellContinuation): CastResult {
|
||||||
var operatorIdPair: Pair<Operator, ResourceLocation>? = null
|
var operatorIdPair: Pair<Operator, ResourceLocation>? = null
|
||||||
try {
|
try {
|
||||||
|
|
||||||
// Don't catch this one
|
// Don't catch this one
|
||||||
operatorIdPair = PatternRegistry.matchPatternAndID(newPat, world)
|
operatorIdPair = PatternRegistry.matchPatternAndID(newPat, world)
|
||||||
if (!HexConfig.server().isActionAllowed(operatorIdPair.second)) {
|
if (this.ctx.spellCircle == null && !HexConfig.server().isActionAllowed(operatorIdPair.second)) {
|
||||||
throw MishapDisallowedSpell()
|
throw MishapDisallowedSpell()
|
||||||
} else if (this.ctx.spellCircle != null && !HexConfig.server().isActionAllowedInCircles(operatorIdPair.second)) {
|
} else if (this.ctx.spellCircle != null
|
||||||
|
&& !HexConfig.server().isActionAllowedInCircles(operatorIdPair.second)
|
||||||
|
) {
|
||||||
throw MishapDisallowedSpell("disallowed_circle")
|
throw MishapDisallowedSpell("disallowed_circle")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,12 @@
|
||||||
package at.petrak.hexcasting.api.spell.casting
|
package at.petrak.hexcasting.api.spell.casting
|
||||||
|
|
||||||
import at.petrak.hexcasting.api.spell.SpellDatum
|
|
||||||
import at.petrak.hexcasting.api.spell.SpellList
|
|
||||||
import at.petrak.hexcasting.api.spell.casting.CastingHarness.CastResult
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A continuation during the execution of a spell.
|
* A continuation during the execution of a spell.
|
||||||
*/
|
*/
|
||||||
sealed interface SpellContinuation {
|
sealed interface SpellContinuation {
|
||||||
object Done: SpellContinuation {}
|
object Done : SpellContinuation
|
||||||
|
|
||||||
data class NotDone(val frame: ContinuationFrame, val next: SpellContinuation): SpellContinuation {}
|
data class NotDone(val frame: ContinuationFrame, val next: SpellContinuation) : SpellContinuation
|
||||||
|
|
||||||
fun pushFrame(frame: ContinuationFrame): SpellContinuation = NotDone(frame, this)
|
fun pushFrame(frame: ContinuationFrame): SpellContinuation = NotDone(frame, this)
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ object OpFisherman : Operator {
|
||||||
ctx: CastingContext
|
ctx: CastingContext
|
||||||
): OperationResult {
|
): OperationResult {
|
||||||
if (stack.size < 2)
|
if (stack.size < 2)
|
||||||
throw MishapNotEnoughArgs(2, 0)
|
throw MishapNotEnoughArgs(2, stack.size)
|
||||||
val arg = stack.getChecked<Double>(stack.lastIndex)
|
val arg = stack.getChecked<Double>(stack.lastIndex)
|
||||||
val datum = stack[stack.lastIndex]
|
val datum = stack[stack.lastIndex]
|
||||||
val distance = stack.size - (arg + 1) // because getChecked<Int> just gives me a double for some reason
|
val distance = stack.size - (arg + 1) // because getChecked<Int> just gives me a double for some reason
|
||||||
|
|
Loading…
Reference in a new issue