feat: add molang package

1. upgrade bukkit chat
2. fix config update error

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2022-02-12 16:29:40 +08:00
parent 5ed61829e1
commit 6816e51239
73 changed files with 3103 additions and 129 deletions

View File

@@ -0,0 +1,48 @@
import { ExecutionEnvironment } from '../../env/env'
import { Expression, IExpression } from '../expression'
import { NameExpression } from './name'
export class ContextSwitchExpression extends Expression {
type = 'NameExpression'
constructor(
protected leftExpr: NameExpression,
protected rightExpr: NameExpression
) {
super()
}
get allExpressions() {
return [this.leftExpr, this.rightExpr]
}
setExpressionAt(index: number, expr: IExpression) {
if (!(expr instanceof NameExpression))
throw new Error(
`Cannot use context switch operator "->" on ${expr.type}`
)
if (index === 0) this.leftExpr = expr
else if (index === 1) this.rightExpr = expr
}
isStatic() {
return false
}
eval() {
const context = this.leftExpr.eval()
if (typeof context !== 'object') return 0
this.rightExpr.setExecutionEnv(
new ExecutionEnvironment(
context,
this.rightExpr.executionEnv.config
)
)
return this.rightExpr.eval()
}
toString() {
return `${this.leftExpr.toString()}->${this.rightExpr.toString()}`
}
}