useItem 使用物品
useItem
类型: MethodDeclaration
所属类: CommandFunctionList
定义位置: command.ts
描述
使用物品
参数
| 参数名 | 类型 | 描述 | 默认值 | 
|---|---|---|---|
| \{actor, mode, key, itemId, item, wait\} | `{ | ||
| actor: ActorGetter | |||
| mode: string | |||
| key?: string | |||
| itemId?: string | |||
| item?: ItemGetter | |||
| wait: boolean | |||
| }` | - | - | 
返回值
类型: CommandFunction
源代码
位置: 第 7044 行
protected useItem({actor, mode, key, itemId, item, wait}: {
    actor: ActorGetter
    mode: string
    key?: string
    itemId?: string
    item?: ItemGetter
    wait: boolean
  }): CommandFunction {
    const getActor = Command.compileActor(actor)
    let getItem: () => Item | undefined
    switch (mode) {
      case 'by-key': {
        const shortcutKey = Enum.getValue(key!)
        getItem = () => getActor()?.shortcut.getItem(shortcutKey)
        break
      }
      case 'by-id':
        getItem = () => getActor()?.inventory.get(itemId!) as Item | undefined
        break
      case 'by-item': {
        const getInstance = Command.compileItem(item!)
        getItem = () => {
          const actor = getActor()
          const item = getInstance()
          if (actor && item && actor.inventory === item.parent) {
            return item
          }
        }
        break
      }
    }
    switch (wait) {
      case false:
        return () => {
          getItem()?.use(getActor())
          return true
        }
      case true:
        return () => {
          const using = getItem()?.use(getActor())
          if (using && !using.complete) {
            const event = CurrentEvent
            using.onFinish(() => {
              event.continue()
            })
            return CurrentEvent.pause()
          }
          return true
        }
    }
  }
文档生成时间:2025/7/21 20:53:39